Перенаправление или переписывание связей Drupal

StackOverflow https://stackoverflow.com/questions/3921209

  •  29-09-2019
  •  | 
  •  

Вопрос

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

Я попробовал Патауто, но это не работает, чтобы просто сделать foo/123 псевдоним node/123. Отказ Конкретная структура, вкладки и т. Д. hook_menu за foo/123. Отказ Pathauto (насколько я понимаю) на самом деле просто отображается node/123 Это просто дисплей узел Drupal, а не то, что я хочу показать.

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

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

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

Теперь я хочу перенаправить node/### к foo/###, или, по -другому, я хочу все ссылки на node/### быть написанным как foo/###. Отказ Это кажется очевидной задачей для Pathauto, где под типом узла мой шаблон foo/[nid]. Отказ За исключением того, что после его настройки мой kuk_node больше не функционирует. Это потому что сейчас foo/### направляется на node/### Как я спросил, и то, что отображается, является дисплеем ванильного Drupal Node, а не мой Huck_menu.

Это было полезно?

Решение

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

Проверьте страницу администрирования Pathauto (Admin/Build/Path/Pathauto).

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

Для вашего редактирования, что я бы сделал, это реализует Hook_menu_alter, и я бы изменил обратный вызов страницы Node/% к вашему обратному обращению, используемому в Hook_menu, чтобы отобразить страницу Foo/123.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top