• Модуль: socialnetwork
  • Путь к файлу: ~/bitrix/modules/socialnetwork/lib/component/loglist/processor.php
  • Класс: BitrixSocialnetworkComponentLogListProcessor
  • Вызов: Processor::processEventsList
public function processEventsList(&$result, $type = 'main'): void
{
	$params = $this->getComponent()->arParams;
	$activity2LogList = $this->getComponent()->getActivity2LogListValue();

	$eventsList = $this->getEventsList($type);

	$prevPageLogIdList = [];
	if ($type === 'main')
	{
		$logPageProcessorInstance = $this->getLogPageProcessorInstance();
		if (!$logPageProcessorInstance)
		{
			return;
		}

		$prevPageLogIdList = $logPageProcessorInstance->getPrevPageLogIdList();
	}

	foreach ($eventsList as $key => $eventFields)
	{
		if (
			$eventFields['EVENT_ID'] === 'crm_activity_add'
			&& !empty($activity2LogList)
			&& !in_array($eventFields['ID'], $activity2LogList)
		)
		{
			$this->unsetEventsListKey($key);
		}
		elseif (
			empty($prevPageLogIdList)
			|| !in_array((int)$eventFields['ID'], $prevPageLogIdList, true)
		)
		{
			$eventFields['EVENT_ID_FULLSET'] = CSocNetLogTools::findFullSetEventIDByEventID($eventFields['EVENT_ID']);
			$this->setEventsListKey($key, $eventFields, $type);

			if (
				$type === 'main'
				&& $eventFields['EVENT_ID'] === 'tasks'
			)
			{
				$this->incrementTasksCount();
			}

			if (
				$type === 'main'
				&& $key == 0
			)
			{
				if ($eventFields['DATE_FOLLOW'])
				{
					$logPageProcessorInstance->setDateFirstPageTimestamp($this->makeTimeStampFromDateTime($eventFields['DATE_FOLLOW']));
				}
				elseif (
					$params['USE_FOLLOW'] === 'N'
					&& $eventFields['LOG_UPDATE']
				)
				{
					$logPageProcessorInstance->setDateFirstPageTimestamp($this->makeTimeStampFromDateTime($eventFields['LOG_UPDATE']));
				}
			}
		}
		else
		{
			$this->unsetEventsListKey($key, $type);
		}
	}

	if ($type === 'main')
	{
		$result['Events'] = $this->getEventsList($type);
	}
	elseif ($type === 'pinned')
	{
		$result['pinnedEvents'] = $this->getEventsList($type);
	}
}