Как в Drupal 8 на странице термина таксономии сделать раскрытый фильтр Views?

Аватар пользователя tlito tlito 25 августа 2016 в 18:49

В 7й версии это можно было выполнить с модулем taxonomy_display, но на 8-ку он не портирован.

0 Thanks

Комментарии

Аватар пользователя sergeybelya sergeybelya 25 августа 2016 в 18:51

Так в восьмерке термин таксономии по дефолту выводится вьюшкой, в чем проблема-то?

Аватар пользователя tlito tlito 25 августа 2016 в 19:12

спасибо. для предтавления главная страница у меня все получилось: я добавил раскрытый фильтр по словарю, вывел раскрытую форму в блок, блок отобразил только на главной, и теперь могу просматривать материалы, фильтруя по нужному термину.

а для представления .Термин таксономии те же настройки не работают ( я тока показ блока не ограничивал, а так все тоже):
при нахождении на странице термина, например, "Тайна имени", и при выборе термина, например, "Екатерина" происходит переадресация на урл /taxonomy/term/%2A?field_imya=44
и сообщение Page Not Found.

а если форму не выводить в блок, тогда нормально работает

Аватар пользователя tlito tlito 25 августа 2016 в 19:22

еще есть такие вопросы:
- как раскрытую форму выводит только для некоторых словарей, а не для всех?
- как сильно это будет нагружать сайт, если разрешить запоминание выбора для неавторизованных?

Аватар пользователя sergeybelya sergeybelya 25 августа 2016 в 19:27

Да, есть такой баг, неверный action в форме, когда она в блоке и представление использует контекстный фильтр.
Для разных словарей пробуйте https://www.drupal.org/project/tvi, у него есть версия для восьмерки.

Аватар пользователя tlito tlito 25 августа 2016 в 20:38

Кто подскажет, где Д8 хранит данные раскрытых форм для анонимов?
хочу просто узнать когда запоминание данных начнет засорять БД.
и также хочу узнать как это можно сделать без сохранения на сервере? то есть как из куки брать эти данные?
а также как их устанавливать.

Аватар пользователя tlito tlito 25 августа 2016 в 21:04

он запоминает последний выбор именно для роли "Анонимный пользователь" и все посетителям (с любого ip) дает один и тот же выбор, который неизвестно как сменить - при смене условия фильтра и закрытии браузера - он снова возвращает прежнее условие (предпоследнее).
надо этот выбор хранить у пользователя и грузить динамически, хорошо что пхп7 позволяет сайту работать быстро без необходимости кэширования.
как это сделать? и как закэшировать все возможные выборы? допустим 100 терминов в фильтре - это значит 100 вариантов главной страницы. как их все кэшировать?

Аватар пользователя supert supert 28 августа 2018 в 20:37
tlito wrote:

при нахождении на странице термина, например, "Тайна имени", и при выборе термина, например, "Екатерина" происходит переадресация на урл /taxonomy/term/%2A?field_imya=44

и сообщение Page Not Found.
а если форму не выводить в блок, тогда нормально работает

Добрый день...у меня та же переадресация...нашли решение?

Аватар пользователя supert supert 12 сентября 2018 в 23:41

может кому полезно бует
https://www.drupal.org/forum/support/post-installation/2018-08-29/how-in...
мне помогло это
в 'ViewsExposedForm.php' замените следующую строку:

$form['#action'] = $view->hasUrl() ? $view->getUrl()->toString() : Url::fromRoute('')->toString();
с

if (!empty($form['#action'])) {
$form['#action'] = $view->hasUrl() ? $view->getUrl()->toString() : Url::fromRoute('')->toString();
}