Magento评论拒绝spam

发表于 02/23/2012 由 samshuai 已有 8 条评论

总有一些小问题纠结着我,比如Magento自带的review(评论)功能。MagentoChina采用Magento作为CMS以后,每天都有几百条的垃圾评论(review spam)冲击着我的神经。我相信很多使用Magento的朋友都有这个问题,我的另外一个站。产品评论已经过万,虽然大部分都是垃圾.这些Spam浪费我的时间,浪费我的精力,还让我的magento越来越慢,所以我决定消灭他们.

好了,我们现在来解决这个问题。其实解决这个问题很简单。也有多种处理办法

1.采用验证码,Magento connect中有给Magento review增加验证码的插件。记得有一个免费和一个收费的。

2.自己通过修改代码拒绝review spam。目前MagentoChina就是这么做的,直接让Magento判断游客提交的review中,是否带有http这个关键词。如果有,则报错。修改起来很简单,下面是代码:

代码位置在:app/code/core/Mage/Review/Model/Review.php

然后把这个文件Copy到:app/code/local/Mage/Review/Model/Review.php

然后在validate()这个方法中增加:

if (stristr($this->getDetail(), 'http')) {
$errors[] = $helper->__('Pls Don\'t Spam');
}

最后整个方法看起来像这样:

public function validate()
{
$errors = array();

$helper = Mage::helper('customer');

if (!Zend_Validate::is($this->getTitle(), 'NotEmpty')) {
$errors[] = $helper->__('Review summary can\'t be empty');
}

if (!Zend_Validate::is($this->getNickname(), 'NotEmpty')) {
$errors[] = $helper->__('Nickname can\'t be empty');
}

if (!Zend_Validate::is($this->getDetail(), 'NotEmpty')) {
$errors[] = $helper->__('Review can\'t be empty');
}
if (stristr($this->getDetail(), 'http')) {
$errors[] = $helper->__('Pls Don\'t Spam');
}

if (empty($errors)) {
return true;
}
return $errors;
}

如果不会修改,可以下载我修改好的


这篇文章被张贴在 小喇叭 and was tagged with review, spam, 本站原创

8 Responses to Magento评论拒绝spam

  • 拒绝h t t p是个不错的思路,赞! 弄的我都不敢直接写,哈哈....

    发表于03/24/2012 在 10:23 pm

  • 这个很实用,今天看一个站产品评论。很多垃圾的SPAM。。。烦躁呐,一个个去删除能吐血。。有这个文件就好多了。TKS

    发表于04/11/2012 在 5:48 pm

  • 我也头大,就随便写了个这个

    发表于04/12/2012 在 1:54 am

  • 我测试一下,但是除非把网址这个地方也屏蔽掉

    发表于07/01/2012 在 3:46 am

  • 很实用,可惜我php不行啊,只能下载你写好的了

    发表于08/09/2012 在 8:32 am

  • 垃圾评论很多,都不知道用什么工具发的。

    发表于10/16/2012 在 10:14 pm

  • 不错,而且还用了recaptcha验证码,基本上不会有垃圾评论了吧

    发表于06/21/2013 在 4:53 pm

  • YIN 说:

    感觉不错

    发表于05/16/2014 在 4:03 am

评论