• Модуль: imopenlines
  • Путь к файлу: ~/bitrix/modules/imopenlines/lib/log/eventlog.php
  • Класс: BitrixImOpenLinesLogEventLog
  • Вызов: EventLog::addEvent
static function addEvent($event, $fieldsResult, $lineId = 0, $sessionId = 0, $messageId = 0)
{
	$result = new Result();
	$lineId = intval($lineId);
	$data = array();

	if (is_array($fieldsResult))
	{
		$resultData = $fieldsResult;
		$fieldsResult = new Result();
		$fieldsResult->setData($resultData);
	}

	if (!($fieldsResult instanceof Result))
		throw new ArgumentException(Loc::getMessage('IMOL_EVENTLOG_WRONG_FIELD_RESULT_TYPE_EXCEPTION'));

	if (empty(self::$eventMap[$event]) || !method_exists(__CLASS__, self::$eventMap[$event]))
		$result->addError(new Error(Loc::getMessage('IMOL_EVENTLOG_NOT_ACTUAL_EVENT_ERROR', array('#EVENT#' => $event)), Library::EVENTS_ERROR_NOT_ACTUAL_EVENT_ERROR_CODE, __METHOD__));

	if ($lineId <= 0)
		$result->addError(new Error(Loc::getMessage('IMOL_EVENTLOG_EMPTY_LINE_ID_ERROR'), Library::EVENTS_ERROR_EMPTY_LINE_ID_ERROR_CODE, __METHOD__));

	if ($result->isSuccess())
	{
		$result = call_user_func_array([__CLASS__, self::$eventMap[$event]], [$lineId, $sessionId, $messageId, $fieldsResult]);

		if ($result->isSuccess())
		{
			$data = $result->getData();
		}
	}

	if (empty($data))
	{
		$data = self::getErrorEventData($event, $result, $lineId, $sessionId, $messageId);
	}

	return EventLogTable::add($data);
}