Typecho技巧之增加评论需要算术验证的小功能

引言

我想有的时候你会遇到这样的情况,打开自己的留言板,会发现很多莫名其妙的评论,当然,这里指的是垃圾评论。

这是不是让人很烦?

这篇文章就是提供一个方法,用来对付那些比较低级的垃圾评论——增加评论算术验证。

实现步骤

操作很简单,就是增加几行代码而已。

一、修改function.php

目前就博主使用的Cuteen主题为具体例子

进入目录~/themes/Cuteen/function.php

if (!defined('__TYPECHO_ROOT_DIR__')) exit;
require_once("Core/Cuteen.php");
require_once("Core/Content.php");
require_once("Core/ShortCodeUse.php");
function themeInit($self)
{
	Helper::options()->commentsAntiSpam = false; //关闭反垃圾
	Helper::options()->commentsCheckReferer = false; //关闭检查评论来源URL与文章链接是否一致判断(否则会无法评论)
	Helper::options()->commentsMaxNestingLevels = '999'; //最大嵌套层数
	Helper::options()->commentsPageDisplay = 'first'; //强制评论第一页
	Helper::options()->commentsOrder = 'DESC'; //将最新的评论展示在前
	Helper::options()->commentsHTMLTagAllowed = '<a href=""> <img src=""> <img src="" class=""> <code> <del>';
	Helper::options()->commentsMarkdown = true;
	Cuteen::upLike($self); //点赞
/* 
    $comment = spam_protection_pre($comment, $post, $result);
}
function spam_protection_math(){
    $num1=rand(1,10);
    $num2=rand(1,10);
    echo "<input class='input mr1' id='jisuan' type=\"text\" name=\"sum\" class=\"text\" value=\"\" size=\"25\" tabindex=\"4\"  placeholder=\"$num1+$num2=?\">\n";
    echo "<input type=\"hidden\" name=\"num1\" value=\"$num1\">\n";
    echo "<input type=\"hidden\" name=\"num2\" value=\"$num2\">";
}
function spam_protection_pre($comment, $post, $result){
    $sum=$_POST['sum'];
    switch($sum){
        case $_POST['num1']+$_POST['num2']:
        break;
        case null:
        throw new Typecho_Widget_Exception(_t('对不起: 请输入验证码。<a href="javascript:history.back(-1)">返回上一页</a>','评论失败'));
        break;
        default:
        throw new Typecho_Widget_Exception(_t('对不起: 验证码错误,请<a href="javascript:history.back(-1)">返回</a>重试。','评论失败'));
    }
    return $comment;
}
*/  //该注释部分即将要添加的代码
    
    
error_reporting(0);
Typecho_Plugin::factory('Widget_Abstract_Contents')->contentEx = array('Cuteen', 'parseContent');
Typecho_Plugin::factory('Widget_Abstract_Contents')->excerptEx = array('Cuteen', 'parseContent');
Typecho_Plugin::factory('admin/write-post.php')->bottom = array('Content', 'EditAddButton');
Typecho_Plugin::factory('admin/write-page.php')->bottom = array('Content', 'EditAddButton');

看到上方代码的注释部分了吗?

这就是我们即将添加的代码,但是,这是针对Cuteen主题的。

其它主题请使用下方代码:

function themeInit($comment){
$comment = spam_protection_pre($comment, $post, $result);
}
function spam_protection_math(){
    $num1=rand(1,49);  //更改计算范围
    $num2=rand(1,49);
    echo "<label for=\"math\">请输入<code>$num1</code>+<code>$num2</code>的计算结果:</label>\n";
    echo "<input type=\"text\" name=\"sum\" class=\"text\" value=\"\" size=\"25\" tabindex=\"4\" style=\"width:218px\" placeholder=\"计算结果:\">\n";
    echo "<input type=\"hidden\" name=\"num1\" value=\"$num1\">\n";
    echo "<input type=\"hidden\" name=\"num2\" value=\"$num2\">";
}
function spam_protection_pre($comment, $post, $result){
    $sum=$_POST['sum'];
    switch($sum){
        case $_POST['num1']+$_POST['num2']:
        break;
        case null:
        throw new Typecho_Widget_Exception(_t('对不起: 请输入验证码。<a href="javascript:history.back(-1)">返回上一页</a>','评论失败'));
        break;
        default:
        throw new Typecho_Widget_Exception(_t('对不起: 验证码错误,请<a href="javascript:history.back(-1)">返回</a>重试。','评论失败'));
    }
    return $comment;
}

上方是50以内的数相加,如果觉得很难的话~可以将其更改为你自己所需要的数值。

看一下实际的页面效果:

image-20201029145641723

二、修改comments.php

进入对应的目录~/themes/Cuteen/Base/comments.php

添加以下代码:

<?php spam_protection_math();?>

将其插入适当的位置,但什么是适当的位置呢?我将自己的代码给读者参考一下。

image-20201029150148945

建议将其放到三项基本信息之后,当然,这只是建议,想怎么,请随意。

三、针对Cuteen主题的css优化

进入主题——设置——高级设置——自定义css

填入以下代码:

.jisuan {
    font-family: inherit;
    font-size: inherit;
    display: block;
    border: 3px solid rgba(26, 188, 156, 0.4);
    border-radius: var(--yj);
    box-sizing: border-box;
    padding: 0px 8px;
}
input#jisuan {
    margin-left: 10px;
    width: 40%;
}
input#author,input#mail,input#url {
    margin-left: 10px;
}

四、看一下效果

image-20201029150606930

结语

这个功能的实现并不是很复杂,但是不得不说它却能起到不错的效果。

如果想了解更多关于Cuteen主题的美化教程,可以看看这篇教程——Typecho-Cuteen主题的小小美化

如果有什么疑惑,可以在勿埋我心评论区留言。

文章来源: Typecho技巧之增加评论需要算术验证的小功能 - 勿埋我心

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
### 回答1: Typecho是一款流行的博客系统,1.2.0是其最新版本。它是一个基于PHP和MySQL的开源系统,可以轻松地搭建个人或团队博客,并可以方便地扩展功能。 相比前几个版本,Typecho 1.2.0在性能和安全性上有了很多改进。系统的整体性能得到了提升,博客的加载速度更快了。同时,Typecho 1.2.0增加了更多的安全措施,可防止SQL注入、XSS攻击等常见的安全威胁。 Typecho 1.2.0还新增了一些实用的特性。例如,博客主题设置和插件管理界面更加人性化,并且加入了对多种语言的支持。此外,Typecho 1.2.0还引入了新的Markdown编辑器,丰富了博客的编辑、发布功能。 总体来说,Typecho 1.2.0是一款更加实用、性能更好、安全性更强的博客系统。如果你正在寻找一个简单易用的博客搭建工具,那么Typecho 1.2.0是一个很好的选择。 ### 回答2: Typecho 1.2.0 是一款开源的博客程序。它的设计理念是简洁高效,易于安装和使用。Typecho 1.2.0 支持多用户管理和权限控制,可以让多个作者在同一个平台上发布文章和管理内容。 Typecho 1.2.0 提供了丰富的插件和主题支持,用户可以根据自己的需要选择合适的插件来扩展功能,或者自定义主题风格以满足个人喜好或商业需求。 Typecho 1.2.0 的后台管理界面简洁明了,功能齐全,具有良好的用户体验。通过后台管理界面,用户可以管理文章发布、分类标签、评论审核、用户权限等各个方面的内容。 Typecho 1.2.0 的前端界面也是精美简洁的,自适应的布局和响应式设计可以在不同设备上提供良好的用户体验。并且,Typecho 1.2.0 提供了强大的 SEO 功能,可以帮助网站获得更好的搜索引擎排名。 总之,Typecho 1.2.0 是一款功能全面、易于使用的开源博客程序。它的简洁高效的设计让用户可以更专注于内容创作,而不必花费太多精力在技术维护上。无论是个人博客还是商业网站,Typecho 1.2.0 都是一个不错的选择。 ### 回答3: Typecho 1.2.0是一款流行的开源博客系统。它是一个简洁、高效、易于使用的博客平台,广受用户喜爱。 首先,Typecho 1.2.0具有出色的定制性能。它提供了丰富的主题和插件,可以满足用户不同的需求。用户可以根据自己的喜好选择合适的主题来改变博客的外观和风格。同时,用户还可以根据自己的需要安装各种插件,扩展博客的功能。 其次,Typecho 1.2.0具有良好的用户体验。它的界面简洁明了,操作流程简单易懂,即使对于没有技术背景的用户也能够轻松上手。同时,Typecho 1.2.0还具有响应式设计,可以自适应不同屏幕大小的设备,提供更好的移动端浏览体验。 此外,Typecho 1.2.0还具有卓越的性能。它以PHP语言开发,采用了轻量级的设计理念,页面加载速度快,占用系统资源较少。这使得博客在大流量情况下也能保持流畅的访问速度。 最后,Typecho 1.2.0还支持多语言功能,允许用户选择适合自己的语言来搭建个人博客。这对于不同地区和语种的用户来说非常方便。 综上所述,Typecho 1.2.0是一款卓越的博客系统,具有定制性强、用户体验佳、性能优越、多语言支持等优点。无论是个人博客还是企业网站,都适用于使用Typecho 1.2.0来搭建和管理。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值