Your IP : 18.217.164.202


Current Path : /home/bitrix/ext_www/easy-comfort.com.ua/bitrix/components/bitrix/forum.comments/
Upload File :
Current File : /home/bitrix/ext_www/easy-comfort.com.ua/bitrix/components/bitrix/forum.comments/component.php

<?if(!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED!==true)die();
/**
 * @var ForumCommentsComponent $this
 * @var $USER CUser
 * @var $DB CDataBase
 * @var $arParams array
 * @var $arResult array
 * @var $this->capcha CCaptcha
 */
/********************************************************************
				Input params
********************************************************************/
/***************** BASE ********************************************/

$arParams["FORUM_ID"] = intval($arParams["FORUM_ID"]);

/***************** URL *********************************************/
$URL_NAME_DEFAULT = array(
		"profile_view" => "PAGE_NAME=profile_view&UID=#UID#",
	);
foreach ($URL_NAME_DEFAULT as $URL => $URL_VALUE)
{
	if (empty($arParams["URL_TEMPLATES_".strToUpper($URL)]))
		continue;
	$arParams["~URL_TEMPLATES_".strToUpper($URL)] = $arParams["URL_TEMPLATES_".strToUpper($URL)];
	$arParams["URL_TEMPLATES_".strToUpper($URL)] = htmlspecialcharsbx($arParams["~URL_TEMPLATES_".strToUpper($URL)]);
}

/***************** ADDITIONAL **************************************/
$arParams["EDITOR_CODE_DEFAULT"] = ($arParams["EDITOR_CODE_DEFAULT"] == "Y" ? "Y" : "N");
$arParams["SHOW_MINIMIZED"] = ($arParams["SHOW_MINIMIZED"] == "Y" ? "Y" : "N");
$arParams["IMAGE_SIZE"] = (intVal($arParams["IMAGE_SIZE"]) > 0 ? $arParams["IMAGE_SIZE"] : 600);
$arParams["IMAGE_HTML_SIZE"] = intval($arParams["IMAGE_HTML_SIZE"]);
$arParams["IMAGE_HTML_SIZE"] = ($arParams["IMAGE_SIZE"] > $arParams["IMAGE_HTML_SIZE"] && $arParams["IMAGE_HTML_SIZE"] > 0 ? $arParams["IMAGE_HTML_SIZE"] : 0);
$arParams["MESSAGES_PER_PAGE"] = intVal($arParams["MESSAGES_PER_PAGE"] > 0 ? $arParams["MESSAGES_PER_PAGE"] : COption::GetOptionString("forum", "MESSAGES_PER_PAGE", "10"));
$arParams["DATE_TIME_FORMAT"] = trim(empty($arParams["DATE_TIME_FORMAT"]) ? $DB->DateFormatToPHP(CSite::GetDateFormat("FULL")) : $arParams["DATE_TIME_FORMAT"]);
$arParams["NAME_TEMPLATE"] = empty($arParams["NAME_TEMPLATE"]) ? "" : str_replace(array("#NOBR#","#/NOBR#"), array("",""), $arParams["NAME_TEMPLATE"]);
$arParams["PREORDER"] = ($arParams["PREORDER"] == "Y" ? "Y" : "N");
$arParams["SET_LAST_VISIT"] = empty($arParams["SET_LAST_VISIT"]) ? "N" : ($arParams["SET_LAST_VISIT"] == "Y" ? "Y" : "N");

$arParams["SHOW_RATING"] = ($arParams["SHOW_RATING"] == "Y" ? "Y" : "N");
$arParams["PAGE_NAVIGATION_TEMPLATE"] = trim($arParams["PAGE_NAVIGATION_TEMPLATE"]);
$arParams["PAGE_NAVIGATION_TEMPLATE"] = (!empty($arParams["PAGE_NAVIGATION_TEMPLATE"]) ? $arParams["PAGE_NAVIGATION_TEMPLATE"] : "modern");
if ($arParams["AUTOSAVE"])
	$arParams["AUTOSAVE"] = CForumAutosave::GetInstance();

