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. :((

Nick Dave
quelle
Referenz: priapurnama.me/drupal/…
Citricguy
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.

Citricguy
quelle
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.');
    }
  }
}
kaido24
quelle