• Модуль: intranet
  • Путь к файлу: ~/bitrix/modules/intranet/classes/general/event_calendar.php
  • Класс: CEventCalendar
  • Вызов: CEventCalendar::ReturnICal_SP
function ReturnICal_SP($arParams = array())
{
	$userId = $arParams['userId'];
	$sign = $arParams['sign'];
	$this->userId = $userId;
	$this->bExportSP = true;

	$GLOBALS['APPLICATION']->RestartBuffer();
	if (!$this->CheckSign($sign, $userId, 'superposed_calendars') || !$this->allowSuperpose)
		return CEventCalendar::ThrowError(GetMessage('EC_ACCESS_DENIED'));

	$this->HandleSuperpose($this->arSPIblIds);
	$arCalenExTitle = array();

	for($i = 0, $l = count($this->arSPCalShow); $i < $l; $i++)
	{
		$cal = $this->arSPCalShow[$i];
		$this->arCalendarIds[] = $cal['ID'];
		$arCalenEx[$cal['ID']] = $cal;
	}

	// Get events from superposed calendars
	$arSPEvents = $this->GetSuperposedEvents(array('forExport' => true, 'bLoadAll' => true));
	// Add some additional info about groups of calendar and calendar name
	$arSPEvents = $this->ExtendExportEventsArray($arSPEvents, $arCalenEx);

	// Get title for combined calendars
	$dbUser = CUser::GetByID($this->userId);
	$arUser = $dbUser->Fetch();
	$ownerName = trim($arUser["NAME"]." ".$arUser["LAST_NAME"]);
	if ($ownerName == '')
		$ownerName = $arUser["LOGIN"];
	$title = $ownerName.': '.GetMessage('EC_EXP_SP_TITLE');
	$iCalEvents = $this->FormatICal(array('NAME' => $title, 'DESCRIPTION' => ''), $arSPEvents);
	$this->ShowICalHeaders();
	echo $iCalEvents;
	exit();
}