• Модуль: socialnetwork
  • Путь к файлу: ~/bitrix/modules/socialnetwork/lib/integration/main/uiselector/users.php
  • Класс: BitrixSocialnetworkIntegrationMainUISelectorUsers
  • Вызов: Users::search
public function search($params = array())
{
	$result = array(
		'ITEMS' => array(),
		'ADDITIONAL_INFO' => array()
	);

	$entityOptions = (!empty($params['options']) ? $params['options'] : array());

	if (
		!empty($entityOptions['allowSearch'])
		&& $entityOptions['allowSearch'] === 'N'
	)
	{
		return $result;
	}

	$requestFields = (!empty($params['requestFields']) ? $params['requestFields'] : []);
	$commonOptions = (!empty($requestFields['options']) ? $requestFields['options'] : []);

	$search = $requestFields['searchString'];
	$searchConverted = (!empty($requestFields['searchStringConverted']) ? $requestFields['searchStringConverted'] : false);
	$nameTemplate = self::getNameTemplate($commonOptions['userNameTemplate'] ?? '');

	$searchModified = false;
	$result["ITEMS"] = CSocNetLogDestination::searchUsers(
		array(
			"SEARCH" => $search,
			"NAME_TEMPLATE" => $nameTemplate,
			"SELF" => (!empty($entityOptions['allowSearchSelf']) && $entityOptions['allowSearchSelf'] === 'Y'),
			"EMPLOYEES_ONLY" => (!empty($entityOptions['scope']) && $entityOptions['scope'] === "I"),
			"EXTRANET_ONLY" => (!empty($entityOptions['scope']) && $entityOptions['scope'] === "E"),
			"DEPARTAMENT_ID" => (
				!empty($commonOptions['siteDepartmentId'])
				&& (int)$commonOptions['siteDepartmentId'] > 0
					? (int)$commonOptions['siteDepartmentId']
					: false
			),
			"EMAIL_USERS" => (!empty($entityOptions['allowSearchByEmail']) && $entityOptions['allowSearchByEmail'] === 'Y'),
			"CRMEMAIL_USERS" => (!empty($entityOptions['allowSearchCrmEmailUsers']) && $entityOptions['allowSearchCrmEmailUsers'] === 'Y'),
			"NETWORK_SEARCH" => false,
			"ONLY_WITH_EMAIL" => (isset($entityOptions['onlyWithEmail']) && $entityOptions['onlyWithEmail'] === 'Y' ? 'Y' : ''),
			'ALLOW_BOTS' => (isset($entityOptions['allowBots']) && $entityOptions['allowBots'] === 'Y'),
			'SHOW_ALL_EXTRANET_CONTACTS' => (isset($entityOptions['showAllExtranetContacts']) && $entityOptions['showAllExtranetContacts'] === 'Y')
		),
		$searchModified
	);

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

	if (
		empty($result["ITEMS"])
		&& $searchConverted
		&& $search !== $searchConverted
	)
	{
		$result["ITEMS"] = CSocNetLogDestination::searchUsers(
			array(
				"SEARCH" => $searchConverted,
				"NAME_TEMPLATE" => $nameTemplate,
				"SELF" => (!empty($entityOptions['allowSearchSelf']) && $entityOptions['allowSearchSelf'] === 'Y'),
				"EMPLOYEES_ONLY" => (!empty($entityOptions['scope']) && $entityOptions['scope'] === "I"),
				"EXTRANET_ONLY" => (!empty($entityOptions['scope']) && $entityOptions['scope'] === "E"),
				"DEPARTAMENT_ID" => (
					!empty($commonOptions['siteDepartmentId'])
					&& (int)$commonOptions['siteDepartmentId'] > 0
						? (int)$commonOptions['siteDepartmentId']
						: false
				),
				"EMAIL_USERS" => (!empty($entityOptions['allowSearchByEmail']) && $entityOptions['allowSearchByEmail'] === 'Y'),
				"CRMEMAIL_USERS" => (!empty($entityOptions['allowSearchCrmEmailUsers']) && $entityOptions['allowSearchCrmEmailUsers'] === 'Y'),
				"NETWORK_SEARCH" => false,
				'ALLOW_BOTS' => (isset($entityOptions['allowBots']) && $entityOptions['allowBots'] === 'Y'),
				'SHOW_ALL_EXTRANET_CONTACTS' => (isset($entityOptions['showAllExtranetContacts']) && $entityOptions['showAllExtranetContacts'] === 'Y')
			),
			$searchModified
		);

		$result['SEARCH'] = $searchConverted;
	}

	return $result;
}