Biểu mẫu được sử dụng trong biểu mẫu đăng nhập và trong trang đăng nhập là biểu mẫu được triển khai bởi Drupal\user\Form\UserLoginForm
lớp. Điều này có nghĩa là ID biểu mẫu để đăng ký hook_form_alter()
hoặc hook_form_FORM_ID_alter()
là như nhau trong cả hai trường hợp.
Thực thi hook_block_view_BASE_BLOCK_ID_alter()
, có thể thay đổi đầu ra hiển thị cho một khối, bao gồm cả khối đăng nhập.
function mymodule_block_view_user_login_block_alter(mảng &$build, \Drupal\Core\Block\BlockPluginInterface $block) {
// Thay đổi biểu mẫu đăng nhập, được lưu trữ trong $build['user_login_form'].
// Ví dụ này thay đổi kích thước của trường tên và mật khẩu.
$build['user_login_form']['name']['#size'] = 18;
$build['user_login_form']['pass']['#size'] = 18;
}
ID plugin cho khối đăng nhập được cung cấp trong chú thích cho Người dùngĐăng nhậpKhối lớp. nội dung của xây dựng $
mảng được trả về từ UserLoginBlock::build()
.
$form = \Drupal::formBuilder()->getForm('Drupal\user\Form\UserLoginForm');
unset($form['name']['#attributes']['autofocus']);
unset($form['name']['#description']);
unset($form['name']['#attributes']['aria-descriptedby']);
unset($form['pass']['#description']);
unset($form['pass']['#attributes']['aria-descriptedby']);
$form['name']['#size'] = 15;
$form['pass']['#size'] = 15;
$placeholder = 'form_action_p_4r8ITd22yaUvXM6SzwrSe9rnQWe48hz9k1Sxto3pBvE';
$form['#attached']['placeholders'][$placeholder] = [
'#lười_xây' => [
'\Drupal\user\Plugin\Block\UserLoginBlock::renderPlaceholderFormAction',
[],
],
];
$form['#action'] = $placeholder;
$items = [];
if (\Drupal::config('user.settings')->get('register') != UserInterface::REGISTER_ADMINISTRATORS_ONLY) {
$items['create_account'] = [
'#type' => 'liên kết',
'#title' => $this->t('Tạo tài khoản mới'),
'#url' => Url::fromRoute('user.register', [], [
'thuộc tính' => [
'title' => $this->t('Tạo tài khoản người dùng mới.'),
'lớp học' => [
'tạo liên kết tài khoản',
],
],
]),
];
}
$items['request_password'] = [
'#type' => 'liên kết',
'#title' => $this->t('Đặt lại mật khẩu của bạn'),
'#url' => Url::fromRoute('user.pass', [], [
'thuộc tính' => [
'title' => $this->t('Gửi hướng dẫn đặt lại mật khẩu qua email.'),
'lớp học' => [
'yêu cầu-mật khẩu-liên kết',
],
],
]),
];
trở lại [
'user_login_form' => $form,
'user_links' => [
'#theme' => 'item_list',
'#items' => $items,
],
];