You are here

public function views_ef_fieldset_display_extender_plugin::options_submit in Views Exposed Form Fieldset 7.2

Same name and namespace in other branches
  1. 7 views/views_ef_fieldset_display_extender_plugin.inc \views_ef_fieldset_display_extender_plugin::options_submit()

Handle any special handling on the validate form.

Overrides views_plugin_display_extender::options_submit

File

views/views_ef_fieldset_display_extender_plugin.inc, line 321
Provides a display extender plugin for View 3.x.

Class

views_ef_fieldset_display_extender_plugin
@file Provides a display extender plugin for View 3.x.

Code

public function options_submit(&$form, &$form_state) {
  switch ($form_state['section']) {

    // Handle base settings.
    case 'views_ef_fieldset_base':
      $enabled_old = !empty($this
        ->get_option('enabled'));
      $enabled_new = !empty($form_state['values']['enabled']);
      $this
        ->set_option('enabled', $enabled_new);

      // If fieldsets were just enabled, step on to the arrange form.
      if (!$enabled_old && $enabled_new) {
        views_ui_add_form_to_stack($form_state['form_key'], $form_state['view'], $form_state['display_id'], array(
          'views_ef_fieldset_arrange',
        ));
      }
      break;

    // Handle final submission of the arrange form.
    case 'views_ef_fieldset_arrange':
      $values = $form_state['values'] + array(
        'items' => array(),
      );
      $items = array();

      // @todo Consider using data objects instead of plain arrays.
      $clean_keys = array_flip(array(
        'id',
        'pid',
        'weight',
        'options',
      ));
      foreach ($values['items'] as $id => $item) {
        $items[$id] = array_intersect_key($item, $clean_keys);
      }
      $this
        ->set_option('items', $items);

      // Invalidate the form cache.
      unset($this->view->form_cache);
      break;
  }
}