最近在修改一個 D6 Signup 的頁面,需要自訂報名欄位,
以前沒仔細找過,這次終於找到一點線索,分享一下,雖然是 D6 了...XD
1 新增欄位
新增欄位的話,重點在 sites/all/modules/signup/theme/signup_form.inc
只要把檔案內容完整複製一段到版型的 template.php ,將 function 名稱修改為 phptemplate_signup_user_form() 即可使用,
最後再自行修改要使用的 field 名稱跟欄位參數(參考 form API)
2 顯示欄位
而至於跟 Views 配合執行的時候,原以為得自己寫 theme 去處理已經 serialize() 的資料,
爬程式的過程發現原來有一個欄位可以指定要顯示的欄位名稱,而不指定則會顯示列表顯示。
在新增 Views 欄位時, Signup: User Additional Signup Info 這項有個 Field Name 欄位,填入步驟 1 所設定的 field name$form['signup_form_data']['FIELDNAME'] = array(...)
就能顯示指定內容。
Re: Signup 的附加欄位
Signup本身應該是沒辦法增加欄位,如果要開比較特別的欄位的話,
會建議使用node type或是webform的方式會比較方便。
Re: Signup 的附加欄位
之前是這樣認為阿,但是看過 signup/theme/signup_form.inc 就不這麼想了,
其實他把 Views handler 都寫好了, 只是第一步驟要手動一下。
node type 得處理權限問題,而 webform 後續不利 Views 使用