ЧПУ через pathauto для ноды [Решено]

Аватар пользователя sword7i sword7i 21 июня 2014 в 0:05

Добрый вечер.
Буквально на днях начал знакомство с Drupal 7 и сразу же столкнулся с первой проблемой. Мне необходимо реализовать ЧПУ, соответственно я установил следующие модули: Pathauto, Token и Transliteration.
В таксономии есть словарь "Категории" в нем термин вида "Название категории" и вложенный в него термин "Название подкатегории". Я хочу при создании нового поста автоматически получать URL вида: site.ru/НазваниеКатегории/НазваниеПодкатегории/НазваниеПоста.html, но пока сделать этого не удается.
В настройках Content paths прописываю [node:field_category]/[node:title].html и получаю ссылку, в которой содержится только родительская категория (хотя посту присвоена дочерняя). К тому же название категории берется не из вручную прописанного синонима, а генерируется путем транслитерации названия.

Пример:
Категория: Новости (синоним /news);
Подкатегория: Мир (синоним /news/world).
Нужно получить: site.ru/news/world/postname.html, вместо этого имею: site.ru/novosti/postname.html

Обнаружил еще такой токен: [node:source:field_category] - The source node for this current node's translation set. Который по идее предотвращает транслитерацию, но он вообще пустой.
Нашел подобную тему, но конкретного ответа не обнаружил.

Комментарии

Аватар пользователя DD 85 DD 85 27 июня 2014 в 23:36

Прежде всего, в Drupal можно и без ".html".
Вы получаете транслитерацию, значит нужно отключить транслит. Либо снять галочку здесь /admin/config/search/path/settings либо отказаться от всего модуля.
Если хотите, чтобы использовалось не название, а адрес словаря или термина, то берите url или машинное имя.

Аватар пользователя drupby drupby 21 июня 2014 в 2:13
"DD 85" wrote:

Прежде всего, в Drupal нет ".html".

в Drupal все есть

"DD 85" wrote:

Вы получаете транслитерацию, значит нужно отключить транслит

если отключить транслит название категории автоматом будет переводиться на английский язык?

"sword7i" wrote:

К тому же название категории берется не из вручную прописанного синонима, а генерируется путем транслитерации названия.

синоним - это поле, добавленное к термину или это алиас для пути термина?

Аватар пользователя sword7i sword7i 21 июня 2014 в 2:46
"drupby" wrote:

синоним - это поле, добавленное к термину или это алиас для пути термина?

Объясню подробнее:
Есть словарь "Категории" (машинное имя - category). В нем содержится термин "Новости" (машинное имя - news), в котором прописан синоним URL - news. Также есть термин "Мир", который является подкатегорией термина "Новости", и у него в поле Синонимы URL прописано - news/world.
Выходит, мне в урл нужно выводить не название термина, а машинное имя или синоним. Существуют такие токены?

Аватар пользователя sword7i sword7i 21 июня 2014 в 3:52
"drupby" wrote:

[node:field_category:url:path]/[node:title].html

Не удается сохранить, получаю ошибку: The Default path pattern (applies to all content types with blank patterns below) is using the following invalid tokens: [node:field_category:url:path].

Аватар пользователя Plazik Plazik 21 июня 2014 в 18:18

Способ с [node:field_category:url:path] верный, смотрите у себя в доступных токенах токен с path в конце.

Аватар пользователя sword7i sword7i 21 июня 2014 в 19:27

Добился чего хотел установкой модулей Entity и Entity tokens и прописыванием токенов "[node:field-category:url:path]/[node:title].html".
drupby и Plazik, Спасибо вам большое!

Аватар пользователя droopy droopy 28 июня 2014 в 0:50

Здравствуйте!
Пытаюсь сделать аналогичное, но увы у меня нет [node:field-category:url:path] в списке доступных токенов Sad
Drupal 7.26, Entity tokens 7.x-1.5

И в целом, как-то странно, что у меня вместо [node:field-category:url:path] - вид токенов такой: [node:field-category:1]. Может что-то в настройках поля нужно докрутить?

Вот скрин:

[решено]
После обновления модуля Entity tokens до 7.x-1.5 не был сброшен кэш + крон (это выяснилось чуть позже). Помогло пересохранение любого термина таксономии (видимо в БД все же дернулись таблицы).