2011-08-17 40 views
0

對於特定類型的每個節點,在Drupal 6中構建聯繫表單的最佳方式是什麼?我有一些類型爲「profile」的電子郵件地址作爲字段的CCK節點。我希望爲每個節點提供一個聯繫表單的視圖,用戶可以填寫並使用他們自己的電子郵件地址作爲返回地址發送(以便進一步聯繫異地完成)。在Drupal CCK節點上的自定義聯繫表格

基本上我只想通過我的網站完成最初的電子郵件聯繫,當收件人回覆時,它只是發送到填寫聯繫表單時發件人輸入的地址。

您可能會問自己,爲什麼我不使用Drupal的個人聯繫表格。問題在於,我的機構部署Drupal實例的方式使用本地Kerberos登錄,它在Drupal中創建的用戶帳戶沒有電子郵件地址。他們只是用用戶名得到一個基本的骨架帳戶。我並不想強迫用戶去編輯他們的用戶帳戶信息,因爲他們很可能不會這樣做。

回答

0

與節點本身沒有任何關係,您需要的全部內容是帶有字段(from,to,subject,message)的窗體以及此窗體的自定義提交處理程序。 你可以使用forms API在自定義模塊中實現所有這些來創建表單併爲其編寫自定義提交。在這個提交你需要通過drupal_mail()發送電子郵件 - 看看這個,它也提供了例子。 That主題可以幫助你的形式。

然後,如果您需要將一個節點內的這種形式,可以做到以下幾點:通過hook_nodeapi ,在「查看」操作,添加表單您之前曾創建過,你可以檢查特定NODE_TYPE和利用現有的字段值(你提到了帶有電子郵件的cck字段)以預先填寫表格。所以每次用戶查看節點時,他都會看到這個表單。

作爲您的任務的邏輯繼續,我建議看看menu system併爲節點創建本地任務(選項卡),您將在其中顯示電子郵件表單。

一般來說就是這樣。當然還有其他的實現方式,但我認爲這是最容易理解的。

問候,斯拉娃

+0

謝謝斯拉瓦。我希望我可以在不編寫自定義插件的情況下完成此任務,因爲我對Drupal非常陌生,但我認爲你是對的,這可能是要走的路。我已經開始研究創建模塊的過程,並且你在這裏解釋的大部分內容開始變得更有意義。謝謝。 – John