1C-Bitrix 25.700.0
Загрузка...
Поиск...
Не найдено
measure.php
См. документацию.
1<?php
2
3require_once($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/catalog/general/measure.php");
4
6{
15 public static function getList($arOrder = array(), $arFilter = array(), $arGroupBy = false, $arNavStartParams = false, $arSelectFields = array())
16 {
17 global $DB;
18
19 if (empty($arSelectFields))
20 {
21 $arSelectFields = array("ID", "CODE", "MEASURE_TITLE", "SYMBOL_RUS", "SYMBOL_INTL", "SYMBOL_LETTER_INTL", "IS_DEFAULT");
22 }
23 elseif (is_array($arSelectFields))
24 {
25 if (!in_array('*', $arSelectFields))
26 {
27 $selectCodes = array_fill_keys($arSelectFields, true);
28 if (!isset($selectCodes['CODE']))
29 $arSelectFields[] = 'CODE';
30 if (
31 (isset($selectCodes['MEASURE_TITLE']) || isset($selectCodes['SYMBOL_RUS']))
32 && !isset($selectCodes['SYMBOL_INTL'])
33 )
34 $arSelectFields[] = 'SYMBOL_INTL';
35 unset($selectCodes);
36 }
37 }
38 if (in_array('SYMBOL_RUS', $arSelectFields))
39 $arSelectFields[] = 'SYMBOL';
40
42 "ID" => array("FIELD" => "CM.ID", "TYPE" => "int"),
43 "CODE" => array("FIELD" => "CM.CODE", "TYPE" => "int"),
44 "MEASURE_TITLE" => array("FIELD" => "CM.MEASURE_TITLE", "TYPE" => "string"),
45 "SYMBOL_RUS" => array("FIELD" => "CM.SYMBOL_RUS", "TYPE" => "string"),
46 "SYMBOL" => array("FIELD" => "CM.SYMBOL_RUS", "TYPE" => "string"),
47 "SYMBOL_INTL" => array("FIELD" => "CM.SYMBOL_INTL", "TYPE" => "string"),
48 "SYMBOL_LETTER_INTL" => array("FIELD" => "CM.SYMBOL_LETTER_INTL", "TYPE" => "string"),
49 "IS_DEFAULT" => array("FIELD" => "CM.IS_DEFAULT", "TYPE" => "char"),
50 );
51 $arSqls = CCatalog::PrepareSql($arFields, $arOrder, $arFilter, $arGroupBy, $arSelectFields);
52 $arSqls["SELECT"] = str_replace("%%_DISTINCT_%%", "", $arSqls["SELECT"]);
53
54 if (empty($arGroupBy) && is_array($arGroupBy))
55 {
56 $strSql = "SELECT ".$arSqls["SELECT"]." FROM b_catalog_measure CM ".$arSqls["FROM"];
57 if (!empty($arSqls["WHERE"]))
58 $strSql .= " WHERE ".$arSqls["WHERE"];
59 if (!empty($arSqls["GROUPBY"]))
60 $strSql .= " GROUP BY ".$arSqls["GROUPBY"];
61
62 $dbRes = $DB->Query($strSql);
63 if ($arRes = $dbRes->Fetch())
64 return $arRes["CNT"];
65 else
66 return false;
67 }
68
69 $strSql = "SELECT ".$arSqls["SELECT"]." FROM b_catalog_measure CM ".$arSqls["FROM"];
70 if (!empty($arSqls["WHERE"]))
71 $strSql .= " WHERE ".$arSqls["WHERE"];
72 if (!empty($arSqls["GROUPBY"]))
73 $strSql .= " GROUP BY ".$arSqls["GROUPBY"];
74 if (!empty($arSqls["ORDERBY"]))
75 $strSql .= " ORDER BY ".$arSqls["ORDERBY"];
76
77 $intTopCount = 0;
78 $boolNavStartParams = (!empty($arNavStartParams) && is_array($arNavStartParams));
79 if ($boolNavStartParams && array_key_exists('nTopCount', $arNavStartParams))
80 {
81 $intTopCount = intval($arNavStartParams["nTopCount"]);
82 }
83 if ($boolNavStartParams && 0 >= $intTopCount)
84 {
85 $strSql_tmp = "SELECT COUNT('x') as CNT FROM b_catalog_measure CM ".$arSqls["FROM"];
86 if (!empty($arSqls["WHERE"]))
87 $strSql_tmp .= " WHERE ".$arSqls["WHERE"];
88 if (!empty($arSqls["GROUPBY"]))
89 $strSql_tmp .= " GROUP BY ".$arSqls["GROUPBY"];
90
91 $dbRes = $DB->Query($strSql_tmp);
92 $cnt = 0;
93 if (empty($arSqls["GROUPBY"]))
94 {
95 if ($arRes = $dbRes->Fetch())
96 $cnt = $arRes["CNT"];
97 }
98 else
99 {
100 $cnt = $dbRes->SelectedRowsCount();
101 }
102
103 $dbRes = new CDBResult();
104
105 $dbRes->NavQuery($strSql, $cnt, $arNavStartParams);
106 }
107 else
108 {
109 if ($boolNavStartParams && 0 < $intTopCount)
110 $strSql .= " LIMIT ".$intTopCount;
111
112 $dbRes = $DB->Query($strSql);
113 }
114
115 return new CCatalogMeasureResult($dbRes);
116 }
117}
static PrepareSql(&$arFields, $arOrder, $arFilter, $arGroupBy, $arSelectFields)
Определения catalog.php:389
Определения measure.php:11
Определения measure.php:6
static getList($arOrder=array(), $arFilter=array(), $arGroupBy=false, $arNavStartParams=false, $arSelectFields=array())
Определения measure.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
if( $daysToExpire >=0 &&$daysToExpire< 60 elseif)( $daysToExpire< 0)
Определения prolog_main_admin.php:393
$arRes
Определения options.php:104
$arFilter
Определения user_search.php:106
$dbRes
Определения yandex_detail.php:168