设置表单公开过滤器默认值

Df.*_*fpm 5 drupal drupal-7

阿贾克斯形式。外露过滤器-Any-。在hook_form_alter()我写:

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);
}
Run Code Online (Sandbox Code Playgroud)

但默认值是<option>选择列表中的第二个。总是。我分配的任何值都将被忽略。我应该如何设置默认值?

小智 5

根据https://drupal.org/node/1239868,您将不得不使用其他一些钩子。你可以试试

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

这样,您就可以选择默认值。