Drupal 9: How to make the /user/register form available in a twig template
Q: When comments in a (content type) Article are enabled, for an anonymous user Drupal 9.5 shows a text with links, "please regiter or login to post a comment". I would like the login form to be rendered there already, so that the user can login without leaving the article. For this, I would like to make the /user/register form available inside a twig template. How would I do that?
A: Install Twig Tweak (reference) and try this:
{{ drupal_form('Drupal\\user\\Form\\UserLoginForm') }}
The following code from mycode.blog may also be useful:
// themename.theme
<?php
/**
* Implements hook_preprocess_page().
*/
function themename_preprocess_page(&$variables) {
$variables['render_core_login_form'] = FALSE;
if (!\Drupal::currentUser()->id()) {
$form = Drupal::formBuilder()->getForm(Drupal\user\Form\UserLoginForm::class);
$render = Drupal::service('renderer');
$variables['render_core_login_form'] = $render->renderPlain($form);
}
}
// page.html.twig
{{render_core_login_form}}
.