Дано: стандартный тип контента Article с полем field_tags - ссылка на термин из словаря Tags. В словаре - n-уровневая иерархия терминов (например это вложенные рубрики)
- термин1
-- термин1-1
-- термин1-2
--- термин 1-2-1
...
/Drupal 7.9, Pathauto 7.x-1.0, Token 7.x-1.0-beta7/
Задача: создать синонимы для страниц вида словарь/термин1/термин1-2/термин1-2-1/.../название-страницы.html
К примеру, для создания одноуровнего пути термин/название.html логично использовать такой паттерн
[node:field_tags]/[node:title].html
Для создания иерархии синонимов термина xandeadx предложил вот такй способ: http://xandeadx.ru/blog/drupal/372 с помощью такой записи (для трехуровневой иерархии):
catalog/[term:parent:parent:name]/[term:parent:name]/[term:name]
А как сделать тоже самое для термина в ноде?
Например тут аналогичный вопрос про родительские термины таксономии для материалов (nodes) http://www.drupal.ru/node/68765. В шестерке это решалось токенами вроде [termpath], [vocab] и т.д., а сейчас эту серию убрали, оставив лишь синоним термина. Может быть есть очевидные решения или готовые модули? Ведь задача из популярных. Прошу помочь советом.
Комментарии
Поставьте Entity API
Тогда в pathauto появится токен [node:field-имя_поля:url:path]
нет такого токена после установки Entity API.
вы либо ошиблись с написанием токена, либо с названием модуля.
Drupal 7.10
Pathauto 7.x-1.0
Token 7.x-1.0-beta7
Entity API 7.x-1.x-dev
как решили проблему? какой токен использовали?
Спасибо! Работает - модуль добавил множество новых токенов.
У меня тоже нету! ТС спасайте.
насколько я понимаю, нужный токен был в одной из dev версий модуля entity.
сейчас ссылку не вспомню, но на drupal.org видел обсуждение такого же вопроса. там проблему решили в июне 2011 другим токеном из entity, но и такого токена сейчас ни в релизе, ни в dev нет.
Получается полный URL, т.е. с лидирующим http://
В результате, оно всплывает в середине возвращаемого PathAuto адреса.
Короче, беда с этим делом.
У кого работает, а у других — нет.
Здесь
и здесь
я это сделал!
[node:field-tags:parent]/[node:field-tags]/[node:title]
DenisVS, решение скрыто во 2 твоей ссылке. именно про неё я и писал выше.
для решения проблемы нужен модуль entity api, но есть нюансы.
если хотите использовать только стабильную версию модуля, то придётся создать словарь таксономии (дополнительный или вместо tags, не могу сказать точно. я создавал дополнительный. может быть будет работать если tags вообще удалить. не проверял). со словарём tags, который присутствует по дефолту и текущей стабильной версией entity api 7.x-1.0-rc1, токен [node:field-tags:parent] не появится.
если не брезгуете dev версией, то создавать словарь не нужно. entity api 7.x-1.0-rc1+29-dev от 1 февраля прекрасно работает с дефолтным словарём tags.
токен [node:field-tags:parent] появится только если поставить в настройках поля словаря кол-во значений = 1.
также, советую в настройках поля поставить галочку обязательного поля. иначе при незаполненных тегах, прощай красивая ссылка.
чтобы не нарушать структуру ссылок, тип виджета поля словаря изменил с автозавершения на выбор из списка. это не позволит использовать термины отсутствующие в словаре (читай создать термин) и таким образом нарушить структуру.
вложенность увеличивается по аналогии с 1 постом в этой теме.
p.s. если кто догадается как сделать правильнее, буду рад выслушать. потому что этот способ не идеален.
Спасибо, работает!
Мда... Все прекрасно работало и работает.
Версия модуля 7.x-1.0-rc1
Создан словарь "Раздел" (section). При создании ноды выпадающий список с разделами (произвольной глубины).
Урлы нод генерятся по шаблону:
[node:field-section:url:path]/[node:nid]
ЧЯДНТ?
вот напиши вы сразу, что кол-во тегов в настройках словаря должно быть не больше 1, и всё было бы прекрасно.
а ещё, что entity 7.x-1.0-rc1 не работает с дефолтным словарём tags...
но всё равно спасибо, ваш метод проще.