Wie entferne ich das Passwortbestätigungsfeld im Benutzerregistrierungsformular?


7

Ich möchte das Passwortbestätigungsfeld entfernen. Es ist in Ordnung, wenn der Benutzer das Passwort nur einmal eingibt. Es ist nicht erforderlich, es erneut zu bestätigen.

Ich benutze diesen Code

<?php
function dp_form_alter(&$form, &$form_state, $form_id)  {
    switch ($form_id)  {
        case 'user-register-form': 
        $form['account']['pass']['#type'] = "password"; 
            break;
     }
  }

Bitte sag mir, wo ich falsch liege. Es funktioniert nicht. :((



ist es das Problem mit dem Fall 'Benutzerregister-Formular'?
Nick Dave

Antworten:


12

Der folgende Code funktioniert für mich in Drupal 7.

/**
 * Implements hook_form_FORM_ID_alter().
 */
function MODULE_form_user_register_form_alter(&$form, &$form_state, $form_id) {
    $form['account']['pass']['#type'] = 'password';
    $form['account']['pass']['#title'] = 'Password';
}

Bitte beachten Sie, dass sowohl das Benutzerregistrierungsformular als auch das Benutzerprofilformular Kennwortbestätigungsfelder enthalten und nicht dasselbe Formular sind. Sie müssen beide Formulare ändern, wenn Sie alle Kennwortbestätigungsfelder entfernen möchten.


1

Meine Lösung, die beide Formen abdeckt und auch eine genaue Beschreibung erstellt.

/**
 * Implements hook_form_alter().
 */
function MYMODULE_login_form_alter(&$form, &$form_state, $form_id) {
  if ($form_id == 'user_register_form' || $form_id == 'user_profile_form') {
    $form['account']['pass']['#type'] = 'password';
    $form['account']['pass']['#title'] = 'Password';
    $form['account']['pass']['#description'] =  t('To change the current user password, enter the new password.');
    if ($form_id == 'user_register_form') {
      $form['account']['pass']['#description'] =  t('Provide a password for the new account.');
    }
  }
}
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.