На dru.io задали хороший вопрос — Как подменить значение раскрытого фильтра.
Ответ:
Drupal 8
/**
* Implements hook_form_FORM_ID_alter(): views_exposed_form.
*/
function MODULENAME_form_views_exposed_form_alter(array &$form, FormStateInterface $form_state) {
$view = $form_state->get('view'); /** @var ViewExecutable $view */
if ($view->id() == 'myview' && $view->current_display == 'page') {
array_unshift($form['#submit'], 'MODULENAME_form_views_exposed_form_submit');
}
}
/**
* Custom submit callback for views exposed form.
*/
function MODULENAME_form_views_exposed_form_submit(array $form, FormStateInterface &$form_state) {
$form_state->setValue('имя_фильтра', 'новое_значение');
}
Drupal 7
/**
* Implements hook_form_FORM_ID_alter(): views_exposed_form.
*/
function MODULENAME_form_views_exposed_form_alter(&$form, &$form_state) {
if ($form_state['view']->name == 'myview' && $form_state['view']->current_display == 'page') {
array_unshift($form['#submit'], 'MODULENAME_form_views_exposed_form_submit');
}
}
/**
* Custom submit callback for views exposed form.
* @see views_exposed_form_submit()
*/
function MODULENAME_form_views_exposed_form_submit($form, &$form_state) {
$form_state['values']['имя_фильтра'] = 'новое_значение';
}
Написанное актуально для
Views 3, Views 8.x
Похожие записи
Комментарии
А как подставить в поле (список элементов таксономии) раскрытого фильтра определенное значение из этого словаря как значение по-умолчанию? Я его получаю из SESSION, но не в этом суть.
Собственно, сам додумался:
А если подмену осуществлять с помощью hook_views_query_alter(), есть ли недостатки у такого подхода?
Добавить комментарий