2009-09-19 1 views
0

Мне было интересно, есть ли встроенный метод в Drupal, чтобы ссылаться на узлы, созданные пользователем. В моем случае каждый пользователь может создать узел с именем «профиль». Я хочу добавить ссылку в меню, которая напрямую связывается с этим узлом профиля.Динамический пункт меню в Drupal?

Я могу сделать это, создав модуль, который проверяет только ссылку, например. mysite.com/?goTo=profile, а затем просто напишите sql, чтобы найти первый узел типа «профиль» в db, а затем просто перенаправить на него, но, безусловно, drupal должен иметь какой-то синтаксис или что-то, что вы можете указать что он должен ссылаться на первый узел типа x пользователя y?

ответ

1

Нет, нет таких API, ни в Кодексе, ни в UI.

Но, как вы сказали, для этого должно быть легко написать небольшой модуль. Похоже, в какой-то момент был один, но был оставлен: http://drupal.org/project/user_profile_node_integrator.

Может работать так:

  • Зарегистрировать путь меню как/MyProfile

  • Добавить функцию обратного вызова доступа, который проверяет, является ли пользователь имеет такой узел. (Вы можете добавить второй пункт меню, который указывает на узел/добавление/независимо от того, если он этого не сделает, и отображает только в этом случае.)

  • В обратном вызове страницы загрузите нид и либо напрямую вызовите node_view ($ nid) или вперед к узлу/$ nid.

+0

Модуль псевдонимов «me» также очень трюк. – coderama

1

Я хотел бы создать представление (предел 1, фильтр по типу контента и поле пользователя) и использовать либо Insert View или views_embed_view(), чтобы привести его в.

+0

Это неплохая идея! :-) По-прежнему предпочитал бы ссылаться непосредственно на узел (так как он покажет правильную ссылку в строке заголовка), но я думаю, что это могло бы сделать трюк. – coderama