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

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

Добрый вечер.
Буквально на днях начал знакомство с 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. Который по идее предотвращает транслитерацию, но он вообще пустой.
Нашел подобную тему, но конкретного ответа не обнаружил.

Комментарии

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

27 июня 2014 в 23:36

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

в Drupal все есть
"DD 85" wrote:
Вы получаете транслитерацию, значит нужно отключить транслит

если отключить транслит название категории автоматом будет переводиться на английский язык?
"sword7i" wrote:
К тому же название категории берется не из вручную прописанного синонима, а генерируется путем транслитерации названия.

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

21 июня 2014 в 2:13

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

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

21 июня 2014 в 2:46

"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].

21 июня 2014 в 3:52

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

21 июня 2014 в 19:27

Здравствуйте!
Пытаюсь сделать аналогичное, но увы у меня нет [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 не был сброшен кэш + крон (это выяснилось чуть позже). Помогло пересохранение любого термина таксономии (видимо в БД все же дернулись таблицы).

28 июня 2014 в 0:50