public function exposedFormAlter(&$form, &$form_state) {
$form['submit']['#value'] = $this->options['submit_button'];
// Check if there is exposed sorts for this view
$exposed_sorts = array();
foreach ($this->view->sort as $id => $handler) {
if ($handler
->canExpose() && $handler
->isExposed()) {
$exposed_sorts[$id] = check_plain($handler->options['expose']['label']);
}
}
if (count($exposed_sorts)) {
$form['sort_by'] = array(
'#type' => 'select',
'#options' => $exposed_sorts,
'#title' => $this->options['exposed_sorts_label'],
);
$sort_order = array(
'ASC' => $this->options['sort_asc_label'],
'DESC' => $this->options['sort_desc_label'],
);
if (isset($form_state['input']['sort_by']) && isset($this->view->sort[$form_state['input']['sort_by']])) {
$default_sort_order = $this->view->sort[$form_state['input']['sort_by']]->options['order'];
}
else {
$first_sort = reset($this->view->sort);
$default_sort_order = $first_sort->options['order'];
}
if (!isset($form_state['input']['sort_by'])) {
$keys = array_keys($exposed_sorts);
$form_state['input']['sort_by'] = array_shift($keys);
}
if ($this->options['expose_sort_order']) {
$form['sort_order'] = array(
'#type' => 'select',
'#options' => $sort_order,
'#title' => t('Order'),
'#default_value' => $default_sort_order,
);
}
$form['submit']['#weight'] = 10;
}
if (!empty($this->options['reset_button'])) {
$form['reset'] = array(
'#value' => $this->options['reset_button_label'],
'#type' => 'submit',
'#weight' => 10,
);
// Get an array of exposed filters, keyed by identifier option.
foreach ($this->view->filter as $id => $handler) {
if ($handler
->canExpose() && $handler
->isExposed() && !empty($handler->options['expose']['identifier'])) {
$exposed_filters[$handler->options['expose']['identifier']] = $id;
}
}
$all_exposed = array_merge($exposed_sorts, $exposed_filters);
// Set the access to FALSE if there is no exposed input.
if (!array_intersect_key($all_exposed, $this->view->exposed_input)) {
$form['reset']['#access'] = FALSE;
}
}
$pager = $this->view->display_handler
->getPlugin('pager');
if ($pager) {
$pager
->exposedFormAlter($form, $form_state);
$form_state['pager_plugin'] = $pager;
}
}