Pasar al contenido principal

Cargando...

Añadiendo el formulario de login o de registro vía twig en Drupal

Añadiendo el formulario de login o de registro vía twig en Drupal

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 que 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>

 

Añadir nuevo comentario

Este campo no se mostrará públicamente.