From 7e5defaeaf8b385aaece9c0e3ee8ef1d27f1faaa Mon Sep 17 00:00:00 2001 From: Kijin Sung Date: Mon, 7 Sep 2020 21:25:42 +0900 Subject: [PATCH] Add AddonModel::getAddonConfig() method for easy access to addon config --- modules/addon/addon.admin.controller.php | 53 +++++++++++++++----- modules/addon/addon.controller.php | 15 ++++-- modules/addon/addon.model.php | 61 ++++++++++++++++++++++++ 3 files changed, 114 insertions(+), 15 deletions(-) create mode 100644 modules/addon/addon.model.php diff --git a/modules/addon/addon.admin.controller.php b/modules/addon/addon.admin.controller.php index 4587e9339..fad8a8ba0 100644 --- a/modules/addon/addon.admin.controller.php +++ b/modules/addon/addon.admin.controller.php @@ -141,8 +141,9 @@ class addonAdminController extends addonController { $this->makeCacheFile($site_srl, 'pc', 'site'); $this->makeCacheFile($site_srl, 'mobile', 'site'); + Rhymix\Framework\Cache::clearGroup('addonConfig'); } - + $this->setMessage('success_updated', 'info'); if(Context::get('success_return_url')) { @@ -186,6 +187,7 @@ class addonAdminController extends addonController } $this->makeCacheFile($site_module_info->site_srl, $type); + Rhymix\Framework\Cache::clearGroup('addonConfig'); } /** @@ -214,6 +216,9 @@ class addonAdminController extends addonController $this->makeCacheFile($site_module_info->site_srl, "pc", 'site'); $this->makeCacheFile($site_module_info->site_srl, "mobile", 'site'); + Rhymix\Framework\Cache::delete(sprintf('addonConfig:%s:%s', $addon_name, 'any')); + Rhymix\Framework\Cache::delete(sprintf('addonConfig:%s:%s', $addon_name, 'pc')); + Rhymix\Framework\Cache::delete(sprintf('addonConfig:%s:%s', $addon_name, 'mobile')); $this->setRedirectUrl(getNotEncodedUrl('', 'module', $module, 'act', 'dispAddonAdminSetup', 'selected_addon', $addon_name), $output); } @@ -234,11 +239,19 @@ class addonAdminController extends addonController $args->is_used = $isUsed; if($gtype == 'global') { - return executeQuery('addon.insertAddon', $args); + $output = executeQuery('addon.insertAddon', $args); } - $args->extra_vars = serialize($extra_vars); - $args->site_srl = $site_srl; - return executeQuery('addon.insertSiteAddon', $args); + else + { + $args->extra_vars = serialize($extra_vars); + $args->site_srl = $site_srl; + $output = executeQuery('addon.insertSiteAddon', $args); + } + + Rhymix\Framework\Cache::delete(sprintf('addonConfig:%s:%s', $addon, 'any')); + Rhymix\Framework\Cache::delete(sprintf('addonConfig:%s:%s', $addon, 'pc')); + Rhymix\Framework\Cache::delete(sprintf('addonConfig:%s:%s', $addon, 'mobile')); + return $output; } /** @@ -264,10 +277,18 @@ class addonAdminController extends addonController } if($gtype == 'global') { - return executeQuery('addon.updateAddon', $args); + $output = executeQuery('addon.updateAddon', $args); } - $args->site_srl = $site_srl; - return executeQuery('addon.updateSiteAddon', $args); + else + { + $args->site_srl = $site_srl; + $output = executeQuery('addon.updateSiteAddon', $args); + } + + Rhymix\Framework\Cache::delete(sprintf('addonConfig:%s:%s', $addon, 'any')); + Rhymix\Framework\Cache::delete(sprintf('addonConfig:%s:%s', $addon, 'pc')); + Rhymix\Framework\Cache::delete(sprintf('addonConfig:%s:%s', $addon, 'mobile')); + return $output; } /** @@ -292,12 +313,20 @@ class addonAdminController extends addonController } if($gtype == 'global') { - return executeQuery('addon.updateAddon', $args); + $output = executeQuery('addon.updateAddon', $args); } - $args->site_srl = $site_srl; - return executeQuery('addon.updateSiteAddon', $args); + else + { + $args->site_srl = $site_srl; + $output = executeQuery('addon.updateSiteAddon', $args); + } + + Rhymix\Framework\Cache::delete(sprintf('addonConfig:%s:%s', $addon, 'any')); + Rhymix\Framework\Cache::delete(sprintf('addonConfig:%s:%s', $addon, 'pc')); + Rhymix\Framework\Cache::delete(sprintf('addonConfig:%s:%s', $addon, 'mobile')); + return $output; } } /* End of file addon.admin.controller.php */ -/* Location: ./modules/addon/addon.admin.controller.php */ +/* Location: ./modules/addon/addon.admin.controller.php */ \ No newline at end of file diff --git a/modules/addon/addon.controller.php b/modules/addon/addon.controller.php index c8ea6c4c0..a0af35735 100644 --- a/modules/addon/addon.controller.php +++ b/modules/addon/addon.controller.php @@ -167,10 +167,18 @@ class addonController extends addon $args->extra_vars = serialize($extra_vars); if($gtype == 'global') { - return executeQuery('addon.updateAddon', $args); + $output = executeQuery('addon.updateAddon', $args); } - $args->site_srl = $site_srl; - return executeQuery('addon.updateSiteAddon', $args); + else + { + $args->site_srl = $site_srl; + $output = executeQuery('addon.updateSiteAddon', $args); + } + + Rhymix\Framework\Cache::delete(sprintf('addonConfig:%s:%s', $addon, 'any')); + Rhymix\Framework\Cache::delete(sprintf('addonConfig:%s:%s', $addon, 'pc')); + Rhymix\Framework\Cache::delete(sprintf('addonConfig:%s:%s', $addon, 'mobile')); + return $output; } /** @@ -184,6 +192,7 @@ class addonController extends addon $args = new stdClass(); $args->site_srl = $site_srl; executeQuery('addon.deleteSiteAddons', $args); + Rhymix\Framework\Cache::clearGroup('addonConfig'); } } diff --git a/modules/addon/addon.model.php b/modules/addon/addon.model.php new file mode 100644 index 000000000..d3d32e37f --- /dev/null +++ b/modules/addon/addon.model.php @@ -0,0 +1,61 @@ +addon = $addon_name; + $args->site_srl = 0; + $output = executeQueryArray('addon.getSiteAddonInfo', $args); + if (!$output->toBool() || !count($output->data)) + { + return null; + } + + $result = array_first($output->data); + if ($type === 'pc' && $result->is_used !== 'Y') + { + return null; + } + if ($type === 'mobile' && $result->is_used_m !== 'Y') + { + return null; + } + if (!$result->extra_vars) + { + return null; + } + + $config = unserialize($result->extra_vars); + unset($config->xe_validator_id); + if (!isset($config->mid_list)) + { + $config->mid_list = []; + } + $config->use_pc = $result->is_used; + $config->use_mobile = $result->is_used_m; + + Rhymix\Framework\Cache::set($cache_key, $config, 0, true); + return $config; + } +}