У меня стоит задача сделать адреса ссылок таксономии, генерируемые при создании node, отличнвыми от базовых (taxonomy/term/%tid).
Нашел на drupal.org модуль path_redirect, онможет делать что то похожее, но у него есть несколько существенных недостатков:
1. Он не может работать по шаблону, а имено нельзя определить один раз, как хочешь генерировать ссылки
2. Он делает переадресацию, а не изменяет ссылку при ее создании.
Поэтому, хотел бы спросить, если какой нибудь модуль, с помощью которого можно будет для определенного словаря осуществлять подмену генерируемой ссылки таксономии на свою, заданной в соответсвии с шаблоном. Например taxonomy/term/%tid на bussiness_trip/%tid.
Хотелось бы обойтись без написания своего модуля и подменны ссылки с помощью hook_link_alter....
Заранее благодарен,
Siegfrid
Комментарии
А чем Pathauto не подошел? Там можно для каждого словаря свое правило задать.
Однако, пользователь все равно сможет получить доступ к странице сайта как по адресу taxonomy/term/%tid так и по адресу bussiness_trip/%tid, они эквивалентны.
К pathauto вобщем то вопросов никаких нет, он идеально подходит для улучшения SEO и читабельности, но вот вся загвоздка с ним, что он опперирует алиасами, а не ссылками!
Объясню почему:
1. Делаю с помощью Views простенький запрос, выводящий текущий список терминов из словаря в виде сслок, в зависимости от tid (упрощенный вариант каталогов), что то на подобии bussiness_trip/%tid.
2. делаю запросик с теми же views где генерирую список node c описаниями поездок в зависимости от tid.
3. в panels компаную в одну страничку
если пользователь ходит лишь по ссылкам из пункта 1, все ок, но если он захочет воспользоваться ссылкой из ноды (таксонамия создает такую ссылку обычно в правом нижнем углу), то пользователь перейдет по ней по адресу taxonomy/term/%tid, чего не хотелось бы по понятным причинам...
Можно, конечно пойти длинным путем, выводить термины таксономии Views под каждой нодой, но не хочется?
Потому, что я думаю, Вы не правы, что касается терминов таксономии под каждой нодой. Использование Pathauto, и настройка его для каждого словаря решет поставленную задачу в полном объеме.
Ссылка для каждого термина будет преобзрзована согласно правилу в Pathauto, потому что ссылки имеют вид l(...), а Pathauto их как раз и пользует.
Global Redirect - решит все проблемы...
Тоже не выход, хочется как раз таки после того, как поменяю ссылку на нужную с помощью алиаса делать ее читабельной, т.е. %tid менять на %term, но спасибо за подсказку, модуль весьма интересный...
Pathauto + Token (%tid менять на %term) + Global Redirect (режет дубли)
taxonomy redirect
всем спасибо за советы!
Набросал свой простенький модуль, теперь могу настраивать для каждой ноды словарь и задавать ему по шаблону адрес для таксономии, например для галереи - exibition/gallery/, правда тут вылезла другая проблема, с breadcrumbs, ее удалось частично локализовать, хотя для вывода через panels я до сих пор не нашел решения (интересует случай, когда для иерархических связей создается вложенные breadcumbs, вида vocab >> term1 >> term2 >> term3).
Есть модуль readcrumbs для таксономии. Поищите на Drupal.org
я поставил custom breadcrumbs, но он не особо помогает в случае panels. все равно, panels генерит ссылки на taxonomy/term/tid... Ну и по шаблону он не очень то работает... ему надо под каждое значение задавать синоним, что не есть гут...
Думаю в будущем, когда руки дойдут, набросать свой модуль, чтобы решить эту проблему, если конечно к этому времени кто нить не выложит уже готовое решение