static function FormatEvent_Wiki($arFields, $arParams, $bMail = false)
{
$GLOBALS['APPLICATION']->SetAdditionalCSS('/bitrix/themes/.default/wiki_sonet_log.css');
$arResult = array(
'EVENT' => $arFields,
'CREATED_BY' => array(),
'ENTITY' => array(),
'EVENT_FORMATTED' => array(),
"CACHED_CSS_PATH" => array("/bitrix/themes/.default/wiki_sonet_log.css")
);
$arResult['CREATED_BY'] = CSocNetLogTools::FormatEvent_GetCreatedBy($arFields, $arParams, $bMail);
if (!$bMail)
$arResult['AVATAR_SRC'] = CSocNetLog::FormatEvent_CreateAvatar($arFields, $arParams);
if (
$arFields['ENTITY_TYPE'] == SONET_SUBSCRIBE_ENTITY_GROUP
&& intval($arFields['ENTITY_ID']) > 0
)
{
if ($bMail)
{
$arResult['ENTITY']['FORMATTED'] = $arFields['GROUP_NAME'];
$arResult['ENTITY']['TYPE_MAIL'] = GetMessage('WIKI_SOCNET_LOG_ENTITY_G');
}
else
{
$arSocNetAllowedSubscribeEntityTypesDesc = CSocNetAllowed::GetAllowedEntityTypesDesc();
$url = CComponentEngine::MakePathFromTemplate($arParams['PATH_TO_GROUP'], array('group_id' => $arFields['ENTITY_ID']));
$arResult['ENTITY']['FORMATTED']['TYPE_NAME'] = $arSocNetAllowedSubscribeEntityTypesDesc[SONET_SUBSCRIBE_ENTITY_GROUP]['TITLE_ENTITY'];
$arResult['ENTITY']['FORMATTED']['URL'] = $url;
$arResult['ENTITY']['FORMATTED']['NAME'] = $arFields['GROUP_NAME'];
}
}
if (
!$bMail
&& array_key_exists('URL', $arFields)
&& $arFields['URL'] <> ''
)
$wiki_tmp = ''.$arFields['TITLE'].'';
else
$wiki_tmp = $arFields['TITLE'];
if ($arFields['EVENT_ID'] == 'wiki')
{
$title_tmp = ($bMail ? GetMessage('WIKI_SOCNET_LOG_TITLE_MAIL') : GetMessage('WIKI_SOCNET_LOG_TITLE'));
$title_tmp_24 = GetMessage("WIKI_SOCNET_LOG_TITLE_24");
}
elseif ($arFields['EVENT_ID'] === 'wiki_del')
{
$title_tmp = ($bMail ? Loc::getMessage('WIKI_DEL_SOCNET_LOG_TITLE_MAIL') : Loc::getMessage('WIKI_DEL_SOCNET_LOG_TITLE'));
$title_tmp_24 = Loc::getMessage("WIKI_DEL_SOCNET_LOG_TITLE_24", [
'#TITLE#' => $arFields['~TITLE']
]);
}
$title = str_replace(
array('#TITLE#', '#ENTITY#', '#CREATED_BY#'),
array($wiki_tmp, $arResult['ENTITY']['FORMATTED'], ($bMail ? $arResult['CREATED_BY']['FORMATTED'] : '')),
$title_tmp
);
$arResult['EVENT_FORMATTED'] = array(
"TITLE" => $title,
"TITLE_24" => $title_tmp_24,
"TITLE_24_2" => $arFields["TITLE"],
"MESSAGE" => $arFields['MESSAGE']
);
$sanitizer = new CBXSanitizer();
$sanitizer->SetLevel(CBXSanitizer::SECURE_LEVEL_LOW);
$arResult['EVENT_FORMATTED']['MESSAGE'] = $sanitizer->SanitizeHtml(htmlspecialcharsback($arResult['EVENT_FORMATTED']['MESSAGE']));
$arResult['HAS_COMMENTS'] = 'N';
if (
intval($arFields['SOURCE_ID']) > 0
&& array_key_exists('PARAMS', $arFields)
&& $arFields['PARAMS'] <> ''
)
{
$arFieldsParams = explode('&', $arFields['PARAMS']);
if (is_array($arFieldsParams) && count($arFieldsParams) > 0)
foreach ($arFieldsParams as $tmp)
{
list($key, $value) = explode('=', $tmp);
if ($key == 'forum_id')
{
$arResult['HAS_COMMENTS'] = 'Y';
break;
}
}
}
if ($bMail)
{
$url = CSocNetLogTools::FormatEvent_GetURL($arFields);
if ($url <> '')
$arResult['EVENT_FORMATTED']['URL'] = $url;
$parserLog = new logTextParser(false, $arParams["PATH_TO_SMILE"]);
$arAllow = array("HTML" => "Y", "ANCHOR" => "Y", "BIU" => "Y", "IMG" => "Y", "QUOTE" => "Y", "CODE" => "Y", "FONT" => "Y", "LIST" => "Y", "SMILES" => "Y", "NL2BR" => "N", "MULTIPLE_BR" => "Y", "VIDEO" => "Y", "LOG_VIDEO" => "Y", "TABLE" => "Y");
$arResult["EVENT_FORMATTED"]["MESSAGE"] = $arFields["TEXT_MESSAGE"] ? $arFields["TEXT_MESSAGE"] : HTMLToTxt($parserLog->convert(htmlspecialcharsback($arResult["EVENT_FORMATTED"]["MESSAGE"]), array(), $arAllow));
}
else
{
$parserLog = new logTextParser(false, $arParams["PATH_TO_SMILE"]);
//$arAllow = array("HTML" => "Y", "ANCHOR" => "Y", "BIU" => "Y", "IMG" => "Y", "QUOTE" => "Y", "CODE" => "Y", "FONT" => "Y", "LIST" => "Y", "SMILES" => "Y", "NL2BR" => "Y", "MULTIPLE_BR" => "Y", "VIDEO" => "Y", "LOG_VIDEO" => "N");
//$arResult["EVENT_FORMATTED"]["MESSAGE"] = htmlspecialcharsbx($parserLog->convert(htmlspecialcharsback($arResult["EVENT_FORMATTED"]["MESSAGE"]), array(), $arAllow));
if ($arParams["MOBILE"] != "Y")
{
$GLOBALS['APPLICATION']->SetAdditionalCSS('/bitrix/components/bitrix/wiki.show/templates/.default/style.css');
$arResult["CACHED_CSS_PATH"][] = "/bitrix/components/bitrix/wiki.show/templates/.default/style.css";
if($arParams["NEW_TEMPLATE"] != "Y")
{
$arResult["EVENT_FORMATTED"]["SHORT_MESSAGE"] = $parserLog->html_cut(
$parserLog->convert(htmlspecialcharsback($arResult["EVENT_FORMATTED"]["MESSAGE"]), array(), $arAllow),
1000
);
$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"]))
)
);
}
}
return $arResult;
}