- Модуль: calendar
- Путь к файлу: ~/bitrix/modules/calendar/classes/general/calendar_event.php
- Класс: CCalendarEvent
- Вызов: CCalendarEvent::getLocalBatchEvent
static function getLocalBatchEvent(int $userId, int $sectionId, int $syncTimestamp, int $count = 50): array
{
global $DB;
$events = [];
$queryString = "SELECT e.*"
. ", " . $DB->DateToCharFunction('e.DATE_FROM') . " as DATE_FROM"
. ", " . $DB->DateToCharFunction('e.DATE_TO') . " as DATE_TO"
. ", " . $DB->DateToCharFunction('e.DATE_CREATE') . " as DATE_CREATE"
. ", " . $DB->DateToCharFunction('e.TIMESTAMP_X') . " as TIMESTAMP_X"
. " FROM b_calendar_event e"
. " INNER JOIN b_calendar_section s"
. " ON s.ID = e.SECTION_ID"
. " WHERE"
. " e.CAL_TYPE = 'user'"
. " AND e.OWNER_ID = " . $userId
. " AND e.DELETED <> 'Y'"
. " AND e.DATE_TO_TS_UTC >= " . $syncTimestamp
. " AND e.SECTION_ID = " . $sectionId
. " AND e.SYNC_STATUS IS NULL"
. " AND (e.RECURRENCE_ID IS NULL OR e.RECURRENCE_ID = '')"
. " AND (e.RRULE IS NULL OR e.RRULE = '')"
. " AND (e.MEETING_STATUS != 'N'"
. " OR e.MEETING_STATUS IS NULL)"
. " AND s.EXTERNAL_TYPE = 'local'"
. " AND s.GAPI_CALENDAR_ID IS NOT NULL"
. " ORDER BY ID ASC"
. " LIMIT " . $count
. ";"
;
$eventsDb = $DB->Query($queryString);
while ($event = $eventsDb->Fetch())
{
if (isset($event['REMIND']) && $event['REMIND'] !== "")
{
$event['REMIND'] = unserialize($event['REMIND'], ['allowed_classes' => false]);
}
$events[] = $event;
}
return $events;
}