• Модуль: calendar
  • Путь к файлу: ~/bitrix/modules/calendar/lib/ical/builder/calendar.php
  • Класс: BitrixCalendarICalBuilderCalendar
  • Вызов: Calendar::setContent
public function setContent(): Content
{
	$events = $this->events;
	$timezones = $this->timezones;

	if ($this->withTimezone) {
		array_walk($events, function (Event $event)
		{
			$event->setWithTimezone();
		});
	}

	$content = Content::getInstance($this->getType())
		->textProperty('VERSION', '2.0')
		->textProperty('METHOD', $this->method)
		->textProperty('CALSCALE', 'GREGORIAN')
		->textProperty('PRODID', $this->productIdentifier ?? '-//Bitrix//Bitrix Calendar//EN')
		->textProperty(['NAME', 'X-WR-CALNAME'], $this->name)
		->textProperty(['DESCRIPTION', 'X-WR-CALDESC'], $this->description)
		->subComponent(...$timezones)
		->subComponent(...$events);

	if ($this->refreshInterval)
	{
		$content->property(
				LengthPropertyType::getInstance('REFRESH-INTERVAL', $this->refreshInterval)
					->addParameter(new Parameter('VALUE', 'DURATION'))
			)
			->property(LengthPropertyType::getInstance('X-PUBLISHED-TTL', $this->refreshInterval));
	}

	return $content;
}