1C-Bitrix 25.700.0
Загрузка...
Поиск...
Не найдено
product_group.php
См. документацию.
1<?php
2
3require_once($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/catalog/general/product_group.php");
4
6{
7 public static function Add($arFields)
8 {
9 global $DB;
10
11 if (!self::CheckFields("ADD", $arFields, 0))
12 return false;
13
14 $arInsert = $DB->PrepareInsert("b_catalog_product2group", $arFields);
15
16 $strSql = "INSERT INTO b_catalog_product2group(".$arInsert[0].") VALUES(".$arInsert[1].")";
17 $DB->Query($strSql);
18
19 return (int)$DB->LastID();
20 }
21
30 public static function GetList($arOrder = array(), $arFilter = array(), $arGroupBy = false, $arNavStartParams = false, $arSelectFields = array())
31 {
32 global $DB;
33
35 "ID" => array("FIELD" => "CPG.ID", "TYPE" => "int"),
36 "PRODUCT_ID" => array("FIELD" => "CPG.PRODUCT_ID", "TYPE" => "int"),
37 "GROUP_ID" => array("FIELD" => "CPG.GROUP_ID", "TYPE" => "int"),
38 "ACCESS_LENGTH" => array("FIELD" => "CPG.ACCESS_LENGTH", "TYPE" => "int"),
39 "ACCESS_LENGTH_TYPE" => array("FIELD" => "CPG.ACCESS_LENGTH_TYPE", "TYPE" => "char"),
40 "GROUP_ACTIVE" => array("FIELD" => "G.ACTIVE", "TYPE" => "char", "FROM" => "INNER JOIN b_group G ON (CPG.GROUP_ID = G.ID)"),
41 "GROUP_NAME" => array("FIELD" => "G.NAME", "TYPE" => "string", "FROM" => "INNER JOIN b_group G ON (CPG.GROUP_ID = G.ID)")
42 );
43
44 $arSqls = CCatalog::PrepareSql($arFields, $arOrder, $arFilter, $arGroupBy, $arSelectFields);
45
46 $arSqls["SELECT"] = str_replace("%%_DISTINCT_%%", "", $arSqls["SELECT"]);
47
48 if (empty($arGroupBy) && is_array($arGroupBy))
49 {
50 $strSql = "SELECT ".$arSqls["SELECT"]." FROM b_catalog_product2group CPG ".$arSqls["FROM"];
51 if (!empty($arSqls["WHERE"]))
52 $strSql .= " WHERE ".$arSqls["WHERE"];
53 if (!empty($arSqls["GROUPBY"]))
54 $strSql .= " GROUP BY ".$arSqls["GROUPBY"];
55
56 $dbRes = $DB->Query($strSql);
57 if ($arRes = $dbRes->Fetch())
58 return $arRes["CNT"];
59 else
60 return false;
61 }
62
63 $strSql = "SELECT ".$arSqls["SELECT"]." FROM b_catalog_product2group CPG ".$arSqls["FROM"];
64 if (!empty($arSqls["WHERE"]))
65 $strSql .= " WHERE ".$arSqls["WHERE"];
66 if (!empty($arSqls["GROUPBY"]))
67 $strSql .= " GROUP BY ".$arSqls["GROUPBY"];
68 if (!empty($arSqls["ORDERBY"]))
69 $strSql .= " ORDER BY ".$arSqls["ORDERBY"];
70
71 $intTopCount = 0;
72 $boolNavStartParams = (!empty($arNavStartParams) && is_array($arNavStartParams));
73 if ($boolNavStartParams && array_key_exists('nTopCount', $arNavStartParams))
74 {
75 $intTopCount = intval($arNavStartParams["nTopCount"]);
76 }
77 if ($boolNavStartParams && 0 >= $intTopCount)
78 {
79 $strSql_tmp = "SELECT COUNT('x') as CNT FROM b_catalog_product2group CPG ".$arSqls["FROM"];
80 if (!empty($arSqls["WHERE"]))
81 $strSql_tmp .= " WHERE ".$arSqls["WHERE"];
82 if (!empty($arSqls["GROUPBY"]))
83 $strSql_tmp .= " GROUP BY ".$arSqls["GROUPBY"];
84
85 $dbRes = $DB->Query($strSql_tmp);
86 $cnt = 0;
87 if (empty($arSqls["GROUPBY"]))
88 {
89 if ($arRes = $dbRes->Fetch())
90 $cnt = $arRes["CNT"];
91 }
92 else
93 {
94 $cnt = $dbRes->SelectedRowsCount();
95 }
96
97 $dbRes = new CDBResult();
98
99 $dbRes->NavQuery($strSql, $cnt, $arNavStartParams);
100 }
101 else
102 {
103 if ($boolNavStartParams && 0 < $intTopCount)
104 {
105 $strSql .= " LIMIT ".$intTopCount;
106 }
107 $dbRes = $DB->Query($strSql);
108 }
109
110 return $dbRes;
111 }
112}
static PrepareSql(&$arFields, $arOrder, $arFilter, $arGroupBy, $arSelectFields)
Определения catalog.php:389
static Add($arFields)
Определения product_group.php:7
static GetList($arOrder=array(), $arFilter=array(), $arGroupBy=false, $arNavStartParams=false, $arSelectFields=array())
Определения product_group.php:30
$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