diff options
author | Simon Rettberg | 2016-08-29 16:57:38 +0200 |
---|---|---|
committer | Simon Rettberg | 2016-08-29 16:57:38 +0200 |
commit | 1ea14f191d4ddd51e2df8ea30e4e3ca24734d172 (patch) | |
tree | e4e484c0077ea5a1c4f9cc00049655232904be11 | |
parent | make roomplanner 100% even on big screens and fix bug. (diff) | |
download | slx-admin-1ea14f191d4ddd51e2df8ea30e4e3ca24734d172.tar.gz slx-admin-1ea14f191d4ddd51e2df8ea30e4e3ca24734d172.tar.xz slx-admin-1ea14f191d4ddd51e2df8ea30e4e3ca24734d172.zip |
[baseconfig*] Fix translation hook to only consider the current module
-rw-r--r-- | inc/module.inc.php | 3 | ||||
-rw-r--r-- | modules-available/baseconfig/inc/baseconfigutil.inc.php | 19 | ||||
-rw-r--r-- | modules-available/baseconfig_bwlp/hooks/translation.inc.php | 10 |
3 files changed, 23 insertions, 9 deletions
diff --git a/inc/module.inc.php b/inc/module.inc.php index 960a0a87..597cfb57 100644 --- a/inc/module.inc.php +++ b/inc/module.inc.php @@ -175,7 +175,7 @@ class Module public function activate($depth = 1) { if ($this->activated !== false || $this->depsMissing) - return; + return $this->activated !== false; $this->activated = $depth; spl_autoload_register(function($class) { $file = 'modules/' . $this->name . '/inc/' . preg_replace('/[^a-z0-9]/', '', strtolower($class)) . '.inc.php'; @@ -189,6 +189,7 @@ class Module $get->activate($depth + 1); } } + return true; } public function getDependencies() diff --git a/modules-available/baseconfig/inc/baseconfigutil.inc.php b/modules-available/baseconfig/inc/baseconfigutil.inc.php index 75173ee6..3039ea12 100644 --- a/modules-available/baseconfig/inc/baseconfigutil.inc.php +++ b/modules-available/baseconfig/inc/baseconfigutil.inc.php @@ -13,12 +13,18 @@ class BaseConfigUtil * validator => xx, * ) * + * @param \Module $module optional, only consider given module, not all enabled modules * @return array all known config variables */ - public static function getVariables() + public static function getVariables($module = false) { $settings = array(); - foreach (glob('modules/*/baseconfig/settings.json', GLOB_NOSORT) as $file) { + if ($module === false) { + $module = '*'; + } else { + $module = $module->getIdentifier(); + } + foreach (glob("modules/{$module}/baseconfig/settings.json", GLOB_NOSORT) as $file) { $data = json_decode(file_get_contents($file), true); if (!is_array($data)) continue; @@ -31,10 +37,15 @@ class BaseConfigUtil return $settings; } - public static function getCategories() + public static function getCategories($module = false) { $categories = array(); - foreach (glob('modules/*/baseconfig/categories.json', GLOB_NOSORT) as $file) { + if ($module === false) { + $module = '*'; + } else { + $module = $module->getIdentifier(); + } + foreach (glob("modules/{$module}/baseconfig/categories.json", GLOB_NOSORT) as $file) { $data = json_decode(file_get_contents($file), true); if (!is_array($data)) continue; diff --git a/modules-available/baseconfig_bwlp/hooks/translation.inc.php b/modules-available/baseconfig_bwlp/hooks/translation.inc.php index 7588fe38..00898075 100644 --- a/modules-available/baseconfig_bwlp/hooks/translation.inc.php +++ b/modules-available/baseconfig_bwlp/hooks/translation.inc.php @@ -18,8 +18,9 @@ $HANDLER['subsections'] = array( * Configuration categories */ $HANDLER['grep_config-variable-categories'] = function($module) { - $module->activate(); - $want = BaseConfigUtil::getCategories(); + if (!$module->activate()) + return array(); + $want = BaseConfigUtil::getCategories($module); foreach ($want as &$entry) { $entry = true; } @@ -30,8 +31,9 @@ $HANDLER['grep_config-variable-categories'] = function($module) { * Configuration variables */ $HANDLER['grep_config-variables'] = function($module) { - $module->activate(); - $want = BaseConfigUtil::getVariables(); + if (!$module->activate()) + return array(); + $want = BaseConfigUtil::getVariables($module); foreach ($want as &$entry) { $entry = true; } |