- Модуль: socialnetwork
- Путь к файлу: ~/bitrix/modules/socialnetwork/lib/componenthelper.php
- Класс: BitrixSocialnetworkComponentHelper
- Вызов: ComponentHelper::getLFCommentsParams
static function getLFCommentsParams($eventFields = array()): array
{
$forumMetaData = CSocNetLogTools::getForumCommentMetaData($eventFields["EVENT_ID"]);
if (
$forumMetaData
&& $eventFields["SOURCE_ID"] > 0
)
{
$result = [
"ENTITY_TYPE" => $forumMetaData[1],
"ENTITY_XML_ID" => $forumMetaData[0]."_".$eventFields["SOURCE_ID"],
"NOTIFY_TAGS" => $forumMetaData[2]
];
// Calendar events could generate different livefeed entries with same SOURCE_ID
// That's why we should add entry ID to make comment interface work
if (
$eventFields["EVENT_ID"] === 'calendar'
&& !empty($eventFields["PARAMS"])
&& ($calendarEventParams = unserialize(htmlspecialcharsback($eventFields["PARAMS"]), [ 'allowed_classes' => false ]))
&& !empty($calendarEventParams['COMMENT_XML_ID'])
)
{
$result["ENTITY_XML_ID"] = $calendarEventParams['COMMENT_XML_ID'];
}
}
elseif ($eventFields["EVENT_ID"] === 'photo') // photo album
{
$result = array(
"ENTITY_TYPE" => 'PA',
"ENTITY_XML_ID" => 'PHOTO_ALBUM_'.$eventFields["ID"],
"NOTIFY_TAGS" => ''
);
}
else
{
$result = array(
"ENTITY_TYPE" => mb_substr(mb_strtoupper($eventFields["EVENT_ID"])."_".$eventFields["ID"], 0, 2),
"ENTITY_XML_ID" => mb_strtoupper($eventFields["EVENT_ID"])."_".$eventFields["ID"],
"NOTIFY_TAGS" => ""
);
}
if (
mb_strtoupper($eventFields["ENTITY_TYPE"]) === "CRMACTIVITY"
&& Loader::includeModule('crm')
&& ($activityFields = CCrmActivity::getById($eventFields["ENTITY_ID"], false))
&& (
$activityFields["TYPE_ID"] == CCrmActivityType::Task
|| (
(int)$activityFields['TYPE_ID'] === CCrmActivityType::Provider
&& $activityFields['PROVIDER_ID'] === Task::getId()
)
)
)
{
$result["ENTITY_XML_ID"] = "TASK_".$activityFields["ASSOCIATED_ENTITY_ID"];
}
elseif (
$eventFields["ENTITY_TYPE"] === "WF"
&& is_numeric($eventFields["SOURCE_ID"])
&& (int)$eventFields["SOURCE_ID"] > 0
&& Loader::includeModule('bizproc')
&& ($workflowId = CBPStateService::getWorkflowByIntegerId($eventFields["SOURCE_ID"]))
)
{
$result["ENTITY_XML_ID"] = "WF_".$workflowId;
}
return $result;
}