The default value for the exposed filter.

Ajax. Exposed Filter c -Any-. In hook_form_alter()I write:

if ($form_id == 'views_exposed_form') {
    if ($form_state['view']->name == 'machinery') {
        $form['field_producer_tid']['#options']['All'] = t('-All-');
    }
    $form['field_producer_tid']['#default_value'] = "All";
    dsm($form);
}

But the default is the second <option>from the selection list. Is always. Any value that I assign is ignored. How to set the default value?

+4
source share
5 answers

According to https://drupal.org/node/1239868 you will have to use a different hook. You may try

/**
 * Implements hook_views_pre_build().
 */
function YOUR_MODULE_views_pre_build(&$view) {
  if ($view->name == 'machinery') {
    $view->filter['field_producer_tid']->value = "All";
  }
}

This way you can select the default value.

+4
source

, ( ) Df.fpm botanic_spark, ( 7.32) :

function YOUR_MODULE_views_pre_build(&$view) {
  if ($view->name == 'VIEW_NAME') {
    $view->filter['FIELD_ID']->value = "All";
    $view->exposed_input['FIELD_ID'] = "All";
  }
}

!

+3

, ajax-. , , .

/**
 * Implements hook_form_alter().
 */
function HOOK_form_alter(&$form, &$form_state, $form_id) {
  if($form_id == 'views_exposed_form' && $form_state['view']->name =='VIEW_NAME') {
    $q = drupal_get_query_parameters();
    $form_state['input']['FIELD_ID'] = 'ALL';
    if($q['FIELD_ID']) {
    $form_state['input']['field_7_step_refernce_tid'] = $q['FIELD_ID'];
    }
  }
} 
+2

:

URL. , :

  • ///? FIELD_ID = DefaultValue

:

  • ///? Field_id% 5B% 5D = DefaultValue
0

, :

I changed the filter status value,

$ view-> display [$ view-> current_display] โ†’ handler-> handlers ['filter'] ['status'] โ†’ value

/**
 * Implements hook_views_pre_build().
 */
function my_module_views_pre_build(&$view) {
  // Check if the current view is the orders view.
  if ($view->name == 'commerce_backoffice_orders') {
    if($view->current_display == 'page_1') {
      if (empty($view->display[$view->current_display]->handler->handlers['filter']['status']->value)) {
        $view->display[$view->current_display]->handler->handlers['filter']['status']->value = 'pending';
      }
    }
    elseif ($view->current_display == 'page_2') {
      if (empty($view->display[$view->current_display]->handler->handlers['filter']['status']->value)) {
        $view->display[$view->current_display]->handler->handlers['filter']['status']->value = 'processing';
      }
    }
  }
}
0
source

Source: https://habr.com/ru/post/1525208/


All Articles