1C-Bitrix 25.700.0
Загрузка...
Поиск...
Не найдено
group.php
См. документацию.
1<?php
3
5{
6 public function Add($arFields)
7 {
8 global $DB;
9
10 if (!$this->CheckFields($arFields, 0))
11 {
12 return false;
13 }
14
15 $ID = $DB->Add('b_cluster_group', $arFields);
16
17 return $ID;
18 }
19
20 public function Delete($ID)
21 {
22 global $DB, $APPLICATION;
23 $aMsg = [];
24 $ID = intval($ID);
25
26 $rsWebNodes = CClusterWebNode::GetList([], ['=GROUP_ID' => $ID]);
27 if ($rsWebNodes->Fetch())
28 {
29 $aMsg[] = ['text' => GetMessage('CLU_GROUP_HAS_WEBNODE')];
30 }
31
32 $rsDBNodes = CClusterDBNode::GetList([] ,['=GROUP_ID' => $ID]);
33 if ($rsDBNodes->Fetch())
34 {
35 $aMsg[] = ['text' => GetMessage('CLU_GROUP_HAS_DBNODE')];
36 }
37
38 $cacheType = COption::GetOptionString('cluster', 'cache_type', 'memcache');
39 if ($cacheType == 'memcache')
40 {
41 $cacheServers = CClusterMemcache::GetList();
42 }
43 else
44 {
45 $cacheServers = CClusterRedis::GetList();
46 }
47
48 while ($server = $cacheServers->Fetch())
49 {
50 if ($server['GROUP_ID'] == $ID)
51 {
52 $aMsg[] = ['text' => GetMessage('CLU_GROUP_HAS_CACHESERVER')];
53 break;
54 }
55 }
56
57 if (empty($aMsg))
58 {
59 $res = $DB->Query('DELETE FROM b_cluster_group WHERE ID = ' . $ID, false, '', ['fixed_connection' => true]);
60 }
61 else
62 {
63 $e = new CAdminException($aMsg);
64 $APPLICATION->ThrowException($e);
65 return false;
66 }
67 return $res;
68 }
69
70 public function Update($ID, $arFields)
71 {
72 global $DB;
73 $ID = intval($ID);
74
75 if ($ID <= 0)
76 {
77 return false;
78 }
79
80 if (!$this->CheckFields($arFields, $ID))
81 {
82 return false;
83 }
84
85 $strUpdate = $DB->PrepareUpdate('b_cluster_group', $arFields);
86 if ($strUpdate <> '')
87 {
88 $strSql = '
89 UPDATE b_cluster_group SET
90 ' . $strUpdate . '
91 WHERE ID = ' . $ID . '
92 ';
93 if (!$DB->Query($strSql, false, '', ['fixed_connection' => true]))
94 {
95 return false;
96 }
97 }
98
99 return true;
100 }
101
102 public function CheckFields(&$arFields, $ID)
103 {
104 global $APPLICATION;
105 $aMsg = [];
106
107 unset($arFields['ID']);
108
109 $arFields['NAME'] = trim($arFields['NAME']);
110 if ($arFields['NAME'] === '')
111 {
112 $aMsg[] = ['id' => 'NAME', 'text' => GetMessage('CLU_GROUP_EMPTY_NAME')];
113 }
114
115 if (!empty($aMsg))
116 {
117 $e = new CAdminException($aMsg);
118 $APPLICATION->ThrowException($e);
119 return false;
120 }
121 return true;
122 }
123
124 public static function GetList($arOrder=false, $arFilter=false, $arSelect=false)
125 {
126 global $DB;
127
128 if (!is_array($arSelect))
129 {
130 $arSelect = [];
131 }
132 if (count($arSelect) < 1)
133 {
134 $arSelect = [
135 'ID',
136 'NAME',
137 ];
138 }
139
140 if (!is_array($arOrder))
141 {
142 $arOrder = [];
143 }
144
145 $arQueryOrder = [];
146 foreach ($arOrder as $strColumn => $strDirection)
147 {
148 $strColumn = mb_strtoupper($strColumn);
149 $strDirection = mb_strtoupper($strDirection) === 'ASC' ? 'ASC' : 'DESC';
150 switch ($strColumn)
151 {
152 case 'ID':
153 case 'NAME':
154 $arSelect[] = $strColumn;
155 $arQueryOrder[$strColumn] = $strColumn . ' ' . $strDirection;
156 break;
157 }
158 }
159
160 $arQuerySelect = [];
161 foreach ($arSelect as $strColumn)
162 {
163 $strColumn = mb_strtoupper($strColumn);
164 switch ($strColumn)
165 {
166 case 'ID':
167 case 'NAME':
168 $arQuerySelect[$strColumn] = 'g.' . $strColumn;
169 break;
170 }
171 }
172 if (count($arQuerySelect) < 1)
173 {
174 $arQuerySelect = ['ID' => 'w.ID'];
175 }
176
177 $obQueryWhere = new CSQLWhere;
178 $arFields = [
179 'ID' => [
180 'TABLE_ALIAS' => 'g',
181 'FIELD_NAME' => 'g.ID',
182 'FIELD_TYPE' => 'int',
183 'JOIN' => false,
184 ],
185 ];
186 $obQueryWhere->SetFields($arFields);
187
188 if (!is_array($arFilter))
189 {
190 $arFilter = [];
191 }
192 $strQueryWhere = $obQueryWhere->GetQuery($arFilter);
193
194 $bDistinct = $obQueryWhere->bDistinctReqired;
195
196 $strSql = '
197 SELECT ' . ($bDistinct ? 'DISTINCT' : '') . '
198 ' . implode(', ', $arQuerySelect) . '
199 FROM
200 b_cluster_group g
201 ' . $obQueryWhere->GetJoins() . '
202 ';
203
204 if ($strQueryWhere)
205 {
206 $strSql .= '
207 WHERE
208 ' . $strQueryWhere . '
209 ';
210 }
211
212 if (count($arQueryOrder) > 0)
213 {
214 $strSql .= '
215 ORDER BY
216 ' . implode(', ', $arQueryOrder) . '
217 ';
218 }
219
220 return $DB->Query($strSql, false, '', ['fixed_connection' => true]);
221 }
222
223 public static function GetArrayByID($ID)
224 {
225 $rs = CClusterGroup::GetList([], ['=ID' => $ID]);
226 return $rs->Fetch();
227 }
228}
global $APPLICATION
Определения include.php:80
static GetList($arOrder=false, $arFilter=false, $arSelect=false)
Определения dbnode.php:284
Определения group.php:5
Delete($ID)
Определения group.php:20
CheckFields(&$arFields, $ID)
Определения group.php:102
static GetList($arOrder=false, $arFilter=false, $arSelect=false)
Определения group.php:124
static GetArrayByID($ID)
Определения group.php:223
Add($arFields)
Определения group.php:6
Update($ID, $arFields)
Определения group.php:70
static GetList($arOrder=false, $arFilter=false, $arSelect=false)
Определения webnode.php:108
Определения sqlwhere.php:1359
$arFields
Определения dblapprove.php:5
$res
Определения filter_act.php:7
if($ajaxMode) $ID
Определения get_user.php:27
global $DB
Определения cron_frame.php:29
IncludeModuleLangFile($filepath, $lang=false, $bReturnArray=false)
Определения tools.php:3778
GetMessage($name, $aReplace=null)
Определения tools.php:3397
</p ></td >< td valign=top style='border-top:none;border-left:none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;padding:0cm 2.0pt 0cm 2.0pt;height:9.0pt'>< p class=Normal align=center style='margin:0cm;margin-bottom:.0001pt;text-align:center;line-height:normal'>< a name=ТекстовоеПоле54 ></a ><?=($taxRate > count( $arTaxList) > 0) ? $taxRate."%"
Определения waybill.php:936
$rs
Определения action.php:82
$arFilter
Определения user_search.php:106