function _location_views_expand_map in Location 5.3
File
- contrib/location_views/location_views.module, line 1015
- Views-enables the location module.
Code
function _location_views_expand_map($element) {
if (isset($element['#default_value']) && is_string($element['#default_value'])) {
$val = explode(',', $element['#default_value']);
$element['#default_value'] = array(
'latitude' => $val[0],
'longitude' => $val[1],
);
}
if (isset($element['#value']) && is_string($element['#value'])) {
$val = explode(',', $element['#value']);
$element['#value'] = array(
'latitude' => $val[0],
'longitude' => $val[1],
);
}
if (!isset($element['#default_value']['latitude']) || empty($element['#default_value']['latitude'])) {
global $user;
$result = db_query('SELECT l.latitude, l.longitude FROM {location} l INNER JOIN {location_instance} i ON l.lid = i.lid WHERE i.uid = %d', $user->uid);
if ($row = db_fetch_array($result)) {
$element['#default_value'] = $row;
}
}
if (!isset($element['#default_value']['latitude']) || empty($element['#default_value']['latitude'])) {
$element['#default_value'] = array(
'latitude' => '',
'longitude' => '',
);
}
$usegmap = function_exists('gmap_set_location') && variable_get('location_usegmap', FALSE);
if ($usegmap) {
$element['map'] = array();
}
$element['latitude'] = array(
'#type' => 'textfield',
'#title' => t('Latitude'),
'#default_value' => isset($element['#default_value']['latitude']) ? $element['#default_value']['latitude'] : '',
'#size' => 64,
'#maxlength' => 64,
);
$element['longitude'] = array(
'#type' => 'textfield',
'#title' => t('Longitude'),
'#default_value' => isset($element['#default_value']['longitude']) ? $element['#default_value']['longitude'] : '',
'#size' => 64,
'#maxlength' => 64,
'#description' => t('Click on the map to mark the center point for your search, then submit the values.'),
);
if ($usegmap) {
$map_macro = variable_get('gmap_user_map', '[gmap|id=usermap|center=0,30|zoom=16|width=100%|height=400px]');
$element['map']['gmap']['#value'] = gmap_set_location($map_macro, $element, array(
'latitude' => 'latitude',
'longitude' => 'longitude',
));
}
return $element;
}