Личный кабинет. Персональный раздел. Чеклист

Если нужно, чтобы подтягивались системные компоненты с нашим шаблоном, называть шаблоны необходимо flat и сделать следующее:

Шаблон системных компонентов авторизации (system.auth.*)

Настройка заменяет стандартный шаблон авторизации на ваш. Шаблон применяется ко всем компонентам авторизации: вход, регистрация, восстановление пароля.

Как настроить:

  1. Создайте папку /local/templates/.default/components/bitrix/system.auth.authorize/

  2. Скопируйте в нее все шаблоны из system.auth.*: authorize, register, forgotpassword.

    Если скопировать только authorize, регистрация и восстановление пароля перестанут работать.

Если шаблон не применился:

Проверьте, не переопределена ли опция auth_components_template для сайта. Такое может произойти, если вы использовали шаблон eshop.

Найдите запись в таблице b_option_site и измените значение с flat на .default.

1. Главная страница

  1. Страница ЛК : /personal/index.php

  2. Выводим: main.profile

  3. Настройки: нет

2. Авторизация

  1. Раздел авторизация: создаем personal/auth/

  2. Страница: /personal/auth/index.php

  3. Выводим: main.auth.form

  4. Настройки:

    1. Страница восстановления пароля: /personal/auth/getpass.php

    2. Страница регистрации: /personal/auth/registration.php

    3. Страница после успешной авторизации: /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. Восстановление пароля

  1. Страница: /personal/auth/getpass.php

  2. Выводим: main.auth.forgotpasswd

  3. Настройки:

    1. Страница авторизации: /personal/auth/index.php

    2. Страница регистрации: /personal/auth/registration.php

  4. На странице getpass.php перед прологом добавляем константу

    define ("NEED_AUTH", true);
    // или
    if($_GET['change_password'] === 'yes') {
        define ("NEED_AUTH", true);
    }
    // Пролог
    require($_SERVER["DOCUMENT_ROOT"]."/bitrix/header.php");

4. Регистрация

  1. Страница: /personal/auth/registration.php

  2. Выводим: main.register

  3. Настройки:

    1. Страница окончания регистрации: /personal/index.php

5. Корзина

  1. Страница: /personal/cart/index.php

  2. Выводим: sale.basket.basket

  3. Настройки: нет

6. Оформление заказа

  1. Страница: /personal/order_make/index.php

  2. Выводим: sale.order.ajax

  3. Настройки: нет

7. История заказов

  1. Страница: /personal/order_history/index.php

  2. Выводим заказы: sale.personal.order

  3. Копируем шаблон детальной страницы sale.personal.order.detail

  4. Копируем шаблон списка sale.personal.order.list

  5. Настройки: нет

8. Шаблон компонента установки нового пароля

  1. Страница: из публички не дотянуться до этого компонента, поэтому копируем из ядра.

  2. Выводим: system.auth.changepasswd

  3. Или копируем шаблон. Называем его flat. Далее меняем название шаблона в компоненте

    
    $APPLICATION->IncludeComponent(
    	"bitrix:main.auth.forgotpasswd",
    	"flat",
    	Array(
    		"AUTH_AUTH_URL" => "/personal/auth/index.php",
    		"AUTH_REGISTER_URL" => "/personal/auth/registration.php"
    	)
    );

9. Поправим ссылку для восстановления пароля в почтовом шаблоне

  1. Копируем ссылку без домена и параметров: /personal/auth/getpass.php

  2. Переходим в "Почтовые шаблоны" /bitrix/admin/message_admin.php?lang=ru

  3. Находим шаблон [USER_PASS_REQUEST] Запрос на смену пароля

  4. В нем меняем строчку /auth/index.php

    			http://#SERVER_NAME#/auth/index.php?change_password=yes&lang=ru&USER_CHECKWORD=#CHECKWORD#&USER_LOGIN=#URL_LOGIN#
    			

    на /personal/auth/getpass.php

    			http://#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)