$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; } $arEvents[$i]['_DETAIL_URL'] = $arParams['DETAIL_URL'] . '?EVENT_ID=' . $arEvents[$i]['ID'] . '&EVENT_DATE=' . $arEvents[$i]['DATE_FROM']; if ($arEvents[$i]['STATUS'] && $arEvents[$i]['STATUS'] == 'Q') { $arEvents[$i]['_ADD_CLASS'] = ' calendar-not-confirmed'; $arEvents[$i]['_Q_ICON'] = '<span class="calendar-reminder" title="' . GetMessage('EC_NOT_CONFIRMED') . '">[?]</span>'; } else { $arEvents[$i]['_ADD_CLASS'] = ''; $arEvents[$i]['_Q_ICON'] = ''; } if ($arEvents[$i]['IMPORTANCE'] == 'high') { $arEvents[$i]['_ADD_CLASS'] = ' imortant-event'; } if ($arEvents[$i]['_FROM_TS'] >= $limit_from_ts) {
function AddReminder($arParams) { $fullUrl = $arParams['fullUrl']; $ownerType = $arParams['ownerType']; $ownerId = $arParams['ownerId']; $userId = $arParams['userId']; $url = $fullUrl . (strpos($fullUrl, '?') === FALSE ? '?' : '&') . 'EVENT_ID=' . $arParams["id"]; $remAgentParams = array('iblockId' => $arParams['iblockId'], 'eventId' => $arParams["id"], 'userId' => $userId, 'pathToPage' => $url, 'ownerType' => $ownerType, 'ownerId' => $ownerId ? $ownerId : 'false'); if ($arParams["remind"] !== false) { $rem_ts = MakeTimeStamp($arParams['dateFrom'], getTSFormat()); $delta = intVal($arParams["remind"]['count']) * 60; //Minute if ($arParams["remind"]['type'] == 'hour') { $delta = $delta * 60; } elseif ($arParams["remind"]['type'] == 'day') { $delta = $delta * 60 * 24; } //Day $rem_ts -= $delta; $remindTime = date(getDateFormat(), $rem_ts); if ($rem_ts >= time() - 60 * 5) { // Inaccuracy - 5 min CEventCalendar::AddAgent($remindTime, $remAgentParams); } else { CEventCalendar::RemoveAgent($remAgentParams); } } else { if (!$arParams['bNew']) { CEventCalendar::RemoveAgent($remAgentParams); } } }