Всем привет. Имею 2 вопроса.
1) Вопрос:
В Drupal 9 я создаю страницу на основе Views с контекстным фильтром, который принимает таксономический термин из URL. Например:
/my-view/<product-type>
Термины таксономии находятся в словаре «Тип продукта» и переведены на несколько языков (например, термин "страхование" имеет переводы: Versicherung
на немецком и Assurance
на французском).
Я ожидаю, что URL будет работать для каждого языка, например:
- /de/my-view/versicherung
- /fr/my-view/assurance
Но, похоже, контекстный фильтр работает только с оригинальным (исходным) названием термина, а переводы игнорируются.
Можно ли настроить Drupal так, чтобы в URL использовалась транслитерация термина (например, /my-view/%kholodnyy
вместо оригинального имени)?
Если да, то как это сделать?
Сам views имеет путь с аргументом, который должен браться из латиницы термина Path:/my-view/%
2) вопрос 2. Как создать фильтр в Filter criteria для многозначного поля (field_term_target_id
) в Views, чтобы он корректно обрабатывал несколько значений? Важно, чтобы фильтр учитывал текущий контекст с использованием связи (relationship) с термином таксономии (term_node_tid
).
Так же при включении опции Allow multiple values в Контексте, Друпал выдает ошибку Attempt to assign property "type" on null in ManyToOneHelper->ensureMyTable()
А опция Allow multiple values доступна только для контекстных фильтров, а не для обычных фильтров. Какие есть варианты реализации?
Views так же работает со словарем field_term_target_id
и один термин этого словаря изначально задан в урл (/my-views/term-name%). При нажатии на открытый фильтр урл с первым термином сохраняется. Это сделано для того, чтобы получить нужного вида ссылку и создавать страницы таксономии с этими урл.
Комментарии
Из Вашего описания довольно сложно что-то понять.
Но на сколько я понял, по первому вопросу, views вроде всегда принимал в качестве аргумента ID термина таксономии, а не его имя. Тем более, что Вы можете хоть сотню терминов создать с одним и тем же именем. Вставляете ID термина, а название будет отображаться на языке, в контексте которого находитесь.
Спасибо за ответ. Да, views принимает TID таксономии. Но принимает и Taxonomy term: Name. Это сделано для ЧПУ ссылок вместо TID.
По идее, ЧПУ ссылки можно сделать и в модуле Pathauto, но мне нужно генерировать разные УРЛ в зависимости от контекста.
С TID все будет работать на разных языках, но с TID я теряю ЧПУ ссылку.
Нутром чую, нужен views_url_path_arguments
объяснить не могу.