diff options
author | Simon Rettberg | 2018-02-09 12:12:31 +0100 |
---|---|---|
committer | Simon Rettberg | 2018-02-09 12:12:31 +0100 |
commit | d57ee1cfdd99fb4e44f5ce6d92d6712c30ff0aa4 (patch) | |
tree | c1030efbdb837f53651272e015a3ab5562f145c8 /modules-available/baseconfig/api.inc.php | |
parent | [systemstatus] lang-descriptions for permissions (diff) | |
parent | [inc/User] Add locationid 0 to allowed locations in fallback mode (diff) | |
download | slx-admin-d57ee1cfdd99fb4e44f5ce6d92d6712c30ff0aa4.tar.gz slx-admin-d57ee1cfdd99fb4e44f5ce6d92d6712c30ff0aa4.tar.xz slx-admin-d57ee1cfdd99fb4e44f5ce6d92d6712c30ff0aa4.zip |
Merge branch 'master' into permission-manager
Diffstat (limited to 'modules-available/baseconfig/api.inc.php')
-rw-r--r-- | modules-available/baseconfig/api.inc.php | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/modules-available/baseconfig/api.inc.php b/modules-available/baseconfig/api.inc.php index a4024c5e..853c6f51 100644 --- a/modules-available/baseconfig/api.inc.php +++ b/modules-available/baseconfig/api.inc.php @@ -16,6 +16,8 @@ class ConfigHolder private static $context = ''; + private static $postHooks = []; + public static function setContext($name) { self::$context = $name; @@ -54,8 +56,26 @@ class ConfigHolder return self::$config[$key][0]['value']; } + /** + * @param callable $func + */ + public static function addPostHook($func) + { + self::$postHooks[] = array('context' => self::$context, 'function' => $func); + } + + public static function applyPostHooks() + { + foreach (self::$postHooks as $hook) { + self::$context = $hook['context'] . ':post'; + $hook['function'](); + } + self::$postHooks = []; + } + public static function getConfig() { + self::applyPostHooks(); $ret = []; foreach (self::$config as $key => $list) { if ($list[0]['value'] === false) @@ -67,6 +87,7 @@ class ConfigHolder public static function outputConfig() { + self::applyPostHooks(); foreach (self::$config as $key => $list) { echo '##', $key, "\n"; foreach ($list as $pos => $item) { |