- Модуль: socialnetwork
- Путь к файлу: ~/bitrix/modules/socialnetwork/classes/general/log_destination.php
- Класс: CSocNetLogDestination
- Вызов: CSocNetLogDestination::GetGratMedalUsers
static function GetGratMedalUsers($arParams = Array())
{
global $USER;
static $resultCache = array();
$userId = intval($USER->GetID());
if(!isset($resultCache[$userId]))
{
$arSubordinateDepts = array();
if (CModule::IncludeModule("intranet"))
{
$arSubordinateDepts = CIntranetUtils::GetSubordinateDepartments($userId, true);
}
$arFilter = Array(
"ACTIVE" => "Y",
"!UF_DEPARTMENT" => false
);
$arExtParams = Array(
"FIELDS" => Array("ID", "LAST_NAME", "NAME", "SECOND_NAME", "LOGIN", "EMAIL", "PERSONAL_PHOTO", "WORK_POSITION", "PERSONAL_PROFESSION", "IS_ONLINE"),
"SELECT" => Array("UF_DEPARTMENT")
);
if (isset($arParams["id"]))
{
if (empty($arParams["id"]))
{
$arFilter["ID"] = $userId;
}
else
{
$arSelect = array();
foreach ($arParams["id"] as $value)
{
$arSelect[] = intval($value);
}
$arFilter["ID"] = implode("|", $arSelect);
}
}
$arGratUsers = Array();
$arMedalUsers = Array();
$dbUsers = CUser::GetList(Array("last_name" => "asc", "IS_ONLINE" => "desc"), '', $arFilter, $arExtParams);
while ($arUser = $dbUsers->GetNext())
{
$sName = trim(CUser::FormatName(empty($arParams["NAME_TEMPLATE"]) ? CSite::GetNameFormat(false) : $arParams["NAME_TEMPLATE"], $arUser));
if (empty($sName))
{
$sName = $arUser["~LOGIN"];
}
$arFileTmp = CFile::ResizeImageGet(
$arUser["PERSONAL_PHOTO"],
array("width" => 100, "height" => 100),
BX_RESIZE_IMAGE_EXACT,
false
);
$arGratUsers['U'.$arUser["ID"]] = Array(
"id" => "U".$arUser["ID"],
"entityId" => $arUser["ID"],
"email" => $arUser["EMAIL"],
"name" => $sName,
"avatar" => empty($arFileTmp["src"]) ? '' : $arFileTmp["src"],
"desc" => $arUser["WORK_POSITION"] ? $arUser["WORK_POSITION"] : ($arUser["PERSONAL_PROFESSION"] ? $arUser["PERSONAL_PROFESSION"] : " "),
);
if (
count($arSubordinateDepts) > 0
&& count(array_intersect($arSubordinateDepts, $arUser["UF_DEPARTMENT"])) > 0
)
{
$arMedalUsers['U'.$arUser["ID"]] = $arGratUsers['U'.$arUser["ID"]];
}
}
$resultCache[$userId] = array("GRAT" => $arGratUsers, "MEDAL" => $arMedalUsers);
}
return $resultCache[$userId];
}