static function FormatComment_Forum($arFields, $arParams, $bMail = false, $arLog = array())
{
if (
$bMail
&& $arFields["MAIL_LANGUAGE_ID"] <> ''
)
{
IncludeModuleLangFile(__FILE__, $arFields["MAIL_LANGUAGE_ID"]);
}
$arResult = array(
"EVENT_FORMATTED" => array(),
);
if ($bMail)
{
$arResult["CREATED_BY"] = CSocNetLogTools::FormatEvent_GetCreatedBy($arFields, $arParams, $bMail);
$arResult["ENTITY"] = CSocNetLogTools::FormatEvent_GetEntity($arLog, $arParams, $bMail);
}
elseif (($arParams["USE_COMMENT"] ?? null) !== "Y")
{
$arResult["ENTITY"] = CSocNetLogTools::FormatEvent_GetEntity($arFields, $arParams, false);
}
$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")
);
$topic_tmp = (
!$bMail
&& array_key_exists("URL", $arLog)
&& !empty($arLog["URL"])
? ''.($arLog["TITLE"] ?? '').''
: ($arLog["TITLE"] ?? '')
);
$title = str_replace(
[
"#TITLE#",
"#ENTITY#",
"#CREATED_BY#"
],
[
$topic_tmp,
is_string($arResult["ENTITY"]["FORMATTED"] ?? null) ? $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 = $parser->userPath = $arParams["PATH_TO_USER"];
$parser->bMobile = (($arParams["MOBILE"] ?? null) === "Y");
$parser->LAZYLOAD = (isset($arParams["LAZYLOAD"]) && $arParams["LAZYLOAD"] === "Y" ? "Y" : "N");
$arFields["FILES"] = CForumFiles::GetByMessageID($arFields["SOURCE_ID"]);
if (($arParams['MOBILE'] ?? null) !== 'Y')
{
if (!empty($arParams['IMAGE_MAX_WIDTH']))
{
$parser->imageWidth = (int)$arParams['IMAGE_MAX_WIDTH'];
}
if (!empty($arParams['IMAGE_MAX_HEIGHT']))
{
$parser->imageHeight = (int)$arParams['IMAGE_MAX_HEIGHT'];
}
}
}
$arResult["EVENT_FORMATTED"] = array(
"TITLE" => $title,
"MESSAGE" => ($bMail ? $arFields["TEXT_MESSAGE"] : htmlspecialcharsBack($arFields["MESSAGE"])),
"FILES" => (!!$arFields["FILES"] ? array_keys($arFields["FILES"]) : array())
);
if (!$bMail)
{
if (($arParams["MOBILE"] ?? null) !== "Y")
{
static $parserLog = false;
if (!$parserLog)
{
$parserLog = new logTextParser(false, $arParams["PATH_TO_SMILE"]);
}
$arResult["EVENT_FORMATTED"]["SHORT_MESSAGE"] = $parserLog->html_cut(
$parserLog->convert(
$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" => "Y", "MULTIPLE_BR" => "N",
"VIDEO" => "Y", "LOG_VIDEO" => "N",
"USERFIELDS" => $arFields["UF"]
)
),
500
);
}
$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"] = htmlspecialcharsbx($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", "VIDEO" => "Y",
"LOG_VIDEO" => "N", "SHORT_ANCHOR" => "Y",
"USERFIELDS" => $arFields["UF"],
"USER" => "Y",
"TAG" => "Y"
),
"html",
$arResult["EVENT_FORMATTED"]["FILES"]
));
$arResult["EVENT_FORMATTED"]["PARSED_FILES"] = $parser->arFilesIDParsed;
}
else
{
$arResult["EVENT_FORMATTED"]["MESSAGE"] = htmlspecialcharsbx($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" => (
!empty($arFields["ADDITIONAL_DATA"])
&& !empty($arFields["ADDITIONAL_DATA"]["USE_SMILES"])
? $arFields["ADDITIONAL_DATA"]["USE_SMILES"]
: "Y"
),
"NL2BR" => "Y", "VIDEO" => "Y",
"LOG_VIDEO" => "N", "SHORT_ANCHOR" => "Y",
"USERFIELDS" => $arFields["UF"],
"TAG" => "Y"
)
));
}
if (
($arParams["MOBILE"] ?? null) !== "Y"
&& (!isset($arParams["NEW_TEMPLATE"]) || $arParams["NEW_TEMPLATE"] !== "Y")
)
{
$arResult["EVENT_FORMATTED"]["IS_MESSAGE_SHORT"] = CSocNetLogTools::FormatEvent_IsMessageShort($arResult["EVENT_FORMATTED"]["MESSAGE"], $arResult["EVENT_FORMATTED"]["SHORT_MESSAGE"]);
}
}
else
{
if ($arFields["URL"] <> '')
{
$url = $arFields["URL"];
}
elseif (
$arLog["PARAMS"] <> ''
&& unserialize($arLog["PARAMS"], [ 'allowed_classes' => false ])
)
{
$arTmp = unserialize($arLog["PARAMS"], [ 'allowed_classes' => false ]);
if (
array_key_exists("PATH_TO_MESSAGE", $arTmp)
&& $arTmp["PATH_TO_MESSAGE"] <> ''
)
{
$url = CComponentEngine::MakePathFromTemplate($arTmp["PATH_TO_MESSAGE"], array("MID" => $arFields["SOURCE_ID"]));
}
}
$url = (
$url <> ''
? CSocNetLogTools::FormatEvent_GetURL(array("ID" => $arLog["ID"], "URL" => $url))
: CSocNetLogTools::FormatEvent_GetURL($arLog)
);
if ($url <> '')
{
$arResult["EVENT_FORMATTED"]["URL"] = $url;
}
}
if (
$bMail
&& $arFields["MAIL_LANGUAGE_ID"] <> ''
)
{
IncludeModuleLangFile(__FILE__, LANGUAGE_ID);
}
return $arResult;
}