$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; } $arRes["SETTINGS"] = CReportSettings::GetSectionSettings($arRes["ID"], true); $arRes["CAN_EDIT_TIME"] = "N"; $arRes["HAS_SETTINGS"] = "N"; if ($arRes["SETTINGS"]["UF_REPORT_PERIOD"] && !$arRes["SETTINGS"]["PARENT"]) { $arRes["HAS_SETTINGS"] = "Y"; } if (in_array($arRes['ID'], $arSubordination) || CTimeMan::IsAdmin()) { $arRes["CAN_EDIT_TIME"] = "Y"; } $res['DEPARTMENTS'][$arRes['ID']] = $arRes; } if ($chain_root) { foreach ($res['DEPARTMENTS'] as &$dpt) { if (count($dpt['CHAIN']) > 1) { array_shift($dpt['CHAIN']); }
private static function _GetTreeSettings() { self::$SECTIONS_SETTINGS_CACHE = array(); $ibDept = COption::GetOptionInt('intranet', 'iblock_structure', false); $dbRes = CIBlockSection::GetList(array("LEFT_MARGIN" => "ASC"), array('IBLOCK_ID' => $ibDept, 'ACTIVE' => 'Y'), false, array('ID', 'NAME', 'IBLOCK_SECTION_ID', 'UF_TIMEMAN', 'UF_REPORT_PERIOD', 'UF_TM_REPORT_DATE', 'UF_TM_DAY', 'UF_TM_TIME', 'UF_SETTING_DATE')); while ($arRes = $dbRes->Fetch()) { $arRes["UF_REPORT_PERIOD"] = CReportSettings::GetPeriodByID($arRes['UF_REPORT_PERIOD'], 'IBLOCK_' . $ibDept . '_SECTION'); $arSectionSettings = $arRes; if (!$arRes["UF_REPORT_PERIOD"] && $arRes['IBLOCK_SECTION_ID'] > 0) { $parent = self::$SECTIONS_SETTINGS_CACHE[$arRes['IBLOCK_SECTION_ID']]; $parent["PARENT"] = $parent["PARENT"] ? $parent["PARENT"] : $arRes['IBLOCK_SECTION_ID']; $parent["ID"] = $arRes["ID"]; $parent["PARENT_NAME"] = $parent["PARENT_NAME"] ? $parent["PARENT_NAME"] : $parent["NAME"]; $parent["NAME"] = $arRes["NAME"]; $arSectionSettings = $parent; } if (!$arSectionSettings['UF_TIMEMAN']) { $arSectionSettings['UF_TIMEMAN'] = 'Y'; } self::$SECTIONS_SETTINGS_CACHE[$arRes['ID']] = $arSectionSettings; } }