Форма, используемая в форме входа и на странице входа, реализована Drupal\пользователь\форма\UserLoginForm
учебный класс. Это означает, что идентификатор формы для регистрации крючок_form_alter()
или же hook_form_FORM_ID_alter()
одинаково в обоих случаях.
Реализация hook_block_view_BASE_BLOCK_ID_alter()
, можно изменить вывод рендеринга для блока, включая блок входа в систему.
function 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;
}
Идентификатор плагина для блока входа указан в аннотации к ПользовательЛогинБлок учебный класс. Содержание $сборка
массив возвращается из 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['имя']['#размер'] = 15;
$form['pass']['#size'] = 15;
$placeholder = 'form_action_p_4r8ITd22yaUvXM6SzwrSe9rnQWe48hz9k1Sxto3pBvE';
$form['#attached']['заполнители'][$заполнитель] = [
'#ленивый_строитель' => [
'\Drupal\user\Plugin\Block\UserLoginBlock::renderPlaceholderFormAction',
[],
],
];
$form['#action'] = $заполнитель;
$элементы = [];
if (\Drupal::config('user.settings')->get('register') != UserInterface::REGISTER_ADMINISTRATORS_ONLY) {
$items['create_account'] = [
'#тип' => 'ссылка',
'#title' => $this->t('Создать новую учетную запись'),
'#url' => Url::fromRoute('user.register', [], [
'атрибуты' => [
'title' => $this->t('Создать новую учетную запись пользователя.'),
'класс' => [
'создать-аккаунт-ссылку',
],
],
]),
];
}
$items['request_password'] = [
'#тип' => 'ссылка',
'#title' => $this->t('Сбросьте пароль'),
'#url' => Url::fromRoute('user.pass', [], [
'атрибуты' => [
'title' => $this->t('Отправить инструкции по сбросу пароля по электронной почте.'),
'класс' => [
'запрос-пароль-ссылка',
],
],
]),
];
возвращаться [
'user_login_form' => $ форма,
'user_links' => [
'#theme' => 'item_list',
'#items' => $items,
],
];