Перенаправление или переписывание ссылок на друпал - PullRequest
0 голосов
/ 13 октября 2010

У меня есть пользовательская структура для просмотра контента, созданная с помощью hook_menu и Views.Я хотел бы, чтобы ссылки на контент направлялись по типу узла в соответствующий пункт назначения в моей структуре.Таким образом, хотя при обычном щелчке по ссылке на узел вы переходите на node/123, я вместо этого хотел бы, чтобы его отправляли на foo/123 (поскольку узел 123 имеет тип 'foo').

Я пробовал PathAuto, но это нене получается сделать foo/123 псевдонимом node/123.Специальная структура, вкладки и т. Д. Была построена с использованием hook_menu для foo/123.PathAuto (насколько я понимаю) на самом деле просто отображает node/123, который является просто отображением стандартного узла drupal, а не то, что я хочу показать.

Я начал собирать hook_nodeapi и drupal_goto для перенаправленияна основе типа узла.[Разрабатывает некоторые бесконечные проблемы с перенаправлением, но я уверен, что смогу разобраться.] Но действительно ли я хочу это сделать?Неужели не будет скорости, чтобы каждая ссылка на сайте проходила через перенаправление HTTP?

Какой лучший способ сделать это?

Редактировать
На самом деле, я думаю, что проблема в том, что PathAuto не уважает мое hook_menu и, возможно, не подходит для работы.Пока не настроен PathAuto, у меня есть hook_menu, который определяет страницу для foo/123, где foo - тип узла.Переход к foo/### работает, как и ожидалось, отображая мою пользовательскую версию узла ###.

Теперь я хочу перенаправить node/### на foo/### или, другими словами, я хочу, чтобы все ссылки на node/###записываться как foo/###.Это кажется очевидной задачей для PathAuto, где под типом узла Foo мой шаблон равен foo/[nid].За исключением того, что после его настройки, мой hook_node больше не работает.Это потому, что теперь foo/### перенаправляется на node/###, как я и просил, и отображается отображение узла vanilla drupal, а не мое hook_menu.

1 Ответ

1 голос
/ 13 октября 2010

На самом деле PathAuto может быть настроен, чтобы указать ваш тип пользовательского пути. Он использует модуль токенов, чтобы вы могли легко перенастроить, как pathAuto должен создавать псевдонимы ...

Проверьте на странице администрирования pathauto (admin / build / path / pathauto).

Редактировать

Для вашего редактирования я хотел бы реализовать hook_menu_alter, и я бы изменил обратный вызов страницы node /% на ваш обратный вызов, используемый в hook_menu для визуализации страницы foo / 123.

...