• Модуль: timeman
  • Путь к файлу: ~/bitrix/modules/timeman/classes/general/timeman_notify.php
  • Класс: CTimeManNotify
  • Вызов: CTimeManNotify::FormatComment
static function FormatComment($arFields, $arParams, $bMail = false, $arLog = array())
{
	$arResult = array(
		"EVENT_FORMATTED" => array(),
	);

	if (!CModule::IncludeModule("socialnetwork"))
		return $arResult;

	$dbEntry = CTimeManEntry::GetList(array(), array('ID' => $arFields["LOG_SOURCE_ID"]));
	if (!$arEntry = $dbEntry->Fetch())
		return $arResult;

	if(!$bMail && (!isset($arParams["USE_COMMENT"]) || $arParams["USE_COMMENT"] != "Y"))
	{
		$arLog["ENTITY_ID"] = $arFields["ENTITY_ID"];
		$arLog["ENTITY_TYPE"] = $arFields["ENTITY_TYPE"];
	}

	$news_tmp = $arLog["TITLE"] ?? '';
	$title_tmp = GetMessage("TIMEMAN_NEW_COMMENT", array(
		'#DATE#' => FormatDate('j F', MakeTimeStamp($arEntry['DATE_START'])),
	))."n";

	$title_tmp.= GetMessage("COMMENT_AUTHOR").CUser::FormatName(CSite::GetNameFormat(false),
		array("NAME" => $arFields["CREATED_BY_NAME"], "LAST_NAME" => $arFields["CREATED_BY_LAST_NAME"], "SECOND_NAME" => $arFields["CREATED_BY_SECOND_NAME"], "LOGIN" => $arFields["CREATED_BY_LOGIN"]), true)."n";
	$title_tmp.= GetMessage("COMMENT_TEXT");

	$title = str_replace(
		array("#TITLE#", "#ENTITY#"),
		array($news_tmp, ($bMail ? ($arResult["ENTITY"]["FORMATTED"] ?? '') : ($arResult["ENTITY"]["FORMATTED"]["NAME"] ?? ''))),
		$title_tmp
	);

	$arResult["EVENT_FORMATTED"] = array(
		"TITLE" => ($bMail || ($arParams["USE_COMMENT"] ?? null) != "Y" ? $title : ""),
		"MESSAGE" => ($bMail ? $arFields["TEXT_MESSAGE"] : $arFields["MESSAGE"])
	);

	$arResult["ENTITY"]["TYPE_MAIL"] = GetMessage("TIMEMAN_TITLE_FOR_MAIL_COMMENT");
	if ($bMail)
	{
		$reportURL = COption::GetOptionString("timeman","TIMEMAN_REPORT_PATH","/timeman/timeman.php");
		if ($reportURL == '')
			$reportURL = "/timeman/timeman.php";

		$reportURL = CSocNetLogTools::FormatEvent_GetURL(
			array("URL" => $reportURL, "SITE_ID" => $arFields["LOG_SITE_ID"])
		);
	}
	else
	{
		static $parserLog = false;
		if (CModule::IncludeModule("forum"))
		{
			$arAllow = array(
				"HTML" => "N", "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" => "Y",
				"NL2BR" => "Y",
				"MULTIPLE_BR" => "N",
				"VIDEO" => "Y", "LOG_VIDEO" => "N",
				"USERFIELDS" => $arFields["UF"],
				"USER" => (($arParams["IM"] ?? null) == "Y" ? "N" : "Y")
			);

			if (!$parserLog)
				$parserLog = new forumTextParser(LANGUAGE_ID);

			$parserLog->arUserfields = $arFields["UF"];
			$parserLog->pathToUser = $parserLog->userPath = $arParams["PATH_TO_USER"];
			$parserLog->bMobile = (isset($arParams["MOBILE"]) && $arParams["MOBILE"] == "Y");
			$arResult["EVENT_FORMATTED"]["MESSAGE"] = htmlspecialcharsbx($parserLog->convert(htmlspecialcharsback($arResult["EVENT_FORMATTED"]["MESSAGE"]), $arAllow));
			$arResult["EVENT_FORMATTED"]["MESSAGE"] = preg_replace("/[users*=s*([^]]*)](.+?)[/user]/is".BX_UTF_PCRE_MODIFIER, "\2", $arResult["EVENT_FORMATTED"]["MESSAGE"]);
		}
		else
		{
			$arAllow = array(
				"HTML" => "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" => "Y",
				"NL2BR" => "Y",
				"MULTIPLE_BR" => "N",
				"VIDEO" => "Y", "LOG_VIDEO" => "N",
				"USERFIELDS" => $arFields["UF"]
			);

			if (!$parserLog)
			{
				$parserLog = new logTextParser(false, $arParams["PATH_TO_SMILE"]);
			}

			$arResult["EVENT_FORMATTED"]["MESSAGE"] = htmlspecialcharsbx($parserLog->convert(htmlspecialcharsback($arResult["EVENT_FORMATTED"]["MESSAGE"]), array(), $arAllow));
		}

		if (
			($arParams["MOBILE"] ?? null) != "Y"
			&& ($arParams["NEW_TEMPLATE"] ?? null) != "Y"
		)
		{
			if (CModule::IncludeModule("forum"))
				$arResult["EVENT_FORMATTED"]["SHORT_MESSAGE"] = $parserLog->html_cut(
					$parserLog->convert(htmlspecialcharsback($arResult["EVENT_FORMATTED"]["MESSAGE"]), $arAllow),
					500
				);
			else
				$arResult["EVENT_FORMATTED"]["SHORT_MESSAGE"] = $parserLog->html_cut(
					$parserLog->convert(htmlspecialcharsback($arResult["EVENT_FORMATTED"]["MESSAGE"]), array(), $arAllow),
					500
				);
			$arResult["EVENT_FORMATTED"]["IS_MESSAGE_SHORT"] = CSocNetLogTools::FormatEvent_IsMessageShort($arResult["EVENT_FORMATTED"]["MESSAGE"], $arResult["EVENT_FORMATTED"]["SHORT_MESSAGE"]);
		}
	}

	return $arResult;
}