14 private const RESTRICT_OPTION_NAME =
'restrict_default_open_event_category_creating';
16 private static bool $processing =
false;
21 if (self::$processing)
26 self::$processing =
true;
30 self::$processing =
false;
35 public function run(): void
37 if (!Loader::includeModule(
'calendar'))
44 if ($this->shouldCreateDefaultCategory())
52 \CCalendarType::Edit([
55 'XML_ID' => Dictionary::CALENDAR_TYPE[
'open_event'],
56 'NAME' => Loc::getMessage(
'CALENDAR_OPEN_EVENTS_DEFAULT_SECTION_NAME'),
64 if ($this->hasOpenEventSection())
69 \CCalendarSect::Edit([
71 'NAME' => Loc::getMessage(
'CALENDAR_OPEN_EVENTS_DEFAULT_SECTION_NAME'),
72 'DESCRIPTION' => Loc::getMessage(
'CALENDAR_OPEN_EVENTS_DEFAULT_SECTION_NAME'),
73 'CAL_TYPE' => Dictionary::CALENDAR_TYPE[
'open_event'],
75 'TEXT_COLOR' =>
'#FFFFFF',
76 'OWNER_ID' => Common::SYSTEM_USER_ID,
77 'CREATED_BY' => Common::SYSTEM_USER_ID,
82 private function hasOpenEventSection(): bool
84 $openEventSections = \CCalendarSect::GetList([
85 'arSelect' => [
'ID',
'CAL_TYPE'],
87 'CAL_TYPE' => Dictionary::CALENDAR_TYPE[
'open_event'],
90 'checkPermissions' =>
false,
91 'getPermissions' =>
false,
94 return !empty($openEventSections);
99 DefaultCategoryService::getInstance()->createDefaultCategory();
102 private function shouldCreateDefaultCategory(): bool
105 moduleId: Common::CALENDAR_MODULE_ID,
106 name: self::RESTRICT_OPTION_NAME,
static get($moduleId, $name, $default="", $siteId=false)