• Модуль: socialnetwork
  • Путь к файлу: ~/bitrix/modules/socialnetwork/classes/general/user.php
  • Класс: CAllSocNetUser
  • Вызов: CAllSocNetUser::SearchUser
static function SearchUser($user, $bIntranet = false)
{
	$user = Trim($user);
	if ($user == '')
		return false;

	$userID = 0;
	if ($user."|" == (int)$user ."|")
	{
		$userID = (int)$user;
	}

	if ($userID <= 0)
	{
		$arMatches = array();
		if (preg_match("#[(d+)]#i", $user, $arMatches))
		{
			$userID = (int)$arMatches[1];
		}
	}


	$dbUsers =  false;
	if ($userID > 0)
	{
		$arFilter = array("ID_EQUAL_EXACT" => $userID);

		$dbUsers = CUser::GetList(
			"LAST_NAME",
			"asc",
			$arFilter,
			array(
				"NAV_PARAMS" => false,
			)
		);
	}
	else
	{
		$email = "";
		$arMatches = array();
		if (preg_match("#<(.+?)>#i", $user, $arMatches))
		{

			if (check_email($arMatches[1]))
			{
				$email = $arMatches[1];
				$user = Trim(Str_Replace("<".$email.">", "", $user));
			}
		}

		$arUser = array();
		$arUserTmp = Explode(" ", $user);
		foreach ($arUserTmp as $s)
		{
			$s = Trim($s);
			if ($s <> '')
			{
				$arUser[] = $s;
			}
		}

		if (
			count($arUser) <= 0
			&& $email <> ''
		)
		{
			$arFilter = array(
				"ACTIVE" => "Y",
				"EMAIL" => $email,
			);
			$dbUsers = CUser::GetList("id", "asc", $arFilter);
		}
		else
		{
			$dbUsers = CUser::SearchUserByName($arUser, $email);
		}
	}

	if ($dbUsers)
	{
		$arResult = array();
		while ($arUsers = $dbUsers->GetNext())
		{
			$arResult[$arUsers["ID"]] = CSocNetUser::FormatNameEx(
				$arUsers["NAME"],
				$arUsers["SECOND_NAME"],
				$arUsers["LAST_NAME"],
				$arUsers["LOGIN"],
				($bIntranet ? $arUsers["EMAIL"] : ""),
				$arUsers["ID"]
			);
		}

		return $arResult;
	}

	return false;
}