- Модуль: 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;
}