• Модуль: timeman
  • Путь к файлу: ~/bitrix/modules/timeman/classes/general/timeman_report_full.php
  • Класс: CReportSettings
  • Вызов: CReportSettings::_GetTreeSettings
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"] ?? false) ? $parent["PARENT"] : $arRes['IBLOCK_SECTION_ID'];
			$parent["ID"] = $arRes["ID"];
			$parent["PARENT_NAME"] = ($parent["PARENT_NAME"] ?? false) ? $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;
	}
}