服务报价 | 域名主机 | 网络营销 | 软件工具| [加入收藏]
 热线电话: #
当前位置: 主页 > php教程 > magento教程 >

magento拒绝屏蔽垃圾评论spam

时间:2012-09-14 08:07来源:未知 作者:最模板 点击:
总有一些小问题纠结着我,比如 magento 带的review(评论)功能。MagentoChina采用Magento作为CMS以后,每天都有几百条的垃圾评论(review spam)冲击着我的神经。我相信很多使用Magento的朋友都有这个
 总有一些小问题纠结着我,比如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()这个方法中增加:

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

完整的:

 

  1. public function validate() 
  2. $errors = array(); 
  3.   
  4. $helper = Mage::helper('customer'); 
  5.   
  6. if (!Zend_Validate::is($this->getTitle(), 'NotEmpty')) { 
  7. $errors[] = $helper->__('Review summary can\'t be empty'); 
  8.   
  9. if (!Zend_Validate::is($this->getNickname(), 'NotEmpty')) { 
  10. $errors[] = $helper->__('Nickname can\'t be empty'); 
  11.   
  12. if (!Zend_Validate::is($this->getDetail(), 'NotEmpty')) { 
  13. $errors[] = $helper->__('Review can\'t be empty'); 
  14. if (stristr($this->getDetail(), 'http')) { 
  15. $errors[] = $helper->__('Pls Don\'t Spam'); 
  16.   
  17. if (empty($errors)) { 
  18. return true; 
  19. return $errors; 

 

(责任编辑:最模板)
顶一下
(0)
0%
踩一下
(0)
0%
------分隔线----------------------------
栏目列表
热点内容