Каталог, пути, меню перехода, контекстные фильтры и алиасы мать их в туды

Главные вкладки

Аватар пользователя Phantom63rus Phantom63rus 20 сентября 2016 в 16:01

Диспозиция: есть каталог, в котором есть выбор критериев фильтрации для пользователей. Всё работает, всё красиво, однако есть проблема в том что пути выглядят как фекалька - catalog?title=&razdel=916&geo=All&sort_by=created&sort_order=DESC

Хотелось бы упростить до: catalog/obrazovanie (при этом остальное по необходимости).

Пути тегов высатвлены как catalog/termname, ноды как catalog/termname/nodetitle

Сделать jump menu (ака меню перехода) не проблема, проблема в том, что оно выдаёт путь либо с ид термина, либо вида catalog/Образование.

Контекстные фильтры также умеют работать или с tid или с именем термина. И если в варианте "Образование" всё вообщем нормально, то появление пробелов приводит к кадаврам аля "Спорт%20и%20активный%20отдых", которые контекстный фильтр прожевать уже не может.

Итого: заставить контекстный фильтр и меню перехода принимать/выдавать алиас термина, а не его имя.

Кто-нибудь имеет какие-нибудь намётки на решение?

Комментарии

Аватар пользователя fairrandir fairrandir 20 сентября 2016 в 17:31

Ок. Проблема - пути с кириллицей. Модуль transliteration позволяет преобразовывать кириллицу в ЧПУшках в транслит. Пробелы заменяет на дефисы.
Модуль safeword немного похитрее. К термину потребуется добавить поле, например field_path. Это поле будет генерировать на основе заголовка машинное имя. На основе машинного имени можно строить чпушку, например catalog/[term:field_path]. В случае чего машинное имя можно изменить.
Пример:
термин "Спорт и активный отдых". Без transliteration - чпу Спорт%20и%20активный%20отдых, с transliteration - sport-i-aktivniy-otdyh, с safeword - sport-i-aktivniy-otdyh, но можно заменить на просто sport. Возможно вам будет достаточно только модуля transliteration.

Ну и контекстные фильтры прекрасно понимают, что текущий урл - это алиас, и работают с неалиасированной версией.

Как-то так. И вполне вероятно, что я неправильно понял проблему.

Аватар пользователя Phantom63rus Phantom63rus 20 сентября 2016 в 18:16

АГА! Вот теперь дело пошло!

Модуль транслитерации стоит и настроен, с ним никаких проблем нет, т.е. пути нод выглядят так: http://krasnoglinskiy.ru/catalog/sport-i-aktivnyy-otdyh/gornolyzhnyy-kom...

При помощи модуля safeword я без проблем сумел сгенерировать в меню перехода ссылки вида catalog/sport-i-aktivniy-otdyh (только не забыть протыкать по терминам, чтобы сформировать).

А вот заставить контекстный фильтр скушать из урла мне не удалось, можно скриншот с примером?

Аватар пользователя fairrandir fairrandir 20 сентября 2016 в 18:26

Скриншот, к сожалению, нельзя.
На словах: добавить контекстный фильтр -> Содержимое: Имеет идентификатор термина таксономии (или что-то типа того) -> КОГДА ЗНАЧЕНИЕ ФИЛЬТРА НЕ ДОСТУПНО -> Передать значение по умолчанию -> ID термина таксономии из URL

Аватар пользователя Phantom63rus Phantom63rus 20 сентября 2016 в 18:43

Спасибо!

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