$arParams["ALLOW"] = array_flip(array(
		"ALLOW_HTML",
		"ALLOW_ANCHOR",
		"ALLOW_BIU",
		"ALLOW_IMG",
		"ALLOW_VIDEO",
		"ALLOW_LIST",
		"ALLOW_QUOTE",
		"ALLOW_CODE",
		"ALLOW_FONT",
		"ALLOW_SMILES",
		"ALLOW_NL2BR",
		"ALLOW_TABLE",
		"ALLOW_MENTION",
		"ALLOW_ALIGN",
		"ALLOW_MENTION"));
foreach ($arParams["ALLOW"] as $sName => $default)
{
	$sVal = array_key_exists($sName, $arParams) ? $arParams[$sName] : $arResult['FORUM'][$sName];
	$arParams["ALLOW"][$sName] = ($sName == "ALLOW_HTML" ? ($sVal === "Y" ? "Y" : "N") : ($sVal === "N" ? "N" : "Y"));
}
$arParams["ALLOW"]["ALLOW_UPLOAD"] = $arResult["FORUM"]["ALLOW_UPLOAD"];
$arParams["ALLOW"]["ALLOW_UPLOAD_EXT"] = trim($arResult["FORUM"]["ALLOW_UPLOAD_EXT"]);
if (in_array($arParams["ALLOW_UPLOAD"], array("A", "Y", "F", "N", "I")))
{
	$arParams["ALLOW"]["ALLOW_UPLOAD"] = ($arParams["ALLOW_UPLOAD"] == "I" ? "Y" : $arParams["ALLOW_UPLOAD"]);
	$arParams["ALLOW"]["ALLOW_UPLOAD_EXT"] = trim($arParams["ALLOW_UPLOAD_EXT"]);
}
$arParams = array_merge($arParams, $arParams["ALLOW"]);

$arMessages = array(
	"MINIMIZED_EXPAND_TEXT" => GetMessage('F_EXPAND_TEXT'),
	"MINIMIZED_MINIMIZE_TEXT" => GetMessage('F_MINIMIZE_TEXT'),
	"MESSAGE_TITLE" => GetMessage('F_MESSAGE_TEXT')
);
foreach($arMessages as $paramName => $paramValue)
	$arParams[$paramName] = (($arParams[$paramName]) ? $arParams[$paramName] : $paramValue);
$arParams["URL_TEMPLATES_PROFILE_VIEW"] = (str_replace(array("#USER_ID#", "#author_id#", "#AUTHOR_ID#", "#UID#", "#ID#"), "#user_id#", $arParams["URL_TEMPLATES_PROFILE_VIEW"]));
$arParams["PATH_TO_SMILE"] = "/bitrix/images/forum/smile/";
/***************** STANDART ****************************************/
if ($arParams["CACHE_TYPE"] == "Y" || ($arParams["CACHE_TYPE"] == "A" && COption::GetOptionString("main", "component_cache_on", "Y") == "Y"))
	$arParams["CACHE_TIME"] = intval($arParams["CACHE_TIME"]);
else
	$arParams["CACHE_TIME"] = 0;
/********************************************************************
				/Input params
********************************************************************/
/********************************************************************
				Default values
********************************************************************/
$arResult["FORUM"] = $this->feed->getForum();
$arResult["TOPIC"] = $this->feed->getTopic();
$arResult["MESSAGES"] = array();
$arResult["FORUM_TOPIC_ID"] = $arResult["TOPIC"]["ID"];

CPageOption::SetOptionString("main", "nav_page_in_session", "N");

