function AddNewUser($SITE_ID, $arFields, &$strError) { $ID_ADDED = 0; $iDepartmentId = intval($arFields["DEPARTMENT_ID"]); $bExtranet = $iDepartmentId <= 0; $strEmail = trim($arFields["ADD_EMAIL"]); $strName = trim($arFields["ADD_NAME"]); $strLastName = trim($arFields["ADD_LAST_NAME"]); $strPosition = trim($arFields["ADD_POSITION"]); $strPassword = self::GeneratePassword($SITE_ID, $bExtranetUser); self::setSendPassword($arFields["ADD_SEND_PASSWORD"] == "Y"); if (strlen($strEmail) <= 0) { if (!isset($arFields["ADD_MAILBOX_ACTION"]) || !in_array($arFields["ADD_MAILBOX_ACTION"], array("create", "connect")) || strlen($arFields['ADD_MAILBOX_USER']) <= 0 || strlen($arFields['ADD_MAILBOX_DOMAIN']) <= 0) { $strError = GetMessage("BX24_INVITE_DIALOG_ERROR_EMPTY_EMAIL"); } else { // email from mailbox $strEmail = $arFields['ADD_MAILBOX_USER'] . "@" . $arFields['ADD_MAILBOX_DOMAIN']; } } if (!$strError) { $arUser = array("LOGIN" => $strEmail, "NAME" => $strName, "LAST_NAME" => $strLastName, "EMAIL" => $strEmail, "PASSWORD" => $strPassword, "GROUP_ID" => CIntranetInviteDialog::getUserGroups($SITE_ID, $bExtranet), "WORK_POSITION" => $strPosition, "UF_DEPARTMENT" => $iDepartmentId > 0 ? array($iDepartmentId) : array(0)); if (!self::getSendPassword()) { $arUser["CONFIRM_CODE"] = randString(8); } $obUser = new CUser(); $ID_ADDED = $obUser->Add($arUser); if (!$ID_ADDED) { if ($e = $GLOBALS["APPLICATION"]->GetException()) { $strError = $e->GetString(); } else { $strError = $obUser->LAST_ERROR; } } else { if (self::getSendPassword()) { $db_events = GetModuleEvents("main", "OnUserInitialize", true); foreach ($db_events as $arEvent) { ExecuteModuleEventEx($arEvent, array($ID_ADDED, $arUser)); } } $SiteIdToSend = $bExtranet && CModule::IncludeModule("extranet") ? CExtranet::GetExtranetSiteID() : CSite::GetDefSite(); $rsSites = CSite::GetByID($SiteIdToSend); $arSite = $rsSites->Fetch(); $serverName = strlen($arSite["SERVER_NAME"]) > 0 ? $arSite["SERVER_NAME"] : (defined("SITE_SERVER_NAME") && strlen(SITE_SERVER_NAME) > 0 ? SITE_SERVER_NAME : COption::GetOptionString("main", "server_name", "")); $event = new CEvent(); if (self::getSendPassword()) { $url = (CMain::IsHTTPS() ? "https" : "http") . "://" . $serverName . $arSite["DIR"]; $event->SendImmediate("INTRANET_USER_ADD", $SITE_ID, array("EMAIL_TO" => $arUser["EMAIL"], "LINK" => $url, "PASSWORD" => $strPassword, "USER_TEXT" => GetMessage("BX24_INVITE_DIALOG_INVITE_MESSAGE_TEXT"))); } else { $dbUser = CUser::GetByID($ID_ADDED); $arUser = $dbUser->Fetch(); if (IsModuleInstalled("bitrix24")) { $event->SendImmediate("BITRIX24_USER_INVITATION", $SITE_ID, array("EMAIL_FROM" => $GLOBALS["USER"]->GetEmail(), "EMAIL_TO" => $arUser["EMAIL"], "LINK" => CHTTP::URN2URI("/bitrix/tools/intranet_invite_dialog.php?user_id=" . $ID_ADDED . "&checkword=" . urlencode($arUser["CONFIRM_CODE"]), $serverName), "USER_TEXT" => GetMessage("BX24_INVITE_DIALOG_INVITE_MESSAGE_TEXT"))); } else { $event->SendImmediate("INTRANET_USER_INVITATION", $SITE_ID, array("EMAIL_TO" => $arUser["EMAIL"], "LINK" => CHTTP::URN2URI("/bitrix/tools/intranet_invite_dialog.php?user_id=" . $ID_ADDED . "&checkword=" . urlencode($arUser["CONFIRM_CODE"]), $serverName), "USER_TEXT" => GetMessage("BX24_INVITE_DIALOG_INVITE_MESSAGE_TEXT"))); } } } } return $ID_ADDED; }
public static function CheckFields(&$arFields, $ID = false) { global $DB, $APPLICATION; $arMsg = array(); if ((is_set($arFields, "USER_ID") || $ID === false) && intval($arFields["USER_ID"]) <= 0) { $APPLICATION->ThrowException(GetMessage("LEARNING_BAD_USER_ID"), "EMPTY_USER_ID"); return false; } elseif (is_set($arFields, "USER_ID")) { $dbResult = CUser::GetByID($arFields["USER_ID"]); if (!$dbResult->Fetch()) { $APPLICATION->ThrowException(GetMessage("LEARNING_BAD_USER_ID_EX"), "ERROR_NO_USER_ID"); return false; } $dbResult = CStudent::GetList(array(), array("USER_ID" => $arFields["USER_ID"])); if ($dbResult->Fetch()) { $APPLICATION->ThrowException(GetMessage("LEARNING_BAD_USER_ID_EXISTS"), "ERROR_USER_ID_EXISTS"); return false; } } if ($ID === false && !is_set($arFields, "TRANSCRIPT")) { $arFields["TRANSCRIPT"] = CStudent::GenerateTranscipt(); } elseif (is_set($arFields, "TRANSCRIPT") && !preg_match("~^[0-9]{6,}\$~", $arFields["TRANSCRIPT"])) { $arFields["TRANSCRIPT"] = CStudent::GenerateTranscipt(); } if (is_set($arFields, "PUBLIC_PROFILE") && $arFields["PUBLIC_PROFILE"] != "N") { $arFields["ACTIVE"] = "Y"; } return true; }
public static function GetFormatedUserName($userId) { static $userCache = array(); $userId = IntVal($userId); if($userId > 0) { if (!isset($userCache[$userId]) || !is_array($userCache[$userId])) { $dbUser = CUser::GetByID($userId); if ($arUser = $dbUser->Fetch()) { $userCache[$userId] = CUser::FormatName( CSite::GetNameFormat(false), array( "NAME" => $arUser["NAME"], "LAST_NAME" => $arUser["LAST_NAME"], "SECOND_NAME" => $arUser["SECOND_NAME"], "LOGIN" => $arUser["LOGIN"] ), true ); } } } return $userCache[$userId]; }
function CheckFields(&$arFields, $ID = false) { global $DB, $APPLICATION; if ($ID === false && !is_set($arFields, "STUDENT_ID")) { $APPLICATION->ThrowException(GetMessage("LEARNING_BAD_USER_ID"), "EMPTY_STUDENT_ID"); return false; } elseif (is_set($arFields, "STUDENT_ID")) { $dbResult = CUser::GetByID($arFields["STUDENT_ID"]); if (!$dbResult->Fetch()) { $APPLICATION->ThrowException(GetMessage("LEARNING_BAD_USER_ID_EX"), "ERROR_NO_STUDENT_ID"); return false; } } if ($ID === false && !is_set($arFields, "TEST_ID")) { $APPLICATION->ThrowException(GetMessage("LEARNING_BAD_TEST_ID"), "EMPTY_TEST_ID"); return false; } elseif (is_set($arFields, "TEST_ID")) { $r = CTest::GetByID($arFields["TEST_ID"]); if (!$r->Fetch()) { $APPLICATION->ThrowException(GetMessage("LEARNING_BAD_TEST_ID_EX"), "ERROR_NO_TEST_ID"); return false; } } if (is_set($arFields, "STUDENT_ID") && is_set($arFields, "TEST_ID")) { $res = CGradeBook::GetList(array(), array("STUDENT_ID" => $arFields["STUDENT_ID"], "TEST_ID" => $arFields["TEST_ID"])); if ($res->Fetch()) { $APPLICATION->ThrowException(GetMessage("LEARNING_BAD_GRADEBOOK_DUPLICATE"), "ERROR_GRADEBOOK_DUPLICATE"); return false; } } if (is_set($arFields, "COMPLETED") && $arFields["COMPLETED"] != "Y") { $arFields["COMPLETED"] = "N"; } return true; }
public function InitializeFromId($userId) { $dbUser = CUser::GetByID($userId); if ($arUser = $dbUser->Fetch()) { $this->InitializeFromArray($arUser); } }
function sendOnAfterResultStatusChange($WEB_FORM_ID, $RESULT_ID, $NEW_STATUS_ID = false, $CHECK_RIGHTS = 'Y') { $NEW_STATUS_ID = intval($NEW_STATUS_ID); $dbRes = CForm::GetByID($WEB_FORM_ID); if (!($arForm = $dbRes->Fetch())) { return; } CTimeZone::Disable(); $dbRes = CFormResult::GetByID($RESULT_ID); CTimeZone::Enable(); if (!($arResult = $dbRes->Fetch()) || !$arResult['USER_ID']) { return; } $dbRes = CUser::GetByID($arResult['USER_ID']); if (!($arUser = $dbRes->Fetch())) { return; } if (!$NEW_STATUS_ID) { $NEW_STATUS_ID = CFormStatus::GetDefault($WEB_FORM_ID); } $dbRes = CFormStatus::GetByID($NEW_STATUS_ID); if (!($arStatus = $dbRes->Fetch()) || strlen($arStatus['MAIL_EVENT_TYPE']) <= 0) { return; } $arTemplates = CFormStatus::GetMailTemplateArray($NEW_STATUS_ID); if (!is_array($arTemplates) || count($arTemplates) <= 0) { return; } $arEventFields = array("EMAIL_TO" => $arUser['EMAIL'], "RS_FORM_ID" => $arForm["ID"], "RS_FORM_NAME" => $arForm["NAME"], "RS_FORM_VARNAME" => $arForm["SID"], "RS_FORM_SID" => $arForm["SID"], "RS_RESULT_ID" => $arResult["ID"], "RS_DATE_CREATE" => $arResult["DATE_CREATE"], "RS_USER_ID" => $arResult['USER_ID'], "RS_USER_EMAIL" => $arUser['EMAIL'], "RS_USER_NAME" => $arUser["NAME"] . " " . $arUser["LAST_NAME"], "RS_STATUS_ID" => $arStatus["ID"], "RS_STATUS_NAME" => $arStatus["TITLE"]); $dbRes = CEventMessage::GetList($by = "id", $order = "asc", array('ID' => implode('|', $arTemplates), "ACTIVE" => "Y", "EVENT_NAME" => $arStatus["MAIL_EVENT_TYPE"])); while ($arTemplate = $dbRes->Fetch()) { CEvent::Send($arTemplate["EVENT_NAME"], $arTemplate["SITE_ID"], $arEventFields, "Y", $arTemplate["ID"]); } }
public static function fillFilterReferenceColumn(&$filterElement, Entity\ReferenceField $field) { if ($field->GetDataType() == 'Bitrix\\Main\\User') { // USER if ($filterElement['value']) { $res = CUser::GetByID($filterElement['value']); $user = $res->fetch(); if ($user) { $username = CUser::FormatName(CSite::GetNameFormat(false), $user, true); $filterElement['value'] = array('id' => $user['ID'], 'name' => $username); } else { $filterElement['value'] = array('id' => $filterElement['value'], 'name' => GetMessage('REPORT_USER_NOT_FOUND')); } } else { $filterElement['value'] = array('id' => ''); } } else { if ($field->GetDataType() == 'Bitrix\\Socialnetwork\\Workgroup') { // GROUP if ($filterElement['value']) { $group = CSocNetGroup::GetByID($filterElement['value']); if ($group) { $filterElement['value'] = array(array('id' => $group['ID'], 'title' => $group['NAME'])); } else { $filterElement['value'] = array(array('id' => $filterElement['value'], 'title' => GetMessage('REPORT_PROJECT_NOT_FOUND'))); } } else { $filterElement['value'] = array(array('id' => '')); } } } }
function CheckFields(&$arFields, $ID = false) { /** @global CMain $APPLICATION */ global $APPLICATION; $arMsg = array(); if (!is_set($arFields, "TASK_ID")) { $arMsg[] = array("text" => GetMessage("TASKS_BAD_TASK_ID"), "id" => "ERROR_TASKS_BAD_TASK_ID"); } else { /** @noinspection PhpDeprecationInspection */ $r = CTasks::GetByID($arFields["TASK_ID"], false); if (!$r->Fetch()) { $arMsg[] = array("text" => GetMessage("TASKS_BAD_TASK_ID_EX"), "id" => "ERROR_TASKS_BAD_TASK_ID_EX"); } } if (!is_set($arFields, "USER_ID")) { $arMsg[] = array("text" => GetMessage("TASKS_BAD_USER_ID"), "id" => "ERROR_TASKS_BAD_USER_ID"); } else { /** @noinspection PhpDynamicAsStaticMethodCallInspection */ $r = CUser::GetByID($arFields["USER_ID"]); if (!$r->Fetch()) { $arMsg[] = array("text" => GetMessage("TASKS_BAD_USER_ID_EX"), "id" => "ERROR_TASKS_BAD_USER_ID_EX"); } } if (!empty($arMsg)) { $e = new CAdminException($arMsg); $APPLICATION->ThrowException($e); return false; } //Defaults if (!is_set($arFields, "TYPE") || !in_array($arFields["TYPE"], array("A", "U"))) { $arFields["TYPE"] = "A"; } return true; }
function __mpl_get_avatar() { global $USER; static $avatar = null; if ($avatar == null) { $avatar = '/bitrix/images/1.gif'; if ($USER->IsAuthorized()) { $u = CUser::GetByID($USER->GetID())->Fetch(); if ($u["PERSONAL_PHOTO"]) { $res = CFile::ResizeImageGet( $u["PERSONAL_PHOTO"], array('width' => 58, 'height' => 58), BX_RESIZE_IMAGE_EXACT, false ); if ($res["src"]) $avatar = $res["src"]; } } } return $avatar; }
function CheckFields($ACTION, &$arFields, $ID = 0) { if ((is_set($arFields, "USER_ID") || $ACTION == "ADD") && IntVal($arFields["USER_ID"]) <= 0) { $GLOBALS["APPLICATION"]->ThrowException("Empty user field", "EMPTY_USER_ID"); return false; } if ((is_set($arFields, "ITEM") || $ACTION == "ADD") && strlen($arFields["ITEM"]) <= 0) { $GLOBALS["APPLICATION"]->ThrowException("Empty item field", "EMPTY_ITEM"); return false; } if ((is_set($arFields, "ITEM_MD5") || $ACTION == "ADD") && strlen($arFields["ITEM_MD5"]) <= 0) { $GLOBALS["APPLICATION"]->ThrowException("Empty item md5 field", "EMPTY_ITEM_MD5"); return false; } if ((is_set($arFields, "DATE_INSERT") || $ACTION == "ADD") && strlen($arFields["DATE_INSERT"]) <= 0) { $GLOBALS["APPLICATION"]->ThrowException("Empty date insert field", "EMPTY_DATE_INSERT"); return false; } if (is_set($arFields, "ITEM_MD5")) { $arFields["ITEM_MD5"] = md5($arFields["ITEM_MD5"]); } if (is_set($arFields, "USER_ID")) { $dbUser = CUser::GetByID($arFields["USER_ID"]); if (!$dbUser->Fetch()) { $GLOBALS["APPLICATION"]->ThrowException(str_replace("#ID#", $arFields["USER_ID"], GetMessage("SGMA_NO_USER")), "ERROR_NO_USER_ID"); return false; } } return True; }
public static function CheckFields($ACTION, &$arFields, $ID = 0) { if ((is_set($arFields, "USER_ID") || $ACTION == "ADD") && IntVal($arFields["USER_ID"]) <= 0) { $GLOBALS["APPLICATION"]->ThrowException("Empty user field", "EMPTY_USER_ID"); return false; } if ((is_set($arFields, "CURRENCY") || $ACTION == "ADD") && strlen($arFields["CURRENCY"]) <= 0) { $GLOBALS["APPLICATION"]->ThrowException("Empty currency field", "EMPTY_CURRENCY"); return false; } if ((is_set($arFields, "TRANSACT_DATE") || $ACTION == "ADD") && strlen($arFields["TRANSACT_DATE"]) <= 0) { $GLOBALS["APPLICATION"]->ThrowException("Empty transaction date field", "EMPTY_TRANSACT_DATE"); return false; } if (is_set($arFields, "AMOUNT") || $ACTION == "ADD") { $arFields["AMOUNT"] = str_replace(",", ".", $arFields["AMOUNT"]); $arFields["AMOUNT"] = DoubleVal($arFields["AMOUNT"]); } if ((is_set($arFields, "DEBIT") || $ACTION == "ADD") && $arFields["DEBIT"] != "Y") { $arFields["DEBIT"] = "N"; } if (is_set($arFields, "USER_ID")) { $dbUser = CUser::GetByID($arFields["USER_ID"]); if (!$dbUser->Fetch()) { $GLOBALS["APPLICATION"]->ThrowException(str_replace("#ID#", $arFields["USER_ID"], GetMessage("SKGUT_NO_USER")), "ERROR_NO_USER_ID"); return false; } } return True; }
function __wd_get_root_section($IBLOCK_ID, $object, $object_id) { $result = CIBlockWebdavSocnet::GetSectionID($IBLOCK_ID, $object, $object_id); if (intval($result) > 0) { return $result; } else { __wd_check_uf_use_bp_property($arParams["IBLOCK_ID"]); $arFields = array("IBLOCK_ID" => $IBLOCK_ID, "ACTIVE" => "Y", "SOCNET_GROUP_ID" => false, "IBLOCK_SECTION_ID" => 0, "UF_USE_BP" => "N"); if ($object == "user") { $dbUser = CUser::GetByID($object_id); $arUser = $dbUser->Fetch(); $arFields["NAME"] = trim($arUser['LAST_NAME'] . " " . $arUser['FIRST_NAME']); $arFields["NAME"] = trim(!empty($arFields["NAME"]) ? $arFields["NAME"] : $arUser['LOGIN']); $arFields['CREATED_BY'] = $arUser['ID']; $arFields['MODIFIED_BY'] = $arUser['ID']; if (CIBlock::GetArrayByID($IBLOCK_ID, "RIGHTS_MODE") === "E") { $arTasks = CWebDavIblock::GetTasks(); $arFields['RIGHTS'] = array('n0' => array('GROUP_CODE' => 'U' . $object_id, 'TASK_ID' => $arTasks['X'])); } } else { /* $res = CSocNetGroup::GetByID($arResult["VARIABLES"]["group_id"]); if (!$res) { $arParams["ERROR_MESSAGE"] = GetMessage("SONET_GROUP_NOT_EXISTS"); return 0; } */ $arFields["SOCNET_GROUP_ID"] = $object_id; //$arGroup = CSocNetGroup::GetByID($object_id); $arFields["NAME"] = GetMessage("SONET_GROUP_PREFIX") . $object_id; $dbGroup = CSocNetGroup::GetList(array(), array("ID" => (int) $object_id), false, false, array("ID", "SITE_ID", "NAME")); if ($arGroup = $dbGroup->Fetch()) { $arFields["NAME"] = GetMessage("SONET_GROUP_PREFIX") . $arGroup["NAME"]; } if (CIBlock::GetArrayByID($IBLOCK_ID, "RIGHTS_MODE") === "E") { $arTasks = CWebDavIblock::GetTasks(); $arFields['RIGHTS'] = array('n0' => array('GROUP_CODE' => 'SG' . $arFields["SOCNET_GROUP_ID"] . '_A', 'TASK_ID' => $arTasks['X']), 'n1' => array('GROUP_CODE' => 'SG' . $arFields["SOCNET_GROUP_ID"] . '_E', 'TASK_ID' => $arTasks['W']), 'n2' => array('GROUP_CODE' => 'SG' . $arFields["SOCNET_GROUP_ID"] . '_K', 'TASK_ID' => $arTasks['W'])); } } if (\Bitrix\Main\Config\Option::get('disk', 'successfully_converted', false) && CModule::includeModule('disk')) { \Bitrix\Disk\Driver::getInstance()->addGroupStorage($arFields["SOCNET_GROUP_ID"]); } $GLOBALS["UF_USE_BP"] = $arFields["UF_USE_BP"]; $GLOBALS["USER_FIELD_MANAGER"]->EditFormAddFields("IBLOCK_" . $IBLOCK_ID . "_SECTION", $arFields); $bs = new CIBlockSection(); $sectionID = $bs->Add($arFields); if (!$sectionID) { $arParams["ERROR_MESSAGE"] = $bs->LAST_ERROR; return 0; } WDClearComponentCache(array("webdav.element.edit", "webdav.element.hist", "webdav.element.upload", "webdav.element.view", "webdav.menu", "webdav.section.edit", "webdav.section.list")); return true; /* if ($ob->workflow == 'bizproc') { __wd_create_default_bp_user_and_groups($arBizProcParameters); } */ } }
function UserInfo($USER_ID) { if(intval($USER_ID) <= 0) return ""; $user = CUser::GetByID($USER_ID); if($user_arr = $user->Fetch()) return '[<a title="'.GetMessage("MAIN_USER_PROFILE").'" href="user_edit.php?ID='.$user_arr["ID"].'&lang='.LANG.'">'.$user_arr["ID"].'</a>] ('.htmlspecialcharsbx($user_arr["LOGIN"]).') '.htmlspecialcharsbx($user_arr["NAME"]).' '.htmlspecialcharsbx($user_arr["LAST_NAME"]); }
function __wd_create_default_bp_user_and_groups($arr) { if($handle = opendir($_SERVER['DOCUMENT_ROOT'].'/'.BX_ROOT.'/modules/bizproc/templates')) { $documentType = array("webdav", "CIBlockDocumentWebdavSocnet", $arr["document_type"]); while(false !== ($file = readdir($handle))) { if(!is_file($_SERVER['DOCUMENT_ROOT'].'/bitrix/modules/bizproc/templates/'.$file)) { continue; } $arFields = false; include($_SERVER['DOCUMENT_ROOT'].'/bitrix/modules/bizproc/templates/'.$file); if(is_array($arFields)) { $arFields["DOCUMENT_TYPE"] = $documentType; $arFields["SYSTEM_CODE"] = $file; $arFields["USER_ID"] = $GLOBALS['USER']->GetID(); array_walk_recursive($arFields["TEMPLATE"], "__wd_replace_user_and_groups", $arr); if ($file == "status.php") { $arFields["AUTO_EXECUTE"] = CBPDocumentEventType::Create; if (!empty($arFields["PARAMETERS"]) && !empty($arFields["PARAMETERS"]["Approvers"])) { $name = ""; if ($GLOBALS["USER"]->IsAuthorized() && $arr["owner"] == $GLOBALS["USER"]->GetID()) { $name = trim($GLOBALS["USER"]->GetFirstName()." ".$GLOBALS["USER"]->GetLastName()); $name = (empty($name) ? $GLOBALS["USER"]->GetLogin() : $name); } else { $dbUser = CUser::GetByID($arr["owner"]); $arUser = $dbUser->Fetch(); $name = trim($arUser["NAME"]." ".$arUser["LAST_NAME"]); $name = (empty($name) ? $arUser["LOGIN"] : $name); } $arFields["PARAMETERS"]["Approvers"]["Default"] = $name.' ['.$arr["owner"].']'; } } try { CBPWorkflowTemplateLoader::Add($arFields); } catch (Exception $e) { } } } closedir($handle); } }
public static function getByUser($user_id = false) { global $USER; if ($USER->IsAuthorized() && !$user_id) { $user_id = $USER->GetID(); } $rsUser = \CUser::GetByID($user_id); $arUser = $rsUser->Fetch(); return json_decode($arUser["UF_STATISTIC"], true); }
function CheckFields(&$arFields, $ID = false) { global $DB, $APPLICATION; if ($ID===false && !is_set($arFields, "TEST_ID")) { $APPLICATION->ThrowException(GetMessage("LEARNING_BAD_TEST_ID"), "EMPTY_TEST_ID"); return false; } elseif (is_set($arFields, "TEST_ID")) { $r = CTest::GetByID($arFields["TEST_ID"]); if(!$r->Fetch()) { $APPLICATION->ThrowException(GetMessage("LEARNING_BAD_TEST_ID_EX"), "ERROR_NO_TEST_ID"); return false; } } if ($ID===false && !is_set($arFields, "STUDENT_ID")) { $APPLICATION->ThrowException(GetMessage("LEARNING_BAD_USER_ID"), "EMPTY_STUDENT_ID"); return false; } elseif (is_set($arFields, "STUDENT_ID")) { $dbResult = CUser::GetByID($arFields["STUDENT_ID"]); if (!$dbResult->Fetch()) { $APPLICATION->ThrowException(GetMessage("LEARNING_BAD_USER_ID_EX"), "ERROR_NO_STUDENT_ID"); return false; } } if (is_set($arFields, "DATE_START") && (!$DB->IsDate($arFields["DATE_START"], false, LANG, "FULL"))) { $APPLICATION->ThrowException(GetMessage("LEARNING_BAD_DATE_START"), "ERROR_DATE_START"); return false; } if (is_set($arFields, "DATE_END") && strlen($arFields["DATE_END"])>0 && (!$DB->IsDate($arFields["DATE_END"], false, LANG, "FULL"))) { $APPLICATION->ThrowException(GetMessage("LEARNING_BAD_DATE_END"), "ERROR_DATE_END"); return false; } //Defaults if (is_set($arFields, "STATUS") && !in_array($arFields["STATUS"], Array("B", "D", "F", "N"))) $arFields["STATUS"] = "B"; if (is_set($arFields, "COMPLETED") && $arFields["COMPLETED"] != "Y") $arFields["COMPLETED"] = "N"; return true; }
/** * [getFavorites description] * @param int $idUser * @return array */ function getFavorites($idUser) { if ($idUser && CModule::IncludeModule('iblock')) { $rsUser = CUser::GetByID(intval($idUser)); $arUser = $rsUser->Fetch(); if ($arUser["UF_FAVORITES"]) { return array("result" => true, "items" => $arUser["UF_FAVORITES"]); } } return array("result" => false); }
/** * Обработчик события подтверждения оплаты товара */ function OnSalePayOrderHandler($id, $val) { $currentUserId = $GLOBALS['USER']->GetID(); //Идентификатор текущего пользователя, по идее администратор $idRatingGroup = 5; //группа акции $curTo = "UAH"; //тип гривневой цены $arOrder = CSaleOrder::GetByID($id); //информация о заказе $price = CCurrencyRates::ConvertCurrency(floatval($arOrder["SUM_PAID"]), $arOrder["CURRENCY"], $curTo); $price = intval(ceil($price)); //стоимость заказа $userId = intval($arOrder["USER_ID"]); //пользователь, который оплатил заказ $arUserData = CUser::GetByID($userId)->Fetch(); //Информация о пользователе $userGroups = CUser::GetUserGroup($userId); //ИД групп, к которым принадлежит пользователь //Если пользователя нет в акционной группе, и он совершил заказ более чем на 900 грн, то добавить его в группу if (!in_array($idRatingGroup, $userGroups)) { if ($price >= 900 && $price <= 4000 && $val === 'Y') { $userGroups[] = $idRatingGroup; CUser::SetUserGroup($userId, $userGroups); } } $points = $price * 5; $payedUser = new CUser(); //Если оплата подтверждается, то добавить баллы if ($val === 'Y' && in_array($idRatingGroup, $userGroups)) { $points = intval($arUserData['UF_ACTION_POINTS']) + $points; $payedUser->Update($userId, array("UF_ACTION_POINTS" => $points, "UF_DATE_LAST_BUY" => $arOrder["DATE_UPDATE_FORMAT"])); } else { if ($val === 'N') { $price = CCurrencyRates::ConvertCurrency(floatval($arOrder["PRICE"]), $arOrder["CURRENCY"], $curTo); $price = intval(ceil($price)); //вычитаем полную стоимость $points = $price * 5; if ($arUserData['UF_ACTION_POINTS'] >= $points) { $points = intval($arUserData['UF_ACTION_POINTS']) - $points; $payedUser->Update($userId, array("UF_ACTION_POINTS" => $points)); //Если очков стало меньше 4500, то исключаем пользователя из группы участников if (in_array($idRatingGroup, $userGroups) && $points < 4500) { $indexGroup = array_search($idRatingGroup, $userGroups); if (isset($userGroups[$indexGroup])) { unset($userGroups[$indexGroup]); CUser::SetUserGroup($userId, $userGroups); } } } } } unset($payedUser); }
function GetUserNameByID($USER_ID){ if(intval($USER_ID)){ $rsUser = CUser::GetByID($USER_ID); if($arUser = $rsUser->Fetch()){ return (strlen($arUser["NAME"]) > 0 && strlen($arUser["LAST_NAME"]) > 0 ? $arUser["NAME"]." ".$arUser["LAST_NAME"] : $arUser["LOGIN"]); }else{ return ""; } }else{ return ""; } }
/** * @param int $userID - ID пользователя * @return string - Фамилия Имя Отчество пользователя */ public static function getFIO($userID) { $rsUser = CUser::GetByID($userID); $arUser = $rsUser->Fetch(); if (empty($arUser)) { return false; } $ret .= $arUser["LAST_NAME"]; $ret .= ' ' . $arUser["NAME"]; $ret .= ' ' . $arUser["SECOND_NAME"]; return $ret; }
public static function getTimeZoneId($userId = null, $date = null) { $dateKey = $date === null ? 0 : $date; $userIdKey = $userId === null ? 0 : $userId; if ($userId === null) { $userId = $GLOBALS["USER"]->GetId(); } static $timezoneCache = array(); if (isset($timezoneCache[$userIdKey]) && isset($timezoneCache[$userIdKey][$dateKey])) { return $timezoneCache[$userIdKey][$dateKey]; } $autoTimeZone = $userZone = ''; $factOffset = 0; if ($date === null) { $date = time(); } static $userCache = array(); if ($userId === null) { $autoTimeZone = trim($GLOBALS["USER"]->GetParam("AUTO_TIME_ZONE")); $userZone = $GLOBALS["USER"]->GetParam("TIME_ZONE"); } else { if (!isset($userCache[$userId])) { $dbUser = CUser::GetByID($userId); if ($arUser = $dbUser->Fetch()) { $userCache[$userId] = array("AUTO_TIME_ZONE" => trim($arUser["AUTO_TIME_ZONE"]), "TIME_ZONE" => $arUser["TIME_ZONE"], "TIME_ZONE_OFFSET" => $arUser["TIME_ZONE_OFFSET"]); } } if (isset($userCache[$userId])) { $autoTimeZone = $userCache[$userId]["AUTO_TIME_ZONE"]; $userZone = $userCache[$userId]["TIME_ZONE"]; $factOffset = $userCache[$userId]["TIME_ZONE_OFFSET"]; } } if (CTimeZone::IsAutoTimeZone($autoTimeZone)) { static $userOffsetCache = array(); if (!isset($userOffsetCache[$userId === null ? 0 : $userId])) { $userOffsetCache[$userIdKey] = CTimeZone::GetOffset($userId); } $userOffset = $userOffsetCache[$userIdKey]; $localTime = new DateTime(); $localOffset = $localTime->getOffset(); $timezoneCache[$userIdKey][$dateKey] = CDavICalendarTimeZone::getTimezoneByOffset($date, $userOffset + $localOffset); } else { if ($userZone != '' && isset(self::$arTimeZones[$userZone])) { $timezoneCache[$userIdKey][$dateKey] = $userZone; } else { $localTime = new DateTime(); $localOffset = $localTime->getOffset(); $timezoneCache[$userIdKey][$dateKey] = CDavICalendarTimeZone::getTimezoneByOffset($date, $factOffset + $localOffset); } } return $timezoneCache[$userIdKey][$dateKey]; }
/** * Шаблон ямы */ public static function Hole($hole, $xml_depth = 0) { if(!$_users[$hole['USER_ID']]) { $u = CUser::GetByID($hole['USER_ID']); $u = $u->Fetch(); $_users[$hole['USER_ID']] = array ( 'NAME' => htmlspecialchars(trim($u['NAME'])), 'SECOND_NAME' => htmlspecialchars(trim($u['SECOND_NAME'])), 'LAST_NAME' => htmlspecialchars(trim($u['LAST_NAME'])), ); } ob_start(); ?> <hole id="<?= $hole['ID'] ?>"> <id><?= $hole['ID'] ?></id> <username full="<?= $_users[$hole['USER_ID']]['NAME'].' '.$_users[$hole['USER_ID']]['LAST_NAME'].' '.$_users[$hole['USER_ID']]['SECOND_NAME'] ?>"> <name><?= $_users[$hole['USER_ID']]['NAME'] ?></name> <secondname><?= $_users[$hole['USER_ID']]['SECOND_NAME'] ?></secondname> <lastname><?= $_users[$hole['USER_ID']]['LAST_NAME'] ?></lastname> </username> <latitude><?= $hole['LATITUDE'] ?></latitude> <longitude><?= $hole['LONGITUDE'] ?></longitude> <address city="<?= htmlspecialchars(trim($hole['ADR_CITY'])) ?>" subjectrf="<?= $hole['ADR_SUBJECTRF'] ?>"><?= htmlspecialchars($hole['ADDRESS']) ?></address> <state code="<?= $hole['STATE'] ?>"><?= GetMessage('HOLE_STATE_'.$hole['STATE']) ?></state> <type code="<?= $hole['TYPE'] ?>"><?= GetMessage('HOLE_TYPE_'.$hole['TYPE']) ?></type> <datecreated readable="<?= $hole['~DATE_CREATED'] ?>"><?= $hole['DATE_CREATED'] ?></datecreated> <datesent readable="<?= $hole['~DATE_SENT'] ?>"><?= $hole['DATE_SENT'] ?></datesent> <datestatus readable="<?= $hole['~DATE_STATUS'] ?>"><?= $hole['DATE_STATUS'] ?></datestatus> <commentfresh><?= htmlspecialchars($hole['COMMENT1']) ?></commentfresh> <commentfixed><?= htmlspecialchars($hole['COMMENT2']) ?></commentfixed> <commentgibddre><?= htmlspecialchars($hole['COMMENT_GIBDD_REPLY']) ?></commentgibddre> <pictures><? echo "\n\t\t"; foreach($hole['pictures'] as $type => $p): ?> <<?= $type ?>> <fresh><? if(sizeof($p['fresh'])) { echo "\n\t"; } foreach($p['fresh'] as $k => $v): ?> <src><?= $v ?></src> <? endforeach; ?></fresh> <gibddreply><? if(sizeof($p['gibddreply'])) { echo "\n\t"; } foreach($p['gibddreply'] as $k => $v): ?> <src><?= $v ?></src> <? endforeach; ?></gibddreply> <fixed><? if(sizeof($p['fixed'])) { echo "\n\t"; } foreach($p['fixed'] as $k => $v): ?> <src><?= $v ?></src> <? endforeach; ?></fixed> </<?= $type ?>> <? endforeach; ?></pictures> </hole> <? $hole = ob_get_clean(); $hole = str_replace("\n", "\n".str_repeat("\t", $xml_depth), $hole); return $hole; }
public static function CheckFields($ACTION, &$arFields, $ID = 0) { global $DB; if ($ACTION != "ADD" && IntVal($ID) <= 0) { $GLOBALS["APPLICATION"]->ThrowException("System error 870164", "ERROR"); return false; } if ((is_set($arFields, "FROM_USER_ID") || $ACTION == "ADD") && IntVal($arFields["FROM_USER_ID"]) <= 0) { $GLOBALS["APPLICATION"]->ThrowException(GetMessage("SONET_M_EMPTY_FROM_USER_ID"), "EMPTY_FROM_USER_ID"); return false; } elseif (is_set($arFields, "FROM_USER_ID")) { $dbResult = CUser::GetByID($arFields["FROM_USER_ID"]); if (!$dbResult->Fetch()) { $GLOBALS["APPLICATION"]->ThrowException(GetMessage("SONET_M_ERROR_NO_FROM_USER_ID"), "ERROR_NO_FROM_USER_ID"); return false; } } if ((is_set($arFields, "TO_USER_ID") || $ACTION == "ADD") && IntVal($arFields["TO_USER_ID"]) <= 0) { $GLOBALS["APPLICATION"]->ThrowException(GetMessage("SONET_M_EMPTY_TO_USER_ID"), "EMPTY_TO_USER_ID"); return false; } elseif (is_set($arFields, "TO_USER_ID")) { $dbResult = CUser::GetByID($arFields["TO_USER_ID"]); if (!$dbResult->Fetch()) { $GLOBALS["APPLICATION"]->ThrowException(GetMessage("SONET_M_ERROR_NO_TO_USER_ID"), "ERROR_NO_TO_USER_ID"); return false; } } if (is_set($arFields, "DATE_CREATE") && !$DB->IsDate($arFields["DATE_CREATE"], false, LANG, "FULL")) { $GLOBALS["APPLICATION"]->ThrowException(GetMessage("SONET_GB_EMPTY_DATE_CREATE"), "EMPTY_DATE_CREATE"); return false; } if (is_set($arFields, "DATE_VIEW") && $arFields["DATE_VIEW"] !== false && !$DB->IsDate($arFields["DATE_VIEW"], false, LANG, "FULL")) { $GLOBALS["APPLICATION"]->ThrowException(GetMessage("SONET_MM_EMPTY_DATE_VIEW"), "EMPTY_DATE_UPDATE"); return false; } if ((is_set($arFields, "MESSAGE_TYPE") || $ACTION == "ADD") && $arFields["MESSAGE_TYPE"] != SONET_MESSAGE_PRIVATE && $arFields["MESSAGE_TYPE"] != SONET_MESSAGE_SYSTEM) { $arFields["MESSAGE_TYPE"] = SONET_MESSAGE_PRIVATE; } if ((is_set($arFields, "FROM_DELETED") || $ACTION == "ADD") && $arFields["FROM_DELETED"] != "Y" && $arFields["FROM_DELETED"] != "N") { $arFields["FROM_DELETED"] = "N"; } if ((is_set($arFields, "TO_DELETED") || $ACTION == "ADD") && $arFields["TO_DELETED"] != "Y" && $arFields["TO_DELETED"] != "N") { $arFields["TO_DELETED"] = "N"; } if ((is_set($arFields, "SEND_MAIL") || $ACTION == "ADD") && $arFields["SEND_MAIL"] != "Y" && $arFields["SEND_MAIL"] != "N") { $arFields["SEND_MAIL"] = "N"; } if ((is_set($arFields, "IS_LOG") || $ACTION == "ADD") && $arFields["IS_LOG"] != "Y" && $arFields["SEND_MAIL"] != "N") { $arFields["SEND_MAIL"] = "N"; } return True; }
function UserLoginHandler(&$arFields) { CModule::IncludeModule("iblock"); CModule::IncludeModule("highloadblock"); global $APPLICATION; $user = CUser::GetByID($arFields['USER_ID'])->Fetch(); if (intval($user['UF_USER_PARENT']) > 0 && $APPLICATION->get_cookie("MQ_REGISTRATION_TOKEN") && $user['UF_INVITE_STATUS'] != 1) { $fields = array_flip(getValuesList('UF_STATUS', 'USER', 'ID')); if ($fields[$user['UF_STATUS']] != 4) { changeUserStatus($user['ID'], $user['UF_USER_PARENT'], $user['UF_STATUS'], 4, "Приглашение принято"); } } }
function OnAfterUserAuthorizeHandler(&$arFields) { $f = fopen($_SERVER['DOCUMENT_ROOT'] . '/bitrix/php_interface/md/log.txt', 'a+'); global $USER; $rsUser = CUser::GetByID($USER->GetId()); $arUser = $rsUser->Fetch(); fwrite($f, "---start\n"); if ($arUser['ID'] > 0 && $arUser['EXTERNAL_AUTH_ID'] == 'Facebook' && $arUser['UF_RULES'] != '1') { $facebook = new Facebook_Facebook(array('appId' => '447579571927341', 'secret' => '2f2cf9cd60f9e98d6cf3309e6b7bde5d')); $id = $arUser["XML_ID"]; $user_info = $facebook->api('/' . $id . '?fields=id,name,first_name,middle_name,last_name,gender,birthday,email,picture'); $props = array(); if (!$arUser['PERSONAL_GENDER']) { if (isset($user_info['gender']) && $user_info['gender']) { $props['PERSONAL_GENDER'] = $user_info['gender'] == 'male' ? 'M' : 'F'; } } if (!empty($props)) { $user = new CUser(); $user->Update($arUser["ID"], $props); } CModule::IncludeModule("blog"); $blogUser = CBlogUser::GetByID($USER->GetId(), BLOG_BY_USER_ID); $props = array(); if (!$blogUser['AVATAR']) { if (isset($user_info['picture']) && $user_info['picture']) { $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, "http://graph.facebook.com/{$id}/picture?type=large"); curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 3); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1); curl_setopt($ch, CURLOPT_MAXREDIRS, 3); $output = curl_exec($ch); if ($output) { $fileName = md5($user_info['picture']); $fullPath = $_SERVER['DOCUMENT_ROOT'] . "/bitrix/cache/social_pictures/{$fileName}.jpg"; if (file_put_contents($fullPath, $output) !== false) { $picture = CFile::MakeFileArray($fullPath); $props['AVATAR'] = $picture; $user = new CBlogUser(); $user->Update($blogUser["ID"], $props); unlink($fullPath); } } } } } fwrite($f, "---finish\n"); fclose($f); }
/** * Created by PhpStorm. * User: TzepART * Date: 25.09.2015 * Time: 13:00 */ function userInfo($user_id) { $arResult = array(); $rsUser = CUser::GetByID($user_id); $arUser = $rsUser->Fetch(); $imageFile = CFile::GetFileArray($arUser["PERSONAL_PHOTO"]); $arFileTmp = CFile::ResizeImageGet($imageFile, array("width" => 300, "height" => 300), BX_RESIZE_IMAGE_EXACT, false); $arResult['IMG'] = $arFileTmp["src"]; $arResult['LAST_NAME'] = $arUser['LAST_NAME']; $arResult['NAME'] = $arUser['NAME']; $arResult['CITY'] = $arUser["PERSONAL_CITY"]; $arResult['EMAIL'] = $arUser["EMAIL"]; return $arResult; }
function CheckFields(&$arFields, $ID = false) { global $DB, $APPLICATION; if ($ID === false && !is_set($arFields, "STUDENT_ID")) { $APPLICATION->ThrowException(GetMessage("LEARNING_BAD_USER_ID"), "EMPTY_STUDENT_ID"); return false; } elseif (is_set($arFields, "STUDENT_ID")) { $dbResult = CUser::GetByID($arFields["STUDENT_ID"]); if (!$dbResult->Fetch()) { $APPLICATION->ThrowException(GetMessage("LEARNING_BAD_USER_ID_EX"), "ERROR_NO_STUDENT_ID"); return false; } } if ($ID === false && !is_set($arFields, "COURSE_ID")) { $APPLICATION->ThrowException(GetMessage("LEARNING_BAD_COURSE_ID"), "ERROR_EMPTY_COURSE_ID"); return false; } elseif (is_set($arFields, "COURSE_ID")) { if ($bCheckRights) { $r = CCourse::GetByID($arFields["COURSE_ID"]); } else { $r = CCourse::GetList(array(), array("ID" => $arFields["COURSE_ID"], 'CHECK_PERMISSIONS' => 'N')); } if (!$r->Fetch()) { $APPLICATION->ThrowException(GetMessage("LEARNING_BAD_COURSE_ID_EX"), "ERROR_NO_COURSE_ID"); return false; } } if (is_set($arFields, "STUDENT_ID") && is_set($arFields, "COURSE_ID")) { $res = CCertification::GetList(array(), array("STUDENT_ID" => $arFields["STUDENT_ID"], "COURSE_ID" => $arFields["COURSE_ID"])); if ($res->Fetch()) { $APPLICATION->ThrowException(GetMessage("LEARNING_BAD_CERTIFICATE_DUPLICATE"), "ERROR_CERTIFICATE_DUPLICATE"); return false; } } if (is_set($arFields, "DATE_CREATE") && !$DB->IsDate($arFields["DATE_CREATE"], false, LANG, "FULL")) { $APPLICATION->ThrowException(GetMessage("LEARNING_BAD_DATE_CREATE"), "EMPTY_DATE_CREATE"); return false; } if (is_set($arFields, "PUBLIC_PROFILE") && $arFields["PUBLIC"] != "N") { $arFields["PUBLIC_PROFILE"] = "Y"; } if (is_set($arFields, "ACTIVE") && $arFields["ACTIVE"] != "N") { $arFields["ACTIVE"] = "Y"; } if (is_set($arFields, "FROM_ONLINE") && $arFields["FROM_ONLINE"] != "N") { $arFields["FROM_ONLINE"] = "Y"; } return true; }
public function Execute() { if (!CModule::IncludeModule("forum")) { return CBPActivityExecutionStatus::Closed; } if (!CModule::IncludeModule("iblock")) { return CBPActivityExecutionStatus::Closed; } $forumId = intval($this->ForumId); if ($forumId <= 0) { return CBPActivityExecutionStatus::Closed; } $rootActivity = $this->GetRootActivity(); $documentId = $rootActivity->GetDocumentId(); $iblockId = $this->IBlockId; $dbResult = CIBlockElement::GetProperty($iblockId, $documentId[2], false, false, array("CODE" => "FORUM_TOPIC_ID")); $arResult = $dbResult->Fetch(); if (!$arResult) { $obProperty = new CIBlockProperty(); $obProperty->Add(array("IBLOCK_ID" => $iblockId, "ACTIVE" => "Y", "PROPERTY_TYPE" => "N", "MULTIPLE" => "N", "NAME" => "Forum topic", "CODE" => "FORUM_TOPIC_ID")); $obProperty->Add(array("IBLOCK_ID" => $iblockId, "ACTIVE" => "Y", "PROPERTY_TYPE" => "N", "MULTIPLE" => "N", "NAME" => "Forum message count", "CODE" => "FORUM_MESSAGE_CNT")); $dbResult = CIBlockElement::GetProperty($iblockId, $documentId[2], false, false, array("CODE" => "FORUM_TOPIC_ID")); $arResult = $dbResult->Fetch(); } $forumTopicId = intval($arResult["VALUE"]); $arForumUserTmp = $this->ForumUser; $arForumUser = CBPHelper::ExtractUsers($arForumUserTmp, $documentId, true); $forumUserId = 1; $forumUserName = "******"; if ($arForumUser != null) { $forumUserId = $arForumUser; $dbResult = CUser::GetByID($forumUserId); if ($arResult = $dbResult->Fetch()) { $forumUserName = CUser::FormatName(COption::GetOptionString("bizproc", "name_template", CSite::GetNameFormat(false), SITE_ID), $arResult, true); } } $newTopic = "N"; if ($forumTopicId <= 0) { $documentService = $this->workflow->GetService("DocumentService"); $document = $documentService->GetDocument($documentId); $newTopic = "Y"; $arFields = array("TITLE" => $document["NAME"], "FORUM_ID" => $forumId, "USER_START_ID" => $forumUserId, "USER_START_NAME" => $forumUserName, "LAST_POSTER_NAME" => $forumUserName, "APPROVED" => "Y"); $forumTopicId = CForumTopic::Add($arFields); CIBlockElement::SetPropertyValues($documentId[2], $iblockId, $forumTopicId, "FORUM_TOPIC_ID"); } $arFields = array("POST_MESSAGE" => $this->ForumPostMessage, "AUTHOR_ID" => $forumUserId, "AUTHOR_NAME" => $forumUserName, "FORUM_ID" => $forumId, "TOPIC_ID" => $forumTopicId, "APPROVED" => "Y", "NEW_TOPIC" => $newTopic, "PARAM2" => $documentId[2]); $forumMessageId = CForumMessage::Add($arFields, false, array("SKIP_INDEXING" => "Y", "SKIP_STATISTIC" => "N")); return CBPActivityExecutionStatus::Closed; }
/** * В момент постановки на запись уведомление пользователю * * @param array $arParams * @return boolean */ public static function onRecord($arParams) { $rsUser = CUser::GetByID($arParams["USER_ID"]); $arUser = $rsUser->Fetch(); if (!empty($arUser["EMAIL"])) { $arEventFields = array("RECORD_ID" => $arParams["RECORD_ID"], "EMAIL" => $arUser["EMAIL"], "USER_ID" => $arParams["USER_ID"], "USER_NAME" => $arUser["NAME"], "RECORD_TITLE" => $arParams["RECORD_NAME"]); if (CEvent::Send("RECORD_ON", array(SITE_ID), $arEventFields)) { return true; } else { return false; } } else { return true; } }
public static function CheckFields($ACTION, &$arFields, $ID = 0) { global $DB, $arSocNetUserOperations, $arSocNetAllowedRelationsType; if ($ACTION != "ADD" && IntVal($ID) <= 0) { $GLOBALS["APPLICATION"]->ThrowException("System error 870164", "ERROR"); return false; } if ((is_set($arFields, "USER_ID") || $ACTION == "ADD") && IntVal($arFields["USER_ID"]) <= 0) { $GLOBALS["APPLICATION"]->ThrowException(GetMessage("SONET_GB_EMPTY_USER_ID"), "EMPTY_USER_ID"); return false; } elseif (is_set($arFields, "USER_ID")) { $dbResult = CUser::GetByID($arFields["USER_ID"]); if (!$dbResult->Fetch()) { $GLOBALS["APPLICATION"]->ThrowException(GetMessage("SONET_GB_ERROR_NO_USER_ID"), "ERROR_NO_USER_ID"); return false; } } if ((is_set($arFields, "OPERATION_ID") || $ACTION == "ADD") && strlen($arFields["OPERATION_ID"]) <= 0) { $GLOBALS["APPLICATION"]->ThrowException(GetMessage("SONET_GG_EMPTY_OPERATION_ID"), "EMPTY_OPERATION_ID"); return false; } elseif (is_set($arFields, "OPERATION_ID") && !array_key_exists($arFields["OPERATION_ID"], $arSocNetUserOperations)) { $GLOBALS["APPLICATION"]->ThrowException(str_replace("#ID#", $arFields["OPERATION_ID"], GetMessage("SONET_GG_ERROR_NO_OPERATION_ID")), "ERROR_NO_OPERATION_ID"); return false; } if ((is_set($arFields, "RELATION_TYPE") || $ACTION == "ADD") && strlen($arFields["RELATION_TYPE"]) <= 0) { $GLOBALS["APPLICATION"]->ThrowException(GetMessage("SONET_GG_EMPTY_RELATION_TYPE"), "EMPTY_RELATION_TYPE"); return false; } elseif (is_set($arFields, "RELATION_TYPE") && !in_array($arFields["RELATION_TYPE"], $arSocNetAllowedRelationsType)) { $GLOBALS["APPLICATION"]->ThrowException(str_replace("#ID#", $arFields["RELATION_TYPE"], GetMessage("SONET_GG_ERROR_NO_RELATION_TYPE")), "ERROR_NO_RELATION_TYPE"); return false; } elseif (is_set($arFields, "RELATION_TYPE") && $arFields["RELATION_TYPE"] == SONET_RELATIONS_TYPE_FRIENDS2) { $arFields["RELATION_TYPE"] = SONET_RELATIONS_TYPE_FRIENDS; } return True; }