Как включить комментарии для профилей пользователей?
Поскольку пользователи являются сущностями в D7, я предположил, что тип пользователя будет встроен в опцию "комментарий". Похоже, что это не так. Я просто хочу разрешить пользователям оставлять комментарии на странице профиля пользователя. Есть ли простой способ сделать это?
10 answers
Вы можете использовать Профиль 2, который прикрепляет узел к профилю пользователя, чтобы его можно было комментировать и он выглядел как комментарий для пользователя.
Я не пробовал, но модуль ответа выглядит действительно хорошо.
Ответ - это ответ D7 на комментарии сущности. Он не предназначен для замены основного модуля комментариев, скорее всего, он дополняет его неспособность работать с объектами, отличными от узла.
Ответ в основном представляет собой объект, доступный для заполнения, с полями темы и тела, которые жестко закодированы в модуле и не являются полями API полей. Это потому, что это суть ответа/комментария. Объект доступен для заполнения, поэтому вы можете создать "отзыв" или что угодно, прикрепив поля к его пакетам.
В настоящее время в ядре Drupal 7 модуль комментариев по-прежнему связан с node.module
. Комментарии являются сущностями, но их нельзя добавлять к сущностям, отличным от узлов.
Вы можете увидеть эту проблему, чтобы получить обновление: Отделить комментарий.модуль от узла
Я буду поощрять использование статусов http://drupal.org/project/statuses для стиля стены "твиттер-фейсбук". Это не объект "комментарий", но он работает довольно хорошо.
Я также посмотрел код, он хорошо написан и имеет много зацепок.
Статусы также интегрируются с: Просмотры Деятельность Флаг Правила Домен Моллом Уведомления Обмен сообщениями Патавто Услуги Точки доступа пользователей Twitter
Если в случае использования каждый пользователь может прокомментировать только один раз (например, отзыв), лучшее решение, которое я нашел, - это использование модуля флага. Версия 7.3 флага теперь доступна для использования. Таким образом, вы создаете флаг "добавить комментарий" и добавляете в него текстовое поле + любые другие поля, которые вы хотите. Затем вы можете отобразить содержимое флагов в представлении. Очень гибкое, расширяемое и не требующее взлома решение.
В итоге я реализовал комментарии к профилям пользователей, добавив тип контента "гостевая книга" с полем ссылки на пользователя.
Когда вы просматриваете чей-либо профиль пользователя, вы можете нажать "подписать гостевую книгу", которая ссылается на "узел/добавить/гостевую книгу?редактировать[field_guestbook_userreference][und][uid]=user123".
Модуль предварительного заполнения используется для предварительного заполнения имени пользователя в форме добавления узла "user123", и я использую css, чтобы скрыть это поле. В гостевой книге включены комментарии, позволяющие другие тоже должны прокомментировать.
Я использую блок просмотра для отображения заголовков "гостевой книги" в профиле пользователя.
Вдохновленный @Mototribe ( аналогичный вопрос здесь ), я решил его так:
Вам понадобятся: представления, панели, правила, ссылка на сущность и ссылка на сущность предварительно заполняют модули.
Создайте тип контента
user_comments
, удалите поле тела (если вы этого не сделаете, пользователям придется ввести 2 поля: заголовок и тело). Комментарии станут заголовком узла (максимальная длина 255). Добавьте поле ссылки на сущностьfield_user_reference_comments
.Создайте представление ПОЛЬЗОВАТЕЛЯ (имя:
user_comments
), добавьте связь с "ссылка на сущность". Добавьте контекстный фильтр: Идентификатор пользователя > укажите значение по умолчанию - > Идентификатор пользователя из Url.-
Внутренний вид состоит из 2 блоков (я сделал панели содержимого).
- Первый блок: добавьте поле UID, перепишите результаты:
<a class="" href="/node/add/user-comments?field_user_reference_comments=[uid]">Add comment</a>
. - Второй блок: добавьте поле заголовка содержимого, используя связь. Добавьте дополнительные связи и поля по мере необходимости.
- Первый блок: добавьте поле UID, перепишите результаты:
-
Добавьте новое правило (импортируйте отсюда, обязательно следуйте синтаксису, описанному выше):
{ "rules_redirect_on_add_a_user_comment" : { "LABEL" : "redirect on add a user comment", "PLUGIN" : "reaction rule", "OWNER" : "rules", "TAGS" : [ "user account" ], "REQUIRES" : [ "rules" ], "ON" : { "node_insert--user_comments" : { "bundle" : "user_comments" }, "node_update--user_comments" : { "bundle" : "user_comments" } }, "DO" : [ { "redirect" : { "url" : "users\/[node:field_user_reference_comments]" } } ] } }
Включить из панелей "просмотр пользователя". Добавьте просматриваемого пользователя, добавьте Первый блок просмотров, добавьте второй блок просмотров.
Теперь вы закончили; это должно сработать отлично. Создайте свое представление настолько сложным, насколько вам нужно, добавьте: поля, фильтры, сортировки и т.д. работает идеально.
Профиль пользователя по сути является представлением; вы можете подключиться к представлению, чтобы включить комментарии.
Создайте узел комментариев со всеми полями. Среди них одно поле должно относиться к типу profile2 (с использованием справочного модуля). Затем вы можете прикрепить этот узел к profile2 с помощью модуля EVA. Если будет какой-нибудь лучший ответ, дайте мне знать.
Вы можете добавить элемент коллекции полей в свой профиль, а затем добавить в него произвольные поля. таким образом, пользователи могут вставлять комментарии с ним, если вы используете модуль разрешения полей и предоставляете всем пользователям разрешение на вставку комментариев. это работает правильно, я попробовал это