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 | 16 |
2 files changed, 18 insertions, 1 deletions
diff --git a/modules-available/locations/baseconfig/hook.json b/modules-available/locations/baseconfig/hook.json index c295e0f6..b7b3581b 100644 --- a/modules-available/locations/baseconfig/hook.json +++ b/modules-available/locations/baseconfig/hook.json @@ -1,5 +1,6 @@ { "table": "setting_location", "field": "locationid", - "tostring": "Location::getName" + "tostring": "Location::getName", + "getfallback": "Location::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 7ac76b3e..8f3447da 100644 --- a/modules-available/locations/inc/location.inc.php +++ b/modules-available/locations/inc/location.inc.php @@ -286,6 +286,22 @@ class Location } /** + * @param $locationId + * @return bool|array ('value' => x, 'display' => y), false if no parent or unknown id + */ + public static function getBaseconfigParent($locationId) + { + settype($locationId, 'integer'); + $locations = Location::getLocationsAssoc(); + if (!isset($locations[$locationId])) + return false; + $locationId = (int)$locations[$locationId]['parentlocationid']; + if (!isset($locations[$locationId])) + return false; + return array('value' => $locationId, 'display' => $locations[$locationId]['locationname']); + } + + /** * @return array list of subnets as numeric array */ public static function getSubnets() |