- Модуль: intranet
- Путь к файлу: ~/bitrix/modules/intranet/classes/general/event_calendar.php
- Класс: CEventCalendar
- Вызов: CEventCalendar::GetIntranetStructure
function GetIntranetStructure($arParams = array())
{
$structure = false;
if(IsModuleInstalled('intranet') && CModule::IncludeModule('iblock'))
{
if(($iblock_id = COption::GetOptionInt('intranet', 'iblock_structure', 0)) > 0)
{
$structure = array();
$sec = CIBlockSection::GetList(Array("left_margin"=>"asc","SORT"=>"ASC"), Array("ACTIVE"=>"Y","CNT_ACTIVE"=>"Y","IBLOCK_ID"=>$iblock_id), true);
while($ar = $sec->GetNext())
$structure[] = $ar;
//get users in the structure
$usersInStructure = array();
$arFilter = array('ACTIVE' => 'Y');
$obUser = new CUser();
$dbUsers = $obUser->GetList('last_name', 'asc', $arFilter, array('SELECT' => array('UF_*')));
while ($arUser = $dbUsers->GetNext())
{
$arStructureUser = array(
"USER_ID" => $arUser["ID"],
"USER_NAME" => $arUser["NAME"],
"USER_LAST_NAME" => $arUser["LAST_NAME"],
"USER_PROFILE_URL" => $pu,
"SHOW_PROFILE_LINK" => $canViewProfile,
"PATH_TO_MESSAGES_CHAT" => str_replace("#user_id#", $arUser["ID"], $arParams["PATH_TO_MESSAGES_CHAT"]),
"IS_ONLINE" => ($arUser["IS_ONLINE"] == "Y")
);
if(is_array($arUser["UF_DEPARTMENT"]) && !empty($arUser["UF_DEPARTMENT"]))
{
foreach($arUser["UF_DEPARTMENT"] as $dep_id)
$usersInStructure[$dep_id][] = $arStructureUser;
}
else
$usersInStructure["others"][] = $arStructureUser;
}
}
}
CEventCalendar::ShowStructureSection($structure, $usersInStructure, true);
}