- Модуль: intranet
- Путь к файлу: ~/bitrix/modules/intranet/classes/general/event_calendar.php
- Класс: CEventCalendar
- Вызов: CEventCalendar::GetEventsEx
public function GetEventsEx($arParams = array(), $bDontCache = false)
{
$iblockId = isset($arParams['iblockId']) ? $arParams['iblockId'] : $this->iblockId;
if (!isset($arParams['sectionId']))
$arParams['sectionId'] = $this->GetSectionId();
$bLoadAll = isset($arParams['bLoadAll']) ? $arParams['bLoadAll'] : false;
$arCalendarIds = isset($arParams['arCalendarIds']) ? $arParams['arCalendarIds'] : $this->arCalendarIds;
$bJS = isset($arParams['bJS']) ? $arParams['bJS'] : false;
$forExport = isset($arParams['forExport']) ? $arParams['forExport'] : false;
$fromLimit = isset($arParams['fromLimit']) ? $arParams['fromLimit'] : $this->fromLimit;
$toLimit = isset($arParams['toLimit']) ? $arParams['toLimit'] : $this->toLimit;
$checkPermissions = ($forExport || $arParams['checkPermissions'] === false) ? 'N' : 'Y';
$bCache = $bDontCache ? false : $this->bCache;
if ($bCache)
{
$cache = new CPHPCache;
$cachePath = $this->cachePath.'events/'.$iblockId.'/';
$cacheId = serialize(array($arParams['sectionId'], $fromLimit, $toLimit, $arCalendarIds));
if(($tzOffset = CTimeZone::GetOffset()) <> 0)
$cacheId .= "_".$tzOffset;
if ($cache->InitCache($this->cacheTime, $cacheId, $cachePath))
{
$res = $cache->GetVars();
$arEvents = $res['arEvents'];
}
}
if (!$bCache || empty($res['arEvents']))
{
$arEvents = $this->GetEvents($arParams);
if ($bCache)
{
$cache->StartDataCache($this->cacheTime, $cacheId, $cachePath);
$cache->EndDataCache(array("arEvents" => $arEvents));
}
}
else
{
// Save hidden calendar id's
if (!(isset($arParams['DontSaveOptions']) && $arParams['DontSaveOptions']) && class_exists('CUserOptions'))
$this->SaveHidden($arCalendarIds);
}
return $arEvents;
}