%PDF- %PDF-
| Direktori : /home/bitrix/www/bitrix/components/bitrix/forum.topic.read/templates/.default/ |
| Current File : //home/bitrix/www/bitrix/components/bitrix/forum.topic.read/templates/.default/component_epilog.php |
<?if(!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED!==true)die();
/**
* @var array $arParams
* @var array $arResult
* @var string $strErrorMessage
* @param CBitrixComponent $component
* @param CBitrixComponentTemplate $this
* @global CMain $APPLICATION
*/
$request = \Bitrix\Main\Context::getCurrent()->getRequest();
if ($arParams['AJAX_POST'] == 'Y' && $arParams['ACTION'] == 'REPLY')
{
$FHParser = new CForumSimpleHTMLParser(ob_get_clean());
$statusMessage = $FHParser->getTagHTML('div[class=forum-note-box]');
$JSResult = array("statusMessage" => $statusMessage);
if ($request->getPost("MESSAGE_MODE") != "VIEW")
{
$result = intval($arResult['RESULT']);
if ($result === 0)
{
$JSResult += array(
'status' => false,
'error' => $strErrorMessage
);
}
else
{
$pageNumber = intval($request->getPost('pageNumber'));
if ($pageNumber > 0 && $pageNumber != $arResult['PAGE_NUMBER']) // user is not on the last forum messages page
{
$messagePost = $FHParser->getInnerHTML('<!--FORUM_INNER-->', '<!--FORUM_INNER_END-->');
$messageNavigation = $FHParser->getTagHTML('div[class=forum-navigation-box]');
$JSResult += array(
'status' => true,
'allMessages' => true,
'message' => $messagePost,
'navigation' => $messageNavigation,
'pageNumber' => $arResult['PAGE_NUMBER']
);
}
else
{
$messagePost = $FHParser->getInnerHTML('<!--MSG_'.$result.'-->', '<!--MSG_END_'.$result.'-->');
$JSResult += array(
'status' => true,
'allMessages' => false,
'message' => $messagePost,
'messageID' => $result,
);
}
if (strpos($JSResult['message'], "ForumInitSpoiler") !== false)
{
$fname = $_SERVER["DOCUMENT_ROOT"]."/bitrix/components/bitrix/forum.interface/templates/spoiler/script.js";
if (file_exists($fname))
$JSResult['message'] =
'<script src="/bitrix/components/bitrix/forum.interface/templates/spoiler/script.js?'.filemtime($fname).'" type="text/javascript"></script>'.
"\n".$JSResult['message'];
}
if (strpos($JSResult['message'], "onForumImageLoad") !== false)
{
$SHParser = new CForumSimpleHTMLParser($APPLICATION->GetHeadStrings());
$scripts = $SHParser->getInnerHTML('<!--LOAD_SCRIPT-->', '<!--END_LOAD_SCRIPT-->');
if ($scripts !== "")
$JSResult['message'] = $scripts."\n".$JSResult['message'];
}
}
}
else if (strlen($arResult["ERROR_MESSAGE"]) < 1) // preview post
{
$messagePreview = $FHParser->getInnerHTML('<!--MSG_PREVIEW-->', '<!--MSG_END_MSG_PREVIEW-->');
$JSResult += array(
'status' => true,
'previewMessage' => $messagePreview);
if (strpos($JSResult['previewMessage'], "ForumInitSpoiler") !== false)
{
$fname = $_SERVER["DOCUMENT_ROOT"]."/bitrix/components/bitrix/forum.interface/templates/spoiler/script.js";
if (file_exists($fname))
$JSResult['previewMessage'] =
'<script src="/bitrix/components/bitrix/forum.interface/templates/spoiler/script.js?'.filemtime($fname).'" type="text/javascript"></script>'.
$JSResult['previewMessage'];
}
if (strpos($JSResult['previewMessage'], "onForumImageLoad") !== false)
{
$SHParser = new CForumSimpleHTMLParser($APPLICATION->GetHeadStrings());
$scripts = $SHParser->getInnerHTML('<!--LOAD_SCRIPT-->', '<!--END_LOAD_SCRIPT-->');
if ($scripts !== "")
$JSResult['previewMessage'] = $scripts."\n".$JSResult['previewMessage'];
}
}
else
{
$JSResult += array(
'status' => false,
'error' => $arResult["ERROR_MESSAGE"]
);
}
$APPLICATION->RestartBuffer();
while (ob_end_clean());
if ($request->getPost("dataType") == "json")
{
header('Content-Type:application/json; charset=UTF-8');
echo \Bitrix\Main\Web\Json::encode($JSResult);
}
else
{
echo "<script>top.BX.Forum.SetForumAjaxPostTmp(".CUtil::PhpToJSObject($JSResult).");</script>";
}
\CMain::FinalActions();
die();
}