$arResult["USER"] = array(
	"PERMISSION" => $this->feed->getPermission(),
	"SHOWED_NAME" => $GLOBALS["FORUM_STATUS_NAME"]["guest"],
	"SUBSCRIBE" => array(),
	"FORUM_SUBSCRIBE" => "N",
	"TOPIC_SUBSCRIBE" => "N",
	"RIGHTS" => array(
		"ADD_TOPIC" => $this->feed->canAdd() ? "Y" : "N",
		"MODERATE" => $this->feed->canModerate() ? "Y" : "N",
		"EDIT" => $this->feed->canEdit() ? "Y" : "N",
		"ADD_MESSAGE" => ($this->feed->canAdd() ? "Y" : "N")
));
if ($USER->IsAuthorized())
{
	$arResult["USER"]["ID"] = $USER->getID();
	$tmpName = empty($arParams["NAME_TEMPLATE"]) ? $USER->getFormattedName(false) : CUser::FormatName($arParams["NAME_TEMPLATE"], array(
		"NAME"			=>	$USER->GetFirstName(),
		"LAST_NAME"		=>	$USER->GetLastName(),
		"SECOND_NAME"	=>	$USER->GetSecondName(),
		"LOGIN"			=>	$USER->GetLogin()
	));
	$arResult["USER"]["SHOWED_NAME"] = trim($_SESSION["FORUM"]["SHOW_NAME"] == "Y" ? $tmpName : $USER->getLogin());
	$arResult["USER"]["SHOWED_NAME"] = trim(!empty($arResult["USER"]["SHOWED_NAME"]) ? $arResult["USER"]["SHOWED_NAME"] : $USER->getLogin());
}

$arResult['DO_NOT_CACHE'] = true;

// PARSER
$parser = new forumTextParser(LANGUAGE_ID);
$parser->imageWidth = $arParams["IMAGE_SIZE"];
$parser->imageHtmlWidth = $arParams["IMAGE_HTML_SIZE"];
$parser->userPath = $arParams["URL_TEMPLATES_PROFILE_VIEW"];
$parser->userNameTemplate = $arParams["NAME_TEMPLATE"];

$arResult["PARSER"] = $parser;
$arAllow = array(
	"HTML" => $arParams["ALLOW_HTML"],
	"ANCHOR" => $arParams["ALLOW_ANCHOR"],
	"BIU" => $arParams["ALLOW_BIU"],
	"IMG" => $arParams["ALLOW_IMG"],
	"VIDEO" => $arParams["ALLOW_VIDEO"],
	"LIST" => $arParams["ALLOW_LIST"],
	"QUOTE" => $arParams["ALLOW_QUOTE"],
	"CODE" => $arParams["ALLOW_CODE"],
	"FONT" => $arParams["ALLOW_FONT"],
	"SMILES" => $arParams["ALLOW_SMILES"],
	"NL2BR" => $arParams["ALLOW_NL2BR"],
	"TABLE" => $arParams["ALLOW_TABLE"],
	"UPLOAD" => $arParams["ALLOW_UPLOAD"],
	"ALIGN" => $arParams["ALLOW_ALIGN"],
	"MENTION" => $arParams["ALLOW_MENTION"]
);

/********************************************************************
				/Default values
********************************************************************/

$arResult["PANELS"] = array(
	"MODERATE" => $arResult["USER"]["RIGHTS"]["MODERATE"],
	"EDIT" => $arResult["USER"]["RIGHTS"]["EDIT"],
	"DELETE" => $arResult["USER"]["RIGHTS"]["EDIT"]
);

/************** Show post form **********************************/
$arResult["SHOW_POST_FORM"] = $arResult["USER"]["RIGHTS"]["ADD_MESSAGE"];

if ($arResult["SHOW_POST_FORM"] == "Y")
{
	// Author name
	$arResult["~REVIEW_AUTHOR"] = $arResult["USER"]["SHOWED_NAME"];
	$arResult["~REVIEW_USE_SMILES"] = ($arParams["ALLOW_SMILES"] == "Y" ? "Y" : "N");

	if ($this->request->getPost("comment_review") == "Y" && $arParams["AUTOSAVE"])
		$arParams["AUTOSAVE"]->Reset();

	if (array_key_exists("MESSAGE_VIEW", $arResult))
	{
		$arParams["SHOW_MINIMIZED"] = "N";
		$arResult["MESSAGE_VIEW"] = array(
			"POST_MESSAGE_TEXT" => $parser->convert($arResult["MESSAGE_VIEW"]["POST_MESSAGE"], array_merge(
					$arAllow, array("SMILES" => $arAllow["ALLOW_SMILES"] == "Y" && $arResult["MESSAGE_VIEW"]["USE_SMILES"] == "Y" ? "Y" : "N"))),
			"AUTHOR_NAME" => htmlspecialcharsbx($arResult["USER"]["SHOWED_NAME"]),
			"AUTHOR_ID" => intval($arResult["USER"]["ID"]),
			"AUTHOR_URL" => CComponentEngine::MakePathFromTemplate($arParams["URL_TEMPLATES_PROFILE_VIEW"], array("UID" => $arResult["MESSAGE_VIEW"]["AUTHOR_ID"])),
			"POST_DATE" => CForumFormat::DateFormat($arParams["DATE_TIME_FORMAT"], time()+CTimeZone::GetOffset()),
			"FILES" => array());
	}

	if (!empty($_POST["REVIEW_AUTHOR"]))
		$arResult["~REVIEW_AUTHOR"] = $_POST["REVIEW_AUTHOR"];
	$arResult["~REVIEW_EMAIL"] = $_POST["REVIEW_EMAIL"];
	$arResult["~REVIEW_TEXT"] = $_POST["REVIEW_TEXT"];
	$arResult["~REVIEW_USE_SMILES"] = ($_POST["REVIEW_USE_SMILES"] == "Y" ? "Y" : "N");

	$arResult["REVIEW_AUTHOR"] = htmlspecialcharsbx($arResult["~REVIEW_AUTHOR"]);
	$arResult["REVIEW_EMAIL"] = htmlspecialcharsbx($arResult["~REVIEW_EMAIL"]);
	$arResult["REVIEW_TEXT"] = htmlspecialcharsbx($arResult["~REVIEW_TEXT"]);
	$arResult["REVIEW_USE_SMILES"] = $arResult["~REVIEW_USE_SMILES"];

	// Form Info
	$arResult["SHOW_PANEL_ATTACH_IMG"] = (in_array($arParams["ALLOW_UPLOAD"], array("A", "F", "Y")) ? "Y" : "N");
	$arResult["TRANSLIT"] = (LANGUAGE_ID=="ru" ? "Y" : " N");
	if ($arParams["ALLOW_SMILES"] == "Y"):
		/* @deprecated */
		$arResult["ForumPrintSmilesList"] = ForumPrintSmilesList(3, LANGUAGE_ID);
		/* @deprecated */
		$arResult["SMILES"] = CForumSmile::getSmiles("S", LANGUAGE_ID);
	endif;
	$arResult["CAPTCHA_CODE"] = "";
	if (is_object($this->captcha))
	{
		$this->captcha->SetCodeCrypt(COption::GetOptionString("main", "captcha_password", ""));
		$arResult["CAPTCHA_CODE"] = htmlspecialcharsbx($this->captcha->getCodeCrypt());
	}
}

/********************************************************************
				Input params II
********************************************************************/
/************** URL ************************************************/
if (empty($arParams["~URL_TEMPLATES_READ"]) && !empty($arResult["FORUM"]["PATH2FORUM_MESSAGE"]))
	$arParams["~URL_TEMPLATES_READ"] = $arResult["FORUM"]["PATH2FORUM_MESSAGE"];
elseif (empty($arParams["~URL_TEMPLATES_READ"]))
	$arParams["~URL_TEMPLATES_READ"] = $APPLICATION->GetCurPage()."?PAGE_NAME=read&FID=#FID#&TID=#TID#&MID=#MID#";
$arParams["~URL_TEMPLATES_READ"] = str_replace(array("#FORUM_ID#", "#TOPIC_ID#", "#MESSAGE_ID#"),
		array("#FID#", "#TID#", "#MID#"), $arParams["~URL_TEMPLATES_READ"]);
$arParams["URL_TEMPLATES_READ"] = htmlspecialcharsbx($arParams["~URL_TEMPLATES_READ"]);
//
// Link to forum
$arResult["read"] = CComponentEngine::MakePathFromTemplate($arParams["URL_TEMPLATES_READ"],
	array("FID" => $arParams["FORUM_ID"], "TID" => $arResult["FORUM_TOPIC_ID"], "TITLE_SEO" => $arResult["TOPIC"]["TITLE_SEO"],
		"MID" => "s", "PARAM1" => $arParams['ENTITY_TYPE'], "PARAM2" => $arParams["ENTITY_ID"]));
/********************************************************************
				/Input params
********************************************************************/

/********************************************************************
				Data
********************************************************************/
/************** 4. Get message list *******"*************************/
$pageNo = 0; $bShowAll = false;
$arResult["UNREAD_MID"] = 0;
if ($arResult["FORUM_TOPIC_ID"] > 0)
{
	$pager_number = $GLOBALS["NavNum"] + 1;
	$arResult["UNREAD_MID"] = intVal(ForumGetFirstUnreadMessage($arParams["FORUM_ID"], $arResult["FORUM_TOPIC_ID"]));

	$MID = intVal($_REQUEST["MID"]);
	unset($_GET["MID"]); unset($GLOBALS["MID"]);
	if (isset($arResult['RESULT']) && intval($arResult['RESULT']) > 0)
	{
		$MID = $arResult['RESULT'];
		if ($arResult["UNREAD_MID"] == $MID)
			$arResult["UNREAD_MID"]++;
	}
	elseif ($arResult["UNREAD_MID"] > 0 && ($MID > 0 && $MID > $arResult["UNREAD_MID"] || $MID <= 0))
		$MID = $arResult["UNREAD_MID"];
	ForumSetReadTopic($arParams["FORUM_ID"], $arResult["FORUM_TOPIC_ID"]);
	if (intVal($MID) > 0)
	{
		$pageNo = CForumMessage::GetMessagePage(
			$MID,
			$arParams["MESSAGES_PER_PAGE"],
			$GLOBALS["USER"]->GetUserGroupArray(),
			$arResult["FORUM_TOPIC_ID"],
			array(
				"ORDER_DIRECTION" => ($arParams["PREORDER"] == "N" ? "DESC" : "ASC"),
				"PERMISSION_EXTERNAL" => $arResult["USER"]["PERMISSION"],
				"FILTER" => array("!PARAM1" => $arParams['ENTITY_TYPE'])
			)
		);
		$bShowAll = ($pageNo > 1);
		$arResult['MID'] = $MID;
	}
	else
	{
		$pageNo = $_GET["PAGEN_".$pager_number];
		if (isset($arResult['RESULT']) && intval($arResult['RESULT']) > 0) $pageNo = $arResult['RESULT'];
	}

	if ($pageNo > 200) $pageNo = 0;
}

$ar_cache_id = array(
	$arParams["FORUM_ID"],
	$arParams["ENTITY_XML_ID"],
	$arResult["FORUM_TOPIC_ID"],
	$arResult["USER"]["RIGHTS"],
	$arResult["USER"]["PERMISSION"],
	$arResult["PANELS"],
	$arParams['SHOW_RATING'],
	$arParams["MESSAGES_PER_PAGE"],
	$arParams["DATE_TIME_FORMAT"],
	$arParams["PREORDER"],
	$pageNo
);

$cache_id = "forum_comment_".serialize($ar_cache_id);

if ($arResult['DO_NOT_CACHE'] || $this->StartResultCache($arParams["CACHE_TIME"], $cache_id))
{
	$auxSuffix = false;
	switch (strtolower($arParams['ENTITY_TYPE']))
	{
		case \Bitrix\Forum\Comments\TaskEntity::ENTITY_TYPE:
			$auxSuffix = 'TASK';
			break;
		case \Bitrix\Forum\Comments\CalendarEntity::ENTITY_TYPE:
			$auxSuffix = 'CALENDAR';
			break;
		case \Bitrix\Forum\Comments\WorkflowEntity::ENTITY_TYPE:
			$auxSuffix = 'WF';
			break;
		default:
			$auxSuffix = false;
	}

	if ($arParams["SET_LAST_VISIT"] == "Y")
	{
		ForumSetLastVisit($arParams["FORUM_ID"], $arResult["FORUM_TOPIC_ID"], array("nameTemplate" => $arParams["NAME_TEMPLATE"]));
	}
	if ($arResult["FORUM_TOPIC_ID"] > 0)
	{
		$arMessages = array();

		if (empty($arMessages))
		{
			$arOrder = array("ID" => ($arParams["PREORDER"] === "N" ? "DESC" : "ASC"));
			$arFields = array("bDescPageNumbering" => false, "nPageSize" => $arParams["MESSAGES_PER_PAGE"], "bShowAll" => $bShowAll);
			if (!empty($arParams["NAME_TEMPLATE"]))
				$arFields["sNameTemplate"] = $arParams["NAME_TEMPLATE"];

			if ((intVal($MID) > 0) && ($pageNo > 0))
				$arFields["iNumPage"] = intVal($pageNo);

			$arFilter = array("FORUM_ID"=>$arParams["FORUM_ID"], "TOPIC_ID"=>$arResult["FORUM_TOPIC_ID"], "!PARAM1" => $arParams['ENTITY_TYPE']);
			if ($arResult["USER"]["RIGHTS"]["MODERATE"] != "Y") $arFilter["APPROVED_AND_MINE"] = $GLOBALS["USER"]->GetId();
			if (!empty($_REQUEST["FILTER"]))
				$arFilter = array_merge($_REQUEST["FILTER"], $arFilter);
			if ($bShowAll)
				$GLOBALS["SHOWALL_".($GLOBALS["NavNum"]+1)] = true;
			$db_res = CForumMessage::GetListEx($arOrder, $arFilter, false, 0, $arFields);
			$db_res->NavStart($arParams["MESSAGES_PER_PAGE"], $bShowAll, ($arFields["iNumPage"] > 0 ? $arFields["iNumPage"] : false));
			$arResult["NAV_RESULT"] = $db_res;
			if ($db_res)
			{
				$arResult["NAV_STRING"] = $db_res->GetPageNavStringEx($navComponentObject, GetMessage("NAV_OPINIONS"), $arParams["PAGE_NAVIGATION_TEMPLATE"]);
				$arResult["NAV_STYLE"] = $APPLICATION->GetAdditionalCSS();
				$arResult["PAGE_COUNT"] = $db_res->NavPageCount;
				$arResult['PAGE_NUMBER'] = $db_res->NavPageNomer;
				$number = intVal($db_res->NavPageNomer-1)*$arParams["MESSAGES_PER_PAGE"] + 1;
				$GLOBALS['forumComponent'] = &$this;
				$FormatDate = (strpos($arParams["DATE_TIME_FORMAT"], 'a') !== false ? 'g:i a' :
					(strpos($arParams["DATE_TIME_FORMAT"], 'A') !== false ? 'g:i A' : 'G:i'));
				while ($res = $db_res->GetNext())
				{
					/************** Message info ***************************************/
					// number in topic
					$res["NUMBER"] = $number++;
					// data
					$res["POST_TIMESTAMP"] = MakeTimeStamp($res["POST_DATE"], CSite::GetDateFormat());
					$res["POST_TIME"] = FormatDate($FormatDate, $res["POST_TIMESTAMP"]);
					$res["POST_DATE"] = CForumFormat::DateFormat($arParams["DATE_TIME_FORMAT"], $res["POST_TIMESTAMP"]);
					$res["EDIT_DATE"] = CForumFormat::DateFormat($arParams["DATE_TIME_FORMAT"], MakeTimeStamp($res["EDIT_DATE"], CSite::GetDateFormat()));
					// text
					$res["ALLOW"] = array_merge($arAllow, array("SMILES" => ($res["USE_SMILES"] == "Y" ? $arParams["ALLOW_SMILES"] : "N")));
					$res["~POST_MESSAGE_TEXT"] = (COption::GetOptionString("forum", "FILTER", "Y")=="Y" ? $res["~POST_MESSAGE_FILTER"] : $res["~POST_MESSAGE"]);
					// links
					$res["PANELS"] = $arResult["PANELS"];
					$res["URL"] = array(
						"LINK" => $APPLICATION->GetCurPageParam("MID=".$res["ID"],
							array("MID", "sessid", "AJAX_POST", "ENTITY_XML_ID", "ENTITY_TYPE", "ENTITY_ID", "REVIEW_ACTION", "MODE", "FILTER", "result"))
					);
					$res["URL"]["MODERATE"] = ForumAddPageParams($res["URL"]["LINK"], array("REVIEW_ACTION" => ($res["APPROVED"]=="Y" ? "HIDE" : "SHOW")));
					$res["URL"]["EDIT"] = ForumAddPageParams($res["URL"]["LINK"], array("REVIEW_ACTION" => "GET"));
					$res["URL"]["DELETE"] = ForumAddPageParams($res["URL"]["LINK"], array("REVIEW_ACTION" => "DEL"));
					if ($res["PANELS"]["EDIT"] == "Y" || (
							$arParams["ALLOW_EDIT_OWN_MESSAGE"] === "LAST" &&
							$res["ID"] == $arResult["TOPIC"]["ABS_LAST_MESSAGE_ID"] &&
							$res["AUTHOR_ID"] > 0 &&
							$res["AUTHOR_ID"] == $GLOBALS["USER"]->GetId()) ||
						($arParams["ALLOW_EDIT_OWN_MESSAGE"] === "ALL" &&
							$res["AUTHOR_ID"] > 0 &&
							$res["AUTHOR_ID"] == $GLOBALS["USER"]->GetId())
					)
					{
						$res["PANELS"]["EDIT"] = "Y";
						$res["PANELS"]["DELETE"] = "Y";
					}
					/************** Message info/***************************************/
					/************** Author info ****************************************/
					if (empty($res["NAME"]) && !empty($res["AUTHOR_NAME"]))
					{
						$res["NAME"] = $res["AUTHOR_NAME"];
						$res["~NAME"] = $res["~AUTHOR_NAME"];
					}
					if (!empty($arParams["NAME_TEMPLATE"]) && $res["SHOW_NAME"] != "Y")
					{
						$name = CUser::FormatName(
							$arParams["NAME_TEMPLATE"],
							array(
								"NAME"			=> $res["NAME"],
								"LAST_NAME"		=> $res["LAST_NAME"],
								"SECOND_NAME"	=> $res["SECOND_NAME"],
								"LOGIN"			=> $res["LOGIN"]
							),
							true,
							false
						);
						if (!!$name)
						{
							$res["~AUTHOR_NAME"] = $name;
							$res["AUTHOR_NAME"] = htmlspecialcharsbx($name);
						}
					}
					$res["AUTHOR_ID"] = intVal($res["AUTHOR_ID"]);
					$res["AUTHOR_URL"] = "";
					if (!empty($arParams["URL_TEMPLATES_PROFILE_VIEW"]))
					{
						$res["AUTHOR_URL"] = CComponentEngine::MakePathFromTemplate($arParams["URL_TEMPLATES_PROFILE_VIEW"], array("user_id" => $res["AUTHOR_ID"]));
					}
					$avatarId = (int)$res["PERSONAL_PHOTO"];
					if ($avatarId > 0)
					{
						$res["AVATAR"] = array(
							"ID" => $avatarId,
							"FILE" => CFile::ResizeImageGet(
								$avatarId,
								array("width" => 42, "height" => 42),
								BX_RESIZE_IMAGE_EXACT,
								false)
							);
						if ($res["AVATAR"]["FILE"] !== false)
							$res["AVATAR"]["HTML"] = CFile::ShowImage($res["AVATAR"]["FILE"]['src'], 30, 30, "border=0 align='right'");
					}
					else
					{
						$res["AVATAR"] = null;
					}
					// For quote JS
					$res["FOR_JS"] = array(
						"AUTHOR_NAME" => CUtil::JSEscape($res["AUTHOR_NAME"]),
						"POST_MESSAGE_TEXT" => CUtil::JSEscape(htmlspecialcharsbx($res["POST_MESSAGE_TEXT"]))
					);

					$res["NEW"] = ($arResult["UNREAD_MID"] > 0 && $res["ID"] >= $arResult["UNREAD_MID"] ? "Y" : "N");

					if (
						$auxSuffix
						&& \Bitrix\Main\Loader::includeModule('socialnetwork')
						&& ($commentAuxProvider = \Bitrix\Socialnetwork\CommentAux\Base::findProvider(
							array(
								'POST_TEXT' => $res['~POST_MESSAGE_TEXT'],
							),
							array(
								'needSetParams' => false
							)
						))
					)
					{
						$forumPostLivefeedProvider = new \Bitrix\Socialnetwork\Livefeed\ForumPost();
						$dbres = \Bitrix\Socialnetwork\LogCommentTable::getList(array(
							'filter' => array(
								'SOURCE_ID' => $res['ID'],
								'EVENT_ID' => $forumPostLivefeedProvider->getEventId()
							),
							'select' => array('EVENT_ID', 'SHARE_DEST', 'LOG_ID')
						));
						if ($sonetCommentFields = $dbres->fetch())
						{

							$auxParams = $commentAuxProvider->getParamsFromFields($sonetCommentFields);
							if (!empty($auxParams))
							{
								$commentAuxProvider->setParams($auxParams);
								$commentAuxProvider->setOptions(array(
									'eventId' => $sonetCommentFields['EVENT_ID'],
									'suffix' => $auxSuffix,
									'logId' => $sonetCommentFields['LOG_ID'],
									'cache' => !$arResult['DO_NOT_CACHE']
								));

								$res['~POST_MESSAGE_TEXT'] = $commentAuxProvider->getText();
								$res["AUX"] = $commentAuxProvider->getType();
								$res["AUX_LIVE_PARAMS"] = array();
							}
						}
					}

					$arMessages[$res["ID"]] = $res;
				}
			}
			$arResult["MESSAGES"] = $arMessages;
			unset($arMessages);

			foreach (GetModuleEvents('forum', 'OnPrepareComments', true) as $arEvent)
				ExecuteModuleEventEx($arEvent);

			$parser->arFiles = $arResult["FILES"];
			foreach ($arResult["MESSAGES"] as $iID => $res):
				$parser->arUserfields = $arResult["MESSAGES"][$iID]["PROPS"] = (array_key_exists($res["ID"], $arResult["UFS"]) ?
					$arResult["UFS"][$res["ID"]] : array());
				$arResult["MESSAGES"][$iID]["POST_MESSAGE_TEXT"] = $parser->convert($res["~POST_MESSAGE_TEXT"], $res["ALLOW"]);
				$arResult["MESSAGES"][$iID]["FILES_PARSED"] = $parser->arFilesIDParsed;
			endforeach;

			if(defined("BX_COMP_MANAGED_CACHE"))
			{
				CForumCacheManager::SetTag($this->GetCachePath(), "forum_topic_".$arResult['FORUM_TOPIC_ID']);
			}
		}
		else
		{
			$GLOBALS["NavNum"]++;
		}
	}
	$this->IncludeComponentTemplate();
}