$value) { $level[$geonameid] = t($value['name']); } return $level; } function hs_geonames_hierarchical_select_children($parent, $params, $dropbox = FALSE) { $query = array( 'geonameid' => $parent, 'style' => 'short', ); $result = geonames_query('children', $query); return _hs_geonames_results_to_options($result->results); } function hs_geonames_hierarchical_select_valid_item($item, $params) { $query = array( 'geonameid' => $item, 'style' => 'short', ); $result = geonames_query('hierarchy', $query); if (empty($result->results)) { return FALSE; } return TRUE; } function hs_geonames_hierarchical_select_lineage($item, $params) { $query = array( 'geonameid' => $item, 'style' => 'short', ); $result = geonames_query('hierarchy', $query); return array_keys(_hs_geonames_results_to_options($result->results)); } function _hs_geonames_results_to_options($results) { $items = array(); if (!empty($results)) { foreach ($results as $result) { if ($result['geonameid'] == '6295630') { // always remove 'globe' geoname from results continue; } $items[$result['geonameid']] = t($result['name']); } } return $items; }