You are here

location_quickgeocode.module in GMap Addons 5

Short description.

File

location_quickgeocode/location_quickgeocode.module
View source
<?php

/**
 * @file
 * Short description.
 */
function location_quickgeocode_menu($may_cache) {
  if ($may_cache) {
    $items = array();
    $items[] = array(
      'path' => 'location_quickgeocode',
      'callback' => 'location_quickgeocode_callback',
      'access' => user_access('submit latitude/longitude'),
      'type' => MENU_CALLBACK,
    );
    return $items;
  }
}
function location_quickgeocode_callback() {
  $dummy = array();
  $location = location_invoke_locationapi($dummy, 'default values');

  // @@@ Do something that makes me squirm less.
  foreach (array_keys(location_field_names()) as $field) {
    if (!empty($_GET[$field])) {
      $location[$field] = check_plain($_GET[$field]);
    }
  }
  echo drupal_to_js(location_latlon_exact($location));
}

/**
 * Implementation of hook_locationapi().
 */
function location_quickgeocode_locationapi(&$obj, $op, $a3 = NULL, $a4 = NULL, $a5 = NULL) {
  switch ($op) {
    case 'fields':
      return array(
        'fake_dogeocodebutton' => t('QuickGeocode'),
      );
    case 'defaults':
      return array(
        'fake_dogeocodebutton' => array(
          'default' => 0,
          'collect' => 1,
        ),
      );
    case 'virtual fields':
      return array(
        'fake_dogeocodebutton' => t('QuickGeocode'),
      );
    case 'field_expand':
      if ($a3 == 'fake_dogeocodebutton') {
        drupal_add_js(drupal_get_path('module', 'location_quickgeocode') . '/location_quickgeocode.js');
        $widget = array(
          '#type' => 'item',
          '#title' => t('QuickGeocode'),
          '#value' => '<div class="location_quickgeocode">Javascript must be enabled to use QuickGeocode.</div>',
          '#attributes' => NULL,
          '#required' => $a4 == 2,
        );

        //gmap_widget_setup($element['locpick']['user_latitude'], 'locpick_latitude');
        return $widget;
      }
      break;
    case 'isunchanged':

      // ALWAYS unchanged.
      if ($a3 == 'fake_dogeocodebutton') {
        return TRUE;
      }
      break;
  }
}

Functions

Namesort descending Description
location_quickgeocode_callback
location_quickgeocode_locationapi Implementation of hook_locationapi().
location_quickgeocode_menu @file Short description.