Drupal: модули Pathauto и Custom tokens

Чтобы у сайта на Drupal были красивые ссылки существует модуль Pathauto. Я не сделал ещё ни одного сайта, где бы этот модуль не использовался. Вместе с ним обязательно среди модулей должен присутствовать Tokens, который, впрочем, тем более является обязательным для любых сайтов. Ещё, если сайт имеет развитую структуру, то дополнительно очень полезным будет модуль Custom tokens.

Итак, теперь обо всем по-порядку.

Модуль Pathauto позволяет создавать автоматически красивые ссылки для разных типов материалов Drupal, а также для разных терминов таксономии. Например, вы используете тип материалов «Статьи», для которых по умолчанию создаются ссылки вида: site.ru/node/1, site.ru/node/5, site.ru/node/100 и так далее. Согласитесь, что как-то это не очень изящно. При помощи Pathauto эти же ссылки могут автоматически принять вид: site.ru/articles/1 или site.ru/news/5 или даже site.ru/blog/nazvanie_zapisi.

В настройках Pathauto вы создаете шаблоны с использованием Tokens, на базе которых автоматически генерируются ссылки. Для каждого типа материала или словаря таксономии шаблон задается индивидуально. Модуль Tokens предлагает очень и очень большое разнообразие различных маркеров для шаблонов, поэтому возможная гибкость настройки шаблонов ссылок поражает!

Модуль Pathauto для Drupal

Простейший пример шаблона для всех ссылок материалов типа Article, который, кстати, используется на этом сайте: n/[node:nid]. С ним ссылки публикаций данного типа выглядят как: site.ru/n/1, site.ru/n/10 и так далее. Хороший вариант, если нужны максимально короткие ссылки.

Если вы хотите, чтобы в ссылках было видно названия публикаций (существует мнение, что это полезно для поискового продвижения), то можно создать такой шаблон: n/[node:title]. При этом вам нужно дополнительно инсталлировать модуль Transliteration, чтобы названия публикаций в ссылках автоматически транлитировались с русского языка на латиницу.

Несмотря на то, что ассортимент готовых токенов очень велик, может возникнуть ситуация, когда потребуется создать собственный токен, для чего служит модуль Custom tokens. С помощью этого модуля можно создавать токены с использованием PHP, что открывает безграничные возможности. Приведу пример, как я использовал связку Pathauto и Custom tokens уже на нескольких сайтах.

Обычно я создаю разделы сайта Drupal при помощи отдельного словаря таксономии, который так и называю – Разделы. Типичные термины такого словаря – это «Новости», «Статьи». Можно сюда еще добавить безграничное множество других разделов, которые вам требуются. Все публикации этих разделов у меня создаются единым типом материалов. Чтобы «раскидывать» материалы по разделам сайта я создал дополнительное поле с машинным именем «field_sections», которое позволяет выбрать для каждого материала одно из значений словаря таксономии «Разделы».

Поскольку тип материалов общий, то шаблон для красивых ссылок тоже общий. А вообще-то, согласитесь, приятнее, когда ссылки, например, тех же новостей и статей имеют разный вид, допустим: site.ru/news/1, site.ru/news/50, site.ru/articles/15, site.ru/acticles/55 и так далее. Чтобы такое осуществить на помощь приходит Custom tokens. Создается свой токен с небольшим PHP-кодом, который подставляет при автоматической генерации ссылок нужный раздел.

Вот пример кастомного токена:

$node = $data['node'];
if($node->field_sections["und"][0]["tid"] == 2) { $return = "news"; }
else { $return = "articles"; }
return $return;

Суть в том, что если публикация привязана к разделу с id-номером 2, то код возвращает «news», в любом другом случае возвращается «articles». Теперь, если этот кастомный токен имеет машинное имя «publ-section-url», то шаблон Pathauto для соответствующего типа материала будет иметь вид: [node:publ-section-url]/[node:nid].

Модуль Custom Tokens для Drupal

1 Комментарий

  1. Отличная статья. Полезно. Как раз то что искал. Но у меня немного другая ситуация. В пхп не силен. Какой код должен быть при условии: [node:field_name] + текст + [node:field_name2] = [mytoken]? Заранее благодарю.

Добавить комментарий