From e18b0b0c764652d6f77465082eb474330f43915b Mon Sep 17 00:00:00 2001 From: Simon Rettberg Date: Thu, 31 Oct 2019 15:15:03 +0100 Subject: [statistics/baseconfig] Allow per-machine configvar overrides --- modules-available/locations/baseconfig/hook.json | 3 ++- modules-available/locations/inc/location.inc.php | 19 ------------- .../locations/inc/locationhooks.inc.php | 31 ++++++++++++++++++++++ 3 files changed, 33 insertions(+), 20 deletions(-) create mode 100644 modules-available/locations/inc/locationhooks.inc.php (limited to 'modules-available/locations') diff --git a/modules-available/locations/baseconfig/hook.json b/modules-available/locations/baseconfig/hook.json index b7b3581b..1d69647e 100644 --- a/modules-available/locations/baseconfig/hook.json +++ b/modules-available/locations/baseconfig/hook.json @@ -1,6 +1,7 @@ { "table": "setting_location", "field": "locationid", + "locationResolver": "LocationHooks::baseconfigLocationResolver", "tostring": "Location::getName", - "getfallback": "Location::getBaseconfigParent" + "getfallback": "LocationHooks::getBaseconfigParent" } \ No newline at end of file diff --git a/modules-available/locations/inc/location.inc.php b/modules-available/locations/inc/location.inc.php index ac866cbc..a29be5c3 100644 --- a/modules-available/locations/inc/location.inc.php +++ b/modules-available/locations/inc/location.inc.php @@ -374,25 +374,6 @@ class Location return array_reverse($chain); } - /** - * Used for baseconfig hook - * @param $locationId - * @return bool|array ('value' => x, 'display' => y), false if no parent or unknown id - */ - public static function getBaseconfigParent($locationId) - { - $locationId = (int)$locationId; - if (self::$assocLocationCache === false) { - self::getLocationsAssoc(); - } - if (!isset(self::$assocLocationCache[$locationId])) - return false; - $locationId = (int)self::$assocLocationCache[$locationId]['parentlocationid']; - if (!isset(self::$assocLocationCache[$locationId])) - return false; - return array('value' => $locationId, 'display' => self::$assocLocationCache[$locationId]['locationname']); - } - /** * @return array list of subnets as numeric array */ diff --git a/modules-available/locations/inc/locationhooks.inc.php b/modules-available/locations/inc/locationhooks.inc.php new file mode 100644 index 00000000..c15c34ab --- /dev/null +++ b/modules-available/locations/inc/locationhooks.inc.php @@ -0,0 +1,31 @@ + x, 'display' => y), false if no parent or unknown id + */ + public static function getBaseconfigParent($locationId) + { + $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']); + } + + /** + * Resolve baseconfig id to locationid -- noop in this case + */ + public static function baseconfigLocationResolver($id) + { + return $id; + } + +} \ No newline at end of file -- cgit v1.2.3-55-g7522