summaryrefslogtreecommitdiffstats
path: root/modules-available/locations/inc/locationhooks.inc.php
diff options
context:
space:
mode:
Diffstat (limited to 'modules-available/locations/inc/locationhooks.inc.php')
-rw-r--r--modules-available/locations/inc/locationhooks.inc.php28
1 files changed, 13 insertions, 15 deletions
diff --git a/modules-available/locations/inc/locationhooks.inc.php b/modules-available/locations/inc/locationhooks.inc.php
index c15c34ab..5ce3bbfe 100644
--- a/modules-available/locations/inc/locationhooks.inc.php
+++ b/modules-available/locations/inc/locationhooks.inc.php
@@ -4,28 +4,26 @@ class LocationHooks
{
/**
- * Used for baseconfig hook
- * @param $locationId
- * @return bool|array ('value' => x, 'display' => y), false if no parent or unknown id
+ * Resolve baseconfig id to locationid -- noop in this case
*/
- public static function getBaseconfigParent($locationId)
+ public static function baseconfigLocationResolver($id)
{
- $locationId = (int)$locationId;
- $assoc = Location::getLocationsAssoc();
- if (!isset($assoc[$locationId]))
- return false;
- $locationId = (int)$assoc[$locationId]['parentlocationid'];
- if (!isset($assoc[$locationId]))
- return false;
- return array('value' => $locationId, 'display' => $assoc[$locationId]['locationname']);
+ return $id;
}
/**
- * Resolve baseconfig id to locationid -- noop in this case
+ * Hook to get inheritance tree for all config vars
+ * @param int $id Locationid currently being edited
*/
- public static function baseconfigLocationResolver($id)
+ public static function baseconfigInheritance($id)
{
- return $id;
+ $locs = Location::getLocationsAssoc();
+ if ($locs === false || !isset($locs[$id]))
+ return [];
+ BaseConfig::prepareWithOverrides([
+ 'locationid' => $locs[$id]['parentlocationid']
+ ]);
+ return ConfigHolder::getRecursiveConfig(true);
}
} \ No newline at end of file