- Модуль: forum
- Путь к файлу: ~/bitrix/modules/forum/classes/general/topic.php
- Класс: CAllForumTopic
- Вызов: CAllForumTopic::GetByID
static function GetByID($ID, $arAddParams = array())
{
global $DB;
if (mb_strlen($ID) < 1) return False;
$NoFilter = (isset($arAddParams["NoFilter"]) && $arAddParams["NoFilter"] == true) || COption::GetOptionString("forum", "FILTER", "Y") != "Y" ? true : false;
if ($NoFilter && isset($GLOBALS["FORUM_CACHE"]["TOPIC"][$ID]) && is_array($GLOBALS["FORUM_CACHE"]["TOPIC"][$ID]) && is_set($GLOBALS["FORUM_CACHE"]["TOPIC"][$ID], "ID"))
{
return $GLOBALS["FORUM_CACHE"]["TOPIC"][$ID];
}
elseif (!$NoFilter && isset($GLOBALS["FORUM_CACHE"]["TOPIC_FILTER"][$ID]) && is_array($GLOBALS["FORUM_CACHE"]["TOPIC_FILTER"][$ID]) && is_set($GLOBALS["FORUM_CACHE"]["TOPIC_FILTER"][$ID], "ID"))
{
return $GLOBALS["FORUM_CACHE"]["TOPIC_FILTER"][$ID];
}
else
{
$strSql =
"SELECT FT.*,
FT.TITLE_SEO as TITLE_SEO_REAL,
".CForumNew::Concat("-", array("FT.ID", "FT.TITLE_SEO"))." as TITLE_SEO,
".$DB->DateToCharFunction("FT.START_DATE", "FULL")." as START_DATE,
".$DB->DateToCharFunction("FT.LAST_POST_DATE", "FULL")." as LAST_POST_DATE
FROM b_forum_topic FT ";
if (intval($ID) > 0 || $ID === 0)
$strSql .= "WHERE FT.ID = ".intval($ID);
else
$strSql .= "WHERE FT.XML_ID = '".$DB->ForSql($ID)."'";
$db_res = $DB->Query($strSql, false, "File: ".__FILE__."
Line: ".__LINE__);
if ($db_res && $res = $db_res->Fetch())
{
$GLOBALS["FORUM_CACHE"]["TOPIC"][$ID] = $res;
if (COption::GetOptionString("forum", "FILTER", "Y") == "Y")
{
$db_res_filter = new CDBResult;
$db_res_filter->InitFromArray(array($res));
$db_res_filter = new _CTopicDBResult($db_res_filter);
if ($res_filter = $db_res_filter->Fetch())
$GLOBALS["FORUM_CACHE"]["TOPIC_FILTER"][$ID] = $res_filter;
}
if (!$NoFilter)
$res = $res_filter;
return $res;
}
}
return False;
}