►基本設定
►theme 無指定 template 時處理, 若找不到此 func 則會觸發 hook_forms()
►theme 指定 template 時會依序呼叫的 hook 函式
function bmsystem_menu() { $items['welcome'] = array( 'title' => '使用者登入', 'page callback' => 'userSingle', 'access callback' => 'user_is_anonymous', //未登入的訪客 ); return $items; } function bmsystem_theme($existing, $type, $theme, $path) { $theme = array(); $theme['userSingle'] = array( 'template' => 'userSingle', //使用 tpl.php, 若無定義則 call theme_userSingle() function ); return $theme; } function userSingle(){ $forms['form_login'] = drupal_get_form('user_login');//直接取得系統登入表單元素 //$forms['form_register'] = drupal_get_form('user_register_form');//註冊元素 return theme('userSingle', $forms); }
►theme 無指定 template 時處理, 若找不到此 func 則會觸發 hook_forms()
function theme_userSingle(){ $forms['formLogin'] = drupal_get_form('user_login'); return render($forms['formLogin']); }
►theme 指定 template 時會依序呼叫的 hook 函式
► 模版 userSingle.tpl.php//呼叫 userSingle.tpl.php 前會呼叫的 func function template_preprocess_userSingle(&$variables) { //... } function bmsystem_preprocess_userSingle(&$variables) { //... }
<div id="login_form"> <h2>User Login</h2> <?php print render($variables['formLogin']); ?> </div>