• Модуль: wiki
  • Путь к файлу: ~/bitrix/modules/wiki/classes/general/wiki_socnet.php
  • Класс: CWikiSocnet
  • Вызов: CWikiSocnet::FormatEvent_Wiki
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;
}