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