Если нужно, чтобы подтягивались системные компоненты с нашим шаблоном, называть шаблоны необходимо flat и сделать следующее:
Шаблон системных компонентов авторизации (system.auth.*)
Настройка заменяет стандартный шаблон авторизации на ваш. Шаблон применяется ко всем компонентам авторизации: вход, регистрация, восстановление пароля.
Как настроить:
-
Создайте папку
/local/templates/.default/components/bitrix/system.auth.authorize/ -
Скопируйте в нее все шаблоны из
system.auth.*:authorize,register,forgotpassword.Если скопировать только
authorize, регистрация и восстановление пароля перестанут работать.
Если шаблон не применился:
Проверьте, не переопределена ли опция auth_components_template для сайта. Такое может произойти, если вы использовали шаблон eshop.
Найдите запись в таблице b_option_site и измените значение с flat на .default.
1. Главная страница
-
Страница ЛК : /personal/index.php
-
Выводим: main.profile
-
Настройки: нет
2. Авторизация
-
Раздел авторизация: создаем personal/auth/
-
Страница: /personal/auth/index.php
-
Выводим: main.auth.form
-
Настройки:
-
Страница восстановления пароля: /personal/auth/getpass.php
-
Страница регистрации: /personal/auth/registration.php
-
Страница после успешной авторизации: /personal/index.php
-
В вызове компонента для страницы восстановления пароля нужно передать параметр
?forgot_password=yes
Передаем стразу вместе с адресом страницы
<?$APPLICATION->IncludeComponent("bitrix:main.auth.form", "flat", Array(
"AUTH_FORGOT_PASSWORD_URL" => "/personal/auth/getpass.php?forgot_password=yes",
"AUTH_REGISTER_URL" => "/personal/auth/registration.php",
"AUTH_SUCCESS_URL" => "/personal/index.php",
),
false
);?>
3. Восстановление пароля
-
Страница: /personal/auth/getpass.php
-
Выводим: main.auth.forgotpasswd
-
Настройки:
-
Страница авторизации: /personal/auth/index.php
-
Страница регистрации: /personal/auth/registration.php
-
-
На странице getpass.php перед прологом добавляем константу
define ("NEED_AUTH", true); // или if($_GET['change_password'] === 'yes') { define ("NEED_AUTH", true); } // Пролог require($_SERVER["DOCUMENT_ROOT"]."/bitrix/header.php");
4. Регистрация
-
Страница: /personal/auth/registration.php
-
Выводим: main.register
-
Настройки:
- Страница окончания регистрации: /personal/index.php
5. Корзина
-
Страница: /personal/cart/index.php
-
Выводим: sale.basket.basket
-
Настройки: нет
6. Оформление заказа
-
Страница: /personal/order_make/index.php
-
Выводим: sale.order.ajax
-
Настройки: нет
7. История заказов
-
Страница: /personal/order_history/index.php
-
Выводим заказы: sale.personal.order
-
Копируем шаблон детальной страницы sale.personal.order.detail
-
Копируем шаблон списка sale.personal.order.list
-
Настройки: нет
8. Шаблон компонента установки нового пароля
-
Страница: из публички не дотянуться до этого компонента, поэтому копируем из ядра.
-
Выводим: system.auth.changepasswd
-
Или копируем шаблон. Называем его flat. Далее меняем название шаблона в компоненте
$APPLICATION->IncludeComponent( "bitrix:main.auth.forgotpasswd", "flat", Array( "AUTH_AUTH_URL" => "/personal/auth/index.php", "AUTH_REGISTER_URL" => "/personal/auth/registration.php" ) );
9. Поправим ссылку для восстановления пароля в почтовом шаблоне
-
Копируем ссылку без домена и параметров:
/personal/auth/getpass.php -
Переходим в "Почтовые шаблоны"
/bitrix/admin/message_admin.php?lang=ru -
Находим шаблон [USER_PASS_REQUEST] Запрос на смену пароля
-
В нем меняем строчку
/auth/index.phphttp://#SERVER_NAME#/auth/index.php?change_password=yes&lang=ru&USER_CHECKWORD=#CHECKWORD#&USER_LOGIN=#URL_LOGIN#на
/personal/auth/getpass.phphttp://#SERVER_NAME#/personal/auth/getpass.php?change_password=yes&lang=ru&USER_CHECKWORD=#CHECKWORD#&USER_LOGIN=#URL_LOGIN#
После создания структуры проверить работу всех компонентов, отправку писем и перенаправление.
Полезные мелочи:
-
Ссылка выйти:
/?logout=yes&<?=bitrix_sessid_get()?> -
Ссылка выйти в меню:
Array(
"Выйти",
"/?logout=yes&".bitrix_sessid_get(),
Array(),
Array(),
""
)
- Почтовый шаблон на смену пароля: USER_PASS_REQUEST (проверить ссылку чтобы совпадала с getpass.php)
