• Модуль: 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; }