Изменение адреса таксономии в зависимости от используемого словаря

Главные вкладки

Аватар пользователя Siegfrid@drupal.org Siegfrid@drupal.org 1 февраля 2010 в 12:40

У меня стоит задача сделать адреса ссылок таксономии, генерируемые при создании node, отличнвыми от базовых (taxonomy/term/%tid).

Нашел на drupal.org модуль path_redirect, онможет делать что то похожее, но у него есть несколько существенных недостатков:
1. Он не может работать по шаблону, а имено нельзя определить один раз, как хочешь генерировать ссылки
2. Он делает переадресацию, а не изменяет ссылку при ее создании.

Поэтому, хотел бы спросить, если какой нибудь модуль, с помощью которого можно будет для определенного словаря осуществлять подмену генерируемой ссылки таксономии на свою, заданной в соответсвии с шаблоном. Например taxonomy/term/%tid на bussiness_trip/%tid.

Хотелось бы обойтись без написания своего модуля и подменны ссылки с помощью hook_link_alter....

Заранее благодарен,
Siegfrid

Комментарии

Аватар пользователя retuam retuam 1 февраля 2010 в 14:10

А чем Pathauto не подошел? Там можно для каждого словаря свое правило задать.

Однако, пользователь все равно сможет получить доступ к странице сайта как по адресу taxonomy/term/%tid так и по адресу bussiness_trip/%tid, они эквивалентны.

Аватар пользователя Siegfrid@drupal.org Siegfrid@drupal.org 1 февраля 2010 в 15:12

К pathauto вобщем то вопросов никаких нет, он идеально подходит для улучшения SEO и читабельности, но вот вся загвоздка с ним, что он опперирует алиасами, а не ссылками!

Объясню почему:
1. Делаю с помощью Views простенький запрос, выводящий текущий список терминов из словаря в виде сслок, в зависимости от tid (упрощенный вариант каталогов), что то на подобии bussiness_trip/%tid.

2. делаю запросик с теми же views где генерирую список node c описаниями поездок в зависимости от tid.

3. в panels компаную в одну страничку

если пользователь ходит лишь по ссылкам из пункта 1, все ок, но если он захочет воспользоваться ссылкой из ноды (таксонамия создает такую ссылку обычно в правом нижнем углу), то пользователь перейдет по ней по адресу taxonomy/term/%tid, чего не хотелось бы по понятным причинам...

Аватар пользователя retuam retuam 1 февраля 2010 в 16:48

Можно, конечно пойти длинным путем, выводить термины таксономии Views под каждой нодой, но не хочется?

Потому, что я думаю, Вы не правы, что касается терминов таксономии под каждой нодой. Использование Pathauto, и настройка его для каждого словаря решет поставленную задачу в полном объеме.

Ссылка для каждого термина будет преобзрзована согласно правилу в Pathauto, потому что ссылки имеют вид l(...), а Pathauto их как раз и пользует.

Аватар пользователя Siegfrid@drupal.org Siegfrid@drupal.org 1 февраля 2010 в 17:26

Smile Тоже не выход, хочется как раз таки после того, как поменяю ссылку на нужную с помощью алиаса делать ее читабельной, т.е. %tid менять на %term, но спасибо за подсказку, модуль весьма интересный...

Аватар пользователя Siegfrid@drupal.org Siegfrid@drupal.org 1 марта 2010 в 9:54

всем спасибо за советы!

Набросал свой простенький модуль, теперь могу настраивать для каждой ноды словарь и задавать ему по шаблону адрес для таксономии, например для галереи - exibition/gallery/, правда тут вылезла другая проблема, с breadcrumbs, ее удалось частично локализовать, хотя для вывода через panels я до сих пор не нашел решения (интересует случай, когда для иерархических связей создается вложенные breadcumbs, вида vocab >> term1 >> term2 >> term3).

Аватар пользователя Siegfrid@drupal.org Siegfrid@drupal.org 2 марта 2010 в 11:40

я поставил custom breadcrumbs, но он не особо помогает в случае panels. все равно, panels генерит ссылки на taxonomy/term/tid... Ну и по шаблону он не очень то работает... ему надо под каждое значение задавать синоним, что не есть гут...

Думаю в будущем, когда руки дойдут, набросать свой модуль, чтобы решить эту проблему, если конечно к этому времени кто нить не выложит уже готовое решение Smile