예제 #1
0
 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;
         }
예제 #2
0
 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;
 }