Динамический пункт меню в Drupal? - PullRequest
0 голосов
/ 19 сентября 2009

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

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

Ответы [ 2 ]

1 голос
/ 14 февраля 2011

Нет, такого API нет ни в Code, ни в UI.

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

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

  • Зарегистрируйте путь в меню, например / myprofile

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

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

1 голос
/ 19 сентября 2009

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...