You are here

function mefibs_form_views_ui_config_item_form_alter in MEFIBS - More exposed forms in blocks 8

Same name and namespace in other branches
  1. 7 mefibs.module \mefibs_form_views_ui_config_item_form_alter()

Implements hook_form_FORM_ID_alter().

File

./mefibs.module, line 154
Primarily Drupal hooks and global API functions to manipulate views and to provide an additional block with an exposed filter form.

Code

function mefibs_form_views_ui_config_item_form_alter(&$form, $form_state) {
  $view = $form_state['view'];
  $display_id = $form_state['display_id'];
  $display = $view
    ->getExecutable()->displayHandlers
    ->get($display_id);
  if (!$display
    ->getOption('exposed_block')) {
    return;
  }
  if (!mefibs_display_is_mefibs_enabled($display)) {
    return;
  }
  $section = $form_state['section'];
  $type = $form_state['type'];
  if (!in_array($section, array(
    'filters',
  ))) {
    return;
  }
  $mefibs = $display->extender['mefibs'];
  $section_settings = $display
    ->getOption($section);
  $element_name = $form_state['id'];

  // Check if mefibs is configured
  $mefibs_options = $display
    ->getOption('mefibs');
  $blocks = $mefibs
    ->getEnabledBlocks();
  $default_value = isset($mefibs_options[$display_id][$type][$element_name]) ? $mefibs_options[$display_id][$type][$element_name] : '';
  $element = $section_settings[$element_name];
  if (isset($element['exposed']) && $element['exposed'] && count($blocks)) {
    $form['options']['expose']['mefibs_block'] = array(
      '#type' => 'select',
      '#title' => t('Show in block'),
      '#options' => array(
        '' => 'default',
      ) + $blocks,
      '#default_value' => $default_value,
    );
    array_unshift($form['actions']['submit']['#submit'], 'mefibs_form_views_ui_config_item_form_submit');
  }
}