xandeadx.ru Блог музицирующего веб-девелопера

Drupal → Подменить значение раскрытого фильтра Views

Опубликовано в

На dru.io задали хороший вопрос — Как подменить значение раскрытого фильтра.

Ответ:

/**
 * Implements hook_form_FORM_ID_alter().
 */
function MODULENAME_form_views_exposed_form_alter(&$form, &$form_state) {
  if ($form['#id'] == 'id-раскрытой-формы') {
    array_unshift($form['#submit'], 'MODULENAME_form_views_exposed_form_submit');
  }
}
 
/**
 * Custom submit for views exposed form.
 */
function MODULENAME_form_views_exposed_form_submit($form, &$form_state) {
  $form_state['values']['имя_фильтра'] = 'новое_значение';
}
Написанное актуально для Views 3
Похожие записи

Комментарии RSS

А как подставить в поле (список элементов таксономии) раскрытого фильтра определенное значение из этого словаря как значение по-умолчанию? Я его получаю из SESSION, но не в этом суть.

Собственно, сам додумался:

if ($form_id == 'views_exposed_form') {
   $view = $form_state['view'];
   if ($view->name == 'list_indexed') {
      $form['my_field_filter']['#default_value'] = $_SESSION['my_variable'];
   }
}

Оставить комментарий

Содержимое этого поля является приватным и не будет отображаться публично. Если у вас есть аккаунт в Gravatar, привязанный к этому e-mail адресу, то он будет использован для отображения аватара.
  • Адреса страниц и электронной почты автоматически преобразуются в ссылки.
  • Доступные HTML теги: <a> <i> <b> <strong> <code> <ul> <ol> <li> <blockquote> <em> <s>
  • Строки и параграфы переносятся автоматически.
  • Подсветка кода осуществляется с помощью тегов: <code>, <css>, <html>, <ini>, <javascript>, <sql>, <php>. Поддерживаемые стили выделения кода: <foo>, [foo].

Подробнее о форматировании