Всем доброго дня.
Подскажите как сделать обработку.
Создал несколько групп и при регистрации пользователь выбирает к какой он группе принадлежит
в файле init.php
сделал обработку:
при регистрации создается раздел с логином пользователя и идет привязка раздела с пользователем.
Но если пользователь вводит уже имеющийся логин, то он не регистрируется, но раздел создается.
А при вводе уже нового логина раздел не создается.
Например:
user1 уже зарегистрирован
новый пользователь пытается зарегистрироваться под логином user1
выходит сообщение , что такой пользователь уже есть, но создается раздел с именем user1
а после изменения логина на user2
регистрация успешна, но раздел не создается.
Как сделать чтобы была проверка при создании раздела на успешность регистрации?
пробовал так:
но ничего не происходит. только пользователь добавляется.
И как сделать чтобы при создании раздела в нем создавались еще дополнительные разделы?
Подскажите как сделать обработку.
Создал несколько групп и при регистрации пользователь выбирает к какой он группе принадлежит
в файле init.php
сделал обработку:
Код |
---|
<? AddEventHandler("main", "OnAfterUserAdd", Array("AddElementInBlock", "OnAfterUserAddHandler")); AddEventHandler("main", "OnBeforeUserRegister", "OnBeforeUserUpdateHandler"); AddEventHandler("main", "OnBeforeUserUpdate", "OnBeforeUserUpdateHandler"); function OnBeforeUserUpdateHandler(&$arFields) { if($arFields['UF_SPISOK_SVADBA1'] == 64) { $arFields["GROUP_ID"] = array(12); class AddElementInBlock { // создаем обработчик события "OnAfterUserAdd" function OnAfterUserAddHandler(&$arFields) { if (CModule::IncludeModule('iblock')) { $bs = new CIBlockElement; $PROP = array(); $PROP[204] = $arFields["ID"]; $arFieldsi = Array( "ACTIVE" => "Y", "IBLOCK_ID" => 23, //ID инфоблока в котором создастся элемент "IBLOCK_SECTION_ID" => 132, "PROPERTY_VALUES"=> $PROP, "NAME" => $arFields["LOGIN"], //Название раздела с логином пользователя "CODE" => $arFields["LOGIN"], //Символьный код раздела с логином пользователя "SORT" => $SORT, "DETAIL_PICTURE" => $arFields["PERSONAL_PHOTO"], // картинка, загружаемая из файлового поля веб-формы с именем DETAIL_PICTURE ); if ($ID > 0) { $res = $bs->Update($ID, $arFieldsi); } else { $ID = $bs->Add($arFieldsi); $res = ($ID > 0); } if (!$res) echo $bs->LAST_ERROR; } } } } } ?> |
Но если пользователь вводит уже имеющийся логин, то он не регистрируется, но раздел создается.
А при вводе уже нового логина раздел не создается.
Например:
user1 уже зарегистрирован
новый пользователь пытается зарегистрироваться под логином user1
выходит сообщение , что такой пользователь уже есть, но создается раздел с именем user1
а после изменения логина на user2
регистрация успешна, но раздел не создается.
Как сделать чтобы была проверка при создании раздела на успешность регистрации?
пробовал так:
Код |
---|
<? AddEventHandler("main", "OnAfterUserAdd", Array("AddElementInBlock", "OnAfterUserAddHandler")); AddEventHandler("main", "OnAfterUserRegister", Array("AddElementInBlock", "OnAfterUserRegisterHandler")); AddEventHandler("main", "OnBeforeUserRegister", "OnBeforeUserUpdateHandler"); AddEventHandler("main", "OnBeforeUserUpdate", "OnBeforeUserUpdateHandler"); function OnBeforeUserUpdateHandler(&$arFields) { if($arFields['UF_SPISOK_SVADBA1'] == 64) { $arFields["GROUP_ID"] = array(12); class AddElementInBlock { // создаем обработчик события "OnAfterUserRegister" function OnAfterUserRegisterHandler(&$arFields) { // если регистрация успешна то if($arFields["USER_ID"]>0) { // создаем обработчик события "OnAfterUserAdd" function OnAfterUserAddHandler(&$arFields) { if (CModule::IncludeModule('iblock')) { $bs = new CIBlockElement; $PROP = array(); $PROP[204] = $arFields["ID"]; $arFieldsi = Array( "ACTIVE" => "Y", "IBLOCK_ID" => 23, //ID инфоблока в котором создастся элемент "IBLOCK_SECTION_ID" => 132, "PROPERTY_VALUES"=> $PROP, "NAME" => $arFields["LOGIN"], //Название раздела с логином пользователя "CODE" => $arFields["LOGIN"], //Символьный код раздела с логином пользователя "SORT" => $SORT, "DETAIL_PICTURE" => $arFields["PERSONAL_PHOTO"], // картинка, загружаемая из файлового поля веб-формы с именем DETAIL_PICTURE ); if ($ID > 0) { $res = $bs->Update($ID, $arFieldsi); } else { $ID = $bs->Add($arFieldsi); $res = ($ID > 0); } if (!$res) echo $bs->LAST_ERROR; } } } return $arFields; } } } } ?> |
И как сделать чтобы при создании раздела в нем создавались еще дополнительные разделы?