Задать вопрос
@Msondre

Почему не срабатывает обработчик события в init.php?

Я делаю регистрацию по почте без поля логин, поэтому добавил обработчик, который будет вставлять почту в поле логин, но до этого обработчика даже не доходит, потому что в самом начале функции написать
echo 1; die();, то все равно выдает ошибку валидации, что поле логин не заполнено

Шаблон
<form method="post" action="<?= POST_FORM_ACTION_URI ?>" name="regform" enctype="multipart/form-data">
            <?
            if ($arResult["BACKURL"] <> ''):
                ?>
                <input type="hidden" name="backurl" value="<?= $arResult["BACKURL"] ?>"/>
            <?
            endif;
            ?>
            <div class="bx-form-formgroup-container">
                <div class="bx-form-input-container">
                    <input size="30" type="email" name="REGISTER[EMAIL]" value="<?= $arResult["VALUES"]["EMAIL"] ?>"
                           autocomplete="off" class="form-control"
                           placeholder="<?= GetMessage("REGISTER_FIELD_EMAIL") ?>*"/>
                </div>
            </div>

            <div class="bx-form-formgroup-container">
                <div class="bx-form-input-container">
                    <input size="30" type="password" name="REGISTER[PASSWORD]"
                           value="<?= $arResult["VALUES"]["PASSWORD"] ?>" autocomplete="off" class="form-control"
                           placeholder="<?= GetMessage("REGISTER_FIELD_PASSWORD") ?>*"/>
                </div>
            </div>
            <div class="bx-form-formgroup-container">
                <div class="bx-form-input-container">
                    <input size="30" type="password" name="REGISTER[CONFIRM_PASSWORD]"
                           value="<?= $arResult["VALUES"]["CONFIRM_PASSWORD"] ?>" autocomplete="off"
                           class="form-control" placeholder="<?= GetMessage("REGISTER_FIELD_CONFIRM_PASSWORD") ?>*"/>
                </div>
            </div>

            <div class="bx-form-formgroup-container form-checkbox-container policy-container">
                <div class="checkbox">
                    <label class="checkbox">
                        <input type="checkbox" id="policy_checkbox" name="policy_checkbox" required value="Y"/>
                        <div class="text">
                            <p>
                                Я согласен <a href="/obrabotka-personalnykh-dannykh">на обработку персональных
                                    данных</a>.
                            </p>
                        </div>
                    </label>
                </div>
            </div>


            <div class="bx-form-formgroup-container">
                <input type="submit" name="register_submit_button" value="<?= GetMessage("AUTH_REGISTER") ?>"
                       class="btn-border"/>
            </div>

            <div class="form-bottom register">
                <div class="bx-form-link-container">
                    <a href="/account/auth"
                       rel="nofollow">Уже есть аккаунт</a>
                </div>
            </div>
        </form>


Компонент
<? $APPLICATION->IncludeComponent(
	"bitrix:main.register", 
	"register", 
	array(
		"AUTH" => "Y",
		"REQUIRED_FIELDS" => [],
		"SHOW_FIELDS" => [],
		"SET_TITLE" => "Y",
		"SUCCESS_PAGE" => "/account/",
		"USER_PROPERTY" => array(
		),
		"USER_PROPERTY_NAME" => "",
		"USE_BACKURL" => "Y",
		"COMPONENT_TEMPLATE" => "register"
	),
	false
); ?>


init.php

AddEventHandler("main", "OnBeforeUserRegister", "OnBeforeUserRegisterHandler");
AddEventHandler("main", "OnBeforeUserUpdate", "OnBeforeUserUpdateHandler");

function OnBeforeUserRegisterHandler(&$arFields)
{
    $arFields["LOGIN"] = $arFields["EMAIL"];
    return true;
}
  • Вопрос задан
  • 106 просмотров
Подписаться 2 Простой Комментировать
Пригласить эксперта
Ответы на вопрос 1
Ge1i0N
@Ge1i0N
У вас в вопросе уже написан ответ - потому что до обработчика не доходит, ошибку отбивает сам компонент до начала регистрации.
Уже был недавно такой вопрос, не ваш ли? Там ответили что нужно передавать логин в скрытом поле при регистрации, дублируя в него почту или что вам нужно.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы