Example #1
0
 public function Execute()
 {
     if (!CModule::IncludeModule("intranet")) {
         return CBPActivityExecutionStatus::Closed;
     }
     $calendarIblockId = COption::GetOptionInt("intranet", 'iblock_calendar', 0);
     if ($calendarIblockId <= 0) {
         return CBPActivityExecutionStatus::Closed;
     }
     $rootActivity = $this->GetRootActivity();
     $documentId = $rootActivity->GetDocumentId();
     $arCalendarUser = CBPHelper::ExtractUsers($this->CalendarUser, $documentId);
     foreach ($arCalendarUser as $calendarUser) {
         $Params = array('iblockId' => $calendarIblockId, 'ownerType' => "USER", 'ownerId' => $calendarUser, 'cacheTime' => 0, 'pageUrl' => false, 'allowSuperpose' => false, 'allowResMeeting' => false, 'allowVideoMeeting' => false, 'userIblockId' => $calendarIblockId);
         $EC = new CEventCalendar();
         $EC->Init($Params);
         $sectionId = $EC->GetSectionIDByOwnerId($calendarUser, 'USER', $calendarIblockId);
         if ($sectionId <= 0) {
             $sectionId = CEventCalendar::CreateSectionForOwner($calendarUser, "USER", $calendarIblockId);
         }
         $arGuestCalendars = $EC->GetCalendars(array('sectionId' => $sectionId, 'iblockId' => $calendarIblockId, 'ownerType' => 'USER', 'ownerId' => $calendarUser, 'bOwner' => true, 'forExport' => true, 'bOnlyID' => true));
         $arParams = array('iblockId' => $calendarIblockId, 'ownerType' => "USER", 'ownerId' => $calendarUser, 'sectionId' => $sectionId, 'bNew' => true, 'name' => $this->CalendarName, 'desc' => $this->CalendarDesrc, 'dateFrom' => cutZeroTime($this->CalendarFrom), 'dateTo' => cutZeroTime($this->CalendarTo), 'isMeeting' => false, 'prop' => array('PERIOD_TYPE' => 'NONE', 'ACCESSIBILITY' => 'busy', 'IMPORTANCE' => 'normal', 'PRIVATE' => false), 'userId' => $calendarUser, 'userIblockId' => $calendarIblockId, 'location' => array('new' => '', 'change' => true));
         if (count($arGuestCalendars) > 0) {
             $arParams["calendarId"] = $arGuestCalendars[0];
         }
         $EC->SaveEvent($arParams);
     }
     if (isset($EC)) {
         $EC->ClearCache($EC->cachePath . 'events/' . $calendarIblockId . '/');
     }
     return CBPActivityExecutionStatus::Closed;
 }
Example #2
0
 function HandleElement(&$res, $arItem, $arPeriodic = false, $bJS = false, $bSuperposed = false)
 {
     $arEvent = array('ID' => intVal($arItem['ID']), 'IBLOCK_ID' => intVal($arItem['IBLOCK_ID']), 'IBLOCK_SECTION_ID' => intVal($arItem['IBLOCK_SECTION_ID']), 'NAME' => htmlspecialcharsex($arItem['~NAME']), 'DATE_FROM' => cutZeroTime($arItem['DISPLAY_ACTIVE_FROM']), 'DATE_TO' => cutZeroTime($arItem['DISPLAY_ACTIVE_TO']), 'DETAIL_TEXT' => $arItem['DETAIL_TEXT'], 'PERIOD' => $arPeriodic, 'TIMESTAMP_X' => $arItem['TIMESTAMP_X'], 'DATE_CREATE' => $arItem['DATE_CREATE'], 'GUESTS' => $arItem['GUESTS'], 'CREATED_BY' => $arItem['CREATED_BY'], 'STATUS' => $arItem['STATUS'], 'HOST' => $arItem['HOST'], 'REMIND' => $arItem['REMIND'], 'IMPORTANCE' => $arItem['IMPORTANCE'] ? $arItem['IMPORTANCE'] : 'normal', 'ACCESSIBILITY' => $arItem['ACCESSIBILITY'], 'PRIVATE' => $arItem['PRIVATE'], 'VERSION' => $arItem['VERSION'], 'MEETING_TEXT' => htmlspecialcharsex(addslashes($arItem['MEETING_TEXT'])), 'IS_MEETING' => $arItem['IS_MEETING'], 'LOCATION' => $arItem['LOCATION']);
     $rsUser = CUser::GetByID($arItem['CREATED_BY']);
     if ($arUser = $rsUser->Fetch()) {
         $url = str_replace('#USER_ID#', $arUser["ID"], COption::GetOptionString('intranet', 'path_user', '/company/personal/user/#USER_ID#/'));
         $arEvent['CREATED_BY_NAME_LINK'] = '<a href="' . $url . '" target="_blank">' . CUser::FormatName(CSite::GetNameFormat(), $arUser) . '</a>';
     }
     if ($bSuperposed) {
         $arEvent['bSuperposed'] = true;
     }
     if ($bJS) {
         $res .= CUtil::PhpToJSObject($arEvent) . ",";
     } else {
         $res[] = $arEvent;
     }
 }