• Модуль: socialnetwork
  • Путь к файлу: ~/bitrix/modules/socialnetwork/lib/componenthelper.php
  • Класс: BitrixSocialnetworkComponentHelper
  • Вызов: ComponentHelper::processBlogPostNewCrmContact
static function processBlogPostNewCrmContact(&$HTTPPost, &$componentResult)
{
	$USent = (
		isset($HTTPPost["SPERM"]["U"])
		&& is_array($HTTPPost["SPERM"]["U"])
		&& !empty($HTTPPost["SPERM"]["U"])
	);

	$UESent = (
		$componentResult["ALLOW_EMAIL_INVITATION"]
		&& isset($HTTPPost["SPERM"]["UE"])
		&& is_array($HTTPPost["SPERM"]["UE"])
		&& !empty($HTTPPost["SPERM"]["UE"])
	);

	if (
		($USent || $UESent)
		&& Loader::includeModule('mail')
	)
	{
		if (
			$USent
			&& Loader::includeModule('crm')
		) // process mail users/contacts
		{
			$userIdList = array();
			foreach ($HTTPPost["SPERM"]["U"] as $code)
			{
				if (preg_match('/^U(d+)$/i', $code, $matches))
				{
					$userIdList[] = (int)$matches[1];
				}
			}

			if (!empty($userIdList))
			{
				$res = MainUserTable::getList(array(
					'filter' => array(
						'ID' => $userIdList,
						'!=UF_USER_CRM_ENTITY' => false
					),
					'select' => array('ID', 'UF_USER_CRM_ENTITY')
				));
				while ($user = $res->fetch())
				{
					$livefeedCrmEntity = CCrmLiveFeedComponent::resolveLFEntityFromUF($user['UF_USER_CRM_ENTITY']);

					if (!empty($livefeedCrmEntity))
					{
						list($k, $v) = $livefeedCrmEntity;
						if ($k && $v)
						{
							if (!isset($HTTPPost["SPERM"][$k]))
							{
								$HTTPPost["SPERM"][$k] = array();
							}
							$HTTPPost["SPERM"][$k][] = $k.$v;
						}
					}
				}
			}
		}

		if ($UESent) // process emails
		{
			foreach ($HTTPPost["SPERM"]["UE"] as $key => $userEmail)
			{
				if (!check_email($userEmail))
				{
					continue;
				}

				$errorText = '';

				$destRes = self::processUserEmail([
					'EMAIL' => $userEmail,
					'NAME' => (
						isset($HTTPPost["INVITED_USER_NAME"])
						&& isset($HTTPPost["INVITED_USER_NAME"][$userEmail])
							? $HTTPPost["INVITED_USER_NAME"][$userEmail]
							: ''
					),
					'LAST_NAME' => (
						isset($HTTPPost["INVITED_USER_LAST_NAME"])
						&& isset($HTTPPost["INVITED_USER_LAST_NAME"][$userEmail])
							? $HTTPPost["INVITED_USER_LAST_NAME"][$userEmail]
							: ''
					),
					'CRM_ENTITY' => (
						isset($HTTPPost["INVITED_USER_CRM_ENTITY"])
						&& isset($HTTPPost["INVITED_USER_CRM_ENTITY"][$userEmail])
							? $HTTPPost["INVITED_USER_CRM_ENTITY"][$userEmail]
							: ''
					),
					"CREATE_CRM_CONTACT" => (
						isset($HTTPPost["INVITED_USER_CREATE_CRM_CONTACT"])
						&& isset($HTTPPost["INVITED_USER_CREATE_CRM_CONTACT"][$userEmail])
						? $HTTPPost["INVITED_USER_CREATE_CRM_CONTACT"][$userEmail]
						: 'N'
					),
					'CONTEXT' => 'BLOG_POST'
				], $errorText);

				foreach($destRes as $code)
				{
					if (preg_match('/^U(d+)$/i', $code, $matches))
					{
						$HTTPPost["SPERM"]["U"][] = $code;
					}
					elseif (
						Loader::includeModule('crm')
						&& (preg_match('/^CRM(CONTACT|COMPANY|LEAD|DEAL)(d+)$/i', $code, $matches))
					)
					{
						if (!isset($HTTPPost["SPERM"]["CRM".$matches[1]]))
						{
							$HTTPPost["SPERM"]["CRM".$matches[1]] = array();
						}
						$HTTPPost["SPERM"]["CRM".$matches[1]][] = $code;
					}
				}

				if (!empty($errorText))
				{
					$componentResult["ERROR_MESSAGE"] .= $errorText;
				}
			}
//				unset($HTTPPost["SPERM"]["UE"]);
		}
	}
}