1C-Bitrix 25.700.0
Загрузка...
Поиск...
Не найдено
catalog.php
См. документацию.
1<?php
2
3require_once($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/catalog/general/catalog.php");
4
5class CCatalog extends CAllCatalog
6{
15 public static function GetList($arOrder = array(), $arFilter = array(), $arGroupBy = false, $arNavStartParams = false, $arSelectFields = array())
16 {
17 global $DB;
18
19 // For old-style execution
20 if (!is_array($arOrder) && !is_array($arFilter))
21 {
22 $arOrder = (string)$arOrder;
23 $arFilter = (string)$arFilter;
24 $arOrder = ($arOrder != '' && $arFilter != '' ? array($arOrder => $arFilter) : array());
25 $arFilter = (is_array($arGroupBy) ? $arGroupBy : array());
26 $arGroupBy = false;
27 }
28
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)")
43 );
44
45 $arSqls = CCatalog::PrepareSql($arFields, $arOrder, $arFilter, $arGroupBy, $arSelectFields);
46
47 $arSqls["SELECT"] = str_replace("%%_DISTINCT_%%", "", $arSqls["SELECT"]);
48
49 if (empty($arGroupBy) && is_array($arGroupBy))
50 {
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"];
56
57 $dbRes = $DB->Query($strSql);
58 $arRes = $dbRes->Fetch();
59 return (is_array($arRes) ? $arRes['CNT'] : false);
60 }
61
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"];
69
70 $intTopCount = 0;
71 $boolNavStartParams = (!empty($arNavStartParams) && is_array($arNavStartParams));
72 if ($boolNavStartParams && isset($arNavStartParams['nTopCount']))
73 $intTopCount = (int)$arNavStartParams['nTopCount'];
74
75 if ($boolNavStartParams && $intTopCount <= 0)
76 {
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"];
82
83 $dbRes = $DB->Query($strSql_tmp);
84 $cnt = 0;
85 if (empty($arSqls["GROUPBY"]))
86 {
87 if ($arRes = $dbRes->Fetch())
88 $cnt = $arRes["CNT"];
89 }
90 else
91 {
92 $cnt = $dbRes->SelectedRowsCount();
93 }
94
95 $dbRes = new CDBResult();
96
97 $dbRes->NavQuery($strSql, $cnt, $arNavStartParams);
98 }
99 else
100 {
101 if ($boolNavStartParams && $intTopCount > 0)
102 $strSql .= " LIMIT ".$intTopCount;
103
104 $dbRes = $DB->Query($strSql);
105 }
106
107 return $dbRes;
108 }
109}
Определения catalog.php:9
static PrepareSql(&$arFields, $arOrder, $arFilter, $arGroupBy, $arSelectFields)
Определения catalog.php:389
Определения catalog.php:6
static GetList($arOrder=array(), $arFilter=array(), $arGroupBy=false, $arNavStartParams=false, $arSelectFields=array())
Определения catalog.php:15
$arFields
Определения dblapprove.php:5
</td ></tr ></table ></td ></tr >< tr >< td class="bx-popup-label bx-width30"><?=GetMessage("PAGE_NEW_TAGS")?> array( $site)
Определения file_new.php:804
$_SERVER["DOCUMENT_ROOT"]
Определения cron_frame.php:9
global $DB
Определения cron_frame.php:29
$arRes
Определения options.php:104
$arFilter
Определения user_search.php:106
$dbRes
Определения yandex_detail.php:168