Сделать авторизацию в Битриксе через маску по номеру телефона, для логина номера телефона состоящего из десяти цифр.
Например, +7 (***)***-**-**.
В файле init.php создаем событие которое ловит вводимые пользователем символы в поле авторизации.
Если поле логина не пустое, то берем значение и проверяем регулярным выражением, очищаем все ненужные символы, оставляем только цифры, т.к из -за маски в поле присутствуют символы тире и скобки. Затем проверяем длину строки с цифрами, если строка равна 10 символам то в поле логина присваевается значение введенное пользователем,учитывается для авторизации администраторов, где нет маски, если не равно 10 до убирается первое число, которое указано в маске по умолчанию.
$eventManager->addEventHandler("main", "OnBeforeUserLogin", Array("UserLoginModification", "OnBeforeUserLoginHandler"));
class UserLoginModification
{
// создаем обработчик события "OnBeforeUserLogin"
function OnBeforeUserLoginHandler(&$arFields)
{
if($arFields["LOGIN"] != '')
{
$rez = preg_replace('/[^0-9]/', '', $arFields["LOGIN"]);
if(strlen($rez) == 10)
{
$arFields["LOGIN"] = $rez;
}else
$arFields["LOGIN"] = substr($rez, 1);
}
}
}