// // 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;
ShowError(GetMessage("SONET_MODULE_NOT_INSTALL")); return false; } elseif (intVal($arParams["FID"]) <= 0) { ShowError(GetMessage("F_FID_IS_EMPTY")); return false; } /******************************************************************** Input params ********************************************************************/ /***************** BASE ********************************************/ $GLOBALS["FID"] = $arParams["FID"] = intVal($arParams["FID"]); $arParams["TID"] = intVal(intVal($arParams["TID"]) <= 0 ? $_REQUEST["TID"] : $arParams["TID"]); $arParams["MID_UNREAD"] = strLen(trim($arParams["MID"])) <= 0 ? $_REQUEST["MID"] : $arParams["MID"]; $arParams["MID"] = is_array($arParams["MID"]) ? 0 : intVal($arParams["MID"]); if (strtolower($arParams["MID_UNREAD"]) == "unread_mid") { $arParams["MID"] = intVal(ForumGetFirstUnreadMessage($arParams["FID"], $arParams["TID"])); } $arParams['AJAX_POST'] = $arParams["AJAX_POST"] == "Y" ? "Y" : "N"; $arParams["ACTION"] = !empty($arParams["ACTION"]) ? $arParams["ACTION"] : $_REQUEST["ACTION"]; $arParams["ACTION"] = !empty($arParams["ACTION"]) ? $arParams["ACTION"] : ($_POST["MESSAGE_TYPE"] == "REPLY" ? "REPLY" : false); $arParams["SOCNET_GROUP_ID"] = intVal($arParams["SOCNET_GROUP_ID"]); $arParams["MODE"] = $arParams["SOCNET_GROUP_ID"] > 0 ? "GROUP" : "USER"; $arParams["USER_ID"] = intVal(intVal($arParams["USER_ID"]) > 0 ? $arParams["USER_ID"] : $USER->GetID()); /***************** URL *********************************************/ $URL_NAME_DEFAULT = array("topic_list" => "PAGE_NAME=topic_list", "topic" => "PAGE_NAME=topic&TID=#TID#", "topic_edit" => "PAGE_NAME=topic_edit&TID=#TID#&MID=#MID#", "message" => "PAGE_NAME=topic&TID=#TID#&MID=#MID#", "profile_view" => "PAGE_NAME=profile_view&UID=#UID#"); foreach ($URL_NAME_DEFAULT as $URL => $URL_VALUE) { if (strLen(trim($arParams["URL_TEMPLATES_" . strToUpper($URL)])) <= 0) { $arParams["URL_TEMPLATES_" . strToUpper($URL)] = $APPLICATION->GetCurPageParam($URL_VALUE, array("PAGE_NAME", "FID", "TID", "UID", "GID", "MID", "ACTION", "sessid", "SEF_APPLICATION_CUR_PAGE_URL", "AJAX_TYPE", "AJAX_CALL", BX_AJAX_PARAM_ID, "result", "order")); } $arParams["~URL_TEMPLATES_" . strToUpper($URL)] = $arParams["URL_TEMPLATES_" . strToUpper($URL)]; $arParams["URL_TEMPLATES_" . strToUpper($URL)] = htmlspecialcharsbx($arParams["~URL_TEMPLATES_" . strToUpper($URL)]);
//***************************************************************************************************************** // Read topic. Public part. //***************************************************************************************************************** if (!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED !== true) { die; } IncludeTemplateLangFile(__FILE__); if (CModule::IncludeModule("forum")) { //*************************!Let's init $FID (forum id), $TID (topic id) and $MID (message id)********************** //*************************!with actual and coordinated values***************************************************** //*************************!*************************************************************************************** $FID = IntVal($_REQUEST["FID"]); $TID = IntVal($_REQUEST["TID"]); $MID = IntVal($_REQUEST["MID"]); if (strToLower($_REQUEST["MID"]) == "unread_mid") { $MID = ForumGetFirstUnreadMessage($FID, $TID); } $MID = IntVal($MID); define("FORUM_MODULE_PAGE", "READ"); if ($MID > 0) { $arMessage = CForumMessage::GetByID($MID); if ($arMessage) { $TID = IntVal($arMessage["TOPIC_ID"]); $FID = IntVal($arMessage["FORUM_ID"]); } else { $MID = 0; } } $arTopic = CForumTopic::GetByIDEx($TID); if (!$arTopic) { LocalRedirect("list.php?FID=" . $FID);