Рейтинг: 120.1697  
Новая
Предложил Пользователь 25773 28.11.2011 12:26:25

Возможность для разработчика переопределить функцию CMain::AuthForm

Прошу сделать возможность для разработчика переопределить функцию CMain::AuthForm для публичной части самостоятельно, как, например, можно переопределить bxmail.

Чтобы я мог написать свою функцию самостоятельно, и вызывать те компоненты авторизации/регистрации, которые хочу с какими хочу параметрами и шаблонами для данного сайта.

Описание проблемы из тикета #256136: Улучшить CMain::AuthForm:
В продукте есть проблема, которую мы никак не можем решить самостоятельно уже много лет.

Невозможно на сайте нормально изменить шаблоны компонентов:

system.auth.forgotpasswd
system.auth.changepasswd
system.auth.registration
system.auth.authorize

Дело в том, что на странице /auth/index.php и на странице, к которой доступ пользователю закрыт, вызывается функция CMain::AuthForm без параметров, которая вызывает эти компоненты. А все параметры задаются в настройках главного модуля.

Единственный способ что-то изменить - это копировать шаблоны компонентов в шаблон сайта под именем .default - но это не решение. Потому что придется скопировать во все шаблоны сайта.

Или скопировать в шаблон .default под именем .default - но это невозможно при многосайтовости.

Пользователь в принципе не должен видеть стандартный system.auth.registration при регистрации пользователей: во-первых, условия многих проектов предполагают, что его емэйл - это его логин, поле формы должно быть одно. Во вторых, при регистрации требуется вводить телефон, отчество и другие "очень важные поля".

На обычных страницах мы используем bitrix::main.register. Но если пользователь разавторизовался в закрытом разделе, то он видит стандартные

system.auth.forgotpasswd
system.auth.changepasswd
system.auth.registration
system.auth.authorize

а это косяк. Наш дизайн и идеи проектов не могут использовать стандартные шаблоны компонентов и компонент system.auth.registration вообще.