1C-Bitrix 25.700.0
Загрузка...
Поиск...
Не найдено
form_callformvalidator.php
См. документацию.
1<?php
2
3/***************************************
4 Form validator class
5***************************************/
6
8{
16 public static function GetList($FIELD_ID, $arFilter = [], $by = 'C_SORT', $order = 'ASC')
17 {
18 $arFilter["FIELD_ID"] = $FIELD_ID;
20 }
21
29 public static function GetListForm($WEB_FORM_ID, $arFilter = [], $by = 'C_SORT', $order = 'ASC')
30 {
31 $arFilter["WEB_FORM_ID"] = $WEB_FORM_ID;
33 }
34
35 public static function __getList($arFilter = array(), $by = 'C_SORT', $order = 'ASC')
36 {
37 global $DB;
38
39 $arBy = array("ACTIVE", "C_SORT", "VALIDATOR_SID", "FIELD_ID");
40 $by = strtoupper($by);
41 if (!in_array($by, $arBy))
42 $by = "C_SORT";
43
44 $order = strtoupper($order);
45 if ($order != "ASC" && $order != "DESC")
46 $order = "ASC";
47
48 $arWhere = array();
49 foreach ($arFilter as $key => $value)
50 {
51 switch ($key)
52 {
53 case "WEB_FORM_ID":
54 $arWhere[] = "FORM_ID='".intval($value)."'";
55 break;
56
57 case "FIELD_ID":
58 $arWhere[] = "FIELD_ID='".intval($value)."'";
59 break;
60
61 case "ACTIVE":
62 $arWhere[] = "ACTIVE='".($value == "N" ? "N" : "Y")."'";
63 break;
64
65 case "NAME":
66 $arWhere[] = "VALIDATOR_SID='".$DB->ForSql($value)."'";
67 break;
68 }
69 }
70
71 if (count($arWhere) > 0)
72 $strWhere = "WHERE ".implode(" AND ", $arWhere);
73 else
74 $strWhere = "";
75
76 $query = "SELECT * FROM b_form_field_validator ".$strWhere." ORDER BY ".$by." ".$order;
77 $rsList = $DB->Query($query);
78
79 $arCurrentValidators = array();
80 $rsFullList = CFormValidator::GetAllList();
81 $arFullList = $rsFullList->arResult;
82 while ($arCurVal = $rsList->Fetch())
83 {
84 foreach ($arFullList as $key => $arVal)
85 {
86 if ($arVal["NAME"] == $arCurVal["VALIDATOR_SID"])
87 {
88 $arCurVal["NAME"] = $arVal["NAME"];
89 unset($arCurVal["VALIDATOR_SID"]);
90 if ($arCurVal["PARAMS"] <> '')
91 {
92 $arCurVal["PARAMS"] = CFormValidator::GetSettingsArray($arVal, $arCurVal["PARAMS"]);
93 $arCurVal["PARAMS_FULL"] = CFormValidator::GetSettings($arVal);
94 }
95 $arCurrentValidators[] = $arCurVal;
96 break;
97 }
98 }
99 }
100
101 unset($rsList);
102 $rsList = new CDBResult();
103 $rsList->InitFromArray($arCurrentValidators);
104
105 return $rsList;
106 }
107
114 public static function GetAllList($arFilter = array())
115 {
116 if (is_array($arFilter) && !empty($arFilter))
117 {
118 $arType = $arFilter["TYPE"];
119
120 $is_filtered = true;
121 }
122 else
123 {
124 $is_filtered = false;
125 }
126
127 $ValList = GetModuleEvents("form", "onFormValidatorBuildList", true);
128 if (!empty($ValList))
129 {
130 $arResult = array();
131 foreach ($ValList as $arValidator)
132 {
133 $arValidatorInfo = ExecuteModuleEventEx($arValidator, $arParams = array());
134
135 if ($is_filtered)
136 {
137 if (is_array($arValidatorInfo["TYPES"]))
138 {
139 if (
140 (is_array($arType) && count(array_intersect($arType, $arValidatorInfo["TYPES"])))
141 ||
142 (!is_array($arType) && in_array($arType, $arValidatorInfo["TYPES"]))
143 )
144
145 $arResult[] = $arValidatorInfo;
146 }
147 }
148 else
149 {
150 $arResult[] = $arValidatorInfo;
151 }
152 }
153 }
154 else
155 {
156 return false;
157 }
158
159 unset($rsValList);
160 $rsValList = new CDBResult;
161 $rsValList->InitFromArray($arResult);
162
163 return $rsValList;
164 }
165
174 public static function Execute($arValidator, $arQuestion, $arAnswers, $arAnswerValues)
175 {
177 while ($arValidatorInfo = $rsValidators->Fetch())
178 {
179 if ($arValidatorInfo["NAME"] == $arValidator["NAME"])
180 break;
181 }
182
183 if ($arValidatorInfo)
184 {
185 if ($arValidatorInfo["HANDLER"])
186 {
187 return call_user_func($arValidatorInfo["HANDLER"], $arValidator["PARAMS"], $arQuestion, $arAnswers, $arAnswerValues);
188 }
189 }
190
191 return true;
192 }
193
203 public static function Set($WEB_FORM_ID, $FIELD_ID, $sValSID, $arParams = array(), $C_SORT = 100)
204 {
205 global $DB;
206
207 $rsValList = CFormValidator::GetAllList();
208 while ($arVal = $rsValList->Fetch())
209 {
210 if ($arVal["NAME"] == $sValSID)
211 {
212 $arQueryFields = array(
213 "~TIMESTAMP_X" => $DB->CurrentTimeFunction(),
214 "FORM_ID" => intval($WEB_FORM_ID),
215 "FIELD_ID" => intval($FIELD_ID),
216 "ACTIVE" => "Y",
217 "C_SORT" => intval($C_SORT),
218 "VALIDATOR_SID" => $DB->ForSql($sValSID),
219 );
220
221 if (!empty($arParams))
222 {
224 $arQueryFields["PARAMS"] = $strParams;
225 }
226
227 return $DB->Add("b_form_field_validator", $arQueryFields);
228 }
229 }
230
231 return false;
232 }
233
241 public static function SetBatch($WEB_FORM_ID, $FIELD_ID, $arValidators)
242 {
243 global $DB;
244
245 $rsValList = CFormValidator::GetAllList();
246 $arValList = array();
247 while ($arVal = $rsValList->Fetch())
248 {
249 $arValList[$arVal["NAME"]] = $arVal;
250 }
251
252 $C_SORT = 0;
253 foreach ($arValidators as $key => $arFieldVal)
254 {
255 if ($arVal = $arValList[$arFieldVal["NAME"]])
256 {
257 $C_SORT += 100;
258 $arQueryFields = array(
259 "~TIMESTAMP_X" => $DB->CurrentTimeFunction(),
260 "FORM_ID" => intval($WEB_FORM_ID),
261 "FIELD_ID" => intval($FIELD_ID),
262 "ACTIVE" => "Y",
263 "C_SORT" => $C_SORT,
264 "VALIDATOR_SID" => $arFieldVal["NAME"],
265 );
266
267 if (is_array($arFieldVal["PARAMS"]) && is_set($arVal, "CONVERT_TO_DB"))
268 {
269 $arParams = array();
270 foreach ($arFieldVal["PARAMS"] as $arParam)
271 {
272 $arParams[$arParam["NAME"]] = $arParam["VALUE"];
273 }
274
275 if (!empty($arParams))
276 {
278 $arQueryFields["PARAMS"] = $strParams;
279 }
280 }
281
282 $DB->Add("b_form_field_validator", $arQueryFields);
283 }
284 }
285 }
286
287 public static function GetSettingsString($arValidator, $arParams)
288 {
289 if (!empty($arParams) && is_set($arValidator, "CONVERT_TO_DB"))
290 {
291 $strParams = call_user_func($arValidator["CONVERT_TO_DB"], $arParams);
292 return $strParams;
293 }
294 }
295
296 public static function GetSettingsArray($arValidator, $strParams)
297 {
298 if ($strParams <> '' && is_set($arValidator, "CONVERT_FROM_DB"))
299 {
300 $arParams = call_user_func($arValidator["CONVERT_FROM_DB"], $strParams);
301 return $arParams;
302 }
303 }
304
305 public static function GetSettings($arValidator)
306 {
307 if (is_set($arValidator, "SETTINGS"))
308 {
309 $arSettings = call_user_func($arValidator["SETTINGS"]);
310 return $arSettings;
311 }
312 }
313
319 public static function Clear($FIELD_ID)
320 {
321 global $DB;
322 $query = "DELETE FROM b_form_field_validator WHERE FIELD_ID='".$DB->ForSql($FIELD_ID)."'";
323 $DB->Query($query);
324 }
325}
$arParams
Определения access_dialog.php:21
$arVal
Определения options.php:1785
$arResult
Определения generate_coupon.php:16
static GetSettingsArray($arValidator, $strParams)
Определения form_callformvalidator.php:296
static Execute($arValidator, $arQuestion, $arAnswers, $arAnswerValues)
Определения form_callformvalidator.php:174
static Clear($FIELD_ID)
Определения form_callformvalidator.php:319
static GetSettingsString($arValidator, $arParams)
Определения form_callformvalidator.php:287
static __getList($arFilter=array(), $by='C_SORT', $order='ASC')
Определения form_callformvalidator.php:35
static GetAllList($arFilter=array())
Определения form_callformvalidator.php:114
static GetList($FIELD_ID, $arFilter=[], $by='C_SORT', $order='ASC')
Определения form_callformvalidator.php:16
static SetBatch($WEB_FORM_ID, $FIELD_ID, $arValidators)
Определения form_callformvalidator.php:241
static GetListForm($WEB_FORM_ID, $arFilter=[], $by='C_SORT', $order='ASC')
Определения form_callformvalidator.php:29
static Set($WEB_FORM_ID, $FIELD_ID, $sValSID, $arParams=array(), $C_SORT=100)
Определения form_callformvalidator.php:203
static GetSettings($arValidator)
Определения form_callformvalidator.php:305
</td ></tr ></table ></td ></tr >< tr >< td class="bx-popup-label bx-width30"><?=GetMessage("PAGE_NEW_TAGS")?> array( $site)
Определения file_new.php:804
$rsValidators
Определения form_validator_props.php:15
$query
Определения get_search.php:11
global $DB
Определения cron_frame.php:29
ExecuteModuleEventEx($arEvent, $arParams=[])
Определения tools.php:5214
GetModuleEvents($MODULE_ID, $MESSAGE_ID, $bReturnArray=false)
Определения tools.php:5177
is_set($a, $k=false)
Определения tools.php:2133
$order
Определения payment.php:8
if(empty($signedUserToken)) $key
Определения quickway.php:257
</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
$arFilter
Определения user_search.php:106