• Модуль: socialnetwork
  • Путь к файлу: ~/bitrix/modules/socialnetwork/classes/general/log_tools.php
  • Класс: CSocNetLogTools
  • Вызов: CSocNetLogTools::FormatEvent_Forum
static function FormatEvent_Forum($arFields, $arParams, $bMail = false)
{
	if (
		$bMail
		&& $arFields["MAIL_LANGUAGE_ID"] <> ''
	)
	{
		IncludeModuleLangFile(__FILE__, $arFields["MAIL_LANGUAGE_ID"]);
	}

	$arResult = array(
		"EVENT" => $arFields,
		"CREATED_BY" => CSocNetLogTools::FormatEvent_GetCreatedBy($arFields, $arParams, $bMail),
		"ENTITY" => CSocNetLogTools::FormatEvent_GetEntity($arFields, $arParams, $bMail),
		"EVENT_FORMATTED" => array(),
	);

	if (!$bMail)
	{
		$arResult["AVATAR_SRC"] = CSocNetLogTools::FormatEvent_CreateAvatar($arFields, $arParams);
	}

	if ($arFields["PARAMS"] == "type=M")
	{
		$title_tmp = (
			$bMail
				? GetMessage("SONET_GL_EVENT_TITLE_".($arFields["ENTITY_TYPE"] == SONET_SUBSCRIBE_ENTITY_GROUP ? "GROUP" : "USER")."_FORUM_MESSAGE_MAIL")
				: GetMessage("SONET_GL_EVENT_TITLE_FORUM_MESSAGE")
		);
	}
	else
	{
		$title_tmp = (
			$bMail
				? GetMessage("SONET_GL_EVENT_TITLE_".($arFields["ENTITY_TYPE"] == SONET_SUBSCRIBE_ENTITY_GROUP ? "GROUP" : "USER")."_FORUM_TOPIC_MAIL")
				: GetMessage("SONET_GL_EVENT_TITLE_FORUM_TOPIC")
		);
	}

	$topic_tmp = (
		!$bMail
		&& array_key_exists("URL", $arFields)
		&& $arFields["URL"] <> ''
			? ''.$arFields["TITLE"].''
			: $arFields["TITLE"]
	);

	$title = str_replace(
		[
			"#TITLE#",
			"#ENTITY#",
			"#CREATED_BY#",
		],
		[
			$topic_tmp,
			(is_string($arResult["ENTITY"]["FORMATTED"]) ? $arResult["ENTITY"]["FORMATTED"] : ''),
			($bMail ? $arResult["CREATED_BY"]["FORMATTED"] : "")
		],
		$title_tmp
	);

	static $parser = false;
	if (CModule::IncludeModule("forum"))
	{
		if (!$parser)
		{
			$parser = new forumTextParser(LANGUAGE_ID);
		}

		$parser->pathToUser = $arParams["PATH_TO_USER"];
		$parser->LAZYLOAD = (isset($arParams["LAZYLOAD"]) && $arParams["LAZYLOAD"] == "Y" ? "Y" : "N");
		$parser->bMobile = (($arParams["MOBILE"] ?? null) == "Y");

		$arFields["FILES"] = CForumFiles::getByMessageID($arFields["SOURCE_ID"]);
	}

	$arResult["EVENT_FORMATTED"] = array(
		"TITLE" => $title,
		"TITLE_24" => GetMessage("SONET_GL_EVENT_TITLE_FORUM_TOPIC_24"),
		"TITLE_24_2" => $arFields["TITLE"],
		"MESSAGE" => ($bMail ? $arFields["TEXT_MESSAGE"] : $arFields["~MESSAGE"]),
		"FILES" => (!!$arFields["FILES"] ? array_keys($arFields["FILES"]) : array())
	);

	if (!$bMail)
	{
		static $parserLog = false;
		if (($arParams["MOBILE"] ?? null) != "Y")
		{
			if (!$parserLog)
			{
				$parserLog = new logTextParser(false, $arParams["PATH_TO_SMILE"]);
			}

			$arResult["EVENT_FORMATTED"]["SHORT_MESSAGE"] = $parserLog->html_cut(
				$parserLog->convert(
					str_replace("#CUT#", "", $arResult["EVENT_FORMATTED"]["MESSAGE"]),
					array(),
					array(
						"HTML" => "Y",
						"ALIGN" => "Y",
						"ANCHOR" => "Y", "BIU" => "Y",
						"IMG" => "Y", "LOG_IMG" => "N",
						"QUOTE" => "Y", "LOG_QUOTE" => "N",
						"CODE" => "Y", "LOG_CODE" => "N",
						"FONT" => "Y", "LOG_FONT" => "N",
						"LIST" => "Y",
						"SMILES" => (
							!empty($arFields["ADDITIONAL_DATA"])
							&& !empty($arFields["ADDITIONAL_DATA"]["USE_SMILES"])
								? $arFields["ADDITIONAL_DATA"]["USE_SMILES"]
								: "Y"
						),
						"NL2BR" => "N", "MULTIPLE_BR" => "N",
						"VIDEO" => "Y", "LOG_VIDEO" => "N"
					)),
				1000
			);
		}

		$parser = (is_object($parser) ? $parser : (is_object($parserLog) ? $parserLog : new logTextParser(false, $arParams["PATH_TO_SMILE"])));
		if (get_class($parser) === "forumTextParser")
		{
			$parser->arUserfields = $arFields["UF"];
			$arResult["EVENT_FORMATTED"]["MESSAGE"] = $parser->convert(
				$arResult["EVENT_FORMATTED"]["MESSAGE"],
				array(
					"HTML" => "N",
					"ALIGN" => "Y",
					"ANCHOR" => "Y", "BIU" => "Y",
					"IMG" => "Y", "QUOTE" => "Y",
					"CODE" => "Y", "FONT" => "Y",
					"LIST" => "Y",
					"SMILES" => (
						!empty($arFields["ADDITIONAL_DATA"])
						&& !empty($arFields["ADDITIONAL_DATA"]["USE_SMILES"])
							? $arFields["ADDITIONAL_DATA"]["USE_SMILES"]
							: "Y"
					),
					"NL2BR" => "Y", "MULTIPLE_BR" => "N",
					"VIDEO" => "Y", "LOG_VIDEO" => "N",
					"SHORT_ANCHOR" => "Y",
					"USERFIELDS" => $arFields["UF"]
				),
				"html",
				$arResult["EVENT_FORMATTED"]["FILES"]);
			$arResult["EVENT_FORMATTED"]["PARSED_FILES"] = $parser->arFilesParsed;
		}
		else
		{
			$arResult["EVENT_FORMATTED"]["MESSAGE"] = $parser->convert(
				$arResult["EVENT_FORMATTED"]["MESSAGE"],
				array(),
				array(
					"HTML" => "N",
					"ALIGN" => "Y",
					"ANCHOR" => "Y", "BIU" => "Y",
					"IMG" => "Y", "QUOTE" => "Y",
					"CODE" => "Y", "FONT" => "Y",
					"LIST" => "Y", "SMILES" => "Y",
					"NL2BR" => "Y", "MULTIPLE_BR" => "N",
					"VIDEO" => "Y", "LOG_VIDEO" => "N",
					"SHORT_ANCHOR" => "Y",
					"USERFIELDS" => $arFields["UF"]
				)
			);
		}

		$arResult["EVENT_FORMATTED"]["MESSAGE"] = str_replace(
			"#CUT#",
			'
'.GetMessage("SONET_GL_EVENT_BLOG_MORE").'', htmlspecialcharsbx($arResult["EVENT_FORMATTED"]["MESSAGE"]) ); if ( ($arParams["MOBILE"] ?? null) !== "Y" && ($arParams["NEW_TEMPLATE"] ?? null) !== "Y" ) { $arResult["EVENT_FORMATTED"]["IS_MESSAGE_SHORT"] = CSocNetLogTools::FormatEvent_IsMessageShort( $arResult["EVENT_FORMATTED"]["MESSAGE"], $arResult["EVENT_FORMATTED"]["SHORT_MESSAGE"] ); } if ($arFields["ENTITY_TYPE"] === SONET_SUBSCRIBE_ENTITY_GROUP) { $arResult["EVENT_FORMATTED"]["DESTINATION"] = array( array( "STYLE" => "sonetgroups", "TITLE" => $arResult["ENTITY"]["FORMATTED"]["NAME"], "URL" => $arResult["ENTITY"]["FORMATTED"]["URL"], "IS_EXTRANET" => (is_array($GLOBALS["arExtranetGroupID"]) && in_array($arFields["ENTITY_ID"], $GLOBALS["arExtranetGroupID"])) ) ); } } else { $url = CSocNetLogTools::FormatEvent_GetURL($arFields); if ($url <> '') { $arResult["EVENT_FORMATTED"]["URL"] = $url; } } $arResult["HAS_COMMENTS"] = ((int)$arFields["SOURCE_ID"] > 0 ? "Y" : "N"); if ( $bMail && $arFields["MAIL_LANGUAGE_ID"] <> '' ) { IncludeModuleLangFile(__FILE__, LANGUAGE_ID); } return $arResult; }