diff --git a/modules/module/module.controller.php b/modules/module/module.controller.php index 6caf15b4f..de217b10b 100644 --- a/modules/module/module.controller.php +++ b/modules/module/module.controller.php @@ -119,6 +119,31 @@ class moduleController extends module return $output; } + /** + * @brief Delete module trigger + * + */ + function deleteModuleTriggers($module) + { + $args = new stdClass(); + $args->module = $module; + + $output = executeQuery('module.deleteModuleTriggers', $args); + if($output->toBool()) + { + //remove from cache + $GLOBALS['__triggers__'] = NULL; + $oCacheHandler = CacheHandler::getInstance('object', NULL, TRUE); + if($oCacheHandler->isSupport()) + { + $cache_key = 'triggers'; + $oCacheHandler->delete($cache_key); + } + } + + return $output; + } + /** * @brief Add module extend * diff --git a/modules/module/queries/deleteModuleTriggers.xml b/modules/module/queries/deleteModuleTriggers.xml new file mode 100644 index 000000000..7d74eb7ef --- /dev/null +++ b/modules/module/queries/deleteModuleTriggers.xml @@ -0,0 +1,8 @@ + + + + + + + + \ No newline at end of file diff --git a/modules/point/lang/lang.xml b/modules/point/lang/lang.xml index 3eb8fbcf6..5bfe2ec1b 100644 --- a/modules/point/lang/lang.xml +++ b/modules/point/lang/lang.xml @@ -47,6 +47,28 @@ Pano/blog harici, puan sistemli link modüllerine davranış değerleri ekleyebilirsiniz.
Virgül(,) çoklu değerleri ayıracaktır.]]>
Bạn có thể chỉ thêm những giá trị liên kết với hệ thống điểm vào mỗi Module Blog, Board.
Để thêm nhiều giá trị bằng cách sử dụng dấu (,) giữa các giá trị.]]>
+ + + + + + + + + + + + + + + + + + + + + + diff --git a/modules/point/point.admin.controller.php b/modules/point/point.admin.controller.php index a61fa2780..4ebcecf19 100644 --- a/modules/point/point.admin.controller.php +++ b/modules/point/point.admin.controller.php @@ -24,75 +24,98 @@ class pointAdminController extends point $config = $oModuleModel->getModuleConfig('point'); // Arrange variables $args = Context::getRequestVars(); - // Check the point name - $config->point_name = $args->point_name; - if(!$config->point_name) $config->point_name = 'point'; - // Specify the default points - $config->signup_point = (int)$args->signup_point; - $config->login_point = (int)$args->login_point; - $config->insert_document = (int)$args->insert_document; - $config->read_document = (int)$args->read_document; - $config->insert_comment = (int)$args->insert_comment; - $config->upload_file = (int)$args->upload_file; - $config->download_file = (int)$args->download_file; - $config->voted = (int)$args->voted; - $config->blamed = (int)$args->blamed; - // The highest level - $config->max_level = $args->max_level; - if($config->max_level>1000) $config->max_level = 1000; - if($config->max_level<1) $config->max_level = 1; - // Set the level icon - $config->level_icon = $args->level_icon; - // Check if downloads are not allowed - if($args->disable_download == 'Y') $config->disable_download = 'Y'; - else $config->disable_download = 'N'; - // Check if reading a document is not allowed - if($args->disable_read_document == 'Y') $config->disable_read_document = 'Y'; - else $config->disable_read_document = 'N'; - $oMemberModel = getModel('member'); - $group_list = $oMemberModel->getGroups(); - - // Per-level group configurations - foreach($group_list as $group) + //if module IO config is off + if($args->able_module == 'Y') { - // Admin group should not be connected to point. - if($group->is_admin == 'Y' || $group->is_default == 'Y') continue; - - $group_srl = $group->group_srl; - - //if group level is higher than max level, change to max level - if($args->{'point_group_'.$group_srl} > $args->max_level) + // Re-install triggers, if it was disabled. + if($config->able_module == 'N') { - $args->{'point_group_'.$group_srl} = $args->max_level; + $this->moduleUpdate(); } - //if group level is lower than 1, change to 1 - if($args->{'point_group_'.$group_srl} < 1) + //module IO config is on + $config->able_module = 'Y'; + + // Check the point name + $config->point_name = $args->point_name; + if(!$config->point_name) $config->point_name = 'point'; + // Specify the default points + $config->signup_point = (int)$args->signup_point; + $config->login_point = (int)$args->login_point; + $config->insert_document = (int)$args->insert_document; + $config->read_document = (int)$args->read_document; + $config->insert_comment = (int)$args->insert_comment; + $config->upload_file = (int)$args->upload_file; + $config->download_file = (int)$args->download_file; + $config->voted = (int)$args->voted; + $config->blamed = (int)$args->blamed; + // The highest level + $config->max_level = $args->max_level; + if($config->max_level>1000) $config->max_level = 1000; + if($config->max_level<1) $config->max_level = 1; + // Set the level icon + $config->level_icon = $args->level_icon; + // Check if downloads are not allowed + if($args->disable_download == 'Y') $config->disable_download = 'Y'; + else $config->disable_download = 'N'; + // Check if reading a document is not allowed + if($args->disable_read_document == 'Y') $config->disable_read_document = 'Y'; + else $config->disable_read_document = 'N'; + + $oMemberModel = getModel('member'); + $group_list = $oMemberModel->getGroups(); + + // Per-level group configurations + foreach($group_list as $group) { - $args->{'point_group_'.$group_srl} = 1; + // Admin group should not be connected to point. + if($group->is_admin == 'Y' || $group->is_default == 'Y') continue; + + $group_srl = $group->group_srl; + + //if group level is higher than max level, change to max level + if($args->{'point_group_'.$group_srl} > $args->max_level) + { + $args->{'point_group_'.$group_srl} = $args->max_level; + } + + //if group level is lower than 1, change to 1 + if($args->{'point_group_'.$group_srl} < 1) + { + $args->{'point_group_'.$group_srl} = 1; + } + + if($args->{'point_group_'.$group_srl}) + { + $config->point_group[$group_srl] = $args->{'point_group_'.$group_srl}; + } + else + { + unset($config->point_group[$group_srl]); + } } - if($args->{'point_group_'.$group_srl}) + $config->group_reset = $args->group_reset; + // Per-level point configurations + unset($config->level_step); + for($i=1;$i<=$config->max_level;$i++) { - $config->point_group[$group_srl] = $args->{'point_group_'.$group_srl}; - } - else - { - unset($config->point_group[$group_srl]); + $key = "level_step_".$i; + $config->level_step[$i] = (int)$args->{$key}; } + // A function to calculate per-level points + $config->expression = $args->expression; } - - $config->group_reset = $args->group_reset; - // Per-level point configurations - unset($config->level_step); - for($i=1;$i<=$config->max_level;$i++) + else { - $key = "level_step_".$i; - $config->level_step[$i] = (int)$args->{$key}; + //module IO config is OFF, Other settings will not be modified. + $config->able_module = 'N'; + + // Delete Triggers + $oModuleController = getController('module'); + $oModuleController->deleteModuleTriggers('point'); } - // A function to calculate per-level points - $config->expression = $args->expression; // Save $oModuleController = getController('module'); $oModuleController->insertModuleConfig('point', $config); diff --git a/modules/point/point.class.php b/modules/point/point.class.php index 54818be74..f4c018ad5 100644 --- a/modules/point/point.class.php +++ b/modules/point/point.class.php @@ -20,6 +20,8 @@ class point extends ModuleObject $oModuleController = getController('module'); // The highest level $config = new stdClass; + // default, point module is OFF + $config->able_module = 'N'; $config->max_level = 30; // Per-level score for($i=1;$i<=30;$i++) @@ -97,27 +99,33 @@ class point extends ModuleObject { // Get the information of the point module $oModuleModel = getModel('module'); - // Add a trigger for registration/insert document/insert comment/upload a file/download - if(!$oModuleModel->getTrigger('member.insertMember', 'point', 'controller', 'triggerInsertMember', 'after')) return true; - if(!$oModuleModel->getTrigger('document.insertDocument', 'point', 'controller', 'triggerInsertDocument', 'after')) return true; - if(!$oModuleModel->getTrigger('document.deleteDocument', 'point', 'controller', 'triggerBeforeDeleteDocument', 'before')) return true; - if(!$oModuleModel->getTrigger('document.deleteDocument', 'point', 'controller', 'triggerDeleteDocument', 'after')) return true; - if(!$oModuleModel->getTrigger('comment.insertComment', 'point', 'controller', 'triggerInsertComment', 'after')) return true; - if(!$oModuleModel->getTrigger('comment.deleteComment', 'point', 'controller', 'triggerDeleteComment', 'after')) return true; - if(!$oModuleModel->getTrigger('file.insertFile', 'point', 'controller', 'triggerInsertFile', 'after')) return true; - if(!$oModuleModel->getTrigger('file.deleteFile', 'point', 'controller', 'triggerDeleteFile', 'after')) return true; - if(!$oModuleModel->getTrigger('file.downloadFile', 'point', 'controller', 'triggerBeforeDownloadFile', 'before')) return true; - if(!$oModuleModel->getTrigger('file.downloadFile', 'point', 'controller', 'triggerDownloadFile', 'after')) return true; - if(!$oModuleModel->getTrigger('member.doLogin', 'point', 'controller', 'triggerAfterLogin', 'after')) return true; - if(!$oModuleModel->getTrigger('module.dispAdditionSetup', 'point', 'view', 'triggerDispPointAdditionSetup', 'after')) return true; - if(!$oModuleModel->getTrigger('document.updateReadedCount', 'point', 'controller', 'triggerUpdateReadedCount', 'after')) return true; - // Add a trigger for voting up and down 2008.05.13 haneul - if(!$oModuleModel->getTrigger('document.updateVotedCount', 'point', 'controller', 'triggerUpdateVotedCount', 'after')) return true; - // Add a trigger for using points for permanent saving of a temporarily saved document 2009.05.19 zero - if(!$oModuleModel->getTrigger('document.updateDocument', 'point', 'controller', 'triggerUpdateDocument', 'before')) return true; - // 2012. 08. 29 Add a trigger to copy additional setting when the module is copied - if(!$oModuleModel->getTrigger('module.procModuleAdminCopyModule', 'point', 'controller', 'triggerCopyModule', 'after')) return true; + $config = $oModuleModel->getModuleConfig('point'); + // check if module is abled + if($config->able_module != 'N') + { + // Add a trigger for registration/insert document/insert comment/upload a file/download + if(!$oModuleModel->getTrigger('member.insertMember', 'point', 'controller', 'triggerInsertMember', 'after')) return true; + if(!$oModuleModel->getTrigger('document.insertDocument', 'point', 'controller', 'triggerInsertDocument', 'after')) return true; + if(!$oModuleModel->getTrigger('document.deleteDocument', 'point', 'controller', 'triggerBeforeDeleteDocument', 'before')) return true; + if(!$oModuleModel->getTrigger('document.deleteDocument', 'point', 'controller', 'triggerDeleteDocument', 'after')) return true; + if(!$oModuleModel->getTrigger('comment.insertComment', 'point', 'controller', 'triggerInsertComment', 'after')) return true; + if(!$oModuleModel->getTrigger('comment.deleteComment', 'point', 'controller', 'triggerDeleteComment', 'after')) return true; + if(!$oModuleModel->getTrigger('file.insertFile', 'point', 'controller', 'triggerInsertFile', 'after')) return true; + if(!$oModuleModel->getTrigger('file.deleteFile', 'point', 'controller', 'triggerDeleteFile', 'after')) return true; + if(!$oModuleModel->getTrigger('file.downloadFile', 'point', 'controller', 'triggerBeforeDownloadFile', 'before')) return true; + if(!$oModuleModel->getTrigger('file.downloadFile', 'point', 'controller', 'triggerDownloadFile', 'after')) return true; + if(!$oModuleModel->getTrigger('member.doLogin', 'point', 'controller', 'triggerAfterLogin', 'after')) return true; + if(!$oModuleModel->getTrigger('module.dispAdditionSetup', 'point', 'view', 'triggerDispPointAdditionSetup', 'after')) return true; + if(!$oModuleModel->getTrigger('document.updateReadedCount', 'point', 'controller', 'triggerUpdateReadedCount', 'after')) return true; + // Add a trigger for voting up and down 2008.05.13 haneul + if(!$oModuleModel->getTrigger('document.updateVotedCount', 'point', 'controller', 'triggerUpdateVotedCount', 'after')) return true; + // Add a trigger for using points for permanent saving of a temporarily saved document 2009.05.19 zero + if(!$oModuleModel->getTrigger('document.updateDocument', 'point', 'controller', 'triggerUpdateDocument', 'before')) return true; + + // 2012. 08. 29 Add a trigger to copy additional setting when the module is copied + if(!$oModuleModel->getTrigger('module.procModuleAdminCopyModule', 'point', 'controller', 'triggerCopyModule', 'after')) return true; + } return false; } diff --git a/modules/point/tpl/config.html b/modules/point/tpl/config.html index 2905f6fb5..575867ec0 100644 --- a/modules/point/tpl/config.html +++ b/modules/point/tpl/config.html @@ -2,12 +2,19 @@

{$XE_VALIDATOR_MESSAGE}

-
+ -
+

{$lang->is_default}

+
+ +
+ + {$lang->about_point_io} +
+
@@ -167,3 +174,20 @@

+ + \ No newline at end of file