• Модуль: socialnetwork
  • Путь к файлу: ~/bitrix/modules/socialnetwork/lib/component/loglist.php
  • Класс: BitrixSocialnetworkComponentLogList
  • Вызов: LogList::processEvent
protected function processEvent(&$result, &$cnt, array $eventFields = [], array $options = []): void
{
	if ($eventFields['MODULE_ID'] === 'crm_shared')
	{
		$eventFields['MODULE_ID'] = 'crm';
	}

	static $timemanInstalled = null;
	static $tasksInstalled = null;
	static $listsInstalled = null;

	if ($timemanInstalled === null)
	{
		$timemanInstalled = ModuleManager::isModuleInstalled('timeman');
	}
	if ($tasksInstalled === null)
	{
		$tasksInstalled = ModuleManager::isModuleInstalled('tasks');
	}
	if ($listsInstalled === null)
	{
		$listsInstalled = ModuleManager::isModuleInstalled('lists');
	}

	if (
		!ModuleManager::isModuleInstalled('bitrix24')
		&& (
			(
				!empty($eventFields['MODULE_ID'])
				&& !ModuleManager::isModuleInstalled($eventFields['MODULE_ID'])
			)
			||
			(
				in_array($eventFields['EVENT_ID'], [ 'timeman_entry', 'report' ])
				&& !$timemanInstalled
			)
			|| (
				$eventFields['EVENT_ID'] === 'tasks'
				&& !$tasksInstalled
			)
			|| (
				$eventFields['EVENT_ID'] === 'lists_new_element'
				&& !$listsInstalled
			)
		)
	)
	{
		return;
	}

	$processorInstance = $this->getProcessorInstance();
	if (!$processorInstance)
	{
		return;
	}

	if ($eventFields['EVENT_ID'] === 'crm_activity_add')
	{
		$activity2LogList = $this->getActivity2LogListValue();
		$activity2LogList[$eventFields['ENTITY_ID']] = $eventFields['ID'];
		$this->setActivity2LogListValue($activity2LogList);
		unset($activity2LogList);
	}
	elseif ($eventFields['EVENT_ID'] === 'tasks')
	{
		$task2LogList = $this->getTask2LogListValue();
		$task2LogList[(int)$eventFields['SOURCE_ID']] = (int)$eventFields['ID'];
		$this->setTask2LogListValue($task2LogList);
		unset($task2LogList);
	}

	$cnt++;
	if (isset($options['type']))
	{
		if ($options['type'] === 'main')
		{
			$result['arLogTmpID'][] = $eventFields['ID'];
			$processorInstance->appendEventsList($eventFields);
		}
		elseif ($options['type'] === 'pinned')
		{
			$contentId = BitrixSocialnetworkLivefeedProvider::getContentId($eventFields);

			if (!empty($contentId['ENTITY_TYPE']))
			{
				$postProvider = BitrixSocialnetworkLivefeedProvider::init([
					'ENTITY_TYPE' => $contentId['ENTITY_TYPE'],
					'ENTITY_ID' => $contentId['ENTITY_ID'],
					'LOG_ID' => $eventFields['ID']
				]);

				if ($postProvider)
				{
					$result['pinnedIdList'][] = $eventFields['ID'];
					$eventFields['PINNED_PANEL_DATA'] = [
						'TITLE' => $postProvider->getPinnedTitle(),
						'DESCRIPTION' => $postProvider->getPinnedDescription()
					];
					$processorInstance->appendEventsList($eventFields, 'pinned');
				}
			}
		}
	}

	$livefeedProvider = new BitrixSocialnetworkLivefeedBlogPost();

	if (
		(int)$eventFields['SOURCE_ID'] > 0
		&& in_array($eventFields['EVENT_ID'], array_merge($livefeedProvider->getEventId(), ['idea']), true)
	)
	{
		$diskUFEntityList = $this->getDiskUFEntityListValue();
		$diskUFEntityList['BLOG_POST'][] = $eventFields['SOURCE_ID'];
		$this->setDiskUFEntityListValue($diskUFEntityList);
		unset($diskUFEntityList);
	}
	elseif (!in_array($eventFields['EVENT_ID'], [ 'data', 'photo', 'photo_photo', 'bitrix24_new_user', 'intranet_new_user', 'news' ]))
	{
		$diskUFEntityList = $this->getDiskUFEntityListValue();
		$diskUFEntityList['SONET_LOG'][] = $eventFields['ID'];
		$this->setDiskUFEntityListValue($diskUFEntityList);
		unset($diskUFEntityList);
	}
}