• Модуль: socialnetwork
  • Путь к файлу: ~/bitrix/modules/socialnetwork/lib/integration/main/uiselector/search.php
  • Класс: BitrixSocialnetworkIntegrationMainUISelectorSearch
  • Вызов: Search::process
static function process($requestFields = array())
{
	$result = array(
		'dataOnly' => true
	);

	$search = $requestFields['SEARCH'];
	$searchConverted = (!empty($requestFields['SEARCH_CONVERTED']) ? $requestFields['SEARCH_CONVERTED'] : false);
	$nameTemplate = Handler::getNameTemplate($requestFields);

	if (
		isset($requestFields['ADDITIONAL_SEARCH'])
		&& $requestFields['ADDITIONAL_SEARCH'] == 'Y'
	)
	{
		$result["USERS"] = array();

		return $result;
	}

	if (
		!isset($requestFields['USER_SEARCH'])
		|| $requestFields['USER_SEARCH'] != 'N'
	)
	{
		$searchModified = false;
		$result["USERS"] = self::searchUsers(array(
			'search' => $search,
			'nameTemplate' => $nameTemplate,
			'useNetwork' => false,
			'requestFields' => $requestFields
		), $searchModified);

		if (!empty($searchModified))
		{
			$result['SEARCH'] = $searchModified;
		}

		if (
			empty($result['USERS'])
			&& $searchConverted
			&& $search != $searchConverted
		)
		{
			$result['USERS'] = self::searchUsers(array(
				'search' => $searchConverted,
				'nameTemplate' => $nameTemplate,
				'useNetwork' => false,
				'requestFields' => $requestFields
			), $searchModified);
			$result['SEARCH'] = $searchConverted;
		}
	}

	if (
		isset($requestFields['SEARCH_SONET_GROUPS'])
		&& $requestFields['SEARCH_SONET_GROUPS'] == 'Y'
	)
	{
		$result['SONET_GROUPS'] = self::searchSonetGroups(array(
			'search' => $search,
			'features' => (isset($requestFields['SEARCH_SONET_FEATUES']) && is_array($requestFields['SEARCH_SONET_FEATUES']) ? $requestFields['SEARCH_SONET_FEATUES'] : false),
		));
	}

	if (
		isset($requestFields['CRMEMAIL'])
		&& $requestFields['CRMEMAIL'] == 'Y'
	)
	{
		$result['CRM_EMAILS'] = self::searchCrmEmails(array(
			'search' => $search,
			'nameTemplate' => $nameTemplate
		), $result['USERS']);
	}
	elseif (
		isset($requestFields['CRMCONTACTEMAIL'])
		&& $requestFields['CRMCONTACTEMAIL'] == 'Y'
	)
	{
		$result['CRM_EMAILS'] = self::searchCrmEntities(array(
			'search' => $search,
			'nameTemplate' => $nameTemplate,
			'entities' => array("CONTACT"),
			'searchByEmailOnly' => true
		), $result['USERS']);
	}

	if (
		isset($requestFields['CRM_SEARCH'])
		&& $requestFields['CRM_SEARCH'] == 'Y'
	)
	{
		$crmAllowedTypesList = array();

		if (
			isset($requestFields['CRM_SEARCH_TYPES'])
			&& is_array($requestFields['CRM_SEARCH_TYPES'])
			&& !empty($requestFields['CRM_SEARCH_TYPES'])
		)
		{
			$crmAllowedTypesList = $requestFields['CRM_SEARCH_TYPES'];
		}

		$result['CONTACTS'] = array();
		$result['COMPANIES'] = array();
		$result['LEADS'] = array();
		$result['DEALS'] = array();

		if (
			empty($crmAllowedTypesList)
			|| in_array("CRMCONTACT", $crmAllowedTypesList)
		)
		{
			$result['CONTACTS'] = self::searchCrmContacts(array(
				'search' => $search,
				'nameTemplate' => $nameTemplate
			));
		}

		if (
			empty($crmAllowedTypesList)
			|| in_array("CRMCOMPANY", $crmAllowedTypesList)
		)
		{
			$result['CONTACTS'] = self::searchCrmCompanies(array(
				'search' => $search
			));
		}

		if (
			empty($crmAllowedTypesList)
			|| in_array("CRMLEAD", $crmAllowedTypesList)
		)
		{
			$result['LEADS'] = self::searchCrmLeads(array(
				'search' => $search,
				'nameTemplate' => $nameTemplate
			));
		}

		if (
			empty($crmAllowedTypesList)
			|| in_array("CRMDEAL", $crmAllowedTypesList)
		)
		{
			$result['LEADS'] = self::searchCrmDeals(array(
				'search' => $search,
				'nameTemplate' => $nameTemplate
			));
		}
	}

	return $result;
}