rhymix/modules/spamfilter/spamfilter.class.php
Kijin Sung 84e5542d77 Remove unnecessary use of BaseObject
- 트리거 등 반환값이 필요하지 않은 곳에서 new BaseObject()를 반환하는 것 삭제
- 모듈 설치, 업데이트 후 무의미한 new BaseObject()를 반환하는 것 삭제
- 사용자에게 에러 메시지를 돌려주는 용도로 new BaseObject(-1, '에러메시지')를
  사용하는 경우는 대부분 $this->setError()로 변경함. 언어 변환과 sprintf()
  처리까지 한 번에 이루어지므로 이쪽이 더 편리함.
2017-12-01 00:54:51 +09:00

115 lines
5.8 KiB
PHP

<?php
/* Copyright (C) NAVER <http://www.navercorp.com> */
/**
* @class spamfilter
* @author NAVER (developers@xpressengine.com)
* @brief The parent class of the spamfilter module
*/
class spamfilter extends ModuleObject
{
/**
* @brief Additional tasks required to accomplish during the installation
*/
function moduleInstall()
{
// Register action forward (to use in administrator mode)
$oModuleController = getController('module');
// 2007.12.7 The triggers which try to perform spam filtering when new posts/comments/trackbacks are registered
$oModuleController->insertTrigger('document.insertDocument', 'spamfilter', 'controller', 'triggerInsertDocument', 'before');
$oModuleController->insertTrigger('comment.insertComment', 'spamfilter', 'controller', 'triggerInsertComment', 'before');
$oModuleController->insertTrigger('trackback.insertTrackback', 'spamfilter', 'controller', 'triggerInsertTrackback', 'before');
// 2008-12-17 Add a spamfilter for post modification actions
$oModuleController->insertTrigger('comment.updateComment', 'spamfilter', 'controller', 'triggerInsertComment', 'before');
$oModuleController->insertTrigger('document.updateDocument', 'spamfilter', 'controller', 'triggerInsertDocument', 'before');
// 2013-11-14 The trigger which try to perform spam filtering when new message are registered
$oModuleController->insertTrigger('communication.sendMessage', 'spamfilter', 'controller', 'triggerSendMessage', 'before');
}
/**
* @brief A method to check if the installation has been successful
*/
function checkUpdate()
{
$oDB = &DB::getInstance();
$oModuleModel = getModel('module');
// 2007.12.7 The triggers which try to perform spam filtering when new posts/comments/trackbacks are registered
if(!$oModuleModel->getTrigger('document.insertDocument', 'spamfilter', 'controller', 'triggerInsertDocument', 'before')) return true;
if(!$oModuleModel->getTrigger('comment.insertComment', 'spamfilter', 'controller', 'triggerInsertComment', 'before')) return true;
if(!$oModuleModel->getTrigger('trackback.insertTrackback', 'spamfilter', 'controller', 'triggerInsertTrackback', 'before')) return true;
// 2008-12-17 Add a spamfilter for post modification actions
if(!$oModuleModel->getTrigger('comment.updateComment', 'spamfilter', 'controller', 'triggerInsertComment', 'before')) return true;
if(!$oModuleModel->getTrigger('document.updateDocument', 'spamfilter', 'controller', 'triggerInsertDocument', 'before')) return true;
// 2013-11-14 The trigger which try to perform spam filtering when new message are registered
if(!$oModuleModel->getTrigger('communication.sendMessage', 'spamfilter', 'controller', 'triggerSendMessage', 'before')) return true;
/**
* Add the hit count field (hit)
*/
if(!$oDB->isColumnExists('spamfilter_denied_word', 'hit')) return true;
if(!$oDB->isColumnExists('spamfilter_denied_word', 'latest_hit')) return true;
if(!$oDB->isColumnExists('spamfilter_denied_ip', 'description')) return true;
return false;
}
/**
* @brief Execute update
*/
function moduleUpdate()
{
$oDB = &DB::getInstance();
$oModuleModel = getModel('module');
$oModuleController = getController('module');
// 2007.12.7 The triggers which try to perform spam filtering when new posts/comments/trackbacks are registered
if(!$oModuleModel->getTrigger('document.insertDocument', 'spamfilter', 'controller', 'triggerInsertDocument', 'before'))
$oModuleController->insertTrigger('document.insertDocument', 'spamfilter', 'controller', 'triggerInsertDocument', 'before');
if(!$oModuleModel->getTrigger('comment.insertComment', 'spamfilter', 'controller', 'triggerInsertComment', 'before'))
$oModuleController->insertTrigger('comment.insertComment', 'spamfilter', 'controller', 'triggerInsertComment', 'before');
if(!$oModuleModel->getTrigger('trackback.insertTrackback', 'spamfilter', 'controller', 'triggerInsertTrackback', 'before'))
$oModuleController->insertTrigger('trackback.insertTrackback', 'spamfilter', 'controller', 'triggerInsertTrackback', 'before');
// 2008-12-17 Add a spamfilter for post modification actions
if(!$oModuleModel->getTrigger('comment.updateComment', 'spamfilter', 'controller', 'triggerInsertComment', 'before'))
{
$oModuleController->insertTrigger('comment.updateComment', 'spamfilter', 'controller', 'triggerInsertComment', 'before');
}
// 2008-12-17 Add a spamfilter for post modification actions
if(!$oModuleModel->getTrigger('document.updateDocument', 'spamfilter', 'controller', 'triggerInsertDocument', 'before'))
{
$oModuleController->insertTrigger('document.updateDocument', 'spamfilter', 'controller', 'triggerInsertDocument', 'before');
}
// 2013-11-14 The trigger which try to perform spam filtering when new message are registered
if(!$oModuleModel->getTrigger('communication.sendMessage', 'spamfilter', 'controller', 'triggerSendMessage', 'before'))
{
$oModuleController->insertTrigger('communication.sendMessage', 'spamfilter', 'controller', 'triggerSendMessage', 'before');
}
/**
* Add the hit count field (hit)
*/
if(!$oDB->isColumnExists('spamfilter_denied_word', 'hit'))
{
$oDB->addColumn('spamfilter_denied_word','hit','number',12,0,true);
$oDB->addIndex('spamfilter_denied_word','idx_hit', 'hit');
}
if(!$oDB->isColumnExists('spamfilter_denied_word', 'latest_hit'))
{
$oDB->addColumn('spamfilter_denied_word','latest_hit','date');
$oDB->addIndex('spamfilter_denied_word','idx_latest_hit', 'latest_hit');
}
if(!$oDB->isColumnExists('spamfilter_denied_ip', 'description'))
{
$oDB->addColumn('spamfilter_denied_ip','description','varchar', 250);
}
}
/**
* @brief Re-generate the cache file
*/
function recompileCache()
{
}
}
/* End of file spamfilter.class.php */
/* Location: ./modules/spamfilter/spamfilter.class.controller.php */