• Модуль: 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;
}