• Модуль: calendar
  • Путь к файлу: ~/bitrix/modules/calendar/lib/userfield/resourcebooking.php
  • Класс: BitrixCalendarUserFieldResourceBooking
  • Вызов: ResourceBooking::getDefaultResourcesList
static function getDefaultResourcesList()
{
	$result = [];

	$typeList = InternalsTypeTable::getList(
		array(
			"filter" => array(
				"XML_ID" => self::RESOURCE_CALENDAR_TYPE
			),
			"select" => array("XML_ID", "NAME")
		)
	);

	while ($type = $typeList->fetch())
	{
		$type['SECTIONS'] = [];
		$result[$type['XML_ID']] = $type;
	}

	if (!$result[self::RESOURCE_CALENDAR_TYPE])
	{
		InternalsTypeTable::add([
			'XML_ID' => self::RESOURCE_CALENDAR_TYPE,
			'NAME' => self::RESOURCE_CALENDAR_TYPE,
			'ACTIVE' => 'Y'
		]);
		CCalendar::ClearCache('type_list');

		$result[self::RESOURCE_CALENDAR_TYPE] = [
			'XML_ID' => self::RESOURCE_CALENDAR_TYPE,
			'NAME' =>  self::RESOURCE_CALENDAR_TYPE
		];
	}

	$sectionList = InternalsSectionTable::getList(
		array(
			"filter" => array(
				"=ACTIVE" => 'Y',
				"CAL_TYPE" => [self::RESOURCE_CALENDAR_TYPE],
				"!=NAME" => ''
			),
			"select" => array("ID", "CAL_TYPE", "NAME")
		)
	);

	while ($section = $sectionList->fetch())
	{
		if (is_array($result[$section['CAL_TYPE']]['SECTIONS']))
		{
			$result[$section['CAL_TYPE']]['SECTIONS'][] = $section;
		}
	}

	return $result;
}