| Цитата |
|---|
написал: Такая задача: Нужно отобразить страницу авторизации, расположенную в /auth/index.php вместо контента любой страницы если пользователь не авторизован, причем не меняя адрес страницы входа. Чтоб после авторизации пользователь попадал на ту страницу, куда изначально заходил.
Кто то сталкивался с этим? Есть решение?
Спасибо! |
1. На каждой странице перед инклудом хедера вставляем
| Код |
|---|
define('NEED_AUTH', true); |
2. Теперь для неавторизованного пользователя битрикс выводит на странице шапку из шаблона для данной страницы, а после шапки - компонент bitrix:system.auth.authorize.
3. Чтобы выводился не стандартный шаблон компонента, а нужный нам контент, в шаблонах для страниц заводим шаблон для компонента - файл components/bitrix/system.auth.authorize/.default/template.php.
Например, у меня там стоит скрипт, который просто вызывает мой диалог авторизации:
| Код |
|---|
<? if (!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED!==true)die(); ?>
<?
ShowMessage($arParams["~AUTH_RESULT"]);
ShowMessage($arResult['ERROR_MESSAGE']);
?>
<sc ript>
$(document).ready(function() {
showAuthDialog();
});
</sc ript>
|
Ты же можешь просто повторить контент, расположенный у тебя в /auth/index.php.
Подвал и прочее содержимое страницы при этом не выводится, поэтому надо обеспокоиться, чтобы всё необходимое было в шапке шаблона страницы.