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; } }