20 if (!is_array($arOrder) && !is_array(
$arFilter))
22 $arOrder = (string)$arOrder;
30 "IBLOCK_ID" =>
array(
"FIELD" =>
"CI.IBLOCK_ID",
"TYPE" =>
"int"),
31 "YANDEX_EXPORT" =>
array(
"FIELD" =>
"CI.YANDEX_EXPORT",
"TYPE" =>
"char"),
32 "SUBSCRIPTION" =>
array(
"FIELD" =>
"CI.SUBSCRIPTION",
"TYPE" =>
"char"),
33 "VAT_ID" =>
array(
"FIELD" =>
"CI.VAT_ID",
"TYPE" =>
"int"),
34 "PRODUCT_IBLOCK_ID" =>
array(
"FIELD" =>
"CI.PRODUCT_IBLOCK_ID",
"TYPE" =>
"int"),
35 "SKU_PROPERTY_ID" =>
array(
"FIELD" =>
"CI.SKU_PROPERTY_ID",
"TYPE" =>
"int"),
36 "OFFERS_PROPERTY_ID" =>
array(
"FIELD" =>
"OFFERS.SKU_PROPERTY_ID",
"TYPE" =>
"int",
"FROM" =>
"LEFT JOIN b_catalog_iblock OFFERS ON (CI.IBLOCK_ID = OFFERS.PRODUCT_IBLOCK_ID)"),
37 "OFFERS_IBLOCK_ID" =>
array(
"FIELD" =>
"OFFERS.IBLOCK_ID",
"TYPE" =>
"int",
"FROM" =>
"LEFT JOIN b_catalog_iblock OFFERS ON (CI.IBLOCK_ID = OFFERS.PRODUCT_IBLOCK_ID)"),
38 "ID" =>
array(
"FIELD" =>
"I.ID",
"TYPE" =>
"int",
"FROM" =>
"INNER JOIN b_iblock I ON (CI.IBLOCK_ID = I.ID)"),
39 "IBLOCK_TYPE_ID" =>
array(
"FIELD" =>
"I.IBLOCK_TYPE_ID",
"TYPE" =>
"string",
"FROM" =>
"INNER JOIN b_iblock I ON (CI.IBLOCK_ID = I.ID)"),
40 "IBLOCK_ACTIVE" =>
array(
"FIELD" =>
"I.ACTIVE",
"TYPE" =>
"char",
"FROM" =>
"INNER JOIN b_iblock I ON (CI.IBLOCK_ID = I.ID)"),
41 "LID" =>
array(
"FIELD" =>
"I.LID",
"TYPE" =>
"string",
"FROM" =>
"INNER JOIN b_iblock I ON (CI.IBLOCK_ID = I.ID)"),
42 "NAME" =>
array(
"FIELD" =>
"I.NAME",
"TYPE" =>
"string",
"FROM" =>
"INNER JOIN b_iblock I ON (CI.IBLOCK_ID = I.ID)")
47 $arSqls[
"SELECT"] = str_replace(
"%%_DISTINCT_%%",
"", $arSqls[
"SELECT"]);
49 if (empty($arGroupBy) && is_array($arGroupBy))
51 $strSql =
"SELECT ".$arSqls[
"SELECT"].
" FROM b_catalog_iblock CI ".$arSqls[
"FROM"];
52 if (!empty($arSqls[
"WHERE"]))
53 $strSql .=
" WHERE ".$arSqls[
"WHERE"];
54 if (!empty($arSqls[
"GROUPBY"]))
55 $strSql .=
" GROUP BY ".$arSqls[
"GROUPBY"];
62 $strSql =
"SELECT ".$arSqls[
"SELECT"].
" FROM b_catalog_iblock CI ".$arSqls[
"FROM"];
63 if (!empty($arSqls[
"WHERE"]))
64 $strSql .=
" WHERE ".$arSqls[
"WHERE"];
65 if (!empty($arSqls[
"GROUPBY"]))
66 $strSql .=
" GROUP BY ".$arSqls[
"GROUPBY"];
67 if (!empty($arSqls[
"ORDERBY"]))
68 $strSql .=
" ORDER BY ".$arSqls[
"ORDERBY"];
71 $boolNavStartParams = (!empty($arNavStartParams) && is_array($arNavStartParams));
72 if ($boolNavStartParams && isset($arNavStartParams[
'nTopCount']))
73 $intTopCount = (int)$arNavStartParams[
'nTopCount'];
75 if ($boolNavStartParams && $intTopCount <= 0)
77 $strSql_tmp =
"SELECT COUNT('x') as CNT FROM b_catalog_iblock CI ".$arSqls[
"FROM"];
78 if (!empty($arSqls[
"WHERE"]))
79 $strSql_tmp .=
" WHERE ".$arSqls[
"WHERE"];
80 if (!empty($arSqls[
"GROUPBY"]))
81 $strSql_tmp .=
" GROUP BY ".$arSqls[
"GROUPBY"];
85 if (empty($arSqls[
"GROUPBY"]))
92 $cnt =
$dbRes->SelectedRowsCount();
97 $dbRes->NavQuery($strSql, $cnt, $arNavStartParams);
101 if ($boolNavStartParams && $intTopCount > 0)
102 $strSql .=
" LIMIT ".$intTopCount;