if (!CModule::IncludeModule("iblock")) { $this->AbortResultCache(); ShowError(GetMessage("EC_IBLOCK_MODULE_NOT_INSTALLED")); return; } CModule::IncludeModule("socialnetwork"); // Limits if (strlen($arParams["INIT_DATE"]) > 0 && strpos($arParams["INIT_DATE"], '.') !== false) { $ts = MakeTimeStamp($arParams["INIT_DATE"], getTSFormat()); } else { $ts = MakeTimeStamp(date(getDateFormat(false)), getTSFormat()); } $fromLimit = date(getDateFormat(false), $ts); $toLimit = date(getDateFormat(false), mktime(0, 0, 0, date("m", $ts) + $arParams["FUTURE_MONTH_COUNT"], date("d", $ts), date("Y", $ts))); $arResult['ITEMS'] = array(); $arEvents = CEventCalendar::GetNearestEventsList(array('bCurUserList' => $arParams['B_CUR_USER_LIST'], 'fromLimit' => $fromLimit, 'toLimit' => $toLimit, 'iblockId' => $arParams["IBLOCK_ID"], 'iblockSectionId' => $arParams["IBLOCK_SECTION_ID"])); if ($arEvents == 'access_denied') { $arResult['ACCESS_DENIED'] = true; } elseif ($arEvents == 'inactive_feature') { $arResult['INACTIVE_FEATURE'] = true; } elseif (is_array($arEvents)) { $limitTromTS = MakeTimeStamp($fromLimit, getTSFormat()); if (strpos($arParams['DETAIL_URL'], '?') !== FALSE) { $arParams['DETAIL_URL'] = substr($arParams['DETAIL_URL'], 0, strpos($arParams['DETAIL_URL'], '?')); } $arParams['DETAIL_URL'] = str_replace('#user_id#', $curUserId, strtolower($arParams['DETAIL_URL'])); for ($i = 0, $l = count($arEvents); $i < $l; $i++) { $arEvents[$i]['_FROM_TS'] = MakeTimeStamp($arEvents[$i]['DATE_FROM'], getTSFormat()); if ($arEvents[$i]['_FROM_TS'] < $limitTromTS) { continue; }
public function GetEvents($date) { $arEvents = array(); if (CBXFeatures::IsFeatureEnabled('Calendar')) { $ts = CTimeMan::RemoveHoursTS(MakeTimeStamp($date)); if ($ts > 0) { $calendar2 = COption::GetOptionString("intranet", "calendar_2", "N") == "Y" && CModule::IncludeModule('calendar'); if ($calendar2) { $arFilter = array('arFilter' => array("OWNER_ID" => $this->USER_ID, "FROM_LIMIT" => ConvertTimeStamp($ts, 'FULL'), "TO_LIMIT" => ConvertTimeStamp($ts + 86399, 'FULL')), 'parseRecursion' => true, 'userId' => $this->USER_ID, 'skipDeclined' => true, 'fetchAttendees' => false, 'fetchMeetings' => true); $arNewEvents = CCalendarEvent::GetList($arFilter); if (count($arNewEvents) > 0) { foreach ($arNewEvents as $arEvent) { if ($arEvent['RRULE']) { $ts_from = MakeTimeStamp($arEvent['DT_FROM']); $ts_to = MakeTimeStamp($arEvent['DT_TO']); if ($ts_to < $ts || $ts_from > $ts + 86399) { continue; } } $arEvents[] = array('ID' => $arEvent['ID'], 'OWNER_ID' => $this->USER_ID, 'CREATED_BY' => $arEvent['CREATED_BY'], 'NAME' => $arEvent['NAME'], 'DETAIL_TEXT' => $arEvent['DESCRIPTION'], 'DATE_FROM' => $arEvent['DT_FROM'], 'DATE_TO' => $arEvent['DT_TO'], 'IMPORTANCE' => $arEvent['IMPORTANCE'], 'ACCESSIBILITY' => $arEvent['ACCESSIBILITY']); } } } else { $arEvents = CEventCalendar::GetNearestEventsList(array('userId' => $this->USER_ID, 'bCurUserList' => true, 'fromLimit' => ConvertTimeStamp($ts, 'FULL'), 'toLimit' => ConvertTimeStamp($ts + 86399, 'FULL'), 'iblockId' => COption::GetOptionInt('intranet', 'iblock_calendar'))); foreach ($arEvents as $key => $event) { if ($event['STATUS'] === 'N') { unset($arEvents[$key]); } } } return array_values($arEvents); } } return false; }