Пользовательская контактная форма на узле Drupal CCK - PullRequest
0 голосов
/ 17 августа 2011

Как лучше всего создать контактную форму в Drupal 6 для каждого узла определенного типа? У меня есть несколько узлов CCK типа «профиль», которые имеют адрес электронной почты в качестве поля. Я хочу иметь представление для каждого узла с контактной формой, которую пользователи могут заполнить и отправить со своим собственным адресом электронной почты в качестве обратного адреса (чтобы дальнейший контакт осуществлялся вне офиса).

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

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

1 Ответ

0 голосов
/ 18 августа 2011

Нет ничего общего с самим узлом, все, что вам для этого нужно - это форма с полями (от, до, тема, сообщение) и пользовательский обработчик отправки для этой формы.Вы можете реализовать все это в пользовательском модуле, используя API форм , чтобы создать форму и написать для нее пользовательскую отправку.И в этом сообщении вам нужно отправить электронное письмо через drupal_mail () - взгляните на это, оно также предоставляет примеры. Эта тема может помочь вам с формами.

Затем, если вам нужно разместить эту форму внутри узла, вы можете сделать следующее: через hook_nodeapi , on "просмотрите »операцию, добавьте форму, которую вы создали ранее, вы можете проверить конкретный тип_узла и использовать существующие значения полей (вы упомянули поле cck с электронной почтой) для предварительного заполнения формы.Так что каждый раз, когда пользователь просматривает узел, он видит эту форму.

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

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

С уважением, Слава

...