summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSimon Rettberg2016-08-29 16:57:38 +0200
committerSimon Rettberg2016-08-29 16:57:38 +0200
commit1ea14f191d4ddd51e2df8ea30e4e3ca24734d172 (patch)
treee4e484c0077ea5a1c4f9cc00049655232904be11
parent make roomplanner 100% even on big screens and fix bug. (diff)
downloadslx-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.php3
-rw-r--r--modules-available/baseconfig/inc/baseconfigutil.inc.php19
-rw-r--r--modules-available/baseconfig_bwlp/hooks/translation.inc.php10
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;
}