CBPHelper::searchUserByName

  1. Bitrix24 API (v. 23.675.0)
  2. bizproc
  3. CBPHelper
  4. searchUserByName
  • Модуль: bizproc
  • Путь к файлу: ~/bitrix/modules/bizproc/classes/general/helper.php
  • Класс: CBPHelper
  • Вызов: CBPHelper::searchUserByName
static function searchUserByName($user)
{
	$user = trim($user);
	if ($user == '')
	{
		return [];
	}

	$userId = 0;
	if ($user."|" == intval($user)."|")
	{
		$userId = intval($user);
	}

	if ($userId <= 0)
	{
		$arMatches = [];
		if (preg_match('#[(d+)]#i', $user, $arMatches))
		{
			$userId = intval($arMatches[1]);
		}
	}

	$arResult = [];

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

		$dbUsers = CUser::GetList(
			"LAST_NAME",
			"asc",
			$arFilter,
			[
				'FIELDS' => ['ID'],
				'NAV_PARAMS' => false
			]
		);
	}
	else
	{
		$userLogin = "";
		$arMatches = [];
		if (preg_match('#((.+?))#i', $user, $arMatches))
		{
			$userLogin = $arMatches[1];
			$user = trim(str_replace("(".$userLogin.")", "", $user));
		}

		$userEmail = "";
		$arMatches = [];
		if (preg_match("#<(.+?)>#i", $user, $arMatches))
		{
			if (check_email($arMatches[1]))
			{
				$userEmail = $arMatches[1];
				$user = trim(Str_Replace("<".$userEmail.">", "", $user));
			}
		}

		$arUser = [];
		$arUserTmp = explode(" ", $user);
		foreach ($arUserTmp as $s)
		{
			$s = trim($s);
			if ($s <> '')
			{
				$arUser[] = $s;
			}
		}
		if ($userLogin <> '')
		{
			$arUser[] = $userLogin;
		}

		$dbUsers = CUser::SearchUserByName($arUser, $userEmail, true);
	}

	if ($dbUsers)
	{
		while ($arUsers = $dbUsers->GetNext())
		{
			$arResult[] = $arUsers["ID"];
		}
	}

	return $arResult;
}

Добавить комментарий