- Модуль: timeman
- Путь к файлу: ~/bitrix/modules/timeman/classes/general/timeman_admin_report.php
- Класс: CTimeManAdminReport
- Вызов: CTimeManAdminReport::_getDepartmentsData
private function _getDepartmentsData($arSections)
{
$arResult = array();
$arChains = array();
$section_url = "/company/structure.php?set_filter_structure=Y&structure_UF_DEPARTMENT=#ID#";
$iblockId = COption::GetOptionInt('intranet', 'iblock_structure', 0);
$arSectionFilter = array(
'CHECK_PERMISSIONS' => 'N',
'IBLOCK_ID' => $iblockId,
'ID' => array_unique($arSections)
);
$dbRes = CIBlockSection::GetList(
array('LEFT_MARGIN' => 'DESC'),
$arSectionFilter,
false,
array('ID', 'NAME', 'IBLOCK_SECTION_ID', 'UF_HEAD')
);
$chain_root = null;
while ($arRes = $dbRes->Fetch())
{
if ($arRes['IBLOCK_SECTION_ID'] <= 0)
$arRes['TOP_SECTION'] = true;
$arRes['CHAIN'] = array();
if (isset($arChains[$arRes['ID']]))
{
$arRes['CHAIN'] = $arChains[$arRes['ID']];
}
elseif ($arRes['IBLOCK_SECTION_ID'] > 0
&& isset($arChains[$arRes['IBLOCK_SECTION_ID']]))
{
$arRes['CHAIN'] = $arChains[$arRes['IBLOCK_SECTION_ID']];
$arRes['CHAIN'][] = array(
'ID' => $arRes['ID'],
'NAME' => $arRes['NAME'],
'URL' => str_replace('#ID#', $arRes['ID'], $section_url)
);
}
else
{
$db1 = CIBlockSection::GetNavChain($iblockId, $arRes['ID']);
while ($sect = $db1->Fetch())
{
$arRes['CHAIN'][] = array(
'ID' => $sect['ID'],
'NAME' => $sect['NAME'],
'URL' => str_replace('#ID#', $sect['ID'], $section_url)
);
if (!isset($arChains[$sect['ID']]))
{
$arChains[$sect['ID']] = $arRes['CHAIN'];
}
}
}
if (null === $chain_root)
$chain_root = $arRes['CHAIN'][0]['ID'];
elseif (
false !== $chain_root
&& $chain_root != $arRes['CHAIN'][0]['ID']
)
$chain_root = false;
$arResult[$arRes['ID']] = $arRes;
}
if ($chain_root)
{
foreach ($arResult as &$dpt)
{
if (count($dpt['CHAIN']) > 1)
array_shift($dpt['CHAIN']);
}
}
return $arResult;
}