Register spamfilter, tag, widget module triggers in module.xml

This commit is contained in:
Kijin Sung 2023-10-02 22:48:23 +09:00
parent ad1241fbb5
commit e81d0500eb
6 changed files with 43 additions and 158 deletions

View file

@ -16,6 +16,15 @@
<action name="procSpamfilterAdminInsertConfig" type="controller" />
<action name="procSpamfilterAdminInsertConfigCaptcha" type="controller" />
</actions>
<eventHandlers>
<eventHandler before="document.insertDocument" class="controller" method="triggerInsertDocument" />
<eventHandler before="document.updateDocument" class="controller" method="triggerInsertDocument" />
<eventHandler before="document.manage" class="controller" method="triggerManageDocument" />
<eventHandler before="comment.insertComment" class="controller" method="triggerInsertComment" />
<eventHandler before="comment.updateComment" class="controller" method="triggerInsertComment" />
<eventHandler before="communication.sendMessage" class="controller" method="triggerSendMessage" />
<eventHandler before="moduleObject.proc" class="controller" method="triggerCheckCaptcha" />
</eventHandlers>
<menus>
<menu name="spamFilter" tyle="super">
<title xml:lang="en">Spam Filter</title>

View file

@ -7,51 +7,12 @@
*/
class spamfilter extends ModuleObject
{
protected static $_insert_triggers = array(
array('document.insertDocument', 'before', 'controller', 'triggerInsertDocument'),
array('document.updateDocument', 'before', 'controller', 'triggerInsertDocument'),
array('document.manage', 'before', 'controller', 'triggerManageDocument'),
array('comment.insertComment', 'before', 'controller', 'triggerInsertComment'),
array('comment.updateComment', 'before', 'controller', 'triggerInsertComment'),
array('communication.sendMessage', 'before', 'controller', 'triggerSendMessage'),
array('moduleObject.proc', 'before', 'controller', 'triggerCheckCaptcha'),
);
protected static $_delete_triggers = array(
array('trackback.insertTrackback', 'before', 'controller', 'triggerInsertTrackback'),
);
/**
* Register all triggers.
*
* @return object
*/
public function registerTriggers()
{
$oModuleController = getController('module');
foreach (self::$_insert_triggers as $trigger)
{
if (!ModuleModel::getTrigger($trigger[0], $this->module, $trigger[2], $trigger[3], $trigger[1]))
{
$oModuleController->insertTrigger($trigger[0], $this->module, $trigger[2], $trigger[3], $trigger[1]);
}
}
foreach (self::$_delete_triggers as $trigger)
{
if (ModuleModel::getTrigger($trigger[0], $this->module, $trigger[2], $trigger[3], $trigger[1]))
{
$oModuleController->deleteTrigger($trigger[0], $this->module, $trigger[2], $trigger[3], $trigger[1]);
}
}
return new BaseObject(0, 'success_updated');
}
/**
* @brief Additional tasks required to accomplish during the installation
*/
public function moduleInstall()
{
return $this->registerTriggers();
}
/**
@ -59,21 +20,6 @@ class spamfilter extends ModuleObject
*/
public function checkUpdate()
{
foreach (self::$_insert_triggers as $trigger)
{
if (!ModuleModel::getTrigger($trigger[0], $this->module, $trigger[2], $trigger[3], $trigger[1]))
{
return true;
}
}
foreach (self::$_delete_triggers as $trigger)
{
if (ModuleModel::getTrigger($trigger[0], $this->module, $trigger[2], $trigger[3], $trigger[1]))
{
return true;
}
}
$oDB = DB::getInstance();
if(!$oDB->isColumnExists('spamfilter_denied_word', 'hit')) return true;
if(!$oDB->isColumnExists('spamfilter_denied_word', 'latest_hit')) return true;
@ -100,12 +46,6 @@ class spamfilter extends ModuleObject
*/
public function moduleUpdate()
{
$output = $this->registerTriggers();
if (!$output->toBool())
{
return $output;
}
$oDB = DB::getInstance();
if(!$oDB->isColumnExists('spamfilter_denied_word', 'hit'))
{
@ -168,7 +108,7 @@ class spamfilter extends ModuleObject
$config->captcha->type = 'none';
}
$output = getController('module')->insertModuleConfig($this->module, $config);
$output = ModuleController::getInstance()->insertModuleConfig($this->module, $config);
if (!$output->toBool())
{
return $output;
@ -176,14 +116,6 @@ class spamfilter extends ModuleObject
}
}
/**
* @brief Re-generate the cache file
*/
public function recompileCache()
{
}
/**
* Import configuration from reCAPTCHA addon.
*/
@ -223,7 +155,7 @@ class spamfilter extends ModuleObject
}
$output->target_modules_type = ($config->xe_run_method === 'run_selected') ? '+' : '-';
$oAddonAdminController = getAdminController('addon');
$oAddonAdminController = AddonAdminController::getInstance();
if ($output->target_devices['pc'])
{
$oAddonAdminController->doDeactivate('recaptcha', 0, 'pc');

View file

@ -5,6 +5,15 @@
<action name="dispTagAdminConfig" type="view" admin_index="true" menu_name="tag" />
<action name="procTagAdminInsertConfig" type="controller" />
</actions>
<eventHandlers>
<eventHandler before="document.insertDocument" class="controller" method="triggerArrangeTag" />
<eventHandler after="document.insertDocument" class="controller" method="triggerInsertTag" />
<eventHandler before="document.updateDocument" class="controller" method="triggerArrangeTag" />
<eventHandler after="document.updateDocument" class="controller" method="triggerInsertTag" />
<eventHandler after="document.deleteDocument" class="controller" method="triggerDeleteTag" />
<eventHandler after="module.deleteModule" class="controller" method="triggerDeleteModuleTags" />
<eventHandler after="document.moveDocumentModule" class="controller" method="triggerMoveDocument" />
</eventHandlers>
<menus>
<menu name="tag" type="all">
<title xml:lang="ko">태그</title>

View file

@ -10,86 +10,38 @@ class tag extends ModuleObject
/**
* @brief Implement if additional tasks are necessary when installing
*/
function moduleInstall()
public function moduleInstall()
{
$oModuleController = getController('module');
$oDB = &DB::getInstance();
$oDB->addIndex("tags","idx_tag", array("document_srl","tag"));
// 2007. 10. 17 document.insertDocument, updateDocument, deleteDocument trigger property for
$oModuleController->insertTrigger('document.insertDocument', 'tag', 'controller', 'triggerArrangeTag', 'before');
$oModuleController->insertTrigger('document.insertDocument', 'tag', 'controller', 'triggerInsertTag', 'after');
$oModuleController->insertTrigger('document.updateDocument', 'tag', 'controller', 'triggerArrangeTag', 'before');
$oModuleController->insertTrigger('document.updateDocument', 'tag', 'controller', 'triggerInsertTag', 'after');
$oModuleController->insertTrigger('document.deleteDocument', 'tag', 'controller', 'triggerDeleteTag', 'after');
// 2007. 10. 17 modules are deleted when you delete all registered triggers that add tag
$oModuleController->insertTrigger('module.deleteModule', 'tag', 'controller', 'triggerDeleteModuleTags', 'after');
$oDB = DB::getInstance();
$oDB->addIndex('tags', 'idx_tag', array('document_srl', 'tag'));
}
/**
* @brief a method to check if successfully installed
*/
function checkUpdate()
public function checkUpdate()
{
$oModuleModel = getModel('module');
$oDB = &DB::getInstance();
// 2007. 10. 17 trigger registration, if registered upset
if(!$oModuleModel->getTrigger('document.insertDocument', 'tag', 'controller', 'triggerArrangeTag', 'before')) return true;
if(!$oModuleModel->getTrigger('document.insertDocument', 'tag', 'controller', 'triggerInsertTag', 'after')) return true;
if(!$oModuleModel->getTrigger('document.updateDocument', 'tag', 'controller', 'triggerArrangeTag', 'before')) return true;
if(!$oModuleModel->getTrigger('document.updateDocument', 'tag', 'controller', 'triggerInsertTag', 'after')) return true;
if(!$oModuleModel->getTrigger('document.deleteDocument', 'tag', 'controller', 'triggerDeleteTag', 'after')) return true;
// 2007. 10. 17 modules are deleted when you delete all registered triggers that add tag
if(!$oModuleModel->getTrigger('module.deleteModule', 'tag', 'controller', 'triggerDeleteModuleTags', 'after')) return true;
// tag in the index column of the table tag
if(!$oDB->isIndexExists("tags","idx_tag")) return true;
if(!$oModuleModel->getTrigger('document.moveDocumentModule', 'tag', 'controller', 'triggerMoveDocument', 'after')) return true;
$oDB = DB::getInstance();
if (!$oDB->isIndexExists('tags', 'idx_tag'))
{
return true;
}
return false;
}
/**
* @brief Execute update
*/
function moduleUpdate()
public function moduleUpdate()
{
$oModuleModel = getModel('module');
$oModuleController = getController('module');
$oDB = &DB::getInstance();
// 2007. 10. 17 document.insertDocument, updateDocument, deleteDocument trigger property for
if(!$oModuleModel->getTrigger('document.insertDocument', 'tag', 'controller', 'triggerArrangeTag', 'before'))
$oModuleController->insertTrigger('document.insertDocument', 'tag', 'controller', 'triggerArrangeTag', 'before');
if(!$oModuleModel->getTrigger('document.insertDocument', 'tag', 'controller', 'triggerInsertTag', 'after'))
$oModuleController->insertTrigger('document.insertDocument', 'tag', 'controller', 'triggerInsertTag', 'after');
if(!$oModuleModel->getTrigger('document.updateDocument', 'tag', 'controller', 'triggerArrangeTag', 'before'))
$oModuleController->insertTrigger('document.updateDocument', 'tag', 'controller', 'triggerArrangeTag', 'before');
if(!$oModuleModel->getTrigger('document.updateDocument', 'tag', 'controller', 'triggerInsertTag', 'after'))
$oModuleController->insertTrigger('document.updateDocument', 'tag', 'controller', 'triggerInsertTag', 'after');
if(!$oModuleModel->getTrigger('document.deleteDocument', 'tag', 'controller', 'triggerDeleteTag', 'after'))
$oModuleController->insertTrigger('document.deleteDocument', 'tag', 'controller', 'triggerDeleteTag', 'after');
// 2007. 10. 17 modules are deleted when you delete all registered triggers that add tag
if(!$oModuleModel->getTrigger('module.deleteModule', 'tag', 'controller', 'triggerDeleteModuleTags', 'after'))
$oModuleController->insertTrigger('module.deleteModule', 'tag', 'controller', 'triggerDeleteModuleTags', 'after');
// tag in the index column of the table tag
if(!$oDB->isIndexExists("tags","idx_tag"))
$oDB->addIndex("tags","idx_tag", array("document_srl","tag"));
if(!$oModuleModel->getTrigger('document.moveDocumentModule', 'tag', 'controller', 'triggerMoveDocument', 'after'))
$oDB = DB::getInstance();
if (!$oDB->isIndexExists('tags', 'idx_tag'))
{
$oModuleController->insertTrigger('document.moveDocumentModule', 'tag', 'controller', 'triggerMoveDocument', 'after');
$oDB->addIndex('tags', 'idx_tag', array('document_srl', 'tag'));
}
}
/**
* @brief Re-generate the cache file
*/
function recompileCache()
{
}
}
/* End of file tag.class.php */
/* Location: ./modules/tag/tag.class.php */

View file

@ -19,6 +19,9 @@
<action name="dispWidgetAdminGenerateCode" type="view" menu_name="installedWidget" />
<action name="dispWidgetAdminAddContent" type="view" permission="manager" check_var="module_srl" />
</actions>
<eventHandlers>
<eventHandler before="display" class="controller" method="triggerWidgetCompile" />
</eventHandlers>
<menus>
<menu name="installedWidget">
<title xml:lang="en">Widgets</title>

View file

@ -10,47 +10,27 @@ class widget extends ModuleObject
/**
* @brief Implement if additional tasks are necessary when installing
*/
function moduleInstall()
public function moduleInstall()
{
// Create cache directory used by widget
FileHandler::makeDir('./files/cache/widget');
FileHandler::makeDir('./files/cache/widget_cache');
// Add this widget compile the trigger for the display.after
$oModuleController = getController('module');
$oModuleController->insertTrigger('display', 'widget', 'controller', 'triggerWidgetCompile', 'before');
}
/**
* @brief a method to check if successfully installed
*/
function checkUpdate()
public function checkUpdate()
{
$oModuleModel = getModel('module');
// widget compile display.after trigger for further (04/14/2009)
if(!$oModuleModel->getTrigger('display', 'widget', 'controller', 'triggerWidgetCompile', 'before')) return true;
return false;
}
/**
* @brief Execute update
*/
function moduleUpdate()
public function moduleUpdate()
{
$oModuleModel = getModel('module');
$oModuleController = getController('module');
// widget compile display.after trigger for further (04/14/2009)
if(!$oModuleModel->getTrigger('display', 'widget', 'controller', 'triggerWidgetCompile', 'before'))
{
$oModuleController->insertTrigger('display', 'widget', 'controller', 'triggerWidgetCompile', 'before');
}
}
/**
* @brief Re-generate the cache file
*/
function recompileCache()
{
}
}
/* End of file widget.class.php */