protected static function SaveCalendarEvent(&$arFields) { $responsibleID = isset($arFields['RESPONSIBLE_ID']) ? intval($arFields['RESPONSIBLE_ID']) : 0; $typeID = isset($arFields['TYPE_ID']) ? intval($arFields['TYPE_ID']) : CCrmActivityType::Undefined; if (!($responsibleID > 0 && ($typeID === CCrmActivityType::Call || $typeID === CCrmActivityType::Meeting))) { return false; } if (!(IsModuleInstalled('calendar') && CModule::IncludeModule('calendar'))) { return false; } $arCalEventFields = array('CAL_TYPE' => 'user', 'OWNER_ID' => $responsibleID, 'NAME' => isset($arFields['SUBJECT']) ? $arFields['SUBJECT'] : '', 'DT_FROM' => isset($arFields['START_TIME']) ? $arFields['START_TIME'] : '', 'DT_TO' => isset($arFields['END_TIME']) ? $arFields['END_TIME'] : '', 'IMPORTANCE' => CCrmActivityPriority::ToCalendarEventImportance(isset($arFields['PRIORITY']) ? intval($arFields['PRIORITY']) : CCrmActivityPriority::Low), 'DESCRIPTION' => isset($arFields['DESCRIPTION']) ? $arFields['DESCRIPTION'] : ''); $associatedEntityID = isset($arFields['ASSOCIATED_ENTITY_ID']) ? intval($arFields['ASSOCIATED_ENTITY_ID']) : 0; if ($associatedEntityID > 0) { $arCalEventFields['ID'] = $associatedEntityID; $arPresentEventFields = CCalendarEvent::GetById($associatedEntityID, false); if (is_array($arPresentEventFields)) { if (isset($arPresentEventFields['RRULE']) && $arPresentEventFields['RRULE'] != '') { $arCalEventFields['RRULE'] = CCalendarEvent::ParseRRULE($arPresentEventFields['RRULE']); } if (isset($arPresentEventFields['DT_LENGTH'])) { $arCalEventFields['DT_LENGTH'] = $arPresentEventFields['DT_LENGTH']; } } } if (isset($arFields['NOTIFY_TYPE']) && $arFields['NOTIFY_TYPE'] != CCrmActivityNotifyType::None) { $arCalEventFields['REMIND'] = array(array('type' => CCrmActivityNotifyType::ToCalendarEventRemind($arFields['NOTIFY_TYPE']), 'count' => isset($arFields['NOTIFY_VALUE']) ? intval($arFields['NOTIFY_VALUE']) : 15)); } self::$IGNORE_CALENDAR_EVENTS = true; // We must initialize CCalendar! $calendar = new CCalendar(); $calendar->Init(array('type' => 'user', 'userId' => $responsibleID, 'ownerId' => $responsibleID)); $result = $calendar->SaveEvent(array('arFields' => $arCalEventFields, 'userId' => $responsibleID, 'autoDetectSection' => true, 'autoCreateSection' => true)); $eventID = intval($result); $ownerID = intval($arFields['OWNER_ID']); $ownerTypeID = intval($arFields['OWNER_TYPE_ID']); $arBindings = isset($arFields['BINDINGS']) ? $arFields['BINDINGS'] : array(); if (empty($arBindings) && $ownerID > 0 && $ownerTypeID > 0) { $arBindings[] = array('OWNER_TYPE_ID' => $ownerTypeID, 'OWNER_ID' => $ownerID); } if ($eventID > 0 && !empty($arBindings)) { $arUserFields = array(); foreach ($arBindings as &$arBinding) { $arUserFields[] = CUserTypeCrm::GetShortEntityType(CCrmOwnerType::ResolveName($arBinding['OWNER_TYPE_ID'])) . '_' . $arBinding['OWNER_ID']; } unset($arBinding); CCalendarEvent::UpdateUserFields($eventID, array('UF_CRM_CAL_EVENT' => $arUserFields)); } self::$IGNORE_CALENDAR_EVENTS = false; return $result; }
public static function SetMeetingParams($userId, $eventId, $arFields) { global $DB; $eventId = intVal($eventId); $userId = intVal($userId); // Check $arFields if (!in_array($arFields['ACCESSIBILITY'], array('busy', 'quest', 'free', 'absent'))) { $arFields['ACCESSIBILITY'] = 'busy'; } $arReminders = array(); if ($arFields['REMIND'] && is_array($arFields['REMIND'])) { foreach ($arFields['REMIND'] as $remind) { if (in_array($remind['type'], array('min', 'hour', 'day'))) { $arReminders[] = array('type' => $remind['type'], 'count' => floatVal($remind['count'])); } } } $arFields['REMIND'] = count($arReminders) > 0 ? serialize($arReminders) : ''; // Reminding options $Event = CCalendarEvent::GetById($eventId); if (!$Event) { return false; } $path = CCalendar::GetPath($arFields['CAL_TYPE']); $path = CHTTP::urlDeleteParams($path, array("action", "sessid", "bx_event_calendar_request", "EVENT_ID")); $viewPath = CHTTP::urlAddParams($path, array('EVENT_ID' => $eventId)); $remAgentParams = array('eventId' => $eventId, 'userId' => $userId, 'viewPath' => $viewPath, 'calendarType' => $Event["CAL_TYPE"], 'ownerId' => $Event["OWNER_ID"]); // 1. clean reminders CCalendar::RemoveAgent($remAgentParams); // 2. Set new reminders foreach ($arReminders as $reminder) { $delta = intVal($reminder['count']) * 60; //Minute if ($reminder['type'] == 'hour') { $delta = $delta * 60; } elseif ($reminder['type'] == 'day') { $delta = $delta * 60 * 24; } //Day if ($Event['DT_FROM_TS'] - $delta >= time() - 60 * 5) { // Inaccuracy - 5 min CCalendar::AddAgent(CCalendar::Date($Event['DT_FROM_TS'] - $delta), $remAgentParams); } } // Select meeting info about event $res = CCalendarEvent::GetList(array('arFilter' => array("ID" => $eventId, "DELETED" => "N"), 'parseRecursion' => false)); if ($Event = $res[0]) { if ($Event['IS_MEETING']) { // Try to find this user into attendees for this event $strSql = "SELECT * FROM b_calendar_attendees WHERE USER_KEY={$userId} AND EVENT_ID={$eventId}"; $dbAtt = $DB->Query($strSql, false, "File: " . __FILE__ . "<br>Line: " . __LINE__); if ($att = $dbAtt->Fetch()) { //Set params $strSql = "UPDATE b_calendar_attendees SET " . $DB->PrepareUpdate("b_calendar_attendees", $arFields) . " WHERE EVENT_ID=" . $eventId . " AND USER_KEY=" . $userId; $DB->Query($strSql, false, "File: " . __FILE__ . "<br>Line: " . __LINE__); } } } CCalendar::ClearCache('attendees_list'); return true; }
$arParams['SECTIONS'] = CCalendar::GetSectionList(array( 'CAL_TYPE' => $arParams['OWNER_TYPE'], 'OWNER_ID' => $arParams['CUR_USER'] )); if (empty($arParams['SECTIONS'])) { $defCalendar = CCalendarSect::CreateDefault(array( 'type' => $arParams['OWNER_TYPE'], 'ownerId' => $arParams['CUR_USER'] )); $arParams['SECTIONS'][] = $defCalendar; CCalendar::SetCurUserMeetingSection($defCalendar['ID']); } $arParams['EVENT'] = CCalendarEvent::GetById($arParams['EVENT_ID']); $arParams["DESTINATION"] = (is_array($arParams["DESTINATION"]) && IsModuleInstalled("socialnetwork") ? $arParams["DESTINATION"] : array()); $arParams["DESTINATION"] = (array_key_exists("VALUE", $arParams["DESTINATION"]) ? $arParams["DESTINATION"]["VALUE"] : $arParams["DESTINATION"]); $users = array(); foreach ($arParams["DESTINATION"]['USERS'] as $key => $entry) { if ($entry['isExtranet'] == 'N') $users[$key] = $entry; } $arParams["DESTINATION"]['USERS'] = $users; // Empty destination for new events if (!$arParams['EVENT_ID'])
public static function NotifyComment($eventID, $arComment) { if (!CModule::IncludeModule("im")) { return; } if (intval($eventID) <= 0) { return; } if ($arCalendarEvent = CCalendarEvent::GetById($eventID)) { $rsUser = CUser::GetList($by = 'id', $order = 'asc', array('ID_EQUAL_EXACT' => intval($arComment["USER_ID"])), array('FIELDS' => array('PERSONAL_GENDER'))); $strMsgAddComment = GetMessage("EC_LF_COMMENT_MESSAGE_ADD"); $strMsgEditComment = GetMessage("EC_LF_COMMENT_MESSAGE_ADD"); if ($arUser = $rsUser->fetch()) { switch ($arUser['PERSONAL_GENDER']) { case "F": case "M": $strMsgAddComment = GetMessage("EC_LF_COMMENT_MESSAGE_ADD" . '_' . $arUser['PERSONAL_GENDER']); break; default: break; } } $arMessageFields = array("FROM_USER_ID" => $arComment["USER_ID"], "NOTIFY_TYPE" => IM_NOTIFY_FROM, "NOTIFY_MODULE" => "calendar", "NOTIFY_EVENT" => "event_comment", "NOTIFY_MESSAGE" => str_replace(array("#EVENT_TITLE#"), array(strlen($arComment["URL"]) > 0 ? "<a href=\"" . $arComment["URL"] . "\" class=\"bx-notifier-item-action\">" . $arCalendarEvent["NAME"] . "</a>" : $arCalendarEvent["NAME"]), $strMsgAddComment), "NOTIFY_MESSAGE_OUT" => str_replace(array("#EVENT_TITLE#"), array($arCalendarEvent["NAME"]), $strMsgAddComment) . (strlen($arComment["URL"]) > 0 ? " (" . $arComment["URL"] . ")" : "") . "#BR##BR#" . $arComment["MESSAGE"]); if (is_array($arCalendarEvent["~ATTENDEES"])) { foreach ($arCalendarEvent["~ATTENDEES"] as $arAttendee) { if ($arAttendee["USER_ID"] == $arComment["USER_ID"]) { continue; } $arMessageFields1 = array_merge($arMessageFields, array("TO_USER_ID" => $arAttendee["USER_ID"])); CIMNotify::Add($arMessageFields1); } } } }
public static function FixForumCommentURL($arData) { if( in_array($arData["MODULE_ID"], array("forum", "FORUM")) && $arData['ENTITY_TYPE_ID'] === 'FORUM_POST' && intval($arData['PARAM1']) > 0 && preg_match('/^EVENT_([0-9]+)/', $arData["TITLE"], $match) ) { $arCalendarSettings = CCalendar::GetSettings(); $forumID = $arCalendarSettings["forum_id"]; $eventID = intval($match[1]); if ( intval($arData['PARAM1']) == $forumID && $eventID > 0 && !empty($arCalendarSettings["pathes"]) && ($arCalendarEvent = CCalendarEvent::GetById($eventID)) && strlen($arCalendarEvent["CAL_TYPE"]) > 0 && in_array($arCalendarEvent["CAL_TYPE"], array("user", "group")) && intval($arCalendarEvent["OWNER_ID"]) > 0 ) { foreach ($arData['LID'] as $siteId => $value) { $messageUrl = false; if ( array_key_exists($siteId, $arCalendarSettings["pathes"]) && is_array($arCalendarSettings["pathes"][$siteId]) && !empty($arCalendarSettings["pathes"][$siteId]) ) { if ($arCalendarEvent["CAL_TYPE"] == "user") { if ( array_key_exists("path_to_user_calendar", $arCalendarSettings["pathes"][$siteId]) && !empty($arCalendarSettings["pathes"][$siteId]["path_to_user_calendar"]) ) { $messageUrl = CComponentEngine::MakePathFromTemplate( $arCalendarSettings["pathes"][$siteId]["path_to_user_calendar"], array( "user_id" => $arCalendarEvent['OWNER_ID'], ) ); } } else { if ( array_key_exists("path_to_group_calendar", $arCalendarSettings["pathes"][$siteId]) && !empty($arCalendarSettings["pathes"][$siteId]["path_to_group_calendar"]) ) { $messageUrl = CComponentEngine::MakePathFromTemplate( $arCalendarSettings["pathes"][$siteId]["path_to_group_calendar"], array( "group_id" => $arCalendarEvent['OWNER_ID'], ) ); } } } $arData['LID'][$siteId] = ($messageUrl ? $messageUrl."?EVENT_ID=".$arCalendarEvent["ID"]."&MID=".$arData['ENTITY_ID']."#message".$arData['ENTITY_ID'] : ""); } return $arData; } return array( "TITLE" => "", "BODY" => "" ); } }
public static function SetMeetingParams($userId, $eventId, $arFields) { $eventId = intVal($eventId); $userId = intVal($userId); // Check $arFields if (!in_array($arFields['ACCESSIBILITY'], array('busy', 'quest', 'free', 'absent'))) { $arFields['ACCESSIBILITY'] = 'busy'; } $event = CCalendarEvent::GetById($eventId); if (!$event) { return false; } $res = CCalendarEvent::GetList(array('arFilter' => array("PARENT_ID" => $eventId, "CREATED_BY" => $userId, "IS_MEETING" => 1, "DELETED" => "N"), 'parseRecursion' => false, 'fetchAttendees' => true, 'fetchMeetings' => true, 'checkPermissions' => true, 'setDefaultLimit' => false)); if (!$res || !$res[0]) { $res = CCalendarEvent::GetList(array('arFilter' => array("ID" => $eventId, "CREATED_BY" => $userId, "IS_MEETING" => 1, "DELETED" => "N"), 'parseRecursion' => false, 'fetchAttendees' => true, 'fetchMeetings' => true, 'checkPermissions' => true, 'setDefaultLimit' => false)); } if ($res[0]) { $event = $res[0]; $arReminders = array(); if (isset($arFields['REMIND'])) { if ($arFields['REMIND'] && is_array($arFields['REMIND'])) { foreach ($arFields['REMIND'] as $remind) { if (in_array($remind['type'], array('min', 'hour', 'day'))) { $arReminders[] = array('type' => $remind['type'], 'count' => floatVal($remind['count'])); } } } } $arFields = array("ID" => $event['ID'], "REMIND" => $arReminders, "ACCESSIBILITY" => $arFields['ACCESSIBILITY']); //SaveEvent CCalendar::SaveEvent(array('arFields' => $arFields)); } return true; }
public static function AddComment_Calendar($arFields) { global $DB; if (!CModule::IncludeModule("forum")) return false; $ufFileID = array(); $ufDocID = array(); $dbResult = CSocNetLog::GetList( array(), array("ID" => $arFields["LOG_ID"]), false, false, array("ID", "SOURCE_ID", "SITE_ID") ); if ($arLog = $dbResult->Fetch()) { $arCalendarEvent = CCalendarEvent::GetById($arLog["SOURCE_ID"]); if ($arCalendarEvent) { $arCalendarSettings = CCalendar::GetSettings(); $forumID = $arCalendarSettings["forum_id"]; if ($forumID) { $arFilter = array( "FORUM_ID" => $forumID, "XML_ID" => "EVENT_".$arLog["SOURCE_ID"] ); $dbTopic = CForumTopic::GetList(null, $arFilter); if ($dbTopic && ($arTopic = $dbTopic->Fetch())) $topicID = $arTopic["ID"]; else $topicID = 0; $currentUserId = CCalendar::GetCurUserId(); $strPermission = ($currentUserId == $arCalendarEvent["OWNER_ID"] ? "Y" : "M"); $arFieldsMessage = array( "POST_MESSAGE" => $arFields["TEXT_MESSAGE"], "USE_SMILES" => "Y", "PERMISSION_EXTERNAL" => "Q", "PERMISSION" => $strPermission, "APPROVED" => "Y" ); if ($topicID === 0) { $arFieldsMessage["TITLE"] = "EVENT_".$arLog["SOURCE_ID"]; $arFieldsMessage["TOPIC_XML_ID"] = "EVENT_".$arLog["SOURCE_ID"]; } $arTmp = false; $GLOBALS["USER_FIELD_MANAGER"]->EditFormAddFields("SONET_COMMENT", $arTmp); if (is_array($arTmp)) { if (array_key_exists("UF_SONET_COM_DOC", $arTmp)) $GLOBALS["UF_FORUM_MESSAGE_DOC"] = $arTmp["UF_SONET_COM_DOC"]; elseif (array_key_exists("UF_SONET_COM_FILE", $arTmp)) { $arFieldsMessage["FILES"] = array(); foreach($arTmp["UF_SONET_COM_FILE"] as $file_id) $arFieldsMessage["FILES"][] = array("FILE_ID" => $file_id); } } $messageID = ForumAddMessage(($topicID > 0 ? "REPLY" : "NEW"), $forumID, $topicID, 0, $arFieldsMessage, $sError, $sNote); // get UF DOC value and FILE_ID there if ($messageID > 0) { $messageUrl = CCalendar::GetPath("user", $arCalendarEvent["OWNER_ID"]); $messageUrl = $messageUrl.((strpos($messageUrl, "?") === false) ? "?" : "&")."EVENT_ID=".$arCalendarEvent["ID"]."&MID=".$messageID; $dbAddedMessageFiles = CForumFiles::GetList(array("ID" => "ASC"), array("MESSAGE_ID" => $messageID)); while ($arAddedMessageFiles = $dbAddedMessageFiles->Fetch()) $ufFileID[] = $arAddedMessageFiles["FILE_ID"]; $ufDocID = $GLOBALS["USER_FIELD_MANAGER"]->GetUserFieldValue("FORUM_MESSAGE", "UF_FORUM_MESSAGE_DOC", $messageID, LANGUAGE_ID); } } } } if (!$messageID) $sError = GetMessage("EC_LF_ADD_COMMENT_SOURCE_ERROR"); return array( "SOURCE_ID" => $messageID, "MESSAGE" => ($arFieldsMessage ? $arFieldsMessage["POST_MESSAGE"] : false), "RATING_TYPE_ID" => "FORUM_POST", "RATING_ENTITY_ID" => $messageID, "ERROR" => $sError, "NOTES" => $sNote, "UF" => array( "FILE" => $ufFileID, "DOC" => $ufDocID ), "URL" => $messageUrl ); }
public static function AddEvent($MEETING_ID, $arFields, $arParams = array()) { global $USER; $EventID = false; if (self::IsNewCalendar()) { $arEventFields = array('ID' => $arFields['EVENT_ID'], 'CAL_TYPE' => 'user', 'OWNER_ID' => $arFields['OWNER_ID'], 'DT_FROM' => $arFields['DATE_START'], 'DT_TO' => ConvertTimeStamp(MakeTimeStamp($arFields['DATE_START']) + $arFields['DURATION'], 'FULL'), 'NAME' => $arFields['TITLE'], 'DESCRIPTION' => CCalendar::ParseHTMLToBB($arFields['DESCRIPTION']), 'IS_MEETING' => true, 'MEETING_HOST' => $arFields['OWNER_ID'], 'MEETING' => array('HOST_NAME' => CCalendar::GetUserName($arFields['OWNER_ID'])), 'ATTENDEES' => array_keys($arFields['USERS'])); if ($arFields['CURRENT_STATE'] == CMeeting::STATE_CLOSED) { $arEventFields['DT_TO'] = MakeTimeStamp($arFields['DATE_FINISH']) > MakeTimeStamp($arFields['DATE_START']) ? $arFields['DATE_FINISH'] : $arEventFields['DT_TO']; } $matches = array(); if (preg_match('/^mr_([\\d]+)_([\\d]+)$/', $arFields["PLACE"], $matches)) { $arEventFields['LOCATION'] = 'ECMR_' . $matches[2]; if ($arFields['EVENT_ID'] > 0) { $arCurrentEvent = CCalendarEvent::GetById($arFields['EVENT_ID']); if ($arCurrentEvent['LOCATION']) { $res = CCalendar::ParseLocation($arCurrentEvent['LOCATION']); if ($res['mrevid']) { $arEventFields['LOCATION'] .= '_' . $res['mrevid']; } } } } else { $arEventFields['LOCATION'] = $arFields['PLACE']; } if (isset($arFields['REINVITE'])) { $arEventFields['MEETING']['REINVITE'] = $arFields['REINVITE']; } else { $arEventFields['MEETING']['REINVITE'] = false; } if (isset($arFields['NOTIFY'])) { $arEventFields['MEETING']['NOTIFY'] = $arFields['NOTIFY']; } $EventID = CCalendar::SaveEvent(array('arFields' => $arEventFields, 'userId' => $arFields['OWNER_ID'], 'autoDetectSection' => true, 'autoCreateSection' => true)); } elseif (!$arFields['EVENT_ID']) { $iblockId = $arParams['CALENDAR_IBLOCK_ID'] ? $arParams['CALENDAR_IBLOCK_ID'] : COption::GetOptionInt('intranet', 'iblock_calendar', 0, SITE_ID); $obCalendar = new CEventCalendar(); $obCalendar->Init(array('ownerType' => 'USER', 'ownerId' => $USER->GetID(), 'bOwner' => true, 'iblockId' => $iblockId, 'userIblockId' => $iblockId, 'bCache' => false, 'pathToUserCalendar' => '/company/personal/user/#user_id#/calendar/')); $guestCalendarId = false; $guestSection = $obCalendar->GetSectionIDByOwnerId($USER->GetID(), 'USER', $iblockId); $arGuestCalendars = array(); if (!$guestSection) { $guestSection = $obCalendar->CreateSectionForOwner($USER->GetID(), "USER", $iblockId); } $arGuestCalendars = $obCalendar->GetCalendars(array('sectionId' => $guestSection, 'iblockId' => $iblockId, 'ownerType' => 'USER', 'ownerId' => $USER->GetID(), 'bOwner' => 1, 'forExport' => true, 'bOnlyID' => true)); if (count($arGuestCalendars) > 0) { $arUserSet = $obCalendar->GetUserSettings(array('static' => false, 'userId' => $USER->GetID())); if ($arUserSet && isset($arUserSet['MeetCalId']) && in_array($arUserSet['MeetCalId'], $arGuestCalendars)) { $guestCalendarId = intVal($arUserSet['MeetCalId']); } else { $guestCalendarId = $arGuestCalendars[0]; } } //$bGroup = $arParams['GROUP_ID'] > 0; $arPermissions = $obCalendar->GetPermissions(array('setProperties' => true)); $arEventFields = array('iblockId' => $obCalendar->iblockId, 'ownerType' => $obCalendar->ownerType, 'ownerId' => $obCalendar->ownerId, 'RMiblockId' => self::__getRMIblockID(), 'allowResMeeting' => true, 'bNew' => true, 'fullUrl' => $obCalendar->fullUrl, 'userId' => $obCalendar->userId, 'pathToUserCalendar' => $obCalendar->pathToUserCalendar, 'pathToGroupCalendar' => $obCalendar->pathToGroupCalendar, 'userIblockId' => $obCalendar->iblockId, 'calendarId' => $guestCalendarId, 'sectionId' => $guestSection, 'dateFrom' => $arFields['DATE_START'], 'dateTo' => $arFields['DATE_FINISH'] ? $arFields['DATE_FINISH'] : ConvertTimeStamp(MakeTimeStamp($arFields['DATE_START']) + $arFields['DURATION'], 'FULL'), 'name' => $arFields['TITLE'], 'desc' => $arFields['DESCRIPTION'], 'prop' => array(), 'isMeeting' => true, 'guests' => array_keys($arFields['USERS']), 'notDisplayCalendar' => true); if ($EventID = $obCalendar->SaveEvent($arEventFields)) { CEventCalendar::ClearCache('/event_calendar/events/' . $arEventFields['iblockId'] . '/'); CEventCalendar::ClearCache('/event_calendar/events/' . $arEventFields['userIblockId'] . '/'); } } if ($EventID) { self::Update($MEETING_ID, array('EVENT_ID' => $EventID)); } return $EventID; }
if ($arParams['TYPE'] == 1 || !$calendar2) { if ($arParams['IBLOCK_ID'] <= 0) { $arParams['IBLOCK_ID'] = COption::GetOptionInt('intranet', $arParams['TYPE'] == 1 ? 'iblock_absence' : 'iblock_calendar'); } $arSelect = array('ID', 'IBLOCK_ID', 'IBLOCK_SECTION_ID', 'DATE_ACTIVE_FROM', 'DATE_ACTIVE_TO', 'NAME', 'PREVIEW_TEXT', 'DETAIL_TEXT'); if ($arParams['TYPE'] == 1) { $arSelect = array_merge($arSelect, array('PROPERTY_USER', 'PROPERTY_FINISH_STATE', 'PROPERTY_STATE', 'PROPERTY_ABSENCE_TYPE')); } else { $arSelect = array_merge($arSelect, array('PROPERTY_PERIOD_TYPE', 'PROPERTY_PERIOD_COUNT', 'PROPERTY_EVENT_LENGTH', 'PROPERTY_PERIOD_ADDITIONAL')); } $dbRes = CIBlockElement::GetList(array(), array('IBLOCK_ID' => $arParams['IBLOCK_ID'], 'ID' => $arParams['ID']), false, false, $arSelect); $arResult['ENTRY'] = $dbRes->Fetch(); $arResult['ENTRY']['DATE_ACTIVE_FROM'] = MakeTimeStamp($arResult['ENTRY']['DATE_ACTIVE_FROM']); $arResult['ENTRY']['DATE_ACTIVE_TO'] = MakeTimeStamp($arResult['ENTRY']['DATE_ACTIVE_TO']); } else { $arEvent = CCalendarEvent::GetById($arParams['ID']); $arResult['ENTRY'] = array('ID' => $arEvent['ID'], 'NAME' => $arEvent['NAME'], 'PREVIEW_TEXT' => '', 'DETAIL_TEXT' => $arEvent['DESCRIPTION'], 'DATE_ACTIVE_FROM' => $arEvent['DT_FROM_TS'] + date('Z') - date('Z', $arEvent['DT_FROM_TS']), 'DATE_ACTIVE_TO' => $arEvent['DT_TO_TS'] + date('Z') - date('Z', $arEvent['DT_TO_TS']), 'USER' => $arEvent['CREATED_BY'], 'PROPERTY_PERIOD_TYPE_VALUE' => 'NONE'); if ($arEvent['RRULE']) { $arRRule = array(); $arRRuleStr = explode(';', $arEvent['RRULE']); foreach ($arRRuleStr as $str) { list($param, $value) = explode('=', $str); $arRRule[$param] = $value; } $arResult['ENTRY']['PROPERTY_PERIOD_TYPE_VALUE'] = $arRRule['FREQ']; } } if ($arResult['ENTRY']) { $arResult['ENTRY']['DATE_ACTIVE_FROM'] = FormatDate($DB->DateFormatToPhp(CSite::GetDateFormat(CIntranetUtils::IsDateTime($arResult['ENTRY']['DATE_ACTIVE_FROM']) ? 'FULL' : 'SHORT', $arParams['SITE_ID'], true)), $arResult['ENTRY']['DATE_ACTIVE_FROM']); $arResult['ENTRY']['DATE_ACTIVE_TO'] = FormatDate($DB->DateFormatToPhp(CSite::GetDateFormat(CIntranetUtils::IsDateTime($arResult['ENTRY']['DATE_ACTIVE_TO']) ? 'FULL' : 'SHORT', $arParams['SITE_ID'], true)), $arResult['ENTRY']['DATE_ACTIVE_TO']); if ($arParams['TYPE'] == 1) {