แบบฟอร์มที่ใช้ในแบบฟอร์มเข้าสู่ระบบและในหน้าเข้าสู่ระบบเป็นแบบฟอร์มที่ดำเนินการโดย Drupal\user\Form\UserLoginForm
ระดับ. ซึ่งหมายความว่าแบบฟอร์ม ID เพื่อเช็คอิน hook_form_alter()
หรือ hook_form_FORM_ID_alter()
เหมือนกันทั้งสองกรณี
กำลังดำเนินการ hook_block_view_BASE_BLOCK_ID_alter()
เป็นไปได้ที่จะแก้ไขการแสดงผลการแสดงผลสำหรับบล็อก รวมถึงบล็อกการเข้าสู่ระบบ
ฟังก์ชัน mymodule_block_view_user_login_block_alter (อาร์เรย์ &$build, \Drupal\Core\Block\BlockPluginInterface $block) {
// แก้ไขแบบฟอร์มเข้าสู่ระบบซึ่งเก็บไว้ใน $build['user_login_form']
// ตัวอย่างนี้เปลี่ยนขนาดของฟิลด์ชื่อและรหัสผ่าน
$build['user_login_form']['name']['#size'] = 18;
$build['user_login_form']['pass']['#size'] = 18;
}
ID ปลั๊กอินสำหรับบล็อกการเข้าสู่ระบบมีให้ในคำอธิบายประกอบสำหรับ บล็อกการเข้าสู่ระบบของผู้ใช้ ระดับ. เนื้อหาของ สร้าง $
อาร์เรย์ถูกส่งคืนจาก UserLoginBlock::build()
.
$form = \Drupal::formBuilder()->getForm('Drupal\user\Form\UserLoginForm');
unset($form['name']['#attributes']['autofocus']);
unset($form['name']['#description']);
unset($form['name']['#attributes']['aria-describedby']);
unset($form['pass']['#description']);
unset($form['pass']['#attributes']['aria-describedby']);
$form['name']['#size'] = 15;
$form['pass']['#size'] = 15;
$placeholder = 'form_action_p_4r8ITd22yaUvXM6SzwrSe9rnQWe48hz9k1Sxto3pBvE';
$form['#attached']['placeholders'][$placeholder] = [
'#lazy_builder' => [
'\Drupal\user\Plugin\Block\UserLoginBlock::renderPlaceholderFormAction',
[],
]
];
$form['#action'] = $placeholder;
$รายการ = [];
ถ้า (\Drupal::config('user.settings')->get('register') != UserInterface::REGISTER_ADMINISTRATORS_ONLY) {
$items['create_account'] = [
'#type' => 'ลิงค์',
'#title' => $this->t('สร้างบัญชีใหม่'),
'#url' => Url::fromRoute('user.register', [], [
'คุณสมบัติ' => [
'title' => $this->t('สร้างบัญชีผู้ใช้ใหม่'),
'คลาส' => [
'สร้างลิงค์บัญชี'
]
]
]),
];
}
$items['request_password'] = [
'#type' => 'ลิงค์',
'#title' => $this->t('รีเซ็ตรหัสผ่านของคุณ'),
'#url' => Url::fromRoute('user.pass', [], [
'คุณสมบัติ' => [
'title' => $this->t('ส่งคำแนะนำในการรีเซ็ตรหัสผ่านทางอีเมล'),
'คลาส' => [
'ขอรหัสผ่านลิงค์'
]
]
]),
];
กลับ [
'user_login_form' => $แบบฟอร์ม,
'user_links' => [
'#theme' => 'item_list',
'#items' => $items,
]
];