- Модуль: crm
- Путь к файлу: ~/bitrix/modules/crm/classes/general/livefeed.php
- Класс: \CCrmLiveFeedComponent
- Вызов: CCrmLiveFeedComponent::processCrmBlogComment
static function processCrmBlogComment($params = array())
{
static $blogPostEventIdList = null;
$blogPostId = (int)($params["POST_ID"] ?? 0);
$blogCommentId = (int)($params["COMMENT_ID"] ?? 0);
$arAuthor = (isset($params["AUTHOR"]) && is_array($params["AUTHOR"]) ? $params["AUTHOR"] : array());
$arUserId = (isset($params["USER_ID"]) && is_array($params["USER_ID"]) ? $params["USER_ID"] : array());
if (
empty($arUserId)
|| empty($arAuthor)
|| $blogPostId <= 0
|| $blogCommentId <= 0
)
{
return false;
}
if (Main\Loader::includeModule('socialnetwork'))
{
if ($blogPostEventIdList === null)
{
$blogPostLivefeedProvider = new \Bitrix\Socialnetwork\Livefeed\BlogPost;
$blogPostEventIdList = $blogPostLivefeedProvider->getEventId();
}
$res = CSocNetLog::GetList(
array(),
array(
'EVENT_ID' => $blogPostEventIdList,
'ENTITY_TYPE' => CCrmLiveFeedEntity::Contact,
'SOURCE_ID' => $blogPostId
),
false,
array(
'nTopCount' => 1
),
array('ID', 'ENTITY_TYPE', 'ENTITY_ID')
);
if ($log = $res->Fetch())
{
$res = CCrmActivity::getList(
array(),
array(
'=PROVIDER_ID' => \Bitrix\Crm\Activity\Provider\Livefeed::PROVIDER_ID,
'=PROVIDER_TYPE_ID' => \Bitrix\Crm\Activity\Provider\Livefeed::PROVIDER_TYPE_ID_ENTRY,
'=ASSOCIATED_ENTITY_ID' => $log['ID'],
'CHECK_PERMISSIONS' => 'N'
),
false,
false,
array('ID', 'COMMUNICATIONS')
);
if (
($parentActivity = $res->fetch())
&& Main\Loader::includeModule('blog')
&& ($comment = CBlogComment::getByID($blogCommentId))
)
{
\Bitrix\Crm\Activity\Provider\Livefeed::addActivity(array(
"TYPE" => (!empty($arAuthor["EXTERNAL_AUTH_ID"]) && $arAuthor["EXTERNAL_AUTH_ID"] === 'email' ? 'BLOG_COMMENT_IN' : 'BLOG_COMMENT_OUT'),
"COMMUNICATIONS" => $parentActivity['COMMUNICATIONS'],
"BINDINGS" => \CCrmActivity::getBindings($parentActivity['ID']),
"MESSAGE" => $comment['POST_TEXT'],
"USER_ID" => $comment['AUTHOR_ID'],
"RESPONSIBLE_USER_ID" => $log['USER_ID'],
"ENTITY_ID" => $comment["ID"],
"PARENT_ID" => $parentActivity['ID']
));
CCrmLiveFeed::CounterIncrement(array(
"USER_ID" => $comment['USER_ID'],
"ENTITY_TYPE" => $log['ENTITY_TYPE'],
"ENTITY_ID" => $log['ENTITY_ID'],
"LOG_ID" => $log['ID'],
"EVENT_ID" => $log['EVENT_ID']
));
}
}
}
return true;
}