diff options
Diffstat (limited to 'modules-available/locations')
-rw-r--r-- | modules-available/locations/baseconfig/hook.json | 3 | ||||
-rw-r--r-- | modules-available/locations/inc/location.inc.php | 19 | ||||
-rw-r--r-- | modules-available/locations/inc/locationhooks.inc.php | 31 |
3 files changed, 33 insertions, 20 deletions
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 @@ -375,25 +375,6 @@ class Location } /** - * 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 */ public static function getSubnets() 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 @@ +<?php + +class LocationHooks +{ + + /** + * 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; + $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 |