• Модуль: intranet
  • Путь к файлу: ~/bitrix/modules/intranet/classes/general/handlers.php
  • Класс: CIntranetEventHandlers
  • Вызов: CIntranetEventHandlers::onAfterForumMessageAdd
static function onAfterForumMessageAdd($ID, $arForumMessage, $arTopicInfo, $arForumInfo, $arFields)
{
	// add log comment
	if (
		array_key_exists("ADD_TO_LOG", $arFields)
		&& $arFields["ADD_TO_LOG"] == "N"
	)
	{
		return;
	}

	if (
		array_key_exists("NEW_TOPIC", $arFields)
		&& $arFields["NEW_TOPIC"] == "Y"
	)
	{
		return;
	}

	if (
		!array_key_exists("TOPIC_INFO", $arForumMessage)
		|| !is_array($arForumMessage["TOPIC_INFO"])
		|| !array_key_exists("XML_ID", $arForumMessage["TOPIC_INFO"])
		|| empty($arForumMessage["TOPIC_INFO"]["XML_ID"])
		|| mb_strpos($arForumMessage["TOPIC_INFO"]["XML_ID"], "IBLOCK_") !== 0
	)
	{
		return;
	}

	$val = COption::GetOptionString("intranet", "sonet_log_news_iblock_forum");
	$arIBlockForum = ($val <> '' ? unserialize($val, ["allowed_classes" => false]) : array());

	if (
		CModule::IncludeModule("socialnetwork")
		&& CModule::IncludeModule("forum")
		&& in_array($arFields["FORUM_ID"], $arIBlockForum)
		&& array_key_exists("PARAM2", $arFields)
		&& intval($arFields["PARAM2"]) > 0
	)
	{
		CSocNetAllowed::GetAllowedEntityTypes();

		$dbRes = CSocNetLog::GetList(
			array("ID" => "DESC"),
			array(
				"EVENT_ID"	=> "news",
				"SOURCE_ID"	=> $arFields["PARAM2"] // file element id
			),
			false,
			false,
			array("ID", "ENTITY_TYPE", "ENTITY_ID", "TMP_ID")
		);

		if ($arRes = $dbRes->Fetch())
		{
			$arForum = CForumNew::GetByID($arFields["FORUM_ID"]);

			$parser = new forumTextParser(LANGUAGE_ID);
			$parser->image_params["width"] = false;
			$parser->image_params["height"] = false;

			$arAllow = array(
				"HTML" => "N",
				"ANCHOR" => "N",
				"BIU" => "N",
				"IMG" => "N",
				"LIST" => "N",
				"QUOTE" => "N",
				"CODE" => "N",
				"FONT" => "N",
				"UPLOAD" => $arForum["ALLOW_UPLOAD"],
				"NL2BR" => "N",
				"VIDEO" => "N",
				"SMILES" => "N"
			);

			$arMessage = CForumMessage::GetByIDEx($ID);

			self::addNewsComment(array(
				'entityId' => $arRes["ENTITY_ID"],
				'message' => $parser->convert($arFields["POST_MESSAGE"], $arAllow),
				'textMessage' => $parser->convert4mail($arFields["POST_MESSAGE"]),
				'url' => $arMessage['URL'],
				'forumMessageId' => $ID,
				'authorId' => intval($arMessage["AUTHOR_ID"]),
				'logId' => $arRes["ID"],
			));
		}
	}
}