自訂登入畫面

1 篇文章 / 0 new
author
自訂登入畫面
►基本設定
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 前會呼叫的 func
function template_preprocess_userSingle(&$variables) {
    //...
}
function bmsystem_preprocess_userSingle(&$variables) {
   //...
}
► 模版 userSingle.tpl.php
<div id="login_form">
    <h2>User Login</h2>
    <?php print render($variables['formLogin']); ?>
</div>
Free Web Hosting