改變 form 的 template
這次修改的是 views 的 exposed form
需要比較大的修改便想要使用 tpl 而不使用 template.php
舊文 form 也可以使用template (*.tpl.php)也有說明, 但已經不是 Drupal6.x 作法了
以下更新為 Drupal6.x 的作法:
先自建一個模組, 使用 hook_theme
定義如下:
查找一個選單的欄位的可選項 Get display values of a dropdown list
在 views 的 $views->exposed filter 可以提取已經提交的表單值
但除了值之外, 一般還需要欄位的其他資料,
例如欄位旳值和顯示值不一樣的時候,
可以使用:
2011-02-07 為 form 增加新的 validation 規則
hook_form_alter() 本來是為了修改 form 的各種屬性
例如增加欄位, 修改欄位的預設值等等
但其實還可以增加 validation 規則和增加提交後的處理
增加 validation 規則:
hook_submit, hook_form_alter, hook_validate in Drupal 6.x
EDIT: 2011-02-07 更詳細的 hook_form_alter 例子
hook_submit() 是每一張form 提交的時候會經過的 hook
可以用作發電郵之類的自定義動作
類似的, hook_validate() 是驗證每一張 form 的時候會經過的hook
可以自定義更多驗證的 logic
而從Drupal 5.x 之中, hook_submit() 的 function callback 可以在form API 使用如下 syntax:
將註冊時連續輸入兩次密碼的表單的字眼改掉
將註冊時連續輸入兩次密碼的表單的字眼改掉的方法:
theme 的 template.php 內: