Задача: При нажатии на пункт меню "Login", открывать модальное окно с формой авторизации. Пользователь должне остаться на той же странице.
<?php
use Drupal\Core\Url;
function login_popup_preprocess_page(array &$variables): void {
$variables['#attached']['library'][] = 'login_popup/login_popup';
}
/**
* Implements hook_preprocess_HOOK().
*/
function login_popup_preprocess_menu__account(&$variables) {
$link_options = [
'attributes' => [
'class' => ['use-ajax'],
'data-dialog-type' => 'modal',
],
'query' => [
'destination' => Url::fromRoute('<current>')->toString(),
]
];
if(!$variables['logged_in']) {
$variables['items']['user.logout']['url']->setOptions($link_options);
}
}
login_popup.libraries.yml
login_popup:
version: 1.x
dependencies:
- core/jquery
- core/drupal.dialog.ajax