summaryrefslogtreecommitdiffstats
path: root/modules-available/baseconfig/inc
diff options
context:
space:
mode:
authorChristian Klinger2016-08-22 11:24:03 +0200
committerChristian Klinger2016-08-22 11:24:03 +0200
commitd3c689c6730ca6749c03ffd01c670f7b191e8355 (patch)
tree9e2d7caa1ed3c45b4757621202087a64e5e87cc9 /modules-available/baseconfig/inc
parentcss fix/hack to get roomplanner to work on medium sized screens. (diff)
parent[dozmod] Expect the client to tell wether it is running in exam mode and comp... (diff)
downloadslx-admin-d3c689c6730ca6749c03ffd01c670f7b191e8355.tar.gz
slx-admin-d3c689c6730ca6749c03ffd01c670f7b191e8355.tar.xz
slx-admin-d3c689c6730ca6749c03ffd01c670f7b191e8355.zip
Merge branch 'modularization' of git.openslx.org:openslx-ng/slx-admin into modularization
Diffstat (limited to 'modules-available/baseconfig/inc')
-rw-r--r--modules-available/baseconfig/inc/baseconfigutil.inc.php22
1 files changed, 22 insertions, 0 deletions
diff --git a/modules-available/baseconfig/inc/baseconfigutil.inc.php b/modules-available/baseconfig/inc/baseconfigutil.inc.php
index ebaefbcf..75173ee6 100644
--- a/modules-available/baseconfig/inc/baseconfigutil.inc.php
+++ b/modules-available/baseconfig/inc/baseconfigutil.inc.php
@@ -47,4 +47,26 @@ class BaseConfigUtil
return $categories;
}
+ /**
+ * Mark variables that would be shadowed according to the given values.
+ *
+ * @param $vars list of vars as obtained from BaseConfigUtil::getVariables()
+ * @param $values key-value-pairs of variable assignments to work with
+ */
+ public static function markShadowedVars(&$vars, $values) {
+ foreach ($vars as $key => &$var) {
+ if (!isset($var['shadows']))
+ continue;
+ foreach ($var['shadows'] as $triggerVal => $destSettings) {
+ if (isset($values[$key]) && $values[$key] !== $triggerVal)
+ continue;
+ foreach ($destSettings as $destSetting) {
+ if (isset($vars[$destSetting])) {
+ $vars[$destSetting]['shadowed'] = true;
+ }
+ }
+ }
+ }
+ }
+
}