You are here

function node_field_gmap_field_formatter in Node Field 7.2

Formatter for gmap node field.

Parameters

array $node_field: Node field data.

Return value

string Google map container.

1 string reference to 'node_field_gmap_field_formatter'
node_field_gmap_node_field_info_alter in modules/node_field_gmap/node_field_gmap.module
Implements hook_node_field_info_alter().

File

modules/node_field_gmap/includes/node_field_gmap.api.inc, line 90
Api and helpers function for node_field_gmap module.

Code

function node_field_gmap_field_formatter(array $node_field) {
  $value = unserialize($node_field['value']);
  $map_settings = array(
    'id' => 'node-field-gmap-' . $node_field['id'],
    'lat' => 40,
    'lon' => -100,
    'description' => NULL,
    'zoom' => 2,
    'marker' => FALSE,
  );
  if (!empty($value['latitude']) && !empty($value['longitude'])) {
    $map_settings['lat'] = $value['latitude'];
    $map_settings['lon'] = $value['longitude'];
    $map_settings['description'] = $value['description'];
    $map_settings['zoom'] = 16;
    $map_settings['marker'] = TRUE;
  }
  $url_options = array(
    'external' => TRUE,
    'query' => array(
      'key' => variable_get('node_field_gmap_api_key', ''),
      'libraries' => 'places',
    ),
  );
  $url = url('https://maps.googleapis.com/maps/api/js', $url_options);
  drupal_add_js(array(
    'nodeFieldGmapView' => array(
      $map_settings,
    ),
  ), 'setting');
  drupal_add_js($url, array(
    'type' => 'external',
    'group' => JS_LIBRARY,
  ));
  drupal_add_js(drupal_get_path('module', 'node_field_gmap') . '/includes/node_field_gmap.view.js');
  $output = '<div style="width:100%;height:300px;" id="' . $map_settings['id'] . '"></div>';
  return $output;
}