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;
}