2016-10-22 30 views
0

私のフックを書いて、自分のアカウントページに書きます。 drupal8の情報ファイルとモジュールファイルを使用してフックフォームの変更モジュールを作成するサンプルサンプルまたはプロシージャを私に提供してください。drupal8ユーザーログインフォームの入力と検証を変更するにはどうすればよいですか?

+0

を変える追加.moduleにモジュール

を作成するために、標準の.infoをコピー&ペーストバックオフィスのアカウントに多くのものを追加してフィールドを追加しますか?/admin/config/people/accounts/fields – Matoeil

+0

電子メールアドレスのようなフォーム名を電子メールに変更します。 example user/login pageにはユーザー名とパスワードがありますが、私はユーザー名または電子メールアドレスとパスワードとして変更したいと思います。 hook.infoとhook.moduleのサンプルコードが必要です –

答えて

2

はちょうどフックフォームuはuはuができます知って、それを行う前に?変更したいん何

/** 
* callback action on submit (custom method plus bas) 
* 
* @param $form 
* @param \Drupal\Core\Form\FormStateInterface $form_state 
* @param $form_id 
*/ 
    function yourModuleName_form_alter(&$form, \Drupal\Core\Form\FormStateInterface $form_state, $form_id) { 


if ($form_id == 'user_login_form') { 

    //code to modify your form input 

    $form['actions']['submit']['#submit'][] = 'custom_submit_method'; 

    //do something similar to create a custom validation handler 

} 

} 

/** 
* @param $form 
* @param \Drupal\Core\Form\FormStateInterface $form_state 
* @param $form_id 
*/ 
function custom_submit_method(&$form, \Drupal\Core\Form\FormStateInterface $form_state, $form_id) { 

    //code to modify the submit if needed 

} 
+0

私は答えを得ました。しかし、私はmodulename_form_user_login_form_alterとして使用し、属性プレースホルダ$ form ['name'] ['#attributes'] ['placeholder'] = t( 'username or email');を適用しました。私は、タイトル変更とカスタム送信のためにもっと練習したい。何か問題に直面したら、私はコメントします。なぜあなたはblock_generator_form_alterを使用していますか? –

+0

返信を編集しました。ブロックジェネレータは私のモジュールに与えた名前の一部です – Matoeil

+0

はい、このカスタム送信機能はうまくいきますが、この機能ではポスト値を取得する方法です。私はこれ($ cuser = $ form_state ['values'] ['name'])のように使用しましたが、動作しません。 –

関連する問題