Tech Blog
Tech Blog
Читать 2 минуты

Настройка pathauto в Drupal 8

Заходим в настройки синонимы URL в раздел Шаблоны:

/admin/config/search/path/patterns
Image for post
Раздел шаблоны

Пример №1 — Раздел «Блог»

  • Жмем кнопку Add Pathauto pattern;
  • В селекте Pattern Type выбираем Content;
  • В поле Path pattern пишем шаблон пути;
  • Клацаем чекбокс на тип материала Article;
  • Указываем название шаблона в поле label и меняем его машинное имя.
Image for post
Страница создания нового шаблона pathauto

В поле Path pattert:

[node:title]

Это токен, вместо которого будет подставляться заголовок страницы.

Если страница называется Моя первая статья → URL страницы будет:
/blog/moya-pervaya-statya

Пример №2 — Раздел «Каталог»

Аналогично добавляем новый шаблон Pathauto, но уже для Термина таксономии.

Image for post
Pattern type = Термин таксономии

Обратите внимание на поле Path pattern:

catalog/[term:parents:join-path]/[term:name]
  • [term:name] — это токен, вместо которого будет подставляться заголовок термина таксономии;
  • [term:parents:join-path] — это токен, вместо которого будут подставляться заголовки родительских терминов таксономии.

О втором пункте немного поподробнее:

Image for post
Словарь таксономии «Category»

Термины могут иметь древовидную структуру. Именно поэтому в адресе подкатегорий должен содержаться адрес их родительских категорий.

Возьмем термин «Яблоки», он является подкатегорией для «Фрукты».
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] просто не сработает.

Теперь, когда готов шаблон для словаря таксономии «Категории», добавим шаблон для типа материала «Товар».

Image for post
В типе материала товар должно быть поле field_category, которое привязано к словарю таксономии «Категории»

Здесь Path Pattern имеет вид:

/catalog/[node:field_category:entity:url:relative]/[node:title]
  • [node:title] — заголовок страницы;
  • [node:field_category:entity:url:relative] относительный URL термина таксономии, к которой привязана страница;
  • /catalog — URL представления, которое выводит родительские категории.
195 просмотров
Добавить
Еще
Tech Blog
Подписаться