function search_api_location_page_form_search_api_page_search_form_alter in Search API Location 7.2
Implements hook_form_FORM_ID_alter().
File
- search_api_location_page/
search_api_location_page.module, line 320
Code
function search_api_location_page_form_search_api_page_search_form_alter(&$form, &$form_state) {
// Handle both compact and complete form.
$compact = TRUE;
$orig_form =& $form;
if (isset($form['form'])) {
$form =& $form['form'];
$compact = FALSE;
}
$page = search_api_page_load($form['id']['#value']);
$index = search_api_index_load($page->index_id);
$fields = search_api_location_get_location_fields($index);
if ($fields && !empty($page->options['search_api_location'])) {
$orig_form['#submit'][] = 'search_api_location_page_search_form_submit';
$units = search_api_location_get_units();
$form['submit_' . $page->id]['#weight'] = 5;
foreach ($page->options['search_api_location'] as $field => $options) {
if (empty($fields[$field]) || empty($options['enabled']) || $compact && empty($options['compact'])) {
continue;
}
$name = $fields[$field]['name'];
$name_parts = explode(' » ', $name);
if (count($name_parts) > 1) {
$name = $name_parts[count($name_parts) - 2];
}
$form[$field] = array(
'#type' => 'fieldset',
'#title' => check_plain($name),
'#attributes' => array(
'class' => array(
'container-inline',
),
),
);
$default = !empty($_GET['location']) ? $_GET['location'] : (!empty($_GET["{$field}-location"]) ? $_GET["{$field}-location"] : '');
$form[$field]["{$field}-location"] = array(
'#type' => 'textfield',
'#size' => $compact ? 10 : 20,
'#default_value' => $default,
);
switch ($options['radius_type']) {
case 'textfield':
$form[$field]["{$field}-radius"] = array(
'#type' => 'textfield',
'#title' => $compact ? t('within') : t('Maximum distance'),
'#size' => $compact ? 3 : 5,
'#element_validate' => array(
'search_api_location_validate_distance',
),
);
if (isset($units[$options['radius_unit']])) {
$form[$field]["{$field}-radius"]['#suffix'] = '<div>' . $units[$options['radius_unit']] . '</div>';
}
break;
case 'select':
$form[$field]["{$field}-radius"] = array(
'#type' => 'select',
'#title' => $compact ? t('within') : t('Maximum distance'),
'#options' => $options['radius_options'],
);
break;
}
$default = !empty($_GET['radius']) ? $_GET['radius'] : (!empty($_GET["{$field}-radius"]) ? $_GET["{$field}-radius"] : '');
if ($default) {
$form[$field]["{$field}-radius"]['#default_value'] = $default;
}
}
}
}