Làm thế nào để tùy chỉnh hình thức đăng nhập người dùng?


7

Tôi đang cố gắng tùy chỉnh biểu mẫu đăng nhập người dùng trong /user/logintrang và tôi muốn sử dụng một hook_form_alterchức năng để thêm một số kiểu giữ chỗ và giữ chỗ tuyệt vời cho từng trường của biểu mẫu đăng nhập người dùng và xóa hoặc ẩn:
"Nhập tên người dùng quản trị viên của bạn " và "Nhập mật khẩu đi kèm tên người dùng của bạn "mô tả biểu thức theo từng chủ đề.
Để giải quyết vấn đề này, tôi đã thêm một số mã như bên dưới vào ThemeName.theme của mình :

function ThemeName_form_alter(&$form, $form_state, $form_id) {
  if ( $form['#form_id'] == 'user_login_form' ) {
    $form['actions']['submit']['#attributes']['class'][] = 'button glow button-primary expanded';
    $form['keys']['#attributes']['placeholder']['name'] = t('User name');
    $form['keys']['#attributes']['placeholder']['password'] = t('Password');
  }
}

Tôi thử nhiều cách khác nhau nhưng tôi không thể nhận được kết quả. cuối cùng tôi muốn đạt được một cái gì đó như hình ảnh dưới đây:
nhập mô tả hình ảnh ở đây

Tôi đã đọc các trang này nhưng dường như không có công việc nào trong Drupal 8:
Làm thế nào để sửa đổi các trường của biểu mẫu đăng ký người dùng và biểu mẫu đăng nhập người dùng?
Sửa đổi trang đăng ký người dùng mặc định
Tùy chỉnh khối đăng nhập người dùng


2
Tôi muốn mạo hiểm đoán rằng user-login-formnên có user_login_formtrong chức năng của bạn.
Mark Conroy

Tại sao không làm điều đó với CSS? .user-login-form .description { display: none; }
Mark Conroy

Các chuỗi thực tế mà bạn đang cố gắng loại bỏ là trong UserLoginForm.php - sẽ hữu ích cho bạn khi đọc mã đó để xem cách biểu mẫu được xây dựng.
Đánh dấu Conroy

Tôi đoán bạn có thể thêm thuộc tính giữ chỗ khi thực hiện form_alter()công cụ
Mark Conroy

1
Xem những gì Jeff Burnz đã nói trong câu trả lời dưới đây.
Đánh dấu Conroy

Câu trả lời:


10

Bạn có thể thêm trình giữ chỗ trong hook_form_alter ().

/**
 * Implements hook_form_alter().
 * @param $form
 * @param \Drupal\Core\Form\FormStateInterface $form_state
 * @param $form_id
 */
function ThemeName_form_alter(&$form, \Drupal\Core\Form\FormStateInterface $form_state, $form_id) {
  if ($form_id == 'user_login_form' ) {
    // Add placeholders.
    $form['name']['#attributes']['placeholder'] = t('User name');
    $form['pass']['#attributes']['placeholder'] = t('Password');
  }
}

Sử dụng các hàm mô-đun Devel để in biểu mẫu bằng kint, bằng cách này bạn có thể thấy rõ toàn bộ cấu trúc của mảng $ form.


Có vẻ như chức năng User Namenên Usernamehoặc User nameđể t () hoạt động chính xác.
Mojtaba Reyhani

Vấn đề không phải là về hàm, mà là về chuỗi trong hàm, tôi đã sử dụng những gì bạn đã sử dụng vì tôi phải giả sử bạn có thể dựa vào chuỗi đó trong bản dịch của mình.
Jeff Burnz

1

https://www.drupal.org/project/simplelogin

Nó là một mô-đun đơn giản để Tùy chỉnh các trang Đăng nhập, Mật khẩu và Đăng ký Drupal với hình ảnh Nền.

Quản trị viên có thể cung cấp khả năng cho phép người dùng đính kèm hình nền / màu nền của riêng họ vào thông tin đăng nhập, mật khẩu, trang đăng ký của người dùng. Các tính năng tốt hơn bao gồm tùy chỉnh màu nền, cài đặt hình ảnh.

Các tính năng: Thiết kế sạch & kiểu dáng đẹp, Tùy chỉnh màu nền, màu liên kết, màu nút gửi, Tùy chỉnh cài đặt hình ảnh, Độ mờ của ảnh nền, Xóa các tệp Css không mong muốn khỏi các trang đơn giản, Độ rộng của trang đăng nhập, Phản hồi trên thiết bị di động,

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.