- Модуль: calendar
- Путь к файлу: ~/bitrix/modules/calendar/classes/general/calendar.php
- Класс: CCalendar
- Вызов: CCalendar::Init
function Init($params)
{
global $USER, $APPLICATION;
$access = new CAccess();
$access->UpdateCodes();
if (!$USER || !is_object($USER))
$USER = new CUser;
// Owner params
self::$siteId = isset($params['siteId']) ? $params['siteId'] : SITE_ID;
self::$type = $params['type'];
self::$arTypes = CCalendarType::GetList();
self::$bIntranet = self::IsIntranetEnabled();
self::$bSocNet = self::IsSocNet();
self::$userId = (isset($params['userId']) && $params['userId'] > 0) ? (int)$params['userId'] : self::GetCurUserId(true);
self::$bOwner = self::$type === 'user' || self::$type === 'group';
self::$settings = self::GetSettings();
self::$userSettings = BitrixCalendarUserSettings::get();
self::$pathesForSite = self::GetPathes(self::$siteId);
self::$pathToUser = self::$pathesForSite['path_to_user'];
self::$bSuperpose = $params['allowSuperpose'] != false && self::$bSocNet;
self::$bAnonym = !$USER || !$USER->IsAuthorized();
self::$userNameTemplate = self::$settings['user_name_template'];
self::$bAMPM = IsAmPmMode();
self::$bWideDate = mb_strpos(FORMAT_DATETIME, 'MMMM') !== false;
self::$id = $this->GetId();
if (isset($params['SectionControlsDOMId']))
{
self::$SectionsControlsDOMId = $params['SectionControlsDOMId'];
}
if (self::$bOwner && isset($params['ownerId']) && $params['ownerId'] > 0)
{
self::$ownerId = (int)$params['ownerId'];
}
self::$showTasks = (self::$type === 'user' || self::$type === 'group')
&& ($params['showTasks'] ?? '') !== false
&& $params['viewTaskPath']
&& Loader::includeModule('tasks')
&& self::$userSettings['showTasks'] !== 'N';
if (self::$showTasks)
{
self::$viewTaskPath = $params['viewTaskPath'];
self::$editTaskPath = $params['editTaskPath'];
}
self::GetPermissions(array(
'type' => self::$type,
'bOwner' => self::$bOwner,
'userId' => self::$userId,
'ownerId' => self::$ownerId,
));
// Cache params
if (isset($params['cachePath']))
{
self::$cachePath = $params['cachePath'];
}
if (isset($params['cacheTime']))
{
self::$cacheTime = $params['cacheTime'];
}
self::$bCache = self::$cacheTime > 0;
// Urls
$page = preg_replace(
array(
"/EVENT_ID=.*?&/i",
"/EVENT_DATE=.*?&/i",
"/CHOOSE_MR=.*?&/i",
"/action=.*?&/i",
"/bx_event_calendar_request=.*?&/i",
"/clear_cache=.*?&/i",
"/bitrix_include_areas=.*?&/i",
"/bitrix_show_mode=.*?&/i",
"/back_url_admin=.*?&/i",
"/IFRAME=.*?&/i",
"/IFRAME_TYPE=.*?&/i",
),
"", $params['pageUrl'].'&'
);
$page = preg_replace(array("/^(.*?)&$/i","/^(.*?)?$/i"), "$1", $page);
self::$actionUrl = $page;
self::$path = empty(self::$ownerId)
? self::GetServerPath().$page
: self::GetPath(self::$type, self::$ownerId, true);
self::$outerUrl = $APPLICATION->GetCurPageParam('', [
"action",
"bx_event_calendar_request",
"clear_cache",
"bitrix_include_areas",
"bitrix_show_mode",
"back_url_admin",
"SEF_APPLICATION_CUR_PAGE_URL",
"EVENT_ID",
"EVENT_DATE",
"CHOOSE_MR",
], false);
// *** Meeting room params ***
$RMiblockId = self::$settings['rm_iblock_id'];
self::$allowReserveMeeting = $params["allowResMeeting"] && $RMiblockId > 0;
if(self::$allowReserveMeeting && !$USER->IsAdmin() && (CIBlock::GetPermission($RMiblockId) < "R"))
{
self::$allowReserveMeeting = false;
}
}