Добрый вечер.
Буквально на днях начал знакомство с 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 или машинное имя.
в Drupal все есть
если отключить транслит название категории автоматом будет переводиться на английский язык?
синоним - это поле, добавленное к термину или это алиас для пути термина?
Объясню подробнее:
Есть словарь "Категории" (машинное имя - category). В нем содержится термин "Новости" (машинное имя - news), в котором прописан синоним URL - news. Также есть термин "Мир", который является подкатегорией термина "Новости", и у него в поле Синонимы URL прописано - news/world.
Выходит, мне в урл нужно выводить не название термина, а машинное имя или синоним. Существуют такие токены?
[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].
модуль http://drupal.org/project/entity и его подмодуль Entity tokens включены?
Установил и включил оба модуля, все равно не удается сохранить
Способ с [node:field_category:url:path] верный, смотрите у себя в доступных токенах токен с path в конце.
Добился чего хотел установкой модулей Entity и Entity tokens и прописыванием токенов "[node:field-category:url:path]/[node:title].html".
drupby и Plazik, Спасибо вам большое!
Здравствуйте!
Пытаюсь сделать аналогичное, но увы у меня нет [node:field-category:url:path] в списке доступных токенов
Drupal 7.26, Entity tokens 7.x-1.5
И в целом, как-то странно, что у меня вместо [node:field-category:url:path] - вид токенов такой: [node:field-category:1]. Может что-то в настройках поля нужно докрутить?
Вот скрин:
[решено]
После обновления модуля Entity tokens до 7.x-1.5 не был сброшен кэш + крон (это выяснилось чуть позже). Помогло пересохранение любого термина таксономии (видимо в БД все же дернулись таблицы).