• Модуль: calendar
  • Путь к файлу: ~/bitrix/modules/calendar/lib/access/model/eventmodel.php
  • Класс: BitrixCalendarAccessModelEventModel
  • Вызов: EventModel::createFromArray
static function createFromArray(array $fields): self
{
	if (($fields['ID'] ?? null) && (int)$fields['ID'])
	{
		$model = self::createFromId((int)$fields['ID']);
	}
	else
	{
		$model = self::createNew();
	}

	if (($fields['OWNER_ID'] ?? null) && (int)$fields['OWNER_ID'])
	{
		$model->setOwnerId($fields['OWNER_ID']);
	}

	if ($fields['SECTION_ID'] ?? null)
	{
		$model->setSectionId((int)$fields['SECTION_ID']);
	}

	if (($fields['CAL_TYPE'] ?? null) && is_string($fields['CAL_TYPE']))
	{
		$model->setSectionType($fields['CAL_TYPE']);
	}

	if (($fields['EVENT_TYPE'] ?? null) && is_string($fields['EVENT_TYPE']))
	{
		$model->setEventType($fields['EVENT_TYPE']);
	}

	if (($fields['MEETING_STATUS'] ?? null) && is_string($fields['MEETING_STATUS']))
	{
		$model->setMeetingStatus($fields['MEETING_STATUS']);
	}

	if (
		(int)($fields['PARENT_ID'] ?? null)
		&& ($fields['ID'] ?? null) !== ($fields['PARENT_ID'] ?? null)
	)
	{
		$parentFields = CCalendarSect::GetSectionByEventId((int)$fields['PARENT_ID']);
		if ($parentFields && is_array($parentFields))
		{
			$model->setParentEventSectionFields($parentFields);
		}
	}
	elseif ((int)($fields['ID'] ?? null) && ($fields['ID'] ?? null) === ($fields['PARENT_ID'] ?? null))
	{
		$model->setParentEventSectionFields($fields);
	}

	return $model;
}