CCrmLiveFeedComponent::processCrmBlogComment

  1. Bitrix24 API (v. 23.675.0)
  2. crm
  3. CCrmLiveFeedComponent
  4. processCrmBlogComment
  • Модуль: 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;
}

Добавить комментарий