function views_filters_reset_form_views_exposed_form_alter in Views Hacks 6
Implement hook_form_FORMID_alter() for views_exposed_form.
File
- views_filters_reset/
views_filters_reset.module, line 6
Code
function views_filters_reset_form_views_exposed_form_alter(&$form, &$form_state) {
// Evaluate visibility.
$enabled_views = variable_get('views_filters_reset', array());
if (empty($enabled_views[$form_state['view']->name])) {
return;
}
// Count all the active exposed filters. If none, do nothing.
$active = 0;
foreach ($form_state['view']->filter as $filter_id => $filter) {
if (empty($filter->options['exposed'])) {
continue;
}
$filter_element = $form['#info']["filter-{$filter_id}"]['value'];
if (empty($filter_element)) {
continue;
}
// VFS removes this.
if (!empty($form[$filter_element]['#access']) || !isset($form[$filter_element]['#access'])) {
$active++;
}
}
if (!$active) {
return;
}
drupal_add_js(drupal_get_path('module', 'views_filters_reset') . '/views_filters_reset.js');
drupal_add_js('misc/jquery.form.js');
$form['reset'] = array(
'#type' => 'markup',
'#value' => '<input ' . drupal_attributes(array(
'id' => 'edit-reset',
'type' => 'button',
'value' => t('Reset'),
'class' => 'form-submit',
)) . ' />',
);
static $forms = array();
if (!isset($forms[$form['#id']])) {
drupal_add_js(array(
'vfr' => array(
$form['#id'] => $form['#parameters'][1]['view']->use_ajax ? FALSE : url($form['#parameters'][1]['view']
->get_url()),
),
), 'setting');
$forms[$form['#id']] = TRUE;
}
$form['#parameters'][1]['view']->exposed_form_id = $form['#id'];
}