summaryrefslogtreecommitdiffstats
path: root/modules-available/baseconfig
diff options
context:
space:
mode:
authorSimon Rettberg2018-02-08 15:05:58 +0100
committerSimon Rettberg2018-02-08 15:05:58 +0100
commitce10ff7a848985f44e6c3c371f6075f67a8b7aeb (patch)
treea99a41c91f5b036aa28c0f9da52c640a8c6c4e2d /modules-available/baseconfig
parentUpdate translations (diff)
downloadslx-admin-ce10ff7a848985f44e6c3c371f6075f67a8b7aeb.tar.gz
slx-admin-ce10ff7a848985f44e6c3c371f6075f67a8b7aeb.tar.xz
slx-admin-ce10ff7a848985f44e6c3c371f6075f67a8b7aeb.zip
[exams/roomplanner] Hybrid PVS managers become dedicated in exam mode
Hopefully fixes #3066
Diffstat (limited to 'modules-available/baseconfig')
-rw-r--r--modules-available/baseconfig/api.inc.php21
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) {