6 public static function GetList($arOrder = Array(
"SORT"=>
"ASC"),
$arFilter = Array(), $bCount =
false, $iNum = 0, $arAddParams =
array())
9 $arOrder = (is_array($arOrder) ? $arOrder :
array());
11 $arAddParams = (is_array($arAddParams) ? $arAddParams :
array($arAddParams));
12 $selectTopCount = isset($arAddParams[
'nTopCount']) ? (int) $arAddParams[
'nTopCount'] : 0;
13 $descPageNumbering = isset($arAddParams[
'bDescPageNumbering']) && $selectTopCount <= 0;
14 $arSqlSearch =
array();
15 $arSqlSelect =
array();
16 $arSqlGroup =
array();
17 $arSqlOrder =
array();
27 $key = mb_strtoupper($key_res[
"FIELD"]);
28 $strNegative = $key_res[
"NEGATIVE"];
29 $strOperation = $key_res[
"OPERATION"];
38 $arSqlSearch[] = ($strNegative==
"Y"?
"NOT":
"").
"(FT.".
$key.
" IS NULL OR ".(
$DB->type ==
"MSSQL" ?
"LEN" :
"LENGTH").
"(FT.".
$key.
")<=0)";
39 else if ($strOperation ==
"IN")
40 $arSqlSearch[] = ($strNegative==
"Y"?
" NOT ":
"").
"(FT.".
$key.
" IN (".
$val.
") )";
42 $arSqlSearch[] = ($strNegative==
"Y"?
" FT.".$key.
" IS NULL OR NOT ":
"").
"(FT.".
$key.
" ".$strOperation.
" '".
$val.
"' )";
46 case "SOCNET_GROUP_ID":
52 if (($strOperation!=
"IN") && (intval(
$val) > 0))
53 $arSqlSearch[] = ($strNegative==
"Y"?
" FT.".$key.
" IS NULL OR NOT ":
"").
"(FT.".
$key.
" ".$strOperation.
" ".intval(
$val).
" )";
60 $val_int[] = intval($v);
61 $val = implode(
", ", $val_int);
63 $arSqlSearch[] = ($strNegative==
"Y"?
" NOT ":
"").
"(FT.".
$key.
" IN (".
$DB->ForSql(
$val).
") )";
66 $arSqlSearch[] = ($strNegative==
"Y"?
"NOT":
"").
"(FT.".
$key.
" IS NULL OR FT.".
$key.
"<=0)";
72 $strSqlTemp =
$val[0];
77 $arSqlTemp[] =
"(FT.ID=".intval(
$k).
") AND (FT.LAST_POST_DATE > ".
$DB->CharToDateFunction(
$DB->ForSql($v),
"FULL").
")";
80 foreach (array_keys(
$val) as
$k)
81 $val_int[] = intval(
$k);
82 $keys = implode(
", ", $val_int);
85 "(FT.ID IN (".$DB->ForSql($keys).
") AND ((".implode(
") OR (", $arSqlTemp).
")))
87 (FT.ID NOT IN (".
$DB->ForSql($keys).
") AND (FT.LAST_POST_DATE > ".
$DB->CharToDateFunction(
$DB->ForSql($strSqlTemp),
"FULL").
"))";
91 case "LAST_POST_DATE":
93 $arSqlSearch[] = ($strNegative==
"Y"?
"NOT":
"").
"(FT.".
$key.
" IS NULL)";
95 $arSqlSearch[] = ($strNegative==
"Y"?
" FT.".$key.
" IS NULL OR NOT ":
"").
"(FT.".
$key.
" ".$strOperation.
" ".
$DB->CharToDateFunction(
$DB->ForSql(
$val),
"FULL").
")";
99 if (
count($arSqlSearch)>0)
100 $strSqlSearch =
" AND (".implode(
") AND (", $arSqlSearch).
")";
101 if (
count($arSqlSelect) > 0)
102 $strSqlSelect =
", ".implode(
", ", $arSqlSelect);
105 foreach ($arSqlSelect as
$key =>
$val)
107 if (mb_substr(
$key, 0, 1) !=
"!")
110 if (!empty($arSqlGroup)):
111 $strSqlGroup =
", ".implode(
", ", $arSqlGroup);
114 foreach ($arOrder as $by =>
$order)
116 $by = mb_strtoupper($by);
119 if (in_array($by,
array(
"ID",
"FORUM_ID",
"TOPIC_ID",
"TITLE",
"TAGS",
"DESCRIPTION",
"ICON",
120 "STATE",
"APPROVED",
"SORT",
"VIEWS",
"USER_START_ID",
"USER_START_NAME",
"START_DATE",
121 "POSTS",
"LAST_POSTER_ID",
"LAST_POSTER_NAME",
"LAST_POST_DATE",
"LAST_MESSAGE_ID",
122 "POSTS_UNAPPROVED",
"ABS_LAST_POSTER_ID",
"ABS_LAST_POSTER_NAME",
"ABS_LAST_POST_DATE",
"ABS_LAST_MESSAGE_ID",
123 "SOCNET_GROUP_ID",
"OWNER_ID",
"HTML"))):
124 $arSqlOrder[] =
"FT.".$by.
" ".
$order;
126 $arSqlOrder[] =
"FT.SORT ".$order;
130 $arSqlOrder = array_unique($arSqlOrder);
132 if (
count($arSqlOrder) > 0)
133 $strSqlOrder =
" ORDER BY ".implode(
", ", $arSqlOrder);
135 if ($bCount || $descPageNumbering)
138 "SELECT COUNT(FT.ID) as CNT
139 FROM b_forum_topic FT
145 $iCnt = intval(
$ar_res[
"CNT"]);
152 $arSQL =
array(
"select" =>
"",
"join" =>
"");
153 if (!empty($arAddParams[
"sNameTemplate"]))
155 $arSQL = array_merge_recursive(
158 "sUserTablePrefix" =>
"U_START.",
159 "sForumUserTablePrefix" =>
"FU_START.",
160 "sFieldName" =>
"USER_START_NAME_FRMT",
161 "sUserIDFieldName" =>
"FT.USER_START_ID"))),
164 "sUserTablePrefix" =>
"U_LAST.",
165 "sForumUserTablePrefix" =>
"FU_LAST.",
166 "sFieldName" =>
"LAST_POSTER_NAME_FRMT",
167 "sUserIDFieldName" =>
"FT.LAST_POSTER_ID"))),
170 "sUserTablePrefix" =>
"U_ABS_LAST.",
171 "sForumUserTablePrefix" =>
"FU_ABS_LAST.",
172 "sFieldName" =>
"ABS_LAST_POSTER_NAME_FRMT",
173 "sUserIDFieldName" =>
"FT.ABS_LAST_POSTER_ID"))));
174 $arSQL[
"select"] =
",\n\t".implode(
",\n\t", $arSQL[
"select"]);
175 $arSQL[
"join"] =
"\n".implode(
"\n", $arSQL[
"join"]);
181 " SELECT F_T.*, FT.FORUM_ID, FT.TOPIC_ID, FT.TITLE, FT.TAGS, FT.DESCRIPTION, FT.ICON, \n".
182 " FT.STATE, FT.APPROVED, FT.SORT, FT.VIEWS, FT.USER_START_ID, FT.USER_START_NAME, \n".
183 " ".CForumNew::Concat(
"-",
array(
"FT.ID",
"FT.TITLE_SEO")).
" as TITLE_SEO, \n".
184 " ".$DB->DateToCharFunction(
"FT.START_DATE",
"FULL").
" as START_DATE, \n".
185 " FT.POSTS, FT.LAST_POSTER_ID, FT.LAST_POSTER_NAME, \n".
186 " ".$DB->DateToCharFunction(
"FT.LAST_POST_DATE",
"FULL").
" as LAST_POST_DATE, \n".
187 " FT.LAST_POST_DATE AS LAST_POST_DATE_ORIGINAL, FT.LAST_MESSAGE_ID, \n".
188 " FT.POSTS_UNAPPROVED, FT.ABS_LAST_POSTER_ID, FT.ABS_LAST_POSTER_NAME, \n".
189 " ".$DB->DateToCharFunction(
"FT.ABS_LAST_POST_DATE",
"FULL").
" as ABS_LAST_POST_DATE, \n".
190 " FT.ABS_LAST_POST_DATE AS ABS_LAST_POST_DATE_ORIGINAL, FT.ABS_LAST_MESSAGE_ID, \n".
191 " FT.SOCNET_GROUP_ID, FT.OWNER_ID, FT.HTML, FT.XML_ID".$arSQL[
"select"].
" \n".
193 " SELECT FT.ID".$strSqlSelect.
" \n".
194 " FROM b_forum_topic FT \n".
195 " WHERE 1 = 1 ".$strSqlSearch.
" \n".
196 " GROUP BY FT.ID ".$strSqlGroup.
" \n".
198 " INNER JOIN b_forum_topic FT ON (F_T.ID = FT.ID) ".$arSQL[
"join"].
" \n".
204 " SELECT FT.ID, FT.FORUM_ID, FT.TOPIC_ID, FT.TITLE, FT.TAGS, FT.DESCRIPTION, FT.ICON, \n".
205 " FT.STATE, FT.APPROVED, FT.SORT, FT.VIEWS, FT.USER_START_ID, FT.USER_START_NAME, \n".
206 " ".CForumNew::Concat(
"-",
array(
"FT.ID",
"FT.TITLE_SEO")).
" as TITLE_SEO, \n".
207 " ".$DB->DateToCharFunction(
"FT.START_DATE",
"FULL").
" as START_DATE, \n".
208 " FT.POSTS, FT.LAST_POSTER_ID, FT.LAST_POSTER_NAME, \n".
209 " ".$DB->DateToCharFunction(
"FT.LAST_POST_DATE",
"FULL").
" as LAST_POST_DATE, \n".
210 " FT.LAST_POST_DATE AS LAST_POST_DATE_ORIGINAL, FT.LAST_MESSAGE_ID, \n".
211 " FT.POSTS_UNAPPROVED, FT.ABS_LAST_POSTER_ID, FT.ABS_LAST_POSTER_NAME, \n".
212 " ".$DB->DateToCharFunction(
"FT.ABS_LAST_POST_DATE",
"FULL").
" as ABS_LAST_POST_DATE, \n".
213 " FT.ABS_LAST_POST_DATE AS ABS_LAST_POST_DATE_ORIGINAL, FT.ABS_LAST_MESSAGE_ID, \n".
214 " FT.SOCNET_GROUP_ID, FT.OWNER_ID, FT.HTML, FT.XML_ID".$strSqlSelect.$arSQL[
"select"].
" \n".
215 " FROM b_forum_topic FT ".$arSQL[
"join"].
" \n".
216 " WHERE 1 = 1 ".$strSqlSearch.
" \n".
220 $limit = $iNum > 0 ? (int)$iNum : $selectTopCount;
226 $strSql .=
"\nLIMIT ".$limit;
230 $strSql .=
"\nLIMIT 0,".$limit;
234 if (!$iNum && $descPageNumbering)
237 $db_res->NavQuery($strSql, $iCnt, $arAddParams);
246 public static function GetListEx($arOrder = Array(
"SORT"=>
"ASC"),
$arFilter = Array(), $bCount =
false, $iNum = 0, $arAddParams = [])
249 $arOrder = (is_array($arOrder) ? $arOrder :
array());
251 $arSqlSearch =
array();
252 $arSqlFrom =
array();
253 $arSqlSelect =
array();
254 $arSqlGroup =
array();
255 $arSqlOrder =
array();
262 $arAddParams = (is_array($arAddParams) ? $arAddParams :
array($arAddParams));
263 $selectTopCount = isset($arAddParams[
'nTopCount']) ? (int) $arAddParams[
'nTopCount'] : 0;
264 $descPageNumbering = isset($arAddParams[
'bDescPageNumbering']) && $selectTopCount <= 0;
269 $key = mb_strtoupper($key_res[
"FIELD"]);
270 $strNegative = $key_res[
"NEGATIVE"];
271 $strOperation = $key_res[
"OPERATION"];
279 $arSqlSearch[] = ($strNegative==
"Y"?
"NOT":
"").
"(FT.".
$key.
" IS NULL OR ".(
$DB->type ==
"MSSQL" ?
"LEN" :
"LENGTH").
"(FT.".
$key.
")<=0)";
280 else if ($strOperation ==
"IN")
281 $arSqlSearch[] = ($strNegative==
"Y"?
" NOT ":
"").
"(FT.".
$key.
" IN (".
$val.
") )";
283 $arSqlSearch[] = ($strNegative==
"Y"?
" FT.".$key.
" IS NULL OR NOT ":
"").
"(FT.".
$key.
" ".$strOperation.
" '".
$val.
"' )";
287 case "SOCNET_GROUP_ID":
289 case "USER_START_ID":
293 if (($strOperation!=
"IN")&&(intval(
$val)>0))
294 $arSqlSearch[] = ($strNegative==
"Y"?
" FT.".$key.
" IS NULL OR NOT ":
"").
"(FT.".
$key.
" ".$strOperation.
" ".intval(
$val).
" )";
301 $val_int[] = intval($v);
302 $val = implode(
", ", $val_int);
303 $arSqlSearch[] = ($strNegative==
"Y"?
" NOT ":
"").
"(FT.".
$key.
" IN (".
$DB->ForSql(
$val).
") )";
306 $arSqlSearch[] = ($strNegative==
"Y"?
"NOT":
"").
"(FT.".
$key.
" IS NULL OR FT.".
$key.
"<=0)";
317 case "LAST_POST_DATE":
318 case "ABS_LAST_POST_DATE":
320 $arSqlSearch[] = ($strNegative==
"Y"?
"NOT":
"").
"(FT.".
$key.
" IS NULL)";
322 $arSqlSearch[] = ($strNegative==
"Y"?
" FT.".$key.
" IS NULL OR NOT ":
"").
"(FT.".
$key.
" ".$strOperation.
" ".
$DB->CharToDateFunction(
$DB->ForSql(
$val),
"FULL").
")";
325 $arSqlSelect[
"LAST_VISIT"] =
$DB->DateToCharFunction(
"FUT.LAST_VISIT",
"FULL");
326 $arSqlFrom[
"FUT"] =
"LEFT JOIN b_forum_user_topic FUT ON (".(
328 ($strNegative==
"Y"?
"NOT":
"").
"(FUT.USER_ID IS NULL)"
330 "FUT.USER_ID=".intval(
$val)
331 ).
" AND FUT.FORUM_ID = FT.FORUM_ID AND FUT.TOPIC_ID = FT.ID)";
334 if ((
$val <> '') && array_key_exists(
"FUT", $arSqlFrom))
337 "((FT.LAST_POST_DATE ".$strOperation.
" ".
$DB->CharToDateFunction(
$DB->ForSql(
$val),
"FULL").
") AND
339 (LAST_VISIT IS NULL) OR
340 (LAST_VISIT < ".
$DB->CharToDateFunction(
$DB->ForSql(
$val),
"FULL").
")
344 ((FT.LAST_POST_DATE > FUT.LAST_VISIT) AND
346 (LAST_VISIT IS NOT NULL) AND
347 (LAST_VISIT > ".
$DB->CharToDateFunction(
$DB->ForSql(
$val),
"FULL").
")
360 $val_int[] = intval($v);
361 $val = implode(
", ", $val_int);
365 " SELECT FPP.FORUM_ID, MAX(FPP.PERMISSION) AS PERMISSION \n".
366 " FROM b_forum_perms FPP \n".
367 " WHERE FPP.GROUP_ID IN (".$DB->ForSql(
$val).
") AND FPP.PERMISSION > 'A' \n".
368 " GROUP BY FPP.FORUM_ID) FPP ON (FPP.FORUM_ID = FT.FORUM_ID) ";
369 $arSqlSelect[
"PERMISSION"] =
"FPP.PERMISSION";
373 $val[
"USER_ID"] = intval(
$val[
"USER_ID"]);
374 if (
$val[
"USER_ID"] <= 0):
377 $perms =
"NOT_CHECK";
378 $arUserGroups =
$GLOBALS[
"USER"]->GetGroups();
382 $perms =
"ONLY_APPROVED";
385 $arSqlFrom[
"FUT"] =
"LEFT JOIN b_forum_user_topic FUT ON (FUT.USER_ID=".intval(
$val[
"USER_ID"]).
" AND FUT.FORUM_ID = FT.FORUM_ID AND FUT.TOPIC_ID = FT.ID)";
386 $arSqlFrom[
"FUF"] =
"LEFT JOIN b_forum_user_forum FUF ON (FUF.USER_ID=".$val[
"USER_ID"].
" AND FUF.FORUM_ID = FT.FORUM_ID)";
387 $arSqlFrom[
"FUF_ALL"] =
"LEFT JOIN b_forum_user_forum FUF_ALL ON (FUF_ALL.USER_ID=".$val[
"USER_ID"].
" AND FUF_ALL.FORUM_ID = 0)";
389 $arSqlSearch[] =
"FT.STATE != 'L'";
392 FUT.LAST_VISIT IS NULL
395 (FUF_ALL.LAST_VISIT IS NULL AND FUF.LAST_VISIT IS NULL)
398 FUF.LAST_VISIT IS NOT NULL
402 ( $perms ==
"NORMAL" ?
"
403 (FPP.PERMISSION >= 'Q' AND FUF.LAST_VISIT < FT.ABS_LAST_POST_DATE)
405 (FT.APPROVED = 'Y' AND FUF.LAST_VISIT < FT.LAST_POST_DATE)
407 ( $perms ==
"NOT_CHECK" ?
"
408 (FUF.LAST_VISIT < FT.ABS_LAST_POST_DATE OR FUF.LAST_VISIT < FT.LAST_POST_DATE)
411 (FT.APPROVED = 'Y' AND FUF.LAST_VISIT < FT.LAST_POST_DATE)
420 FUF.LAST_VISIT IS NULL AND FUF_ALL.LAST_VISIT IS NOT NULL
424 ( $perms ==
"NORMAL" ?
"
425 (FPP.PERMISSION >= 'Q' AND FUF_ALL.LAST_VISIT < FT.ABS_LAST_POST_DATE)
427 (FT.APPROVED = 'Y' AND FUF_ALL.LAST_VISIT < FT.LAST_POST_DATE)
429 ( $perms ==
"NOT_CHECK" ?
"
430 (FUF_ALL.LAST_VISIT < FT.ABS_LAST_POST_DATE OR FUF_ALL.LAST_VISIT < FT.LAST_POST_DATE)
433 (FT.APPROVED = 'Y' AND FUF_ALL.LAST_VISIT < FT.LAST_POST_DATE)
444 FUT.LAST_VISIT IS NOT NULL
448 ( $perms ==
"NORMAL" ?
"
449 (FPP.PERMISSION >= 'Q' AND FUT.LAST_VISIT < FT.ABS_LAST_POST_DATE)
451 (FT.APPROVED = 'Y' AND FUT.LAST_VISIT < FT.LAST_POST_DATE)
453 ( $perms ==
"NOT_CHECK" ?
"
454 (FUT.LAST_VISIT < FT.ABS_LAST_POST_DATE OR FUT.LAST_VISIT < FT.LAST_POST_DATE)
457 (FT.APPROVED = 'Y' AND FUT.LAST_VISIT < FT.LAST_POST_DATE)
464 case "PERMISSION_STRONG":
465 $arSqlFrom[
"FP"] =
"LEFT JOIN b_forum_perms FP ON (FP.FORUM_ID=FT.FORUM_ID)";
466 $arSqlSearch[] =
"FP.GROUP_ID IN (".$DB->ForSql(
$USER->GetGroups()).
") AND (FP.PERMISSION IN ('Q','U','Y'))";
471 if (
count($arSqlSearch)>0)
472 $strSqlSearch =
" AND (".implode(
") AND (", $arSqlSearch).
")";
473 if (
count($arSqlSelect) > 0)
476 foreach ($arSqlSelect as
$key =>
$val)
478 if (mb_substr(
$key, 0, 1) ==
"!")
485 $strSqlSelect =
", ".implode(
", ",
$res);
487 if (
count($arSqlFrom) > 0)
488 $strSqlFrom = implode(
"\n", $arSqlFrom);
491 foreach ($arSqlSelect as
$key =>
$val)
493 if (mb_substr(
$key, 0, 1) !=
"!")
496 if (!empty($arSqlGroup)):
497 $strSqlGroup =
", ".implode(
", ", $arSqlGroup);
501 foreach ($arOrder as $by =>
$order)
503 $by = mb_strtoupper($by);
506 if (in_array($by,
array(
"ID",
"FORUM_ID",
"TOPIC_ID",
"TITLE",
"TAGS",
"DESCRIPTION",
"ICON",
507 "STATE",
"APPROVED",
"SORT",
"VIEWS",
"USER_START_ID",
"USER_START_NAME",
"START_DATE",
508 "POSTS",
"LAST_POSTER_ID",
"LAST_POSTER_NAME",
"LAST_POST_DATE",
"LAST_MESSAGE_ID",
509 "POSTS_UNAPPROVED",
"ABS_LAST_POSTER_ID",
"ABS_LAST_POSTER_NAME",
"ABS_LAST_POST_DATE",
"ABS_LAST_MESSAGE_ID",
510 "SOCNET_GROUP_ID",
"OWNER_ID",
"HTML",
"XML_ID"))):
511 $arSqlOrder[] =
"FT.".$by.
" ".
$order;
512 elseif ($by ==
"FORUM_NAME"):
513 $arSqlOrder[] =
"F.NAME ".$order;
515 $arSqlOrder[] =
"FT.SORT ".$order;
519 $arSqlOrder = array_unique($arSqlOrder);
521 if (
count($arSqlOrder) > 0):
522 $strSqlOrder =
" ORDER BY ".implode(
", ", $arSqlOrder);
525 if ($bCount || $descPageNumbering)
527 $strSql =
"SELECT COUNT(FT.ID) as CNT FROM b_forum_topic FT ";
529 $arCountSqlFrom = $arSqlFrom;
530 if (isset($arSqlFrom[
'FUT']) && (mb_strpos($strSqlSearch,
"FUT.") ===
false))
531 unset($arCountSqlFrom[
'FUT']);
532 $strSqlCountFrom = implode(
"\n", $arCountSqlFrom);
534 $strSql .= $strSqlCountFrom .
" WHERE 1 = 1 ".$strSqlSearch;
540 $iCnt = intval(
$ar_res[
"CNT"]);
545 $arSQL =
array(
"select" =>
"",
"join" =>
"");
546 if (!empty($arAddParams[
"sNameTemplate"]))
548 $arSQL = array_merge_recursive(
551 "sUserTablePrefix" =>
"U_START.",
552 "sForumUserTablePrefix" =>
"FU_START.",
553 "sFieldName" =>
"USER_START_NAME_FRMT",
554 "sUserIDFieldName" =>
"FT.USER_START_ID"))),
557 "sUserTablePrefix" =>
"U_LAST.",
558 "sForumUserTablePrefix" =>
"FU_LAST.",
559 "sFieldName" =>
"LAST_POSTER_NAME_FRMT",
560 "sUserIDFieldName" =>
"FT.LAST_POSTER_ID"))),
563 "sUserTablePrefix" =>
"U_ABS_LAST.",
564 "sForumUserTablePrefix" =>
"FU_ABS_LAST.",
565 "sFieldName" =>
"ABS_LAST_POSTER_NAME_FRMT",
566 "sUserIDFieldName" =>
"FT.ABS_LAST_POSTER_ID"))));
567 $arSQL[
"select"] =
",\n\t".implode(
",\n\t", $arSQL[
"select"]);
568 $arSQL[
"join"] =
"\n".implode(
"\n", $arSQL[
"join"]);
574 " SELECT F_T.*, FT.FORUM_ID, FT.TOPIC_ID, FT.TITLE, FT.TAGS, FT.DESCRIPTION, FT.ICON, \n".
575 " FT.STATE, FT.APPROVED, FT.SORT, FT.VIEWS, FT.USER_START_ID, FT.USER_START_NAME, \n".
576 " ".CForumNew::Concat(
"-",
array(
"FT.ID",
"FT.TITLE_SEO")).
" as TITLE_SEO, \n".
577 " ".$DB->DateToCharFunction(
"FT.START_DATE",
"FULL").
" as START_DATE, \n".
578 " FT.POSTS, FT.LAST_POSTER_ID, FT.LAST_POSTER_NAME, \n".
579 " ".$DB->DateToCharFunction(
"FT.LAST_POST_DATE",
"FULL").
" as LAST_POST_DATE, \n".
580 " FT.LAST_POST_DATE AS LAST_POST_DATE_ORIGINAL, FT.LAST_MESSAGE_ID, \n".
581 " FT.POSTS_UNAPPROVED, FT.ABS_LAST_POSTER_ID, FT.ABS_LAST_POSTER_NAME, \n".
582 " ".$DB->DateToCharFunction(
"FT.ABS_LAST_POST_DATE",
"FULL").
" as ABS_LAST_POST_DATE, \n".
583 " FT.ABS_LAST_POST_DATE AS ABS_LAST_POST_DATE_ORIGINAL, FT.ABS_LAST_MESSAGE_ID, \n".
584 " FT.SOCNET_GROUP_ID, FT.OWNER_ID, FT.HTML, FT.XML_ID, \n".
585 " F.NAME as FORUM_NAME, \n".
586 " '' as IMAGE, '' as IMAGE_DESCR ".$arSQL[
"select"].
" \n".
589 " SELECT FT.ID".$strSqlSelect.
" \n".
590 " FROM b_forum_topic FT \n".
591 " LEFT JOIN b_forum F ON (FT.FORUM_ID = F.ID) \n".
592 " ".$strSqlFrom.
" \n".
593 " WHERE 1 = 1 ".$strSqlSearch.
" \n".
594 " GROUP BY FT.ID".$strSqlGroup.
" \n".
596 " INNER JOIN b_forum_topic FT ON (F_T.ID = FT.ID) \n".
597 " LEFT JOIN b_forum F ON (FT.FORUM_ID = F.ID) ".$arSQL[
"join"].
" \n".
603 " SELECT FT.ID, FT.FORUM_ID, FT.TOPIC_ID, FT.TITLE, FT.TAGS, FT.DESCRIPTION, FT.ICON, \n".
604 " FT.STATE, FT.APPROVED, FT.SORT, FT.VIEWS, FT.USER_START_ID, FT.USER_START_NAME, \n".
605 " ".CForumNew::Concat(
"-",
array(
"FT.ID",
"FT.TITLE_SEO")).
" as TITLE_SEO, \n".
606 " ".$DB->DateToCharFunction(
"FT.START_DATE",
"FULL").
" as START_DATE, \n".
607 " FT.POSTS, FT.LAST_POSTER_ID, FT.LAST_POSTER_NAME, \n".
608 " ".$DB->DateToCharFunction(
"FT.LAST_POST_DATE",
"FULL").
" as LAST_POST_DATE, \n".
609 " FT.LAST_POST_DATE AS LAST_POST_DATE_ORIGINAL, FT.LAST_MESSAGE_ID, \n".
610 " FT.POSTS_UNAPPROVED, FT.ABS_LAST_POSTER_ID, FT.ABS_LAST_POSTER_NAME, \n".
611 " ".$DB->DateToCharFunction(
"FT.ABS_LAST_POST_DATE",
"FULL").
" as ABS_LAST_POST_DATE, \n".
612 " FT.ABS_LAST_POST_DATE AS ABS_LAST_POST_DATE_ORIGINAL, FT.ABS_LAST_MESSAGE_ID, \n".
613 " FT.SOCNET_GROUP_ID, FT.OWNER_ID, FT.HTML, FT.XML_ID, \n".
614 " F.NAME as FORUM_NAME, \n".
615 " '' as IMAGE, '' as IMAGE_DESCR".$strSqlSelect.$arSQL[
"select"].
" \n".
616 " FROM b_forum_topic FT \n".
617 " LEFT JOIN b_forum F ON (FT.FORUM_ID = F.ID) \n".
618 " ".$strSqlFrom.$arSQL[
"join"].
" \n".
619 " WHERE 1 = 1 ".$strSqlSearch.
" \n".
623 $iNum = intval($iNum);
624 $limit = $iNum ?? $selectTopCount;
630 $strSql .=
"\nLIMIT ".$limit;
634 $strSql .=
"\nLIMIT 0,".$limit;
637 if (!$iNum && $descPageNumbering)
640 $db_res->NavQuery($strSql, $iCnt, $arAddParams);