2011-07-26 7 views
0

私はdrupal-6.22で電子メール登録モジュール&を使用してdanlandテーマを使用してカスタムログインフォームを作成しようとしています。 電子メールを使用したカスタム水平ログインがdrupalで機能していません6

はtemplate.phpファイルに私は

function get_user_login_form() { 
    $form_id = 'user-login-form'; 
    $form = array(); 
    $form['name'] = array(
    '#type' => 'textfield', 
    '#maxlength' => USERNAME_MAX_LENGTH, 
    '#required' => TRUE, 
    '#size' => 10, 
    '#attributes' => array('tabindex' => '1','title'=>'E-mail'), 
); 
    $form['pass'] = array(
    '#type' => 'password', 
    '#required' => TRUE, 
    '#size' => 10, 
    '#attributes' => array('tabindex' => '2','title'=>'Password'), 
); 
    $form['submit'] = array(
    '#type' => 'submit', 
    '#value' => t(''), 
    '#weight' => 2, 
    '#attributes' => array('tabindex' => '3') 
); 
    $form['#validate'] = user_login_default_validators(); 
    $form['#build_id'] = sprintf('form-%s', md5(uniqid(mt_rand(), TRUE))); 
    $form_state = array(); 
    drupal_prepare_form($form_id, $form, $form_state); 
    drupal_process_form($form_id, $form, $form_state); 
    $out = new stdClass; 
    $out->form_start = 
    sprintf("<form method='post' accept-charset='UTF-8' action='%s'>", 
    url('user/login')); 
    $out->form_end = "</form>"; 
    $out->name = drupal_render($form['name']); 
    $out->pass = drupal_render($form['pass']); 
    $out->submit = 
    drupal_render($form['form_id']) . 
    drupal_render($form['form_build_id']). 
    drupal_render($form['submit']); 
    return $out; 
} 

として、いくつかの変更を行い、page.tpl.phpで、私は、電子メールが、そのないを使用してログインしようとしています、その後

<?php 
     $login_form = get_user_login_form(); 
     ?> 
     <?php print $login_form->form_start; ?> 
     <div class="name-tag"><?php print $login_form->name; ?></div><div class="pass-tag"><?php print $login_form->pass; ?></div><div class="submit-tag"><?php print $login_form->submit; ?></div> 
     <?php print $login_form->form_end; 
?> 

このコードを挿入しましたワーキング。私は属性その作業をタグに「タイトル」=>「名前」には「title」=>「メール」を変更する電子メール登録モジュール&を無効にしていた場合、このコードはこことして

<form method='post' accept-charset='UTF-8' action='/dru/user/login'>  <div class="name-tag"><div class="form-item" id="edit-name-1-wrapper"> 
<input type="text" maxlength="60" name="name" id="edit-name-1" size="10" value="" tabindex="1" title="E-mail" class="form-text required" /> 
</div> 
</div><div class="pass-tag"><div class="form-item" id="edit-pass-1-wrapper"> 

<input type="password" name="pass" id="edit-pass-1" maxlength="128" size="10" tabindex="2" title="Password" class="form-text required" /> 
</div> 
</div><div class="submit-tag"><input type="hidden" name="form_id" id="edit-user-login-form" value="user-login-form" /> 
<input type="hidden" name="form_build_id" id="form-8d944c2ceca0b8a4141c73564d35b69b" value="form-8d944c2ceca0b8a4141c73564d35b69b" /> 
<input type="submit" name="op" id="edit-submit-2" value="" tabindex="3" class="form-submit" /> 
</div> 
     </form> 

ようなHTMLフォームを生成しています名前のための細かい。どんなCSS IDであれ、HTML出力に余分なテキスト "-1"を追加しています。私はそれが問題を作り出していると思う。

答えて

1

Login Tobogganは、他の多くのログインベースの機能の中でも、すでに電子メールまたはユーザー名でログインするためのサポートを提供しています。

これが既に存在していると認識していて、何か習慣を書こうと思っていたら、私はお詫び申し上げます。私は、あなたがテーマに基づいたアプローチをするのを手助けする方法がわかりません。個人的に私はカスタムモジュールとhook_form_alter()のどちらかを使用して、既存のuser_loginフォームを変更したり、独自の新しいフォームを作成したりします。

+0

私はそれを使用しようとしていますが、私はユーザー名と電子メールIDの両方を使用してログインできますが、ここでの制限はログイン用の電子メールIDのみを使用することです。私はこれを探しているので、ページのヘッダー部分にも。 ありがとう – Sumant

関連する問題