【问题标题】:Custom Contact Form on a Drupal CCK NodeDrupal CCK 节点上的自定义联系表
【发布时间】:2011-08-17 17:23:21
【问题描述】:

在 Drupal 6 中为特定类型的每个节点构建联系表单的最佳方式是什么?我有一些“配置文件”类型的 CCK 节点,其中包含电子邮件地址作为字段。我想为每个节点提供一个带有联系表格的视图,用户可以填写并使用他们自己的电子邮件地址作为回信地址发送(以便在异地进行进一步的联系)。

基本上,我只想通过我的网站完成初始电子邮件联系,当收件人回复时,它只会转到发件人在填写联系表时输入的地址。

您可能会问自己,为什么我不使用 Drupal 自带的个人联系表格。问题是我的机构部署他们的 Drupal 实例以使用本地 Kerberos 登录的方式,它在 Drupal 中创建的用户帐户没有电子邮件地址。他们只是获得一个带有用户名的基本骨架帐户。我真的不想强迫用户再次编辑他们的用户帐户信息,因为他们很可能不会这样做。

【问题讨论】:

    标签: drupal-6 cck drupal-contact-form


    【解决方案1】:

    与节点本身没有什么特别的关系,您需要的只是带有字段(从,到,主题,消息)的表单和该表单的自定义提交处理程序。 您可以使用forms API 在自定义模块中实现所有这些,以创建表单并为其编写自定义提交。在此提交中,您需要通过drupal_mail() 发送电子邮件 - 看看这个,它也提供了示例。 Thattopic 可以帮你填表格。

    然后,如果您需要将此表单放置在节点中,您可以执行以下操作: 通过hook_nodeapi,在“查看”操作中,添加您之前创建的表单,您可以检查特定的 node_type 并使用现有字段值(您在电子邮件中提到 cck 字段)来预填写表单。这样用户每次查看节点时,都会看到这个表单。

    作为您的任务的逻辑继续,我建议查看menu system 并为节点创建本地任务(选项卡),您将在其中显示电子邮件表单。

    总的来说,就是这样。当然还有其他实现方式,但我认为这是最容易理解的。

    问候,斯拉瓦

    【讨论】:

    • 谢谢斯拉瓦。我希望我可以在不编写自定义插件的情况下做到这一点,因为我对 Drupal 很陌生,但我认为你是对的,这可能是要走的路。我已经开始研究创建模块的过程,你在这里解释的大部分内容开始变得更有意义。谢谢。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多