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