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