Publicado:
Miércoles, Julio 8, 2020 - 20:15
Actualizado:
Sábado, Octubre 22, 2022 - 16:44
Añadiendo el formulario de login o de registro vía twig en Drupal
1 minutos
Hacer un renderizado de los formularios de login o de registro de usuario es muy sencillo gracias al hook HOOK_preprocess_page.
HOOK_preprocess_page
use Drupal\user\Form\UserLoginForm;
function HOOK_preprocess_page(array &$variables) {
/* Formulario de login */
$form = Drupal::formBuilder()->getForm(UserLoginForm::class);
$render = Drupal::service('renderer');
$variables['login_form'] = $render->renderPlain($form);
/* Formulario de registro */
$entity = \Drupal::entityTypeManager()->getStorage('user')->create([]);
$formObject = \Drupal::entityTypeManager()
->getFormObject('user', 'register')
->setEntity($entity);
$form = \Drupal::formBuilder()->getForm($formObject);
$variables['register_form'] = \Drupal::service('renderer')->render($form);
}
Con el código anterior hemos asignado a dos variables los respectivos formularios de login (login_form) y de registro de usuario (register_form).
Debemos recordar que para qué esto funcione deberemos sustituir en el nombre de la función la palabra HOOK por el nombre de máquina de nuestro tema.
Añadiendo las variables en Twig
Una vez hemos creado las variables anteriores ('login_form' y 'register_form') ahora sólo tendremos que añadirlas a nuestra plantilla Twig, tras lo cual se mostrará el formulario.
<div class="login-form">
{{ login_form }}
</div>
<div class="register-form">
{{ register_form }}
</div>
INFO: El contenido del artículo se adhiere a nuestros principios de ética editorial. Para notificar un error visita nuestro formulario de contacto.