You are here

function getlocations_nodemap in Get Locations 6

Same name and namespace in other branches
  1. 6.2 getlocations.module \getlocations_nodemap()
  2. 7 getlocations.module \getlocations_nodemap()

Menu callback

Parameters

int $nid:

Return value

Returns a map of locations of a node

1 call to getlocations_nodemap()
getlocations_box in ./getlocations.module
1 string reference to 'getlocations_nodemap'
getlocations_menu in ./getlocations.module
Implementation of hook_menu().

File

./getlocations.module, line 213
Displays locations on a map. for Drupal 6 using version 3 googlemaps API

Code

function getlocations_nodemap($nid) {
  $vid = getlocations_get_vid($nid);
  $locations = getlocations_load_locations($vid);
  $node = node_load($nid);
  $getlocations_defaults = getlocations_defaults();
  $marker = $getlocations_defaults['node_map_marker'];
  $typemarkers = getlocations_get_markertypes('node');
  if (isset($typemarkers[$node->type]) && $typemarkers[$node->type]) {
    $marker = $typemarkers[$node->type];
  }
  $latlons = array();
  $minmaxes = array(
    'minlat' => 0,
    'minlon' => 0,
    'maxlat' => 0,
    'maxlon' => 0,
  );
  $ct = 0;
  if (count($locations)) {

    // we should loop over them and dump bummers with no lat/lon
    foreach ($locations as $key => $location) {
      if (getlocations_latlon_check($location['latitude'] . ',' . $location['longitude'])) {
        $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'] = $nid;
          }
        }

        // per location marker
        if (isset($location['marker']) && !empty($location['marker'])) {
          $marker = $location['marker'];
        }
        $ct++;
        $name = htmlspecialchars_decode($location['name'] ? strip_tags($location['name']) : strip_tags($node->title), ENT_QUOTES);
        $latlons[] = array(
          $location['latitude'],
          $location['longitude'],
          $location['lid'],
          $name,
          $marker,
          $location['key'],
        );
      }
    }
  }
  if ($ct < 2) {
    unset($minmaxes);
    $minmaxes = '';
  }
  drupal_set_title(t('View @t locations', array(
    '@t' => $node->title,
  )));
  return getlocations_setlocations($latlons, $minmaxes, 'node', $node);
}