- Модуль: calendar
- Путь к файлу: ~/bitrix/modules/calendar/classes/general/calendar_event.php
- Класс: CCalendarEvent
- Вызов: CCalendarEvent::PreHandleEvent
static function PreHandleEvent($item, $params = [])
{
if (!empty($item['LOCATION']))
{
$item['LOCATION'] = trim($item['LOCATION']);
}
if (!empty($item['MEETING']))
{
$item['MEETING'] = unserialize($item['MEETING'], ['allowed_classes' => false]);
if (!is_array($item['MEETING']))
{
$item['MEETING'] = [];
}
}
if (!empty($item['RELATIONS']))
{
$item['RELATIONS'] = unserialize($item['RELATIONS'], ['allowed_classes' => false]);
if (!is_array($item['RELATIONS']))
{
$item['RELATIONS'] = [];
}
}
if (!empty($item['REMIND']))
{
$item['REMIND'] = unserialize($item['REMIND'], ['allowed_classes' => false]);
if (!is_array($item['REMIND']))
{
$item['REMIND'] = [];
}
}
if (!empty($item['IS_MEETING']) && !empty($item['MEETING']) && !is_array($item['MEETING']))
{
$item['MEETING'] = unserialize($item['MEETING'], ['allowed_classes' => false]);
if (!is_array($item['MEETING']))
{
$item['MEETING'] = [];
}
}
if (self::CheckRecurcion($item))
{
$item['EXDATE'] = !empty($item['EXDATE']) ? self::convertDateToCulture($item['EXDATE']) : '';
$item['RRULE'] = self::ParseRRULE(self::convertDateToCulture($item['RRULE']));
$item['~RRULE_DESCRIPTION'] = self::GetRRULEDescription($item);
$tsFrom = CCalendar::Timestamp($item['DATE_FROM']);
$tsTo = CCalendar::Timestamp($item['DATE_TO']);
if (($tsTo - $tsFrom) > $item['DT_LENGTH'] + CCalendar::DAY_LENGTH)
{
$toTS = $tsFrom + $item['DT_LENGTH'];
if (isset($item['DT_SKIP_TIME']) && $item['DT_SKIP_TIME'] === 'Y')
{
$toTS -= CCalendar::GetDayLen();
}
$item['DATE_TO'] = CCalendar::Date($toTS);
}
}
if (!empty($item['ATTENDEES_CODES']) && is_string($item['ATTENDEES_CODES']))
{
$item['ATTENDEES_CODES'] = explode(',', $item['ATTENDEES_CODES']);
$item['attendeesEntityList'] = Util::convertCodesToEntities($item['ATTENDEES_CODES'] ?? null);
}
if (!empty($item['IS_MEETING']) && (int)$item['ID'] === (int)$item['PARENT_ID'])
{
$item['MEETING_STATUS'] = 'H';
}
$item['DT_SKIP_TIME'] = $item['DT_SKIP_TIME'] === 'Y' ? 'Y' : 'N';
if (empty($item['IMPORTANCE']))
{
$item['IMPORTANCE'] = 'normal';
}
$item['PRIVATE_EVENT'] = trim((string)($item['PRIVATE_EVENT'] ?? null));
$item['DESCRIPTION'] = trim((string)($item['DESCRIPTION'] ?? null));
if (!empty($params['parseDescription']))
{
$item['~DESCRIPTION'] = self::ParseText(
$item['DESCRIPTION'],
!empty($item['PARENT_ID']) ? $item['PARENT_ID'] : $item['ID'],
$item['UF_WEBDAV_CAL_EVENT'] ?? null
);
}
if (isset($item['UF_CRM_CAL_EVENT']) && is_array($item['UF_CRM_CAL_EVENT']) && empty($item['UF_CRM_CAL_EVENT']))
{
$item['UF_CRM_CAL_EVENT'] = '';
}
unset($item['SEARCHABLE_CONTENT']);
return $item;
}