• Модуль: intranet
  • Путь к файлу: ~/bitrix/modules/intranet/classes/general/handlers.php
  • Класс: CIntranetEventHandlers
  • Вызов: CIntranetEventHandlers::addNewsComment
static function addNewsComment($params = array())
{
	global $DB, $USER_FIELD_MANAGER;

	$entityId = (!empty($params['entityId']) ? intval($params['entityId']) : 0);
	$logDate = (!empty($params['logDate']) ? $params['logDate'] : false);
	$message = (!empty($params['message']) ? $params['message'] : '');
	$textMessage = (!empty($params['textMessage']) ? $params['textMessage'] : '');
	$url = (!empty($params['url']) ? $params['url'] : '');
	$forumMessageId = (!empty($params['forumMessageId']) ? intval($params['forumMessageId']) : 0);
	$logId = (!empty($params['logId']) ? intval($params['logId']) : 0);
	$authorId = (!empty($params['authorId']) ? intval($params['authorId']) : 0);

	if (
		$entityId <= 0
		|| $forumMessageId <= 0
	)
	{
		return;
	}

	$fields = array(
		"ENTITY_TYPE" => SONET_SUBSCRIBE_ENTITY_NEWS,
		"ENTITY_ID" => $entityId,
		"EVENT_ID" => "news_comment",
		"MESSAGE" => $message,
		"TEXT_MESSAGE" => $textMessage,
		"URL" => $url,
		"MODULE_ID" => false,
		"SOURCE_ID" => $forumMessageId,
		"LOG_ID" => $logId,
		"RATING_TYPE_ID" => "FORUM_POST",
		"RATING_ENTITY_ID" => $forumMessageId
	);

	if ($logDate)
	{
		$fields["LOG_DATE"] = $logDate;
	}
	else
	{
		$fields["=LOG_DATE"] = $DB->currentTimeFunction();
	}

	if ($authorId > 0)
	{
		$fields["USER_ID"] = $authorId;
	}

	$ufFileID = array();
	if (
		Loader::includeModule('forum')
		&& Loader::includeModule('socialnetwork')
	)
	{
		$res = CForumFiles::getList(array("ID" => "ASC"), array("MESSAGE_ID" => $forumMessageId));
		while ($forumFile = $res->fetch())
		{
			$ufFileID[] = $forumFile["FILE_ID"];
		}

		if (count($ufFileID) > 0)
		{
			$fields["UF_SONET_COM_FILE"] = $ufFileID;
		}

		$ufDocID = $USER_FIELD_MANAGER->getUserFieldValue("FORUM_MESSAGE", "UF_FORUM_MESSAGE_DOC", $forumMessageId, LANGUAGE_ID);
		if ($ufDocID)
		{
			$fields["UF_SONET_COM_DOC"] = $ufDocID;
		}

		$commentId = CSocNetLogComments::add($fields, false, false);
		if (
			!is_array($commentId)
			&& intval($commentId) > 0
		)
		{
			CSocNetLog::counterIncrement($commentId, false, false, "LC");
		}
	}
}