function getlocations_nids in Get Locations 7
Same name and namespace in other branches
- 6.2 getlocations.module \getlocations_nids()
- 6 getlocations.module \getlocations_nids()
- 7.2 getlocations.module \getlocations_nids()
Page callback: Displays a map.
Parameters
string $nidlist: A comma-delimited list of node ids
Return value
Returns a map of locations.
1 call to getlocations_nids()
- getlocations_box in ./
getlocations.module - Function for colorbox and suchlike
1 string reference to 'getlocations_nids'
- getlocations_menu in ./
getlocations.module - Implements hook_menu().
File
- ./
getlocations.module, line 862 - getlocations.module @author Bob Hutchinson http://drupal.org/user/52366 @copyright GNU GPL
Code
function getlocations_nids($nidlist) {
$nidarr = explode(',', $nidlist);
$locations = array();
$latlons = array();
$minmaxes = array(
'minlat' => 0,
'minlon' => 0,
'maxlat' => 0,
'maxlon' => 0,
);
$typemarkers = getlocations_get_markertypes('node');
$ct = 0;
$extra_info = array();
$sv_info = FALSE;
$map_info = FALSE;
$module = getlocations_get_current_supported_module();
foreach ($nidarr as $nid) {
$vid = getlocations_get_vid($nid);
$locs = getlocations_load_locations($vid);
if (count($locs)) {
foreach ($locs as $key => $loc) {
$type = getlocations_get_nodetype($nid);
if (isset($typemarkers[$type])) {
$loc['marker'] = $typemarkers[$type];
}
$locations[] = $loc;
}
}
}
if (count($locations)) {
// we should loop over them and dump bummers with no lat/lon
foreach ($locations as $key => $location) {
if ($latlon = getlocations_latlon_check($location['latitude'] . ',' . $location['longitude'])) {
$ll = explode(',', $latlon);
$location['latitude'] = $ll[0];
$location['longitude'] = $ll[1];
$minmaxes = getlocations_do_minmaxes($ct, $location, $minmaxes);
if (!isset($location['key'])) {
$location['key'] = '';
}
else {
if ($location['key'] == 'nid') {
$location['lid'] = $nid;
}
elseif ($location['key'] == 'vid') {
$location['lid'] = $vid;
}
}
$name = htmlspecialchars_decode(strip_tags($location['name']), ENT_QUOTES);
$latlons[$ct] = array(
$location['latitude'],
$location['longitude'],
$location['lid'],
$name,
$location['marker'],
$location['key'],
'',
'',
);
$sv_info = FALSE;
if ($module == 'getlocations_fields' && count($locations) == 1) {
if (getlocations_fields_streetview_settings_allow()) {
$sv_info = getlocations_fields_svinfo($location);
}
if (getlocations_fields_map_settings_allow()) {
$map_info = getlocations_fields_mapinfo($location);
}
}
$ct++;
}
}
}
if ($ct < 2) {
unset($minmaxes);
$minmaxes = '';
}
if ($sv_info) {
$extra_info = array_merge($extra_info, $sv_info);
}
if ($map_info) {
$extra_info = array_merge($extra_info, $map_info);
}
return getlocations_setlocations($latlons, $minmaxes, 'nids', '', $extra_info);
}