Tech Blog
Настройка pathauto в Drupal 8
Заходим в настройки синонимы URL в раздел Шаблоны:
/admin/config/search/path/patterns
/img/ll/pVP/jVh2/R784kZi19fMa5/g7jKZDfcQx/o3Kf2GBphBp9k0KP.jpeg)
Пример №1 — Раздел «Блог»
- Жмем кнопку Add Pathauto pattern;
- В селекте Pattern Type выбираем Content;
- В поле Path pattern пишем шаблон пути;
- Клацаем чекбокс на тип материала Article;
- Указываем название шаблона в поле label и меняем его машинное имя.
/img/XJ/6WV/7BZi/qwDU6iSMkdBW6/Qjc020jrCS/Bigqd2nZKmMaEh33.jpeg)
В поле Path pattert:
[node:title]
Это токен, вместо которого будет подставляться заголовок страницы.
Если страница называется Моя первая статья → URL страницы будет:
/blog/moya-pervaya-statya
Пример №2 — Раздел «Каталог»
Аналогично добавляем новый шаблон Pathauto, но уже для Термина таксономии.
/img/LX/ofw/AmvH/DfGOVHQBQqMVu/REbXF3nQ4w/pYSubpDoj77yZudv.jpeg)
Обратите внимание на поле Path pattern:
catalog/[term:parents:join-path]/[term:name]
- [term:name] — это токен, вместо которого будет подставляться заголовок термина таксономии;
- [term:parents:join-path] — это токен, вместо которого будут подставляться заголовки родительских терминов таксономии.
О втором пункте немного поподробнее:
/img/cH/7kf/O1b9/GNmaJnmlOdgBH/JRpTDW9zpz/Jx9KmATzuiGB9A4Q.jpeg)
Термины могут иметь древовидную структуру. Именно поэтому в адресе подкатегорий должен содержаться адрес их родительских категорий.
Возьмем термин «Яблоки», он является подкатегорией для «Фрукты».
URL для этого словаря формируется по шаблону:
catalog/[term:parents:join-path]/[term:name]
Токен [term:name] превратит яблоки в yabloki:
catalog/[term:parents:join-path]/yabloki
Токен [term:parents:join-path] берет заголовки родительских терминов, т.е. Фрукты:
catalog/frukty/yabloki
Если у термина нет родителя, то токен [term:parents:join-path] просто не сработает.
Теперь, когда готов шаблон для словаря таксономии «Категории», добавим шаблон для типа материала «Товар».
/img/qZ/AwF/QCeG/OefpAJTBooBw8/4JFVfvPgi0/8V21a299MDPKNi8A.jpeg)
Здесь Path Pattern имеет вид:
/catalog/[node:field_category:entity:url:relative]/[node:title]
- [node:title] — заголовок страницы;
- [node:field_category:entity:url:relative] — относительный URL термина таксономии, к которой привязана страница;
- /catalog — URL представления, которое выводит родительские категории.