Làm thế nào để loại bỏ trường xác nhận mật khẩu trong mẫu đăng ký người dùng?


7

Tôi muốn xóa trường xác nhận mật khẩu. Nó ổn nếu người dùng nhập mật khẩu chỉ một lần. Không cần phải xác nhận lại.

Tôi đang sử dụng mã này

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

Xin vui lòng cho tôi biết tôi sai ở đâu. Nó không hoạt động. :



đó có phải là vấn đề với trường hợp 'biểu mẫu đăng ký người dùng' không?
Nick Dave

Câu trả lời:


12

Đoạn mã sau hoạt động với tôi trong 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';
}

Xin lưu ý rằng cả mẫu đăng ký người dùng và mẫu hồ sơ người dùng đều có các trường xác nhận mật khẩu và không phải là cùng một mẫu. Bạn sẽ cần thay đổi cả hai biểu mẫu nếu bạn muốn xóa tất cả các trường xác nhận mật khẩu.


1

Giải pháp của tôi bao gồm cả hai hình thức và tạo ra mô tả chính xác.

/**
 * 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.');
    }
  }
}
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.