Я использую Drupal 6.
У меня есть страница со ссылкой для входа в систему, которая открывает всплывающее окно лайтбокса JQuery (на самом деле это просто наложенный элемент div, отображающий содержимое другой страницы), с помощью которого пользователь может войти в систему. Это всплывающее окно содержит текст страницы / логин /, который в основном просто:
<div id="login">
<?php print drupal_get_form('user_login_block'); ?>
</div>
У меня есть user_login.tpl.php, который я использую для оформления формы входа.
Когда пользователь отправляет форму входа, я хотел бы перенаправить его обратно на домашнюю страницу, независимо от того, успешно они вошли или нет. Я должен просто иметь возможность отображать $ сообщения на этой странице, чтобы сообщить им, вошли ли они в систему или неправильно ввели свой пароль, и т. Д. В настоящее время, если пользователь вводит свои данные для входа и отправляет их, они получают ( через действие формы) через / login /, которая не является «реальной» страницей (поскольку она просто содержит содержимое «всплывающего окна»).
Я добавил функцию для изменения перенаправления формы обратно на домашнюю страницу:
function mr_misc_hooks_form_user_login_block_alter(&$form, &$form_state/*, $form_id*/) {
/* Drupal will ignore redirects we set for the login block unless we do the next line.
* See http://drupal.org/node/580144#comment-3368072
* I spent a *lot* of time trying to work this out. :( */
unset($_REQUEST['destination'], $_REQUEST['edit']['destination']);
$form['#redirect'] = 'node';
}
Это успешно перенаправляет пользователя на отправку, которая успешно выполняется, т. Е. Когда отправка завершает вход пользователя. Он не выполняет перенаправление при неудачной отправке.
Как я могу перенаправить пользователей обратно на домашнюю страницу, если их вход не выполнен?