Drupal связывает имя пользователя с узлом

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

Автор этой статьи Джефф Роббинс. Имя Джеффа Роббинса связано с его профилем. Как бы вы сделали что-то подобное? Похоже, что не используется модуль профиля по умолчанию.

В идеале я бы хотел, чтобы это происходило только с пользователями в определенной группе. Для других пользователей я хочу, чтобы отображалось только имя, но не было ссылки. Какие-нибудь указания о том, как я бы это сделал?


person Jack    schedule 08.10.2009    source источник


Ответы (3)


Вы уже объяснили основной / программный маршрут, поэтому я подумал, что буду вмешиваться с несколькими указателями на маршруте установки модуля. Как всегда, с модулями есть раздутое, но поддерживаемое решение и руководство по DIY.

Профиль содержания

Профиль содержания - это модуль, специально предназначенный для поддерживаемой биографии пользователя в качестве узла.

Вот статья, описывающая, как добавлять биографии авторов в узлы Профиль содержимого.

Панель автора

Этот модуль извлекает информацию из профиля, чтобы создать своего рода автора информацию, которую вы найдете слева от сообщения на доске объявлений.

Разрешения

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

person Grayside    schedule 08.10.2009

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

Вы можете посмотреть модуль профиля, так как это позволит вам настроить биографию намного проще.

person Jeremy French    schedule 08.10.2009
comment
Проблема с модулем профиля в том, что я хочу, чтобы профиль был только у определенной группы пользователей. Спасибо за помощь. Посмотрим ... - person Jack; 08.10.2009
comment
Я думаю, вы можете сделать это с помощью стандартных разрешений. Дайте пользователям, которым вы хотите, роль, и разрешите доступ к профилю только этому ролику. - person Jeremy French; 08.10.2009

Вам может понравиться, что Джереми предлагает сделать что-то вроде функции hook_nodeapi (), но это кажется излишним. Вместо этого я бы использовал функцию template_preprocess_node (). Вы можете поместить это в модуль или тему. С его помощью вы можете изменить переменную для $ submit, которая содержит информацию об авторе, дате публикации и т.д.

Вы можете указать его где угодно, чтобы пользователь перенаправлялся на настраиваемую страницу, содержащую информацию об этом пользователе. Это может быть узел сам по себе, который вы можете настроить с помощью CCK и т. Д., Или вы можете использовать один из модулей профиля, который позволяет вашим пользователям настраивать свои профили, что лучше всего подходит для вас.

person googletorp    schedule 08.10.2009
comment
Просто чтобы подтвердить, что если вы хотите, чтобы это произошло только в одной теме, вы бы сделали это в своей теме. Если бы вы хотели, чтобы это происходило во всех темах на сайте, вы бы создали собственный модуль? - person Jack; 08.10.2009
comment
Обычно у меня будет только одна активная тема на развернутом сайте, так что я бы ее поместил именно туда. Если вы хотите, чтобы на вашем сайте было несколько активных тем, лучше сделать это в модуле. - person googletorp; 08.10.2009