Your IP : 3.145.99.84
<?if(!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED!==true)die();
if (!CModule::IncludeModule("forum")):
ShowError(GetMessage("F_NO_MODULE"));
return false;
endif;
$strErrorMessage = "";
$strOKMessage = "";
$arError = array();
$arNote = array();
$bVarsFromForm = false;
$arResult["SHOW_MESSAGE_FOR_AJAX"] = "N";
/********************************************************************
Input params
********************************************************************/
/***************** BASE ********************************************/
$arParams["FID"] = intVal(intVal($arParams["FID"]) <= 0 ? $_REQUEST["FID"] : $arParams["FID"]);
$arParams["MID"] = (intVal($arParams["MID"]) <= 0 ? $_REQUEST["MID"] : $arParams["MID"]);
$arParams["MESSAGE_TYPE"] = (empty($arParams["MESSAGE_TYPE"]) ? $_REQUEST["MESSAGE_TYPE"] : $arParams["MESSAGE_TYPE"]);
$arParams["MESSAGE_TYPE"] = ($arParams["MESSAGE_TYPE"]!="EDIT" ? "NEW" : "EDIT");
/***************** URL *********************************************/
$URL_NAME_DEFAULT = array(
"index" => "",
"forums" => "PAGE_NAME=forums&GID=#GID#",
"list" => "PAGE_NAME=list&FID=#FID#",
"read" => "PAGE_NAME=read&FID=#FID#&TID=#TID#",
"message" => "PAGE_NAME=message&FID=#FID#&TID=#TID#&MID=#MID#",
"profile_view" => "PAGE_NAME=profile_view&UID=#UID#");
if (empty($arParams["URL_TEMPLATES_MESSAGE"]) && !empty($arParams["URL_TEMPLATES_READ"]))
{
$arParams["URL_TEMPLATES_MESSAGE"] = $arParams["URL_TEMPLATES_READ"];
}
foreach ($URL_NAME_DEFAULT as $URL => $URL_VALUE)
{
if (strLen(trim($arParams["URL_TEMPLATES_".strToUpper($URL)])) <= 0)
$arParams["URL_TEMPLATES_".strToUpper($URL)] = $APPLICATION->GetCurPage()."?".$URL_VALUE;
$arParams["~URL_TEMPLATES_".strToUpper($URL)] = $arParams["URL_TEMPLATES_".strToUpper($URL)];
$arParams["URL_TEMPLATES_".strToUpper($URL)] = htmlspecialcharsbx($arParams["URL_TEMPLATES_".strToUpper($URL)]);
}
/***************** ADDITIONAL **************************************/
$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"]) ? $arParams["NAME_TEMPLATE"] : false);
$arParams["PATH_TO_SMILE"] = "";
$arParams["PATH_TO_ICON"] = "";
if ($arParams["AJAX_TYPE"] == "Y" || ($arParams["AJAX_TYPE"] == "A" && COption::GetOptionString("main", "component_ajax_on", "Y") == "Y"))
$arParams["AJAX_TYPE"] = "Y";
else
$arParams["AJAX_TYPE"] = "N";
$arParams["AJAX_CALL"] = ($_REQUEST["AJAX_CALL"] == "Y" ? "Y" : "N");
$arParams["AJAX_CALL"] = (($arParams["AJAX_TYPE"] == "Y" && $arParams["AJAX_CALL"] == "Y") ? "Y" : "N");
$arParams["VOTE_CHANNEL_ID"] = intVal($arParams["VOTE_CHANNEL_ID"]);
$arParams["SHOW_VOTE"] = ($arParams["SHOW_VOTE"] == "Y" && $arParams["VOTE_CHANNEL_ID"] > 0 && IsModuleInstalled("vote") ? "Y" : "N");
$arParams["VOTE_GROUP_ID"] = (!is_array($arParams["VOTE_GROUP_ID"]) || empty($arParams["VOTE_GROUP_ID"]) ? array() : $arParams["VOTE_GROUP_ID"]);
if (!is_array($arParams['VOTE_UNIQUE'])) $arParams['VOTE_UNIQUE'] = array();
if (!(isset($arParams['VOTE_UNIQUE_IP_DELAY']) && strlen(trim($arParams['VOTE_UNIQUE_IP_DELAY'])) > 0 && strpos($arParams['VOTE_UNIQUE_IP_DELAY'], " ") !== false))
$arParams['VOTE_UNIQUE_IP_DELAY'] = "10 D";
$arParams["AUTOSAVE"] = CForumAutosave::GetInstance();
/***************** STANDART ****************************************/
$arParams["SET_TITLE"] = ($arParams["SET_TITLE"] == "N" ? "N" : "Y");
$arParams["SET_NAVIGATION"] = ($arParams["SET_NAVIGATION"] == "N" ? "N" : "Y");
// $arParams["DISPLAY_PANEL"] = ($arParams["DISPLAY_PANEL"] == "Y" ? "Y" : "N");
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
********************************************************************/
$arResult["MESSAGE"] = array();
$arResult["TOPIC"] = array();
if ($arParams["SHOW_VOTE"] == "Y" && CModule::IncludeModule("vote"))
{
$permission = ((isset($arParams['PERMISSION']) &&
(intval($arParams['PERMISSION'] > 0 || $arParams['PERMISSION'] === 0)))
? intval($arParams['PERMISSION'])
: CVoteChannel::GetGroupPermission($arParams["VOTE_CHANNEL_ID"]));
if ($permission < 2)
{
$arParams["SHOW_VOTE"] = "N";
}
else if (!empty($arParams["VOTE_GROUP_ID"]))
{
$res = array_intersect($USER->GetUserGroupArray(), $arParams["VOTE_GROUP_ID"]);
$arParams["SHOW_VOTE"] = (empty($res) ? "N" : $arParams["SHOW_VOTE"]);
}
else if ($permission < 4)
{
$arParams["SHOW_VOTE"] = "N";
}
}
if ($arParams["MESSAGE_TYPE"] == "EDIT")
{
if ($arParams["MID"] <= 0):
$arError = array(
"code" => "mid_is_lost",
"title" => GetMessage("F_MID_IS_LOST"),
"link" => $arResult["index"]);
else:
$arResult["MESSAGE"] = CForumMessage::GetByIDEx($arParams["MID"], array("GET_TOPIC_INFO" => "Y", "GET_FORUM_INFO" => "Y", "FILTER" => "N"));
if (empty($arResult["MESSAGE"])):
$arError = array(
"code" => "mid_is_lost",
"title" => GetMessage("F_MID_IS_LOST"),
"link" => $arResult["index"]);
else:
$arResult["TOPIC"] = $arResult["MESSAGE"]["TOPIC_INFO"];
$arResult["FORUM"] = $arResult["MESSAGE"]["FORUM_INFO"];
$arParams["TID"] = $arResult["TOPIC"]["ID"];
$arParams["FID"] = $arResult["FORUM"]["ID"];
if ($arParams["SHOW_VOTE"] == "Y" && $arResult["MESSAGE"]["PARAM1"] == "VT" && intVal($arResult["MESSAGE"]["PARAM2"]) > 0)
{
$db_res = CVoteQuestion::GetListEx(array("ID" => "ASC"), array("CHANNEL_ID" => $arParams["VOTE_CHANNEL_ID"], "VOTE_ID" => $arResult["MESSAGE"]["PARAM2"]));
if ($db_res && $res = $db_res->Fetch())
{
do
{
$arResult["~QUESTIONS"][$res["ID"]] = $res;
$arResult["~QUESTIONS"][$res["ID"]]["ANSWERS"] = array();
} while ($res = $db_res->Fetch());
}
if (!empty($arResult["~QUESTIONS"]))
{
$db_res = CVoteAnswer::GetListEx(array("ID" => "ASC"), array("VOTE_ID" => $arResult["MESSAGE"]["PARAM2"]));
if ($db_res && $res = $db_res->Fetch())
{
do
{
if (is_set($arResult["~QUESTIONS"], $res["QUESTION_ID"]))
$arResult["~QUESTIONS"][$res["QUESTION_ID"]]["ANSWERS"][$res["ID"]] = $res;
} while ($res = $db_res->Fetch());
}
}
$arResult["QUESTIONS"] = $arResult["~QUESTIONS"];
}
endif;
endif;
}
else
{
$arResult["FORUM"] = CForumNew::GetByID($arParams["FID"]);
if (empty($arResult["FORUM"]))
$arError = array(
"code" => "fid_is_lost",
"title" => GetMessage("F_FID_IS_LOST"),
"link" => $arResult["index"]);
}
if (empty($arError) && ($arParams["MESSAGE_TYPE"]=="NEW" &&
!CForumTopic::CanUserAddTopic($arParams["FID"], $USER->GetUserGroupArray(), $USER->GetID())) || ($arParams["MESSAGE_TYPE"]=="EDIT" &&
!CForumMessage::CanUserUpdateMessage($arParams["MID"], $USER->GetUserGroupArray(), $USER->GetID()))):
$arError = array(
"code" => "rightsn_new",
"title" => ($arParams["MESSAGE_TYPE"]=="NEW" ? GetMessage("F_NO_NPERMS") : GetMessage("F_NO_EPERMS")),
"link" => $arResult["index"]);
endif;
if (!empty($arError)):
if ($arParams["AJAX_CALL"] == "Y"):
$res = array("error" => $arError, "note" => $arNote, "id" => $arParams["MID"], "post" => ShowError($arError["title"]));
if ($_REQUEST["CONVERT_DATA"] == "Y")
array_walk($res, "htmlspecialcharsEx");
$APPLICATION->RestartBuffer();
?><?=CUtil::PhpToJSObject($res)?><?
die();
endif;
ShowError($arError["title"]);
return false;
endif;
/********************************************************************
Default params
********************************************************************/
$arResult["index"] = CComponentEngine::MakePathFromTemplate($arParams["URL_TEMPLATES_INDEX"], array());
$arResult["list"] = CComponentEngine::MakePathFromTemplate($arParams["URL_TEMPLATES_LIST"], array("FID" => $arParams["FID"]));
$arResult["read"] = CComponentEngine::MakePathFromTemplate($arParams["URL_TEMPLATES_MESSAGE"],
array("FID" => $arParams["FID"], "TID" => intVal($arParams["TID"]), "TITLE_SEO" => $arResult["TOPIC"]["TITLE_SEO"],
"MID"=>(intVal($arParams["MID"]) > 0 ? intVal($arParams["MID"]) : "s")));
$arResult["URL"] = array(
"INDEX" => $arResult["index"],
"~INDEX" => CComponentEngine::MakePathFromTemplate($arParams["~URL_TEMPLATES_INDEX"], array()),
"LIST" => $arResult["list"],
"~LIST" => CComponentEngine::MakePathFromTemplate($arParams["~URL_TEMPLATES_LIST"], array("FID" => $arParams["FID"])),
"READ" => $arResult["read"],
"~READ" => CComponentEngine::MakePathFromTemplate($arParams["~URL_TEMPLATES_MESSAGE"],
array("FID" => $arParams["FID"], "TID" => intVal($arParams["TID"]),
"TITLE_SEO" => $arResult["TOPIC"]["TITLE_SEO"], "MID"=>(intVal($arParams["MID"]) > 0 ? intVal($arParams["MID"]) : "s"))));
$arResult["VIEW"] = ((strToUpper($_REQUEST["MESSAGE_MODE"]) == "VIEW" && $_SERVER["REQUEST_METHOD"] == "POST") ? "Y" : "N");
$_REQUEST["FILES"] = (is_array($_REQUEST["FILES"]) ? $_REQUEST["FILES"] : array());
$_REQUEST["FILES_TO_UPLOAD"] = (is_array($_REQUEST["FILES_TO_UPLOAD"]) ? $_REQUEST["FILES_TO_UPLOAD"] : array());
$arResult["MESSAGE_VIEW"] = array();
$arAllow = forumTextParser::GetFeatures($arResult["FORUM"]);
$arAllow['SMILES'] = (($_POST["USE_SMILES"] == "Y") ? $arAllow['SMILES'] : 'N');
$arResult["GROUP_NAVIGATION"] = array();
$arResult["GROUPS"] = CForumGroup::GetByLang(LANGUAGE_ID);
$parser = new forumTextParser(LANGUAGE_ID, "");
$parser->userPath = $arParams["URL_TEMPLATES_PROFILE_VIEW"];
$parser->userNameTemplate = $arParams["NAME_TEMPLATE"];
/********************************************************************
/Default params
********************************************************************/
/********************************************************************
Action
********************************************************************/
/************** Save message ***************************************/
if ($_SERVER["REQUEST_METHOD"] == "POST")
{
if (!check_bitrix_sessid())
{
$strErrorMessage .= GetMessage("F_ERR_SESS_FINISH");
}
elseif (!in_array($arResult["FORUM"]["ALLOW_UPLOAD"], array("Y", "A", "F")) &&
(!empty($_FILES["FILE_NEW_0"]) || !empty($_REQUEST["FILES"])))
{
$error = true;
if ($arParams["MESSAGE_TYPE"] == "EDIT")
{
$db_res = CForumFiles::GetList(array(), array("MESSAGE_ID" => $arResult["MESSAGE"]["ID"]));
$files = array();
if ($db_res && ($res = $db_res->Fetch()))
{
do {
$files[] = $res["ID"];
} while ($res = $db_res->Fetch());
}
$res = array_diff($_REQUEST["FILES"], $files);
$error = (!empty($res));
}
if ($error)
{
$strErrorMessage .= GetMessage("F_ERRRO_FILE_NOT_UPLOAD");
unset($_REQUEST["FILES"]);
}
}
if (!empty($strErrorMessage))
{
}
else if ($arResult["VIEW"] == "N")
{
$arFieldsG = array(
"POST_MESSAGE" => $_REQUEST["POST_MESSAGE"],
"USE_SMILES" => $_REQUEST["USE_SMILES"],
"ICON" => $_REQUEST["ICON"],
"FILES" => array());
if ($arParams["SHOW_VOTE"] == "Y" && !empty($_REQUEST["QUESTION"]))
{
$VOTE_ID = ($arResult["MESSAGE"]["PARAM1"] == 'VT' ? intval($arResult["MESSAGE"]["PARAM2"]) : 0);
$arVote = array(
"CHANNEL_ID" => $arParams["VOTE_CHANNEL_ID"],
"TITLE" => $_REQUEST["TITLE"],
"DATE_END" => $_REQUEST["DATE_END"],
"QUESTIONS" => array()
);
if ($VOTE_ID <= 0):
$pointOfTime = CForumNew::GetNowTime();
$arVote["DATE_START"] = GetTime($pointOfTime, "FULL");
$_REQUEST["DATE_END"] = trim($_REQUEST["DATE_END"]);
if (!empty($_REQUEST["DATE_END"]))
$arVote["DATE_END"] = GetTime(MakeTimeStamp($_REQUEST["DATE_END"]), "FULL");
else
$arVote["DATE_END"] = GetTime($pointOfTime + 2592000 /* one month */, "FULL");
endif;
foreach ($_REQUEST["QUESTION"] as $key => $val)
{
$res = array(
"QUESTION" => trim($val),
"MULTI" => ($_REQUEST["MULTI"][$key] == "Y" ? "Y" : "N"),
"ANSWERS" => array());
if (is_set($arResult["~QUESTIONS"], $_REQUEST["QUESTION_ID"][$key]))
{
$res["ID"] = intval($_REQUEST["QUESTION_ID"][$key]);
if ($_REQUEST["QUESTION_DEL"][$key] == "Y")
$res["DEL"] = "Y";
}
elseif ($_REQUEST["QUESTION_DEL"][$key] == "Y")
{
continue;
}
$arAnswers = (is_array($arResult["~QUESTIONS"][$res["ID"]]["ANSWERS"]) ?
$arResult["~QUESTIONS"][$res["ID"]]["ANSWERS"] : array());
foreach ($_REQUEST["ANSWER"][$key] as $keya => $vala)
{
$resa = array(
"MESSAGE" => trim($vala),
"FIELD_TYPE" => ($res["MULTI"] == "Y" ? 1 : 0));
if ($res["ID"] > 0 && is_set($arAnswers, $_REQUEST["ANSWER_ID"][$key][$keya]))
{
$resa["ID"] = intval($_REQUEST["ANSWER_ID"][$key][$keya]);
unset($arAnswers[$_REQUEST["ANSWER_ID"][$key][$keya]]);
if ($_REQUEST["ANSWER_DEL"][$key][$keya] == "Y")
$resa["DEL"] = "Y";
}
elseif ($_REQUEST["ANSWER_DEL"][$key][$keya] == "Y" || empty($resa["MESSAGE"]))
{
continue;
}
$res["ANSWERS"][] = $resa;
}
foreach ($arAnswers as $keya => $vala)
{
$res["ANSWERS"][] = array_merge($vala, array("DEL" => "Y"));
}
if (empty($res["ANSWERS"]) && empty($res["QUESTION"]) && empty($res["ID"]))
continue;
$arVote["QUESTIONS"][] = $res;
}
if (!empty($arVote["QUESTIONS"]))
{
$uniqType = 0;
foreach ($arParams['VOTE_UNIQUE'] as $k => $v)
$uniqType |= intval($v);
$uniqType += 5;
list($uniqDelay, $uniqDelayType) = explode(" ", $arParams['VOTE_UNIQUE_IP_DELAY']);
$arVoteParams = array(
"UNIQUE_TYPE" => $uniqType,
"DELAY" => intval($uniqDelay),
"DELAY_TYPE" => trim(!in_array(trim($uniqDelayType), array("S", "M", "H", "D")) ? "D" : $uniqDelayType));
$VOTE_ID = VoteVoteEditFromArray($arParams["VOTE_CHANNEL_ID"], ($VOTE_ID > 0 ? $VOTE_ID : false), $arVote, $arVoteParams);
if ($VOTE_ID > 0)
{
$arFieldsG["PARAM1"] = "VT";
$arFieldsG["PARAM2"] = $VOTE_ID;
}
elseif ($VOTE_ID === 0)
{
$arFieldsG["PARAM1"] = "";
$arFieldsG["PARAM2"] = 0;
}
else
{
$e = $GLOBALS['APPLICATION']->GetException();
if ($e)
$strErrorMessage .= $e->GetString();
}
}
}
if (empty($strErrorMessage))
{
foreach (array("AUTHOR_NAME", "AUTHOR_EMAIL", "TITLE", "TITLE_SEO", "TAGS", "DESCRIPTION", "ICON") as $res)
{
if (is_set($_REQUEST, $res))
$arFieldsG[$res] = $_REQUEST[$res];
}
if (!empty($_FILES["ATTACH_IMG"]))
{
$arFieldsG["ATTACH_IMG"] = $_FILES["ATTACH_IMG"];
if ($arParams["MESSAGE_TYPE"] == "EDIT" && $_REQUEST["ATTACH_IMG_del"] == "Y")
$arFieldsG["ATTACH_IMG"]["del"] = "Y";
}
else
{
$arFiles = array();
if (!empty($_REQUEST["FILES"]))
{
foreach ($_REQUEST["FILES"] as $key):
$arFiles[$key] = array("FILE_ID" => $key);
if (!in_array($key, $_REQUEST["FILES_TO_UPLOAD"]))
$arFiles[$key]["del"] = "Y";
endforeach;
}
if (!empty($_FILES))
{
$res = array();
foreach ($_FILES as $key => $val):
if (substr($key, 0, strLen("FILE_NEW")) == "FILE_NEW" && !empty($val["name"])):
$arFiles[] = $_FILES[$key];
endif;
endforeach;
}
if (!empty($arFiles))
$arFieldsG["FILES"] = $arFiles;
}
if ($arParams["MESSAGE_TYPE"] == "EDIT")
{
$arFieldsG += array(
"EDIT_ADD_REASON" => $_REQUEST["EDIT_ADD_REASON"],
"EDITOR_NAME" => $_REQUEST["EDITOR_NAME"],
"EDITOR_EMAIL" => $_REQUEST["EDITOR_EMAIL"],
"EDIT_REASON" => $_REQUEST["EDIT_REASON"]);
}
$TID1 = ($arParams["MESSAGE_TYPE"]=="NEW") ? 0 : intVal($arParams["TID"]);
$MID1 = ($arParams["MESSAGE_TYPE"]=="NEW") ? 0 : intVal($arParams["MID"]);
$MID1 = intVal(ForumAddMessage($arParams["MESSAGE_TYPE"],
$arParams["FID"], $TID1, $MID1, $arFieldsG,
$strErrorMessage, $strOKMessage,
false,
$_POST["captcha_word"], 0, $_POST["captcha_code"]));
if ($MID1 > 0 && empty($strErrorMessage))
{
$arParams["MID"] = $MID1;
$arResult["MESSAGE"] = CForumMessage::GetByIDEx($MID1, array("GET_TOPIC_INFO" => "Y", "GET_FORUM_INFO" => "Y"));
if ($arParams['AUTOSAVE'])
$arParams['AUTOSAVE']->Reset();
$addParams = array();
if ($_REQUEST["TOPIC_SUBSCRIBE"]=="Y"||$_REQUEST["FORUM_SUBSCRIBE"]=="Y")
{
$addParams["sessid"] = bitrix_sessid();
if ($_REQUEST["TOPIC_SUBSCRIBE"]=="Y")
$addParams["TOPIC_SUBSCRIBE"] = "Y";
if ($_REQUEST["FORUM_SUBSCRIBE"]=="Y")
$addParams["FORUM_SUBSCRIBE"] = "Y";
}
$arNote = array(
"code" => strToLower($arParams["MESSAGE_TYPE"]),
"title" => $strOKMessage,
"link" => ForumAddPageParams(CComponentEngine::MakePathFromTemplate($arParams["~URL_TEMPLATES_MESSAGE"],
array(
"FID" => intVal($arParams["FID"]),
"TID" => intVal($arResult["MESSAGE"]["TOPIC_INFO"]["ID"]),
"TITLE_SEO" => $arResult["MESSAGE"]["TOPIC_INFO"]["TITLE_SEO"],
"MID" => intVal($arParams["MID"])
)
), $addParams));
if ($arParams["AJAX_CALL"] == "N")
{
$url = ForumAddPageParams($arNote["link"], array("result" => $arNote["code"]));
LocalRedirect($url);
}
else
{
$arResult["SHOW_MESSAGE_FOR_AJAX"] = "Y";
}
}
elseif ($arParams["MESSAGE_TYPE"] != "EDIT" && $arFieldsG["PARAM1"] == "VT" && intVal($arFieldsG["PARAM2"]) > 0)
{
CVote::Delete($arFieldsG["PARAM2"]);
}
}
}
/************** Preview message ************************************/
elseif ($arResult["VIEW"] == "Y")
{
$bVarsFromForm = true;
$arFields = array(
"FORUM_ID" => intVal($arParams["FID"]),
"TOPIC_ID" => intVal($arParams["TID"]),
"MESSAGE_ID" => intVal($arParams["MID"]),
"USER_ID" => intVal($GLOBALS["USER"]->GetID()));
$arFiles = array();
$arFilesExists = array();
$res = array();
foreach ($_FILES as $key => $val):
if (substr($key, 0, strLen("FILE_NEW")) == "FILE_NEW" && !empty($val["name"])):
$arFiles[] = $_FILES[$key];
endif;
endforeach;
foreach ($_REQUEST["FILES"] as $key => $val)
{
if (!in_array($val, $_REQUEST["FILES_TO_UPLOAD"]))
{
$arFiles[$val] = array("FILE_ID" => $val, "del" => "Y");
unset($_REQUEST["FILES"][$key]);
unset($_REQUEST["FILES_TO_UPLOAD"][$key]);
}
else
{
$arFilesExists[$val] = array("FILE_ID" => $val);
}
}
if (!empty($arFiles))
{
$res = CForumFiles::Save($arFiles, $arFields);
$res1 = $GLOBALS['APPLICATION']->GetException();
if ($res1):
$strErrorMessage .= $res1->GetString();
endif;
}
$res = is_array($res) ? $res : array();
foreach ($res as $key => $val)
$arFilesExists[$key] = $val;
$arFilesExists = array_keys($arFilesExists);
sort($arFilesExists);
$arResult["MESSAGE_VIEW"]["FILES"] = $_REQUEST["FILES"] = $arFilesExists;
$arResult["MESSAGE_VIEW"]["TEXT"] = $arResult["POST_MESSAGE_VIEW"] = $parser->convert($_POST["POST_MESSAGE"], $arAllow, "html", $arFilesExists);
$arResult["MESSAGE_VIEW"]["FILES_PARSED"] = $parser->arFilesIDParsed;
if ($arParams['AUTOSAVE'])
$arParams['AUTOSAVE']->Reset();
}
if (!empty($strErrorMessage))
{
$arResult["ERROR_MESSAGE"] = $strErrorMessage;
$bVarsFromForm = true;
}
}
/************** Show message for ajax ******************************/
if ($arResult["SHOW_MESSAGE_FOR_AJAX"] == "Y")
{
$APPLICATION->RestartBuffer();
if (empty($arResult["MESSAGE"]))
{
$db_res = CForumMessage::GetList(array(), array("ID" => $MID1));
if ($db_res && $res = $db_res->GetNext())
$arResult["MESSAGE"] = $res;
}
if (!empty($arResult["MESSAGE"]))
{
$arResult["MESSAGE"]["FILES"] = array();
$db_res = CForumFiles::GetList(array(), array("MESSAGE_ID" => $arResult["MESSAGE"]["ID"]));
if ($db_res && $res = $db_res->GetNext())
{
do
{
$res["SRC"] = CFile::GetFileSRC($res);
$arResult["MESSAGE"]["FILES"][$res["FILE_ID"]] = $res;
} while ($res = $db_res->GetNext());
}
$res = $arResult["MESSAGE"];
$res["POST_MESSAGE_TEXT"] = (COption::GetOptionString("forum", "FILTER", "Y")=="Y" ? $res["~POST_MESSAGE_FILTER"] : $res["~POST_MESSAGE"]);
$res["POST_MESSAGE_TEXT"] = $parser->convert($res["POST_MESSAGE_TEXT"], $arAllow, "html", $res["FILES"]);
$res["FILES_PARSED"] = $parser->arFilesIDParsed;
// ************************message attach img****************************************
$res["ATTACH_IMG"] = "";
if (intVal($res["~ATTACH_IMG"])>0 && in_array($arResult["FORUM"]["ALLOW_UPLOAD"], array("Y", "A", "F")))
$res["ATTACH_IMG"] = CFile::ShowFile($res["~ATTACH_IMG"], 0, 300, 300, true, "border=0", false);
if (!empty($res["EDITOR_ID"]))
{
$res["EDITOR_LINK"] = CComponentEngine::MakePathFromTemplate($arParams["URL_TEMPLATES_PROFILE_VIEW"], array("UID" => $res["EDITOR_ID"]));
}
if (strLen(trim($res["EDIT_DATE"])) > 0)
{
$res["EDIT_DATE"] = CForumFormat::DateFormat($arParams["DATE_TIME_FORMAT"], MakeTimeStamp($res["EDIT_DATE"], CSite::GetDateFormat()));
}
$arResult["MESSAGE"] = $res;
}
}
/************** Navigation *****************************************/
if (intVal($arResult["FORUM"]["FORUM_GROUP_ID"]) > 0):
$PARENT_ID = intVal($arResult["FORUM"]["FORUM_GROUP_ID"]);
while ($PARENT_ID > 0)
{
$res = $arResult["GROUPS"][$PARENT_ID];
$res["URL"] = array(
"GROUP" => CComponentEngine::MakePathFromTemplate(
$arParams["URL_TEMPLATES_FORUMS"], array("GID" => $PARENT_ID)),
"~GROUP" => CComponentEngine::MakePathFromTemplate(
$arParams["~URL_TEMPLATES_FORUMS"], array("GID" => $PARENT_ID)));
$arResult["GROUP_NAVIGATION"][] = $res;
$PARENT_ID = intVal($arResult["GROUPS"][$PARENT_ID]["PARENT_ID"]);
}
$arResult["GROUP_NAVIGATION"] = array_reverse($arResult["GROUP_NAVIGATION"]);
endif;
// *****************************************************************************************
/* For custom template only */
$arFormParams = array(
"SEF_MODE" => $arParams["SEF_MODE"],
"MESSAGE_TYPE" => $arParams["MESSAGE_TYPE"],
"FID" => $arParams["FID"],
"TID" => $arParams["TID"],
"MID" => $arParams["MID"],
"arForum" => $arResult["FORUM"],
"bVarsFromForm" => $bVarsFromForm,
"strErrorMessage" => $strErrorMessage,
"strOKMessage" => $strOKMessage,
"View" => ($arResult["VIEW"] == "Y"),
"PAGE_NAME" => "topic_new");
if ($bVarsFromForm)
{
$arFormParams["AUTHOR_NAME"] = $_POST["AUTHOR_NAME"];
$arFormParams["AUTHOR_EMAIL"] = $_POST["AUTHOR_EMAIL"];
$arFormParams["POST_MESSAGE"] = $_POST["POST_MESSAGE"];
$arFormParams["USE_SMILES"] = $_POST["USE_SMILES"];
$arFormParams["TITLE"] = $_POST["TITLE"];
$arFormParams["TITLE_SEO"] = $_POST["TITLE_SEO"];
$arFormParams["TAGS"] = $_POST["TAGS"];
$arFormParams["DESCRIPTION"] = $_POST["DESCRIPTION"];
$arFormParams["ICON"] = $_POST["ICON"];
}
$arFormParams["PATH_TO_SMILE"] = "";
$arFormParams["PATH_TO_ICON"] = "";
$arFormParams["CACHE_TIME"] = $arParams["CACHE_TIME"];
$arFormParams["URL_TEMPLATES_LIST"] = $arParams["~URL_TEMPLATES_LIST"];
$arFormParams["URL_TEMPLATES_READ"] = $arParams["~URL_TEMPLATES_MESSAGE"];
$arResult["arFormParams"] = $arFormParams;
/* For custom template only */
/*******************************************************************/
if ($arParams["SET_NAVIGATION"] != "N"):
foreach ($arResult["GROUP_NAVIGATION"] as $key => $res):
$APPLICATION->AddChainItem($res["NAME"], $res["URL"]["~GROUP"]);
endforeach;
$APPLICATION->AddChainItem(htmlspecialcharsbx($arResult["FORUM"]["NAME"]), $arResult["URL"]["~LIST"]);
if ($arParams["MESSAGE_TYPE"] == "EDIT")
$APPLICATION->AddChainItem(htmlspecialcharsbx($arResult["TOPIC"]["TITLE"]), $arResult["URL"]["~READ"]);
endif;
if ($arParams["SET_TITLE"] != "N")
$APPLICATION->SetTitle((($arParams["MESSAGE_TYPE"]=="NEW")?GetMessage("F_NTITLE"):GetMessage("F_ETITLE")));
// if($arParams["DISPLAY_PANEL"] == "Y" && $USER->IsAuthorized())
// CForumNew::ShowPanel($arParams["FID"], $arParams["TID"], false);
/*******************************************************************/
$this->IncludeComponentTemplate();
/*******************************************************************/
return array(
"MESSAGE_TYPE" => $arParams["MESSAGE_TYPE"],
"FORUM" => $arResult["FORUM"],
"MESSAGE" => $arResult["MESSAGE"],
"bVarsFromForm" => ($bVarsFromForm ? "Y" : "N"),
"ERROR_MESSAGE" => $strErrorMessage,
"OK_MESSAGE" => $strOKMessage);
?>