From 55cba46f26eb881f505752f96c28b1ba16129727 Mon Sep 17 00:00:00 2001 From: Kijin Sung Date: Tue, 26 May 2020 00:27:31 +0900 Subject: [PATCH 1/3] Remove unnecessary check for array in getModulePartConfig() --- modules/module/module.model.php | 9 +-------- 1 file changed, 1 insertion(+), 8 deletions(-) diff --git a/modules/module/module.model.php b/modules/module/module.model.php index 8b2c0eb86..181334e04 100644 --- a/modules/module/module.model.php +++ b/modules/module/module.model.php @@ -1448,14 +1448,7 @@ class moduleModel extends module } else { - if (is_array($output->data->config)) - { - $config = array(); - } - else - { - $config = new stdClass; - } + $config = new stdClass; } // Deprecate use of ArrayObject because of https://bugs.php.net/bug.php?id=77298 From 55f7898dc9fd4b735231b7d59f4327ebfb39aca6 Mon Sep 17 00:00:00 2001 From: Kijin Sung Date: Tue, 26 May 2020 08:24:44 +0900 Subject: [PATCH 2/3] Return null by default in getModulePartConfig() --- modules/module/module.model.php | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/modules/module/module.model.php b/modules/module/module.model.php index 181334e04..c4ee0b6ed 100644 --- a/modules/module/module.model.php +++ b/modules/module/module.model.php @@ -1390,6 +1390,10 @@ class moduleModel extends module /** * @brief Return module configurations * Global configuration is used to manage board, member and others + * + * @param string $module + * @param int $site_srl @deprecated + * @return object */ function getModuleConfig($module, $site_srl = 0) { @@ -1428,6 +1432,10 @@ class moduleModel extends module /** * @brief Return the module configuration of mid * Manage mid configurations which depend on module + * + * @param string module + * @param int $module_srl + * @return mixed */ function getModulePartConfig($module, $module_srl) { @@ -1448,7 +1456,7 @@ class moduleModel extends module } else { - $config = new stdClass; + $config = -1; // Use -1 as a temporary value because null cannot be cached } // Deprecate use of ArrayObject because of https://bugs.php.net/bug.php?id=77298 @@ -1466,7 +1474,8 @@ class moduleModel extends module $GLOBALS['__ModulePartConfig__'][$module][$module_srl] = $config; } - return $GLOBALS['__ModulePartConfig__'][$module][$module_srl]; + $config = $GLOBALS['__ModulePartConfig__'][$module][$module_srl]; + return $config === -1 ? null : $config; } /** From 5cd1cc53a5d6b4ade85e4325eeacd5bbc67bb164 Mon Sep 17 00:00:00 2001 From: Kijin Sung Date: Tue, 26 May 2020 08:25:05 +0900 Subject: [PATCH 3/3] Fix #1298 array/object confusion in point module --- modules/board/board.view.php | 13 ++++++++++--- modules/point/point.controller.php | 4 ++++ modules/point/point.view.php | 5 +++++ 3 files changed, 19 insertions(+), 3 deletions(-) diff --git a/modules/board/board.view.php b/modules/board/board.view.php index 2fa7c3861..8ffa9c4d4 100644 --- a/modules/board/board.view.php +++ b/modules/board/board.view.php @@ -816,16 +816,23 @@ class boardView extends board if(!$oDocument->isExists()) { $point_config = $oModuleModel->getModulePartConfig('point',$this->module_srl); + if ($point_config) + { + $pointForInsert = is_object($point_config) ? $point_config->insert_document : $point_config["insert_document"]; + } + else + { + $pointForInsert = 0; + } $logged_info = Context::get('logged_info'); - $oPointModel = getModel('point'); - $pointForInsert = $point_config["insert_document"]; + if($pointForInsert < 0) { if(!Context::get('is_logged')) { return $this->dispBoardMessage('msg_not_permitted'); } - else if(($oPointModel->getPoint($logged_info->member_srl) + $pointForInsert) < 0) + else if((getModel('point')->getPoint($logged_info->member_srl) + $pointForInsert) < 0) { return $this->dispBoardMessage('msg_not_enough_point'); } diff --git a/modules/point/point.controller.php b/modules/point/point.controller.php index ebeadfe1d..784a542c8 100644 --- a/modules/point/point.controller.php +++ b/modules/point/point.controller.php @@ -632,6 +632,10 @@ class pointController extends point { $oModuleModel = getModel('module'); $pointConfig = $oModuleModel->getModulePartConfig('point', $obj->originModuleSrl); + if (is_object($pointConfig)) + { + $pointConfig = get_object_vars($pointConfig); + } $oModuleController = getController('module'); if(is_array($obj->moduleSrlList)) diff --git a/modules/point/point.view.php b/modules/point/point.view.php index efcb1d2e9..a0d3262e6 100644 --- a/modules/point/point.view.php +++ b/modules/point/point.view.php @@ -41,6 +41,7 @@ class pointView extends point $module_config = $oModuleModel->getModulePartConfig('point', $current_module_srl); if(!$module_config) { + $module_config = array(); $module_config['insert_document'] = $config->insert_document; $module_config['insert_comment'] = $config->insert_comment; $module_config['upload_file'] = $config->upload_file; @@ -51,6 +52,10 @@ class pointView extends point $module_config['voted_comment'] = $config->voted_comment; $module_config['blamed_comment'] = $config->blamed_comment; } + elseif(is_object($module_config)) + { + $module_config = get_object_vars($module_config); + } } $module_config['module_srl'] = $current_module_srl;