You are here

function filter_harmonizer_views_ui_config_item_form_submit in Views Filter Harmonizer 7

Supplementary submit handler for the form 'views_ui_config_item_form'.

1 string reference to 'filter_harmonizer_views_ui_config_item_form_submit'
filter_harmonizer_form_views_ui_config_item_form_alter in ./filter_harmonizer.module
Implements hook_form_FORMID_alter().

File

./filter_harmonizer.module, line 73
filter_harmonizer.module For Views where both exposed and contextual filters are active on a page.

Code

function filter_harmonizer_views_ui_config_item_form_submit(&$form, &$form_state) {
  $new_value = !empty($form_state['values']['options']['filter_harmonizer_enable']);
  $filter_harmonizer_contextual_filters = variable_get('filter_harmonizer_contextual_filters', array());
  $view_name = $form_state['view']->name;
  $field_name = $form_state['id'];
  $is_debug = filter_harmonizer_debug_flag();

  // If "All displays" is selected then we need to do this for all displays
  // that do not have their values set already (i.e. that are overridden).
  $display_ids = array_keys($form_state['view']->changed_display);
  foreach ($display_ids as $display_id) {
    $filter_harmonizer_contextual_filters[$view_name][$display_id][$field_name] = $new_value;
    if ($is_debug) {
      drupal_set_message(t('View %view_name (%display), field %field: ignore contextual filter set to @value', array(
        '%view' => $view_name,
        '%display' => $display_id,
        '%field' => $field_name,
        '@value' => (int) $new_value,
      )));
    }
  }

  // Wish we could save this on the View, but don't know how. We're outside
  // the view context...
  variable_set('filter_harmonizer_contextual_filters', $filter_harmonizer_contextual_filters);
}