1C-Bitrix 25.700.0
Загрузка...
Поиск...
Не найдено
extra.php
См. документацию.
1<?php
2
4
5require_once($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/catalog/general/extra.php");
6
7class CExtra extends CAllExtra
8{
9 public static function Add($arFields)
10 {
11 global $DB;
12
13 if (!static::CheckFields('ADD', $arFields))
14 return false;
15
16 $arInsert = $DB->PrepareInsert("b_catalog_extra", $arFields);
17
18 $strSql = "INSERT INTO b_catalog_extra(".$arInsert[0].") VALUES(".$arInsert[1].")";
19 $DB->Query($strSql);
20
21 static::ClearCache();
24
25 return (int)$DB->LastID();
26 }
27
36 public static function GetList($arOrder = array(), $arFilter = array(), $arGroupBy = false, $arNavStartParams = false, $arSelectFields = array())
37 {
38 global $DB;
39
40 // for old execution style
41 if (!is_array($arOrder) && !is_array($arFilter))
42 {
43 $arOrder = strval($arOrder);
44 $arFilter = strval($arFilter);
45 if ('' != $arOrder && '' != $arFilter)
46 $arOrder = array($arOrder => $arFilter);
47 else
48 $arOrder = array();
49 $arFilter = array();
50 $arGroupBy = false;
51 }
52
53 if (empty($arSelectFields))
54 $arSelectFields = array("ID", "NAME", "PERCENTAGE");
55
57 "ID" => array("FIELD" => "E.ID", "TYPE" => "int"),
58 "NAME" => array("FIELD" => "E.NAME", "TYPE" => "string"),
59 "PERCENTAGE" => array("FIELD" => "E.PERCENTAGE", "TYPE" => "double"),
60 );
61
62 $arSqls = CCatalog::PrepareSql($arFields, $arOrder, $arFilter, $arGroupBy, $arSelectFields);
63
64 $arSqls["SELECT"] = str_replace("%%_DISTINCT_%%", "", $arSqls["SELECT"]);
65
66 if (empty($arGroupBy) && is_array($arGroupBy))
67 {
68 $strSql = "SELECT ".$arSqls["SELECT"]." FROM b_catalog_extra E ".$arSqls["FROM"];
69 if (!empty($arSqls["WHERE"]))
70 $strSql .= " WHERE ".$arSqls["WHERE"];
71 if (!empty($arSqls["GROUPBY"]))
72 $strSql .= " GROUP BY ".$arSqls["GROUPBY"];
73
74 $dbRes = $DB->Query($strSql);
75 if ($arRes = $dbRes->Fetch())
76 return $arRes["CNT"];
77 else
78 return false;
79 }
80
81 $strSql = "SELECT ".$arSqls["SELECT"]." FROM b_catalog_extra E ".$arSqls["FROM"];
82 if (!empty($arSqls["WHERE"]))
83 $strSql .= " WHERE ".$arSqls["WHERE"];
84 if (!empty($arSqls["GROUPBY"]))
85 $strSql .= " GROUP BY ".$arSqls["GROUPBY"];
86 if (!empty($arSqls["ORDERBY"]))
87 $strSql .= " ORDER BY ".$arSqls["ORDERBY"];
88
89 $intTopCount = 0;
90 $boolNavStartParams = (!empty($arNavStartParams) && is_array($arNavStartParams));
91 if ($boolNavStartParams && array_key_exists('nTopCount', $arNavStartParams))
92 {
93 $intTopCount = intval($arNavStartParams["nTopCount"]);
94 }
95 if ($boolNavStartParams && 0 >= $intTopCount)
96 {
97 $strSql_tmp = "SELECT COUNT('x') as CNT FROM b_catalog_extra E ".$arSqls["FROM"];
98 if (!empty($arSqls["WHERE"]))
99 $strSql_tmp .= " WHERE ".$arSqls["WHERE"];
100 if (!empty($arSqls["GROUPBY"]))
101 $strSql_tmp .= " GROUP BY ".$arSqls["GROUPBY"];
102
103 $dbRes = $DB->Query($strSql_tmp);
104 $cnt = 0;
105 if (empty($arSqls["GROUPBY"]))
106 {
107 if ($arRes = $dbRes->Fetch())
108 $cnt = $arRes["CNT"];
109 }
110 else
111 {
112 $cnt = $dbRes->SelectedRowsCount();
113 }
114
115 $dbRes = new CDBResult();
116
117 $dbRes->NavQuery($strSql, $cnt, $arNavStartParams);
118 }
119 else
120 {
121 if ($boolNavStartParams && 0 < $intTopCount)
122 $strSql .= " LIMIT ".$intTopCount;
123
124 $dbRes = $DB->Query($strSql);
125 }
126 return $dbRes;
127 }
128}
static clearSettings()
Определения price.php:762
static cleanCache()
Определения datamanager.php:1983
static PrepareSql(&$arFields, $arOrder, $arFilter, $arGroupBy, $arSelectFields)
Определения catalog.php:389
Определения extra.php:7
Определения extra.php:8
static Add($arFields)
Определения extra.php:9
static GetList($arOrder=array(), $arFilter=array(), $arGroupBy=false, $arNavStartParams=false, $arSelectFields=array())
Определения extra.php:36
$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