...Человеческий поиск в разработке...
- Модуль: crm
- Путь к файлу: ~/bitrix/modules/crm/classes/general/livefeed.php
- Класс: \CCrmLiveFeedComponent
- Вызов: CCrmLiveFeedComponent::ProcessLogEventEditPOSTCrmEmailUsers
static function ProcessLogEventEditPOSTCrmEmailUsers(&$arPOST, &$arCrmEmailEntities = array()) { $arResult = array(); if ( isset($arPOST['SPERM']) && isset($arPOST['SPERM']['UE']) && is_array($arPOST['SPERM']['UE']) && CModule::IncludeModule('mail') ) { foreach ($arPOST['SPERM']['UE'] as $key => $userEmail) { if (!check_email($userEmail)) { continue; } $bFound = false; if ( isset($arPOST["INVITED_USER_CRM_ENTITY"]) && !empty($arPOST["INVITED_USER_CRM_ENTITY"][$userEmail]) ) { $arFilter = array( array( 'LOGIC' => 'OR', '=EMAIL' => $userEmail, 'UF_USER_CRM_ENTITY' => $arPOST["INVITED_USER_CRM_ENTITY"][$userEmail] ) ); } else { $arFilter = array( '=EMAIL' => $userEmail, ); } $rsUser = \Bitrix\Main\UserTable::getList(array( 'order' => array('ID' => 'ASC'), 'filter' => $arFilter, 'select' => array('ID', 'UF_USER_CRM_ENTITY') )); while ($arEmailUser = $rsUser->fetch()) { if (intval($arEmailUser["ID"]) > 0) { $arPOST["SPERM"]["U"][] = "U".$arEmailUser["ID"]; if (!empty($arEmailUser["UF_USER_CRM_ENTITY"])) { $res = self::resolveLFEntityFromUF($arEmailUser["UF_USER_CRM_ENTITY"]); if (!empty($res)) { [$k, $v] = $res; if ($k && $v) { if (!isset($arPOST["SPERM"][$k])) { $arPOST["SPERM"][$k] = array(); } $arPOST["SPERM"][$k][] = $k.$v; if (!isset($arCrmEmailEntities[$k])) { $arCrmEmailEntities[$k] = array(); } $arCrmEmailEntities[$k][] = array( "ID" => $v, "EMAIL" => $userEmail ); } } } $bFound = true; } } if ($bFound) { continue; } $userFields = array( 'EMAIL' => $userEmail, 'NAME' => ( isset($arPOST["INVITED_USER_NAME"]) && isset($arPOST["INVITED_USER_NAME"][$userEmail]) ? $arPOST["INVITED_USER_NAME"][$userEmail] : '' ), 'LAST_NAME' => ( isset($arPOST["INVITED_USER_LAST_NAME"]) && isset($arPOST["INVITED_USER_LAST_NAME"][$userEmail]) ? $arPOST["INVITED_USER_LAST_NAME"][$userEmail] : '' ), 'UF' => array( 'UF_USER_CRM_ENTITY' => $arPOST["INVITED_USER_CRM_ENTITY"][$userEmail] ) ); $res = self::resolveLFEntityFromUF($arPOST["INVITED_USER_CRM_ENTITY"][$userEmail]); if (!empty($res)) { [$k, $v] = $res; if ($k && $v) { if ( $k == CCrmLiveFeedEntity::Contact && ($contact = \CCrmContact::GetByID($v)) && intval($contact['PHOTO']) > 0 ) { $userFields['PERSONAL_PHOTO_ID'] = intval($contact['PHOTO']); } } } // invite email user by email $invitedUserId = \Bitrix\Mail\User::create($userFields); if ( intval($invitedUserId) <= 0 && $invitedUserId->LAST_ERROR <> '' ) { $strError = $invitedUserId->LAST_ERROR; } if ( !$strError && intval($invitedUserId) > 0 ) { if (!isset($arPOST["SPERM"]["U"])) { $arPOST["SPERM"]["U"] = array(); } $arPOST["SPERM"]["U"][] = "U".$invitedUserId; $res = self::resolveLFEntityFromUF($arPOST["INVITED_USER_CRM_ENTITY"][$userEmail]); if (!empty($res)) { [$k, $v] = $res; if ($k && $v) { if (!isset($arPOST["SPERM"][$k])) { $arPOST["SPERM"][$k] = array(); } $arPOST["SPERM"][$k][] = $k.$v; if (!isset($arCrmEmailEntities[$k])) { $arCrmEmailEntities[$k] = array(); } $arCrmEmailEntities[$k][] = array( "ID" => $v, "EMAIL" => $userEmail ); } } if (Loader::includeModule('intranet') && class_exists('\Bitrix\Intranet\Integration\Mail\EmailUser')) { \Bitrix\Intranet\Integration\Mail\EmailUser::invite($invitedUserId); } } else { $arResult["ERROR_MESSAGE"] .= $strError; } } unset($arPOST["SPERM"]["UE"]); } if ( isset($arPOST['SPERM']) && isset($arPOST['SPERM']['U']) && is_array($arPOST['SPERM']['U']) ) { $arUserId = array(); foreach ($arPOST['SPERM']['U'] as $key => $code) { if (preg_match('/^U(\d+)$/', $code, $matches)) { $arUserId[] = intval($matches[1]); } } if (!empty($arUserId)) { $rsUser = \Bitrix\Main\UserTable::getList(array( 'order' => array(), 'filter' => array( 'ID' => $arUserId ), 'select' => array('ID', 'EMAIL', 'UF_USER_CRM_ENTITY') )); while ($arEmailUser = $rsUser->fetch()) { if (!empty($arEmailUser['UF_USER_CRM_ENTITY'])) { $res = self::resolveLFEntityFromUF($arEmailUser["UF_USER_CRM_ENTITY"]); if (!empty($res)) { [$k, $v] = $res; if ($k && $v) { if (!isset($arPOST["SPERM"][$k])) { $arPOST["SPERM"][$k] = array(); } $arPOST["SPERM"][$k][] = $k.$v; if (!isset($arCrmEmailEntities[$k])) { $arCrmEmailEntities[$k] = array(); } $arCrmEmailEntities[$k][] = array( "ID" => $v, "EMAIL" => $arEmailUser['EMAIL'] ); } } } } } } return $arResult; }