function geofield_proximity_element_process in Geofield 7.2
Process function for the proximity form element
1 string reference to 'geofield_proximity_element_process'
- geofield_element_info in ./
geofield.elements.inc - Implements hook_element_info().
File
- ./
geofield.elements.inc, line 261 - Provides FormAPI element callbacks for geofield_latlon and geofield_proximity.
Code
function geofield_proximity_element_process($element, &$form_state, $form) {
$element['#attributes'] = array(
'class' => array(
'clearfix',
),
);
$element['#tree'] = TRUE;
$element['#attached']['css'] = array(
drupal_get_path('module', 'geofield') . '/css/proximity-element.css',
);
//Create the textfield for distance
$element['distance'] = array(
'#type' => 'textfield',
'#title' => t('Distance'),
'#default_value' => !empty($element['#default_value']['distance']) ? $element['#default_value']['distance'] : '',
'#title_display' => 'invisible',
// Allow decimal numbers as distances
'#element_validate' => array(
'element_validate_number',
),
);
// If #geofield_range is TRUE, create second option for range.
if (!empty($element['#geofield_range']) && $element['#geofield_range'] == TRUE) {
$element['distance2'] = array(
'#type' => 'textfield',
'#title' => t('Distance End'),
'#default_value' => !empty($element['#default_value']['distance2']) ? $element['#default_value']['distance2'] : '',
'#title_display' => 'invisible',
'#element_validate' => array(
'element_validate_number',
),
);
}
//Create dropdown for units
$element['unit'] = array(
'#type' => 'select',
'#options' => geofield_radius_options(),
'#title' => t('Unit'),
'#default_value' => !empty($element['#default_value']['unit']) ? $element['#default_value']['unit'] : GEOFIELD_KILOMETERS,
'#title_display' => 'invisible',
);
//Create textfield for geocoded input
$element['origin'] = array(
'#type' => !empty($element['#origin_element']) ? $element['#origin_element'] : 'textfield',
'#title' => t('Origin'),
'#prefix' => '<span class="geofield-proximity-origin-from">' . t('from') . '</span>',
'#title_display' => 'invisible',
'#required' => !empty($element['#required']) ? $element['#required'] : FALSE,
'#default_value' => !empty($element['#default_value']['origin']) ? $element['#default_value']['origin'] : FALSE,
);
if (!empty($element['#origin_options'])) {
$element['origin'] = array_merge($element['origin'], $element['#origin_options']);
}
if (isset($element['#element_validate'])) {
array_push($element['#element_validate'], 'geofield_proximity_search_validate');
}
else {
$element['#element_validate'] = array(
'geofield_proximity_search_validate',
);
}
return $element;
}