Файловый менеджер - Редактировать - /var/www/axolotl/data/www/axolotls.ru/www/bitrix/components/bitrix/forum.rss/component.php
Назад
<?if (!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED!==true)die(); if (!CModule::IncludeModule("forum")): ShowError(GetMessage("F_NO_MODULE")); return 0; elseif (is_set($arParams, "USE_RSS") && $arParams["USE_RSS"] == "N"): // out-of-date params return 0; endif; if (!function_exists("__create_uuid")) { function __create_uuid($params) { $uuid = md5($params); return mb_substr($uuid, 0, 8).'-'. mb_substr($uuid, 8, 4).'-'. mb_substr($uuid, 12, 4).'-'. mb_substr($uuid, 16, 4).'-'. mb_substr($uuid, 20); } } $arResult["TYPE_RSS"] = array("RSS1" => "RSS .92", "RSS2" => "RSS 2.0", "ATOM" => "Atom .3"); $arResult["FORUMS"] = array(); $arResult["TOPIC"] = array(); $arResult["SERVER_NAME"] = (defined("SITE_SERVER_NAME") && SITE_SERVER_NAME <> '') ? SITE_SERVER_NAME : COption::GetOptionString("main", "server_name"); /******************************************************************** Input params ********************************************************************/ /***************** BASE ********************************************/ $arParams["TYPE_RANGE"] = (is_array($arParams["TYPE_RANGE"]) ? $arParams["TYPE_RANGE"] : array("RSS1", "RSS2", "ATOM")); $arParams["TYPE_RANGE"] = array_intersect($arParams["TYPE_RANGE"], array_keys($arResult["TYPE_RSS"])); $arParams["TYPE_DEFAULT"] = (in_array($arParams["TYPE_DEFAULT"], $arParams["TYPE_RANGE"]) ? $arParams["TYPE_DEFAULT"] : $arParams["TYPE_RANGE"][0]); $arParams["TYPE"] = (mb_strtoupper($arParams["TYPE"]) == "DEFAULT" ? $arParams["TYPE_DEFAULT"] : $arParams["TYPE"]); $arParams["TYPE"] = mb_strtoupper(!empty($arResult["TYPE_RSS"][strToUpper($arParams["TYPE"])])? $arParams["TYPE"] : false); $arParams["FID_RANGE"] = (is_array($arParams["FID_RANGE"]) ? $arParams["FID_RANGE"] : array()); $arParams["MODE"] = (in_array(mb_strtolower($arParams["MODE"]), array("forum", "topic", "link"))? mb_strtolower($arParams["MODE"]) : "link"); $arParams["MODE_DATA"] = trim($arParams["MODE_DATA"]); if (empty($arParams["MODE_DATA"])) $arParams["MODE_DATA"] = ($arParams["MODE"] == "topic" ? "topic" : "forum"); else $arParams["MODE_DATA"] = ($arParams["MODE_DATA"] == "topic" ? "topic" : "forum"); $arParams["MODE"] = ($arParams["MODE"] == "link" || $arParams["TYPE"] == false ? "link" : "rss"); $arParams["IID"] = intval(intVal($arParams["IID"]) <= 0 ? $_REQUEST["IID"] : $arParams["IID"]); $arParams["FID"] = ($arParams["MODE_DATA"] == "forum" ? $arParams["IID"] : 0); $arParams["TID"] = ($arParams["MODE_DATA"] == "topic" ? $arParams["IID"] : 0); /***************** URL *********************************************/ $URL_NAME_DEFAULT = array( "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#", "rss" => "PAGE_NAME=rss&TYPE=#TYPE#&MODE=#MODE#&IID=#IID#"); 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 (trim($arParams["URL_TEMPLATES_".mb_strtoupper($URL)]) == '') $arParams["URL_TEMPLATES_".mb_strtoupper($URL)] = $APPLICATION->GetCurPage()."?".$URL_VALUE; $arParams["~URL_TEMPLATES_".mb_strtoupper($URL)] = $arParams["URL_TEMPLATES_".mb_strtoupper($URL)]; $arParams["URL_TEMPLATES_".mb_strtoupper($URL)] = htmlspecialcharsbx($arParams["~URL_TEMPLATES_".mb_strtoupper($URL)]); } /***************** ADDITIONAL **************************************/ $arParams["COUNT"] = intval(intVal($arParams["COUNT"]) > 0 ? $arParams["COUNT"] : ($arParams["MODE_DATA"] == "forum" ? COption::GetOptionString("forum", "TOPICS_PER_PAGE", "10") : COption::GetOptionString("forum", "MESSAGES_PER_PAGE", "10"))); $arParams["COUNT"] = ($arParams["COUNT"] > 0 ? $arParams["COUNT"] : 10); $arParams["MAX_FILE_SIZE"] = (intval($arParams["MAX_FILE_SIZE"]) <= 0 ? 10*1024*1024 : intval($arParams["MAX_FILE_SIZE"])*1024*1024); $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["DESIGN_MODE"] = ($GLOBALS["APPLICATION"]->GetShowIncludeAreas() && CForumUser::IsAdmin() ? "Y" : "N"); $arParams["TEMPLATES_TITLE_FORUMS"] = ($arParams["TEMPLATES_TITLE_FORUMS"] ? $arParams["TEMPLATES_TITLE_FORUMS"] : GetMessage("F_TEMPLATES_TITLE_FORUMS")); $arParams["TEMPLATES_TITLE_FORUM"] = ($arParams["TEMPLATES_TITLE_FORUM"] ? $arParams["TEMPLATES_TITLE_FORUM"] : GetMessage("F_TEMPLATES_TITLE_FORUM")); $arParams["TEMPLATES_TITLE_TOPIC"] = ($arParams["TEMPLATES_TITLE_TOPIC"] ? $arParams["TEMPLATES_TITLE_TOPIC"] : GetMessage("F_TEMPLATES_TITLE_TOPIC")); $arParams["TEMPLATES_DESCRIPTION_FORUMS"] = ($arParams["TEMPLATES_DESCRIPTION_FORUMS"] ? $arParams["TEMPLATES_DESCRIPTION_FORUMS"] : GetMessage("F_TEMPLATES_DESCRIPTION_FORUMS")); $arParams["TEMPLATES_DESCRIPTION_FORUM"] = ($arParams["TEMPLATES_DESCRIPTION_FORUM"] ? $arParams["TEMPLATES_DESCRIPTION_FORUM"] : GetMessage("F_TEMPLATES_DESCRIPTION_FORUM")); $arParams["TEMPLATES_DESCRIPTION_TOPIC"] = ($arParams["TEMPLATES_DESCRIPTION_TOPIC"] ? $arParams["TEMPLATES_DESCRIPTION_TOPIC"] : GetMessage("F_TEMPLATES_DESCRIPTION_TOPIC")); /***************** CACHE *******************************************/ 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; $arParams["CACHE_TIME"] = 0; /******************************************************************** /Input params ********************************************************************/ if (empty($arParams["TYPE_RANGE"])): ShowError(GetMessage("F_EMPTY_TYPE")); return 0; else: $arFilter = (!empty($arParams["FID_RANGE"]) ? array("@ID" => $arParams["FID_RANGE"]) : array()) + array( "LID" => SITE_ID, "PERMS" => array($USER->GetGroups(), 'A'), "ACTIVE" => "Y"); $db_res = CForumNew::GetListEx( array("FORUM_GROUP_SORT"=>"ASC", "FORUM_GROUP_ID"=>"ASC", "SORT"=>"ASC", "NAME"=>"ASC"), $arFilter, false, 0, array("sNameTemplate" => $arParams["NAME_TEMPLATE"]) ); if ($db_res && ($res = $db_res->Fetch())) { do { foreach ($res as $key => $val): $res["~".$key] = $val; $res[$key] = htmlspecialcharsbx($val); endforeach; $res["ALLOW"] = forumTextParser::GetFeatures($res); $res["~FORUM_DESCRIPTION"] = $res["~DESCRIPTION"]; $res["FORUM_DESCRIPTION"] = $res["DESCRIPTION"]; $res["~FORUM_LINK"] = CComponentEngine::MakePathFromTemplate($arParams["~URL_TEMPLATES_LIST"], array("FID" => $res["ID"])); $res["FORUM_LINK"] = CComponentEngine::MakePathFromTemplate($arParams["URL_TEMPLATES_LIST"], array("FID" => $res["ID"])); $res["~URL"] = "http://".$arResult["SERVER_NAME"].$res["~FORUM_LINK"]; $res["URL"] = "http://".htmlspecialcharsbx($arResult["SERVER_NAME"]).$res["FORUM_LINK"]; $arResult["FORUMS"][$res["ID"]] = $res; }while ($res = $db_res->Fetch()); } if (empty($arResult["FORUMS"])): ShowError(GetMessage("F_EMPTY_FORUMS")); CHTTP::SetStatus("404 Not Found"); return false; elseif ($arParams["MODE_DATA"] == "topic" && $arParams["TID"] <= 0): ShowError(GetMessage("F_EMPTY_TOPIC_ID")); CHTTP::SetStatus("404 Not Found"); return false; elseif ($arParams["MODE_DATA"] == "topic"): if (!($res = CForumTopic::GetList(array(), array("ID" => $arParams["TID"]))->fetch())): ShowError(GetMessage("F_EMPTY_TOPIC")); CHTTP::SetStatus("404 Not Found"); return false; elseif (!array_key_exists($res["FORUM_ID"], $arResult["FORUMS"])): ShowError(GetMessage("F_EMPTY_TOPIC")); CHTTP::SetStatus("404 Not Found"); return false; endif; foreach ($res as $key => $val): $res["~".$key] = $val; $res[$key] = htmlspecialcharsbx($val); endforeach; $arResult["TOPIC"] = $res; endif; endif; if (empty($arResult["FORUMS"]) || ($_SESSION["SESS_SEARCHER_ID"] > 0 && CModule::IncludeModule("statistic"))): return false; elseif ($arParams["MODE_DATA"] == "forum" && $arParams["FID"] > 0 && empty($arResult["FORUMS"][$arParams["FID"]])): if ($arParams["MODE"] != "link"): ShowError(GetMessage("F_ERR_BAD_FORUM")); CHTTP::SetStatus("404 Not Found"); endif; return false; elseif ($arParams["MODE_DATA"] == "topic" && $arParams["TID"] > 0 && empty($arResult["FORUMS"][$arResult["TOPIC"]["FORUM_ID"]])): if ($arParams["MODE"] != "link"): ShowError(GetMessage("F_ERR_BAD_FORUM")); CHTTP::SetStatus("404 Not Found"); endif; return false; endif; /******************************************************************** Data 1 ********************************************************************/ if ($arParams["MODE"] == "link"): $arResult["rss_link"] = array(); foreach ($arParams["TYPE_RANGE"] as $key) { $rss = mb_strtolower($key); $arResult["rss_link"][$rss] = array( "type" => $rss, "name" => $arResult["TYPE_RSS"][$key], "link" => CComponentEngine::MakePathFromTemplate($arParams["URL_TEMPLATES_RSS"], array("TYPE" => $rss, "MODE" => $arParams["MODE_DATA"], "IID" => $arParams["IID"]))); } $this->IncludeComponentTemplate(); return false; endif; /******************************************************************** /Data 1 ********************************************************************/ /******************************************************************** Default values ********************************************************************/ $arFilter = array(); $arItems = array(); $arParams["FID"] = (!empty($arResult["FORUMS"][$arParams["FID"]]) ? $arParams["FID"] : 0); $arResult["LANGUAGE_ID"] = LANGUAGE_ID; $arResult["CHARSET"] = (defined("SITE_CHARSET") && SITE_CHARSET <> '') ? SITE_CHARSET : "windows-1251"; $arResult["NOW"] = ($arParams["TYPE"] != "ATOM") ? date("r") : date("Y-m-d H:i:s").mb_substr(date("O"), 0, 3).":".mb_substr(date("O"), -2, 2); $arResult["TEMPLATE_ELEMENTS"] = array("AUTHOR_NAME", "AUTHOR_LINK", "SIGNATURE", "DATE_REG", "AVATAR", "POST_MESSAGE", "POST_LINK", "POST_DATE", "ATTACH_IMG", "TITLE", "TOPIC_LINK", "TOPIC_DATE", "TOPIC_DESCRIPTION", "NAME", "FORUM_LINK", "FORUM_DESCRIPTION"); $parser = new forumTextParser(LANGUAGE_ID); $parser->MaxStringLen = 0; $parser->userPath = $arParams["URL_TEMPLATES_PROFILE_VIEW"]; $parser->userNameTemplate = $arParams["NAME_TEMPLATE"]; $arResult["SITE"] = array(); $db_res = CSite::GetByID(SITE_ID); if ($db_res && $res = $db_res->GetNext()) $arResult["SITE"] = $res; $arResult["~TITLE"] = $arParams["TEMPLATES_TITLE_FORUMS"]; $arResult["~DESCRIPTION"] = $arParams["TEMPLATES_DESCRIPTION_FORUMS"]; if ($arParams["MODE_DATA"] == "forum" && $arParams["IID"] > 0) { $arResult["~TITLE"] = $arParams["TEMPLATES_TITLE_FORUM"]; $arResult["~DESCRIPTION"] = $arParams["TEMPLATES_DESCRIPTION_FORUM"]; } elseif ($arParams["MODE_DATA"] == "topic") { $arResult["~TITLE"] = $arParams["TEMPLATES_TITLE_TOPIC"]; $arResult["~DESCRIPTION"] = $arParams["TEMPLATES_DESCRIPTION_TOPIC"]; } $arResult["~TITLE"] = str_replace( array("#FORUM_TITLE#", "#FORUM_DESCRIPTION#", "#TOPIC_TITLE#", "#TOPIC_DESCRIPTION#", "#SITE_NAME#", "#SERVER_NAME#"), array($arResult["FORUMS"][$arParams["IID"]]["~NAME"], $arResult["FORUMS"][$arParams["IID"]]["~DESCRIPTION"], $arResult["TOPIC"]["~TITLE"], $arResult["TOPIC"]["~DESCRIPTION"], $arResult["SITE"]["SITE_NAME"], $arResult["SERVER_NAME"]), $arResult["~TITLE"]); $arResult["~DESCRIPTION"] = str_replace( array("#FORUM_TITLE#", "#FORUM_DESCRIPTION#", "#TOPIC_TITLE#", "#TOPIC_DESCRIPTION#", "#SITE_NAME#", "#SERVER_NAME#"), array($arResult["FORUMS"][$arParams["IID"]]["~NAME"], $arResult["FORUMS"][$arParams["IID"]]["~DESCRIPTION"], $arResult["TOPIC"]["~TITLE"], $arResult["TOPIC"]["~DESCRIPTION"], $arResult["SITE"]["SITE_NAME"], $arResult["SERVER_NAME"]), $arResult["~DESCRIPTION"]); $arResult["TITLE"] = htmlspecialcharsbx($arResult["~TITLE"]); $arResult["DESCRIPTION"] = htmlspecialcharsbx($arResult["~DESCRIPTION"]); $arResult["URL"] = array( "~ALTERNATE" => "http://".$arResult["SERVER_NAME"], "ALTERNATE" => htmlspecialcharsbx("http://".$arResult["SERVER_NAME"]), "~REAL" => "http://".$arResult["SERVER_NAME"].$APPLICATION->GetCurPageParam(), "REAL" => htmlspecialcharsbx("http://".$arResult["SERVER_NAME"].$APPLICATION->GetCurPageParam())); $arResult["MESSAGE_LIST"] = $arResult["FILES"] = array(); /******************************************************************** /Default values ********************************************************************/ /******************************************************************** Data 2 ********************************************************************/ $cache_id_array = array("MODE" => $arParams["MODE_DATA"], "IID" => $arParams["IID"], "TYPE" => $arParams["TYPE"], "COUNT" => $arParams["COUNT"], "FID_RANGE" => $arParams["FID_RANGE"], "USER_GROUP" => $GLOBALS["USER"]->GetUserGroupArray(), "LANGUAGE" => $arResult["LANGUAGE_ID"], "SERVER_NAME" => $arResult["SERVER_NAME"], "CHARSET" => $arResult["CHARSET"]); if ($arParams["DESIGN_MODE"] != "Y") { $APPLICATION->RestartBuffer(); header("Content-Type: text/xml"); header("Pragma: no-cache"); } if($this->StartResultCache($arParams["CACHE_TIME"], array($cache_id_array, $arParams["DESIGN_MODE"]), "/".SITE_ID."/forum/rss/".$arParams["TYPE"]."/".$arParams["MODE_DATA"]."/")) { $arFilter = array( "TOPIC_ID" => $arParams["TID"], "APPROVED" => "Y", "@FORUM_ID" => implode(",", array_keys($arResult["FORUMS"])), "TOPIC" => "GET_TOPIC_INFO"); if ($arParams["MODE_DATA"] != "topic") { $arFilter = array(); if (intval($arParams["FID"]) > 0) { $arFilter["FORUM_ID"] = $arParams["FID"]; } else { $arFilter["@FORUM_ID"] = implode(",", array_keys($arResult["FORUMS"])); } $arFilter["APPROVED"] = "Y"; $arFilter["NEW_TOPIC"] = "Y"; $arFilter["TOPIC"] = "GET_TOPIC_INFO"; } CTimeZone::Disable(); $db_res = CForumMessage::GetListEx( array("ID" => "DESC"), $arFilter, 0, $arParams["COUNT"], array("sNameTemplate" => $arParams["NAME_TEMPLATE"])); CTimeZone::Enable(); if ($db_res && ($res = $db_res->Fetch())) { do { foreach ($res as $key => $val) { $res["~".$key] = $val; $res[$key] = htmlspecialcharsbx($val); } /************** Message info ***************************************/ // data $arDate = ParseDateTime($res["POST_DATE"], false); $date = date("r", mktime($arDate["HH"], $arDate["MI"], $arDate["SS"], $arDate["MM"], $arDate["DD"], $arDate["YYYY"])); if ($arParams["TYPE"] == "ATOM") { $timeISO = mktime($arDate["HH"], $arDate["MI"], $arDate["SS"], $arDate["MM"], $arDate["DD"], $arDate["YYYY"]); $date = date("Y-m-d\TH:i:s", $timeISO).mb_substr(date("O", $timeISO), 0, 3).":".mb_substr(date("O", $timeISO), -2, 2); } $res["POST_DATE"] = $date; $res["POST_DATE_FORMATED"] = CForumFormat::DateFormat($arParams["DATE_TIME_FORMAT"], MakeTimeStamp($res["~POST_DATE"], CSite::GetDateFormat())+CTimeZone::GetOffset()); // text $arAllow = $arResult["FORUMS"][$res["FORUM_ID"]]["ALLOW"]; $res["ALLOW"] = array_merge($arAllow, array("SMILES" => ($res["USE_SMILES"] == "Y" ? $arAllow["SMILES"] : "N"))); $res["~POST_MESSAGE"] = (COption::GetOptionString("forum", "FILTER", "Y")=="Y" ? $res["~POST_MESSAGE_FILTER"] : $res["~POST_MESSAGE"]); // attach $res["ATTACH_IMG"] = ""; $res["FILES"] = $res["~ATTACH_FILE"] = $res["ATTACH_FILE"] = array(); /************** Message info/***************************************/ /************** Author info ****************************************/ // Avatar if ($res["AVATAR"] <> ''): $res["~AVATAR"] = array("ID" => $res["AVATAR"]); $res["~AVATAR"]["FILE"] = CFile::GetFileArray($res["~AVATAR"]["ID"]); $res["AVATAR"] = CFile::ShowImage($res["~AVATAR"]["FILE"], COption::GetOptionString("forum", "avatar_max_width", 100), COption::GetOptionString("forum", "avatar_max_height", 100), "border=\"0\"", "", true); endif; // data $res["DATE_REG"] = CForumFormat::DateFormat($arParams["DATE_FORMAT"], MakeTimeStamp($res["DATE_REG"], CSite::GetDateFormat())); // Another data $res["SIGNATURE"] = ""; if ($arResult["FORUMS"][$res["FORUM_ID"]]["ALLOW_SIGNATURE"] == "Y" && $res["~SIGNATURE"] <> '') { $res["SIGNATURE"] = $parser->convert_to_rss($res["~SIGNATURE"], array_merge($arAllow, array("SMILES" => "N"))); } /************** Author info/****************************************/ $res["~AUTHOR_LINK"] = CComponentEngine::MakePathFromTemplate($arParams["~URL_TEMPLATES_PROFILE_VIEW"], array("UID" => intval($res["AUTHOR_ID"]))); $res["AUTHOR_LINK"] = CComponentEngine::MakePathFromTemplate($arParams["URL_TEMPLATES_PROFILE_VIEW"], array("UID" => intval($res["AUTHOR_ID"]))); $res["~POST_LINK"] = CComponentEngine::MakePathFromTemplate($arParams["~URL_TEMPLATES_MESSAGE"], array("FID" => $res["FORUM_ID"], "TID" => $res["TOPIC_ID"], "TITLE_SEO" => $res["TITLE_SEO"], "MID" => $res["ID"])); $res["POST_LINK"] = CComponentEngine::MakePathFromTemplate($arParams["URL_TEMPLATES_MESSAGE"], array("FID" => $res["FORUM_ID"], "TID" => $res["TOPIC_ID"], "TITLE_SEO" => $res["TITLE_SEO"], "MID" => $res["ID"])); $res["~AUTHOR_URL"] = "http://".$arResult["SERVER_NAME"].$res["~AUTHOR_LINK"]; $res["AUTHOR_URL"] = "http://".htmlspecialcharsbx($arResult["SERVER_NAME"]).$res["AUTHOR_LINK"]; $res["~URL"] = "http://".$arResult["SERVER_NAME"].$res["~POST_LINK"]; $res["URL"] = "http://".htmlspecialcharsbx($arResult["SERVER_NAME"]).$res["POST_LINK"]; $res["~URL_RSS"] = "http://".$arResult["SERVER_NAME"].CComponentEngine::MakePathFromTemplate($arParams["~URL_TEMPLATES_RSS"], array("TYPE" => mb_strtolower($arParams["TYPE"]), "MODE" => "topic", "IID" => $res["TOPIC_ID"])); $res["URL_RSS"] = "http://".htmlspecialcharsbx($arResult["SERVER_NAME"]). CComponentEngine::MakePathFromTemplate($arParams["URL_TEMPLATES_RSS"], array("TYPE" => mb_strtolower($arParams["TYPE"]), "MODE" => "topic", "IID" => $res["TOPIC_ID"])); $res["UUID"] = __create_uuid($res["~URL"]); // TOPIC DATA $arDate = ParseDateTime($res["START_DATE"], false); $date = date("r", mktime($arDate["HH"], $arDate["MI"], $arDate["SS"], $arDate["MM"], $arDate["DD"], $arDate["YYYY"])); if ($arParams["TYPE"] == "ATOM") { $timeISO = mktime($arDate["HH"], $arDate["MI"], $arDate["SS"], $arDate["MM"], $arDate["DD"], $arDate["YYYY"]); $date = date("Y-m-d\TH:i:s", $timeISO).mb_substr(date("O", $timeISO), 0, 3).":".mb_substr(date("O", $timeISO), -2, 2); } $topic = array( "ID" => $res["TOPIC_ID"], "TITLE" => $res["TITLE"], "~TITLE" => $res["~TITLE"], "DESCRIPTION" => $res["TOPIC_DESCRIPTION"], "~DESCRIPTION" => $res["~TOPIC_DESCRIPTION"], "TOPIC_DESCRIPTION" => $res["TOPIC_DESCRIPTION"], "~TOPIC_DESCRIPTION" => $res["~TOPIC_DESCRIPTION"], "START_DATE" => $date, "~START_DATE" => $res["~START_DATE"], "START_DATE_FORMATED" => CForumFormat::DateFormat($arParams["DATE_TIME_FORMAT"], MakeTimeStamp($res["~START_DATE"], CSite::GetDateFormat())), "AUTHOR_NAME" => $res["USER_START_NAME"], "~AUTHOR_NAME" => $res["~USER_START_NAME"], "AUTHOR_ID" => $res["USER_START_ID"], "~AUTHOR_ID" => $res["~USER_START_ID"], "~AUTHOR_LINK" => CComponentEngine::MakePathFromTemplate($arParams["~URL_TEMPLATES_PROFILE_VIEW"], array("UID" => intval($res["~USER_START_ID"]))), "AUTHOR_LINK" => CComponentEngine::MakePathFromTemplate($arParams["URL_TEMPLATES_PROFILE_VIEW"], array("UID" => intval($res["~USER_START_ID"]))), "~TOPIC_LINK" => CComponentEngine::MakePathFromTemplate($arParams["~URL_TEMPLATES_READ"], array("FID" => $res["FORUM_ID"], "TID" => $res["TOPIC_ID"], "TITLE_SEO" => $res["TITLE_SEO"], "MID" => "s")), "TOPIC_LINK" => CComponentEngine::MakePathFromTemplate($arParams["URL_TEMPLATES_READ"], array("FID" => $res["FORUM_ID"], "TID" => $res["TOPIC_ID"], "TITLE_SEO" => $res["TITLE_SEO"], "MID" => "s")), "MESSAGES" => array() ); $topic["~AUTHOR_URL"] = "http://".$arResult["SERVER_NAME"].$topic["~AUTHOR_LINK"]; $topic["AUTHOR_URL"] = "http://".htmlspecialcharsbx($arResult["SERVER_NAME"]).$topic["AUTHOR_LINK"]; $topic["~URL"] = "http://".$arResult["SERVER_NAME"].$topic["~TOPIC_LINK"]; $topic["URL"] = "http://".htmlspecialcharsbx($arResult["SERVER_NAME"]).$topic["TOPIC_LINK"]; if (empty($arItems[$res["FORUM_ID"]]["TOPICS"][$res["TOPIC_ID"]])) $arItems[$res["FORUM_ID"]]["TOPICS"][$res["TOPIC_ID"]] = $topic; unset($res["TITLE"]); unset($res["DESCRIPTION"]); if (!empty($arParams["TEMPLATE"])) { $text = $arParams["TEMPLATE"]; foreach ($arParams["TEMPLATE_ELEMENTS"] as $element) { $replace = array($arItems[$res["FORUM_ID"]]["TOPICS"][$res["TOPIC_ID"]][$element], $arItems[$res["FORUM_ID"]]["TOPICS"][$res["TOPIC_ID"]]["~".$element]); if ($res[$element] <> '') $replace = array($res[$element], $res["~".$element]); $text = str_replace(array("#".$res."#", "#~".$res."#"), $replace, $text); } $res["TEMPLATE"] = $text; } $arResult["MESSAGE_LIST"][$res["ID"]] = $res; $arItems[$res["FORUM_ID"]]["TOPICS"][$res["TOPIC_ID"]]["MESSAGES"][$res["ID"]] = $res; } while ($res = $db_res->Fetch()); } if (is_array($arItems) && (count($arItems) > 0)) { foreach ($arItems as $key => $val) $arItems[$key] = array_merge($arResult["FORUMS"][$key], $val); } /************** Attach files ***************************************/ if (!empty($arResult["MESSAGE_LIST"])) { $arFilter = array("@FILE_MESSAGE_ID" => array_keys($arResult["MESSAGE_LIST"])); $db_files = CForumFiles::GetList(array("MESSAGE_ID" => "ASC"), $arFilter); if ($db_files && $res = $db_files->Fetch()) { do { $arResult["FILES"][$res["FILE_ID"]] = $res; $res["SRC"] = str_replace("#FILE_ID#", $res["FILE_ID"], $src); $arItems[$res["FORUM_ID"]]["TOPICS"][$res["TOPIC_ID"]]["MESSAGES"][$res["MESSAGE_ID"]]["FILES"][$res["FILE_ID"]] = $res; }while ($res = $db_files->Fetch()); } $parser->arFiles = $arResult["FILES"]; foreach ($arResult["MESSAGE_LIST"] as $iID => $res) { $arItems[$res["FORUM_ID"]]["TOPICS"][$res["TOPIC_ID"]]["MESSAGES"][$res["ID"]]["POST_MESSAGE"] = $parser->convert_to_rss($res["~POST_MESSAGE"], array(), $res["ALLOW"]); $arItems[$res["FORUM_ID"]]["TOPICS"][$res["TOPIC_ID"]]["MESSAGES"][$res["ID"]]["FILES_PARSED"] = $parser->arFilesIDParsed; $arFiles = $arItems[$res["FORUM_ID"]]["TOPICS"][$res["TOPIC_ID"]]["MESSAGES"][$res["ID"]]["FILES"]; foreach ($arFiles as $key => $val) { if (in_array($key, $arItems[$res["FORUM_ID"]]["TOPICS"][$res["TOPIC_ID"]]["MESSAGES"][$res["ID"]]["FILES_PARSED"])): unset ($arItems[$res["FORUM_ID"]]["TOPICS"][$res["TOPIC_ID"]]["MESSAGES"][$res["ID"]]["FILES"][$val["FILE_ID"]]); continue; endif; $val["HTML"] = $GLOBALS["APPLICATION"]->IncludeComponent( "bitrix:forum.interface", "show_file", Array( "FILE" => $val, "SHOW_MODE" => "RSS", "WIDTH" => $parser->image_params["width"], "HEIGHT" => $parser->image_params["height"], "CONVERT" => "N", "FAMILY" => "FORUM", "SINGLE" => "Y", "RETURN" => "Y"), null, array("HIDE_ICONS" => "Y")); $arItems[$res["FORUM_ID"]]["TOPICS"][$res["TOPIC_ID"]]["MESSAGES"][$res["ID"]]["FILES"][$val["FILE_ID"]]["HTML"] = $val["HTML"]; if ($arItems[$res["FORUM_ID"]]["TOPICS"][$res["TOPIC_ID"]]["MESSAGES"][$res["ID"]]["~ATTACH_IMG"] == $val["FILE_ID"]) // attach for custom { $arItems[$res["FORUM_ID"]]["TOPICS"][$res["TOPIC_ID"]]["MESSAGES"][$res["ID"]]["ATTACH_IMG"] = $val["HTML"]; $arItems[$res["FORUM_ID"]]["TOPICS"][$res["TOPIC_ID"]]["MESSAGES"][$res["ID"]]["~ATTACH_IMG"] = array_merge($val, array("ID" => $val["FILE_ID"])); } } } } /************** Message List/***************************************/ $arResult["DATA"] = $arItems; $arParams["TYPE"] = mb_strtolower($arParams["TYPE"]); if ($arParams["DESIGN_MODE"] != "Y") { $this->IncludeComponentTemplate(); } else { ob_start(); $this->IncludeComponentTemplate(); $contents = ob_get_clean(); echo "<pre>",htmlspecialcharsbx($contents),"</pre>"; } } if ($arParams["DESIGN_MODE"] != "Y") die(); /******************************************************************** /Data 2 ********************************************************************/ ?>
| ver. 1.4 |
Github
|
.
| PHP 7.4.8 | Генерация страницы: 0 |
proxy
|
phpinfo
|
Настройка