January 14, 2005
轻松除去MT留言强制输入email功能
刚才在一个同样是MovableType架设的blog留言,又一次要求我输入email,烦。
之后想到自己的blog,在架设之初就去掉了这个比较不人性化的功能。由于各种原因,比如垃圾邮件等等,很多人不希望留下自己的email地址。如果的确需要留下email,留言者也会在留言中,以各种避免垃圾邮件的方式书写email地址。
当初我也考虑过设置允许匿名留言,后来感觉此方式不够亲切,读者随便写个名字也比匿名好。
总之,留言系统一定要做到人性化,比如在考虑blog垃圾过滤的时候,有2个方案:一个为MT-Blacklist ,另一个为SCode 。前者如其名,使用blacklist来进行过滤,后者是使用当前比较流行的图形识别验证,简单的说,就是在留言的时候必须同时输入用图形方式显示的验证码。从技术角度来看,后者更胜一筹,但增加了读者留言的复杂度,而前者过滤效果也不赖,最终为了给读者一个相对人性化的留言方式,我选择了MT-Blacklist 。
废话一大堆,转回正题,方法去年建站之初就写好了,只是放在自己的笔记里面,现在公布出来,希望有同样想法的朋友可以利用一下,日后有人需要也容易google之。
回复的时候只需要输入用户名就行了,email可以不填,并且不允许匿名留言。
找到lib\MT\App下面的Comments.pm
MT 2.661
更改
if (!$blog->allow_anon_comments &&
(!$q->param('author') || !$q->param('email'))) {
return $app->handle_error($app->translate(
"Name and email address are required."));
为
if (!$blog->allow_anon_comments &&
(!$q->param('author'))) {
return $app->handle_error($app->translate(
"Name is required."));
MT 3.121
估计3.1x都差不多,具体可以根据情况再改一下。
更改
if (!$blog->allow_anon_comments &&
(!$comment->author || !$comment->email)) {
return $app->handle_error($app->translate(
"Name and email address are required."));
为
if (!$blog->allow_anon_comments &&
(!$comment->author)) {
return $app->handle_error($app->translate(
"Name is required."));
Posted by eapass at January 14, 2005 12:00 AM
Comments
有网友说“留下email比较好,现在blog的spam太多”。
我对此解释一下:
怕blog被spam,就算必须留email也没有用,留email地址对现在的spam程序形同虚设,spam程序经常变着花样来留。就算图形识别的,如果背景比较清楚的,也搞得定。
所以是否强制输入email对blog防spam没有任何实质作用,用mt做blog,如果你的pagerank比较高,必须使用anti-spam系统,比如我上面提到的MT-Blacklist 。
Posted by: eapass at January 14, 2005 01:57 AM
修改好的英文"Name are required",语法有问题
Posted by: 皮皮鲁 at May 1, 2005 11:35 AM
to 皮皮鲁:
谢谢,呵呵。:)
"are —> is"
Posted by: eapass at May 2, 2005 03:02 PM
Post a comment
On This Day
Trackback Pings
TrackBack URL for this entry:
http://www.cqcn.com/cgi-bin/blog/mt-tb.cgi/1176