zblog自带的评论模块有“名称”、“邮箱”、“网址”和“内容”四个选项可以填写,有很多用户会有这两个问题:

zblog评论模块的邮箱和网址可以解除限制吗?

可以换成别的选项吗?

最近帮一个用户测试了下这个问题,最后的答案是“不能”。

你只能让这两个选项不显示,或者显示了不填写也行(因为不是必填项),但是你要把这两项弄成别的就过不了检测验证限制这一关了,详细如下:


首先评论模块的模板文件是“commentpost.php”,可以直接修改里面邮箱和网址两个选项的提示,也可以让这两个选项不显示,但是就算你修改了系统还是会有验证的。

邮箱里面填写的内容如果不是邮箱地址就会弹出提示;

网址里面填写的内容也会自动给你加上“http//”头;

所以就算你把这两个选项改成其他作用,例如把邮箱改成了电话,但是用户填写了电话号码会被提示“邮箱格式不正确,可能过长或为空”。这就很尴尬了对吧。


我们在测试的时候发现这个限制在“/zb_system/script/c_html_js_add.php”这个文件里面,但是,但是:

这个文件里面的是前端的js限制,就算你修改了这个文件里面的限制,后端还有一重检测限制...

不得不说这个检测限制是很严格的了。

如果你铁了心要去除后端的限制那也不是不可以...

但是我们更建议用挂接口的方式新建其他字段来实现这个功能。

官方教程如下:

1:挂上Filter_Plugin_Html_Js_ZbpConfig接口

输出

echo "zbpConfig.comment.inputs.telphone = {selector: '#inpTel' , required: true};";

elphone就是提交时的$_POST的参数名,#inpTel就是表单名


2:提交评论后,就进入了PostComment()函数处理了

挂上Filter_Plugin_PostComment_Core接口

在自己的处理函数中,保存$_POST表单的数据进$cmt

$cmt->Metas->Telphone = $_POST['telphone'];

原文地址:https://bbs.zblogcn.com/thread-103010.html。

PS:这个比较复杂,需要一点水平!(猪说的)。