static function addLiveSourceComment(array $params = []): void
{
global $USER_FIELD_MANAGER, $APPLICATION, $USER;
$siteId = (string)($params['siteId'] ?? SITE_ID);
$languageId = (string)($params['siteId'] ?? LANGUAGE_ID);
$entityXmlId = (string)($params['entityXmlId'] ?? '');
$nameTemplate = (string)($params['nameTemplate'] ?? '');
$showLogin = (string)($params['showLogin'] ?? 'N');
$pathToUser = (string)($params['pathToUser'] ?? '');
$avatarSize = (int)($params['avatarSize'] ?? 100);
$postProvider = $params['postProvider'];
$commentProvider = $params['commentProvider'];
if (
!$postProvider
|| !$commentProvider
)
{
return;
}
$commentId = $commentProvider->getEntityId();
$ratingTypeId = $commentProvider->getRatingTypeId();
$commentDateTime = $commentProvider->getSourceDateTime();
$commentAuthorId = $commentProvider->getSourceAuthorId();
$commentText = $commentProvider->getSourceDescription();
$userTypeEntityId = $commentProvider->getUserTypeEntityId();
$commentContentTypeId = $commentProvider->getContentTypeId();
$postContentTypeId = $postProvider->getContentTypeId();
$timestamp = ($commentDateTime ? makeTimeStamp($commentDateTime) : 0);
if (!empty($userTypeEntityId))
{
$comment['UF'] = $USER_FIELD_MANAGER->getUserFields($userTypeEntityId, $commentId, $languageId);
}
$timeFormatted = formatDateFromDB($commentDateTime, self::getTimeFormat());
$authorFields = self::getAuthorData([
'userId' => $commentAuthorId,
]);
$createdBy = self::getCreatedByData([
'userFields' => $authorFields,
'languageId' => $languageId,
'nameTemplate' => $nameTemplate,
'showLogin' => $showLogin,
'pathToUser' => $pathToUser,
]);
$commentFormatted = [
'LOG_DATE' => $commentDateTime->toString(),
"LOG_DATE_FORMAT" => $comment["LOG_DATE_FORMAT"],
'LOG_DATE_DAY' => convertTimeStamp($timestamp, 'SHORT'),
'LOG_TIME_FORMAT' => $timeFormatted,
'MESSAGE' => $commentText,
'MESSAGE_FORMAT' => $commentText,
'CREATED_BY' => $createdBy,
'AVATAR_SRC' => CSocNetLogTools::formatEvent_CreateAvatar($authorFields, [
'AVATAR_SIZE' => $avatarSize,
], ''),
'USER_ID' => $commentAuthorId,
];
if (
empty($entityXmlId)
&& $commentProvider->getContentTypeId() === LivefeedForumPost::CONTENT_TYPE_ID
)
{
$feedParams = $commentProvider->getFeedParams();
if (!empty($feedParams['xml_id']))
{
$entityXmlId = $feedParams['xml_id'];
}
}
if (empty($entityXmlId))
{
return;
}
$rights = [
'COMMENT_RIGHTS_EDIT' => 'N',
'COMMENT_RIGHTS_DELETE' => 'N',
'COMMENT_RIGHTS_CREATETASK' => 'N'
];
$records = static::getLiveCommentRecords([
'commentId' => $commentId,
'ratingTypeId' => $ratingTypeId,
'timestamp' => $timestamp,
'author' => [
'ID' => $authorFields['ID'],
'NAME' => $authorFields['NAME'],
'LAST_NAME' => $authorFields['LAST_NAME'],
'SECOND_NAME' => $authorFields['SECOND_NAME'],
'PERSONAL_GENDER' => $authorFields['PERSONAL_GENDER'],
'AVATAR' => $commentFormatted['AVATAR_SRC'],
],
'uf' => $comment['UF'],
'ufFormatted' => $commentFormatted['UF'],
'postMessageTextOriginal' => $comment['~MESSAGE'],
'postMessageTextFormatted' => $commentFormatted['MESSAGE_FORMAT'],
'mobileMessage' => $commentText,
'aux' => ($params['aux'] ?? ''),
'auxLiveParams' => ($params['auxLiveParams'] ?? []),
]);
/*
$viewUrl = (string)($comment['EVENT']['URL'] ?? '');
if (empty($viewUrl))
{
$pathToLogEntry = (string)($params['PATH_TO_LOG_ENTRY'] ?? '');
if (!empty($pathToLogEntry))
{
$viewUrl = CComponentEngine::makePathFromTemplate(
$pathToLogEntry,
[
'log_id' => $logEntry['ID']
]
) . (mb_strpos($pathToLogEntry, '?') === false ? '?' : '&') . 'commentId=#ID#';
}
}
*/
$res = static::sendLiveComment([
'ratingTypeId' => $ratingTypeId,
'entityXMLId' => $entityXmlId,
'postContentTypeId' => $postContentTypeId,
'commentContentTypeId' => $commentContentTypeId,
'records' => $records,
'rights' => $rights,
'commentId' => $commentId,
'action' => 'REPLY',
'urlList' => [
// 'view' => $viewUrl,
// 'edit' => "__logEditComment('" . $entityXMLId . "', '#ID#', '" . $logEntry["ID"] . "');",
// 'delete' => '/bitrix/components/bitrix/socialnetwork.log.entry/ajax.php?lang=' . $params['LANGUAGE_ID'] . '&action=delete_comment&delete_comment_id=#ID#&post_id=' . $logEntry['ID'] . '&site=' . $params['SITE_ID'],
],
'avatarSize' => $avatarSize,
'nameTemplate' => $nameTemplate,
// 'dateTimeFormat' => $params['DATE_TIME_FORMAT'],
]);
}