1C-Bitrix 25.700.0
Загрузка...
Поиск...
Не найдено
base.php
См. документацию.
1<?php
2
3
4namespace Bitrix\Rest\Integration\View;
5
6
7use Bitrix\Main\Engine\Response\Converter;
8use Bitrix\Main\Error;
9use Bitrix\Main\NotImplementedException;
10use Bitrix\Main\Result;
11use Bitrix\Main\Type\Collection;
12use Bitrix\Main\Type\Date;
13use Bitrix\Main\Type\DateTime;
14use Bitrix\Rest\Integration\Externalizer;
15
16abstract class Base
17{
18 abstract public function getFields();
19
20 final public function prepareFieldInfos($fields): array
21 {
22 $result = [];
23 foreach($fields as $name => $info)
24 {
25 $attributs = isset($info['ATTRIBUTES']) ? $info['ATTRIBUTES'] : [];
26
27 if(in_array(Attributes::HIDDEN, $attributs, true))
28 {
29 continue;
30 }
31
32 $result[$name] = $this->prepareFieldAttributs($info, $attributs);
33 }
34
35 return $result;
36 }
37
38 protected function prepareFieldAttributs($info, $attributs): array
39 {
40 $intersectRequired = array_intersect([
44 ], $attributs);
45
46 return array(
47 'TYPE' => $info['TYPE'],
48 'IS_REQUIRED' => count($intersectRequired) > 0,
49 'IS_READ_ONLY' => in_array(Attributes::READONLY, $attributs, true),
50 'IS_IMMUTABLE' => in_array(Attributes::IMMUTABLE, $attributs, true)
51 );
52 }
53
54 final public function getListFieldInfo(array $fieldsInfo, $params=[]): array
55 {
56 $list = [];
57
58 $filter = isset($params['filter'])?$params['filter']:[];
59 $ignoredAttributes = isset($filter['ignoredAttributes'])?$filter['ignoredAttributes']:[];
60 $ignoredFields = isset($filter['ignoredFields'])?$filter['ignoredFields']:[];
61 $skipFields = isset($filter['skipFields'])?$filter['skipFields']:[];
62
63 foreach ($fieldsInfo as $name=>$info)
64 {
65 if(in_array($name, $ignoredFields))
66 {
67 continue;
68 }
69 elseif(in_array($name, $skipFields) == false)
70 {
71 if(isset($info['ATTRIBUTES']))
72 {
73 $skipAttr = array_intersect($ignoredAttributes, $info['ATTRIBUTES']);
74 if(!empty($skipAttr))
75 {
76 continue;
77 }
78 }
79 }
80
81 $list[$name] = $info;
82 }
83
84 return $list;
85 }
86
87 //region convert keys to snake case
89 {
90 return $this->convertKeysToSnakeCase($fields);
91 }
92
94 {
95 $converter = new Converter(Converter::VALUES | Converter::TO_SNAKE | Converter::TO_SNAKE_DIGIT | Converter::TO_UPPER);
96 return $converter->process($fields);
97 }
98
100 {
101 return $this->convertKeysToSnakeCase($fields);
102 }
103
105 {
106 $result = [];
107
108 $converter = new Converter(Converter::VALUES | Converter::TO_UPPER);
109 $converterForKey = new Converter(Converter::KEYS | Converter::TO_SNAKE | Converter::TO_SNAKE_DIGIT | Converter::TO_UPPER);
110
111 foreach ($converter->process($fields) as $key=>$value)
112 {
113 $result[$converterForKey->process($key)] = $value;
114 }
115
116 return $result;
117 }
118
119 public function convertKeysToSnakeCaseArguments($name, $arguments)
120 {
121 return $arguments;
122 }
123
124 final protected function convertKeysToSnakeCase($data)
125 {
126 $converter = new Converter(Converter::KEYS | Converter::RECURSIVE | Converter::TO_SNAKE | Converter::TO_SNAKE_DIGIT | Converter::TO_UPPER);
127 return $converter->process($data);
128 }
129 //endregion
130
131 //region internalize fields
132 public function internalizeArguments($name, $arguments): array
133 {
134 throw new NotImplementedException('Internalize arguments. The method '.$name.' is not implemented.');
135 }
136
137 public function internalizeFieldsList($arguments, $fieldsInfo = []): array
138 {
139 $fieldsInfo = empty($fieldsInfo) ? $this->getFields() : $fieldsInfo;
140 $filterFields = $fieldsInfo;
141 $orderFields = $fieldsInfo;
142
143 $fieldsInfo = $this->getListFieldInfo(
144 $fieldsInfo,
145 [
146 'filter' => [
147 'ignoredAttributes' => [
149 ],
150 ],
151 ]
152 );
155 [
156 'filter' => [
157 'ignoredAttributes' => [
161 ],
162 ],
163 ]
164 );
165 $orderFields = $this->getListFieldInfo(
166 $orderFields,
167 [
168 'filter' => [
169 'ignoredAttributes' => [
173 ],
174 ],
175 ]
176 );
177
178 $filter = isset($arguments['filter']) ? $this->internalizeFilterFields($arguments['filter'], $filterFields) : [];
179 $select = isset($arguments['select']) ? $this->internalizeSelectFields($arguments['select'], $fieldsInfo) : [];
180 $order = isset($arguments['order']) ? $this->internalizeOrderFields($arguments['order'], $orderFields) : [];
181
182 return [
183 'filter' => $filter,
184 'select' => $select,
185 'order' => $order,
186 ];
187 }
188
189 public function internalizeFieldsAdd($fields, $fieldsInfo=[]): array
190 {
191 $fieldsInfo = empty($fieldsInfo) ? $this->getFields():$fieldsInfo;
192
193 return $this->internalizeFields(
194 $fields,
195 $this->getListFieldInfo(
196 $fieldsInfo,
197 ['filter'=>['ignoredAttributes'=>[Attributes::HIDDEN, Attributes::READONLY]]]
198 )
199 );
200 }
201
202 public function internalizeFieldsUpdate($fields, $fieldsInfo=[]): array
203 {
204 $fieldsInfo = empty($fieldsInfo) ? $this->getFields():$fieldsInfo;
205
206 return $this->internalizeFields(
207 $fields,
208 $this->getListFieldInfo(
209 $fieldsInfo,
210 ['filter'=>['ignoredAttributes'=>[Attributes::HIDDEN, Attributes::READONLY, Attributes::IMMUTABLE]]]
211 )
212 );
213 }
214
215 final protected function internalizeFields($fields, array $fieldsInfo): array
216 {
217 $result = [];
218
219 foreach ($fields as $name=>$value)
220 {
221 $info = isset($fieldsInfo[$name]) ? $fieldsInfo[$name]:null;
222 if(!$info)
223 {
224 continue;
225 }
226
227 $r = $this->internalizeValue($value, $info);
228
229 if($r->isSuccess() === false)
230 {
231 continue;
232 }
233
234 $result[$this->canonicalizeField($name, $info)] = $r->getData()[0];
235 }
236 return $result;
237 }
238
239 final protected function internalizeValue($value, $info): Result
240 {
241 $r = new Result();
242
243 $type = isset($info['TYPE']) ? $info['TYPE']:'';
244
246 {
247 $value = floatval($value);
248 }
250 {
251 if (is_array($value))
252 {
253 Collection::normalizeArrayValuesByInt($value);
254 if (empty($value))
255 {
256 $value = 1;
257 }
258 }
259 else
260 {
261 $value = (int)$value;
262 }
263 }
265 {
266 $boolean = $this->internalizeBooleanValue($value);
267
268 if ($boolean->isSuccess())
269 {
270 $value = $boolean->getData()[0];
271 }
272 else
273 {
274 $r->addErrors($boolean->getErrors());
275 }
276 }
278 {
279 $date = $this->internalizeDateTimeValue($value);
280
281 if($date->isSuccess())
282 {
283 $value = $date->getData()[0];
284 }
285 else
286 {
287 $r->addErrors($date->getErrors());
288 }
289 }
291 {
292 $date = $this->internalizeDateValue($value);
293
294 if($date->isSuccess())
295 {
296 $value = $date->getData()[0];
297 }
298 else
299 {
300 $r->addErrors($date->getErrors());
301 }
302 }
304 {
305 $value = $this->internalizeFileValue($value);
306 }
307 else
308 {
309 $r = $this->internalizeExtendedTypeValue($value, $info);
310 if($r->isSuccess())
311 {
312 $value = $r->getData()[0];
313 }
314 }
315
316 if($r->isSuccess())
317 {
318 $r->setData([$value]);
319 }
320
321 return $r;
322 }
323
324 protected function internalizeBooleanValue($value): Result
325 {
326 $r = new Result();
327
328 if (
329 !is_string($value)
330 || !in_array($value, ['Y', 'N'])
331 )
332 {
333 $r->addError(new Error('Boolean value must be Y or N'));
334
335 return $r;
336 }
337
338 $value = $value === 'Y';
339 $r->setData([$value]);
340
341 return $r;
342 }
343
344 protected function internalizeDateValue($value): Result
345 {
346 $r = new Result();
347
348 $date = $this->internalizeDate($value);
349
350 if($date instanceof Date)
351 {
352 $value = $date;
353 }
354 else
355 {
356 $r->addError(new Error('Wrong type date'));
357 }
358
359 if($r->isSuccess())
360 {
361 $r->setData([$value]);
362 }
363
364 return $r;
365 }
366
367 protected function internalizeDateTimeValue($value): Result
368 {
369 $r = new Result();
370
371 $date = $this->internalizeDateTime($value);
372
373 if($date instanceof DateTime)
374 {
375 $value = $date;
376 }
377 else
378 {
379 $r->addError(new Error('Wrong type datetime'));
380 }
381
382 if($r->isSuccess())
383 {
384 $r->setData([$value]);
385 }
386
387 return $r;
388 }
389
390 final protected function internalizeDate($value)
391 {
392 if($value === '')
393 {
394 $date = '';
395 }
396 else
397 {
398 $time = strtotime($value);
399 $date = ($time) ? \Bitrix\Main\Type\Date::createFromTimestamp($time):'';
400 }
401 return $date;
402 }
403
404 final protected function internalizeDateTime($value)
405 {
406 if($value === '')
407 {
408 $date = '';
409 }
410 else
411 {
412 $time = strtotime($value);
413 $date = ($time) ? \Bitrix\Main\Type\DateTime::createFromTimestamp($time):'';
414 }
415 return $date;
416 }
417
418 final protected function internalizeFileValue($value)
419 {
420 $result = [];
421
422 $remove = isset($value['REMOVE']) && is_string($value['REMOVE']) && mb_strtoupper($value['REMOVE']) === 'Y';
423 $data = isset($value['FILE_DATA']) ? $value['FILE_DATA'] : [];
424 if (!is_array($data))
425 {
426 $data = [$data];
427 }
428
429 $data = $this->parserFileValue($data);
430
431 $content = isset($data['CONTENT']) ? $data['CONTENT']:'';
432 $name = isset($data['NAME']) ? $data['NAME']:'';
433
434 if(is_string($content) && $content !== '')
435 {
436 // Add/replace file
437 $fileInfo = \CRestUtil::saveFile($content, $name);
438 if(is_array($fileInfo))
439 {
440 $result = $fileInfo;
441 }
442 }
443 elseif($remove)
444 {
445 // Remove file
446 $result = ['del'=>'Y'];
447 }
448
449 return $result;
450 }
451
452 protected function internalizeExtendedTypeValue($value, $info): Result
453 {
454 $r = new Result();
455
456 $r->setData([$value]);
457
458 return $r;
459 }
460
461 final protected function parserFileValue(array $data): array
462 {
463 $count = count($data);
464
465 if($count > 1)
466 {
467 $name = $data[0];
468 $content = $data[1];
469 }
470 elseif($count === 1)
471 {
472 $name = '';
473 $content = $data[0];
474 }
475 else
476 {
477 $name = '';
478 $content = '';
479 }
480
481 return ['CONTENT'=>$content, 'NAME'=>$name];
482 }
483
484 final protected function internalizeFilterFields($fields, array $fieldsInfo): array
485 {
486 $result = [];
487
488 $fieldsInfo = empty($fieldsInfo)? $this->getFields():$fieldsInfo;
489
490 if (is_array($fields) && !empty($fields))
491 {
492 $listFieldsInfo = $this->getListFieldInfo(
493 $fieldsInfo,
494 [
495 'filter' => [
496 'ignoredAttributes' => [
500 ],
501 ],
502 ]
503 );
504
505 foreach ($fields as $rawName=>$value)
506 {
507 $field = \CSqlUtil::GetFilterOperation($rawName);
508
509 $info = isset($listFieldsInfo[$field['FIELD']]) ? $listFieldsInfo[$field['FIELD']]:null;
510 if (!$info)
511 {
512 continue;
513 }
514
515 $r = $this->internalizeValue($value, $info);
516
517 if ($r->isSuccess() === false)
518 {
519 continue;
520 }
521
522 $operation = mb_substr($rawName, 0, mb_strlen($rawName) - mb_strlen($field['FIELD']));
523 if (isset($info['FORBIDDEN_FILTERS'])
524 && is_array($info['FORBIDDEN_FILTERS'])
525 && in_array($operation, $info['FORBIDDEN_FILTERS'], true))
526 {
527 continue;
528 }
529
530 $rawName = $operation.$this->canonicalizeField($field['FIELD'], $info);
531
532 $result[$rawName] = $r->getData()[0];
533 }
534 }
535
536 return $result;
537 }
538
539 final protected function internalizeSelectFields($fields, array $fieldsInfo): array
540 {
541 $result = [];
542
543 $fieldsInfo = empty($fieldsInfo)? $this->getFields():$fieldsInfo;
544
545 $listFieldsInfo = $this->getListFieldInfo($fieldsInfo, ['filter'=>['ignoredAttributes'=>[Attributes::HIDDEN]]]);
546
547 if (empty($fields) || in_array('*', $fields, true))
548 {
549 $fields = array_keys($listFieldsInfo);
550 }
551
552 foreach ($fields as $name)
553 {
554 if (!is_scalar($name))
555 {
556 continue;
557 }
558 $info = isset($listFieldsInfo[$name]) ? $listFieldsInfo[$name]:null;
559 if (!$info)
560 {
561 continue;
562 }
563
564 $result[] = $this->canonicalizeField($name, $info);
565 }
566
567 return $result;
568 }
569
570 final protected function internalizeOrderFields($fields, array $fieldsInfo): array
571 {
572 $result = [];
573
574 $fieldsInfo = empty($fieldsInfo)? $this->getFields():$fieldsInfo;
575
576 if (is_array($fields) && count($fields)>0)
577 {
578 $listFieldsInfo = $this->getListFieldInfo(
579 $fieldsInfo,
580 [
581 'filter' => [
582 'ignoredAttributes' => [
586 ],
587 ],
588 ]
589 );
590
591 foreach ($fields as $field => $order)
592 {
593 $info = isset($listFieldsInfo[$field]) ? $listFieldsInfo[$field]:null;
594 if (!$info)
595 {
596 continue;
597 }
598
599 $result[$this->canonicalizeField($field, $info)] = $order;
600 }
601 }
602
603 return $result;
604 }
605
606 final protected function internalizeListFields($list, $fieldsInfo=[]): array
607 {
608 $result = [];
609
610 $fieldsInfo = empty($fieldsInfo) ? $this->getFields():$fieldsInfo;
611
612 $listFieldsInfo = $this->getListFieldInfo($fieldsInfo, ['filter'=>['ignoredAttributes'=>[Attributes::HIDDEN]]]);
613
614 if(is_array($list) && count($list)>0)
615 {
616 foreach ($list as $k=>$item)
617 {
618 $result[$k] = $this->internalizeFields($item, $listFieldsInfo);
619 }
620 }
621 return $result;
622 }
623 //endregion
624
625 // region externalize fields
626 final protected function externalizeValue($name, $value, $fields, $fieldsInfo): Result
627 {
628 $r = new Result();
629
630 $type = isset($fieldsInfo[$name]['TYPE']) ? $fieldsInfo[$name]['TYPE']:'';
631
632 if($this->isEmptyValue($value, $type))
633 {
634 $value = $this->externalizeEmptyValue($name, $value, $fields, $fieldsInfo);
635 }
636 else
637 {
639 {
640 $value = floatval($value);
641 }
643 {
644 $value = (int)$value;
645 }
647 {
648 $externalizedValue = $this->externalizeBooleanValue($value);
649
650 if($externalizedValue->isSuccess())
651 {
652 $value = $externalizedValue->getData()[0];
653 }
654 else
655 {
656 $r->addErrors($externalizedValue->getErrors());
657 }
658 }
660 {
661 $date = $this->externalizeDateValue($value);
662
663 if($date->isSuccess())
664 {
665 $value = $date->getData()[0];
666 }
667 else
668 {
669 $r->addErrors($date->getErrors());
670 }
671 }
673 {
674 $date = $this->externalizeDateTimeValue($value);
675
676 if($date->isSuccess())
677 {
678 $value = $date->getData()[0];
679 }
680 else
681 {
682 $r->addErrors($date->getErrors());
683 }
684 }
686 {
687 $value = $this->externalizeFileValue($name, $value, $fields);
688 }
689 else
690 {
691 $r = $this->externalizeExtendedTypeValue($name, $value, $fields, $fieldsInfo);
692 if($r->isSuccess())
693 {
694 $value = $r->getData()[0];
695 }
696 }
697 }
698
699 if($r->isSuccess())
700 {
701 $r->setData([$value]);
702 }
703
704 return $r;
705 }
706
707 private function isEmptyValue(mixed $value, string $type): bool
708 {
709 if (
711 && $value === false
712 )
713 {
714 return false;
715 }
716
717 return empty($value);
718 }
719
720 final protected function externalizeFields($fields, $fieldsInfo): array
721 {
722 $result = [];
723
724 if(is_array($fields) && count($fields)>0)
725 {
726 foreach($fields as $name => $value)
727 {
728 $name = $this->aliasesField($name, $fieldsInfo);
729
730 $info = isset($fieldsInfo[$name]) ? $fieldsInfo[$name] : null;
731 if (!$info)
732 {
733 continue;
734 }
735
736 $r = $this->externalizeValue($name, $value, $fields, $fieldsInfo);
737
738 if ($r->isSuccess() === false)
739 {
740 continue;
741 }
742
743 $result[$name] = $r->getData()[0];
744 }
745 }
746 return $result;
747 }
748
749 protected function externalizeEmptyValue($name, $value, $fields, $fieldsInfo)
750 {
751 return null;
752 }
753
754 final protected function externalizeBooleanValue($value): Result
755 {
756 $r = new Result();
757
758 if (!is_bool($value))
759 {
760 $r->addError(new Error('Boolean value must be true of false'));
761
762 return $r;
763 }
764
765 $value = $value ? 'Y' : 'N';
766 $r->setData([$value]);
767
768 return $r;
769 }
770
771 final protected function externalizeDateValue($value): Result
772 {
773 $r = new Result();
774
775 $time = strtotime($value);
776 $value = ($time) ? \Bitrix\Main\Type\Date::createFromTimestamp($time):'';
777
778 if($r->isSuccess())
779 {
780 $r->setData([$value]);
781 }
782
783 return $r;
784 }
785
786 final protected function externalizeDateTimeValue($value): Result
787 {
788 $r = new Result();
789
790 $time = strtotime($value);
791 $value = ($time) ? \Bitrix\Main\Type\DateTime::createFromTimestamp($time):'';
792
793 if($r->isSuccess())
794 {
795 $r->setData([$value]);
796 }
797
798 return $r;
799 }
800
807 protected function externalizeFileValue($name, $value, $fields): array
808 {
809 throw new NotImplementedException('Externalize file. The method externalizeFile is not implemented.');
810 }
811
819 protected function externalizeExtendedTypeValue($name, $value, $fields, $fieldsInfo): Result
820 {
821 $r = new Result();
822
823 $r->setData([$value]);
824
825 return $r;
826 }
827
828 public function externalizeListFields($list, $fieldsInfo=[]): array
829 {
830 $result = [];
831
832 $fieldsInfo = empty($fieldsInfo) ? $this->getFields():$fieldsInfo;
833
834 $listFieldInfo = $this->getListFieldInfo($fieldsInfo, ['filter'=>['ignoredAttributes'=>[Attributes::HIDDEN]]]);
835
836 if(is_array($list) && count($list)>0)
837 {
838 foreach($list as $k=>$fields)
839 $result[$k] = $this->externalizeFields($fields, $listFieldInfo);
840 }
841 return $result;
842 }
843
851 {
852 throw new NotImplementedException('Externalize result. The method '.$name.' is not implemented.');
853 }
854
855 public function externalizeFieldsGet($fields, $fieldsInfo=[]): array
856 {
857 $fieldsInfo = empty($fieldsInfo) ? $this->getFields():$fieldsInfo;
858
859 return $this->externalizeFields(
860 $fields,
861 $this->getListFieldInfo(
862 $fieldsInfo,
863 ['filter'=>['ignoredAttributes'=>[Attributes::HIDDEN]]]
864 )
865 );
866 }
867 // endregion
868
869 //region check fields
870 final public function checkFieldsAdd($fields): Result
871 {
872 $r = new Result();
873
874 $required = $this->checkRequiredFieldsAdd($fields);
875 if(!$required->isSuccess())
876 $r->addError(new Error('Required fields: '.implode(', ', $required->getErrorMessages())));
877
878 return $r;
879 }
880
881 final public function checkFieldsUpdate($fields): Result
882 {
883 $r = new Result();
884
885 $required = $this->checkRequiredFieldsUpdate($fields);
886 if(!$required->isSuccess())
887 $r->addError(new Error('Required fields: '.implode(', ', $required->getErrorMessages())));
888
889 return $r;
890 }
891
892 public function checkFieldsList($arguments): Result
893 {
894 return new Result();
895 }
896
897 public function checkArguments($name, $arguments): Result
898 {
899 return new Result();
900 }
901
903 {
904 return $this->checkRequiredFields($fields, $this->getListFieldInfo(
905 $this->getFields(),
906 ['filter'=>['ignoredAttributes'=>[Attributes::HIDDEN, Attributes::READONLY, Attributes::REQUIRED_UPDATE]]]
907 ));
908 }
909
911 {
912 return $this->checkRequiredFields($fields, $this->getListFieldInfo(
913 $this->getFields(),
915 ));
916 }
917
918 final protected function checkRequiredFields($fields, array $fieldsInfo, $params=[]): Result
919 {
920 $r = new Result();
921
922 $addRequiredFields = isset($params['+required']) ? $params['+required']:[];
923 $delRequiredFields = isset($params['-required']) ? $params['-required']:[];
924
925 foreach ($this->prepareFieldInfos($fieldsInfo) as $name=>$info)
926 {
927 if(in_array($name, $delRequiredFields))
928 {
929 continue;
930 }
931 elseif($info['IS_REQUIRED'] == 'Y' || in_array($name, $addRequiredFields))
932 {
933 if(!isset($fields[$name]))
935 }
936 }
937
938 return $r;
939 }
940 //endregion
941
942 //region canonical
943 final protected function canonicalizeField($name, $info): string
944 {
945 $canonical = $info['CANONICAL_NAME'] ?? null;
946 if ($canonical)
947 {
948 return $canonical;
949 }
950 else
951 {
952 return $name;
953 }
954 }
955 //endregion
956
957 //region aliases
958 final protected function aliasesField($name, $fieldsInfo): string
959 {
960 $alias = $name;
961
962 $item = array_filter($fieldsInfo, function($info) use ($name){
963 $canonical = $info['CANONICAL_NAME'] ?? null;
964 if (!$canonical)
965 {
966 return false;
967 }
968
969 return $canonical === $name;
970 });
971
972 if (is_array($item) && !empty($item))
973 {
974 $alias = array_keys($item)[0];
975 }
976
977 return $alias;
978 }
979 //endregion
980}
$count
Определения admin_tab.php:4
$type
Определения options.php:106
Определения error.php:15
Определения date.php:9
static convertKeysToCamelCase($fields)
Определения externalizer.php:115
checkRequiredFieldsAdd($fields)
Определения base.php:902
externalizeExtendedTypeValue($name, $value, $fields, $fieldsInfo)
Определения base.php:819
aliasesField($name, $fieldsInfo)
Определения base.php:958
checkFieldsUpdate($fields)
Определения base.php:881
parserFileValue(array $data)
Определения base.php:461
canonicalizeField($name, $info)
Определения base.php:943
internalizeFieldsList($arguments, $fieldsInfo=[])
Определения base.php:137
internalizeSelectFields($fields, array $fieldsInfo)
Определения base.php:539
externalizeFields($fields, $fieldsInfo)
Определения base.php:720
internalizeArguments($name, $arguments)
Определения base.php:132
internalizeFieldsAdd($fields, $fieldsInfo=[])
Определения base.php:189
getListFieldInfo(array $fieldsInfo, $params=[])
Определения base.php:54
internalizeFilterFields($fields, array $fieldsInfo)
Определения base.php:484
externalizeValue($name, $value, $fields, $fieldsInfo)
Определения base.php:626
internalizeBooleanValue($value)
Определения base.php:324
convertKeysToSnakeCaseOrder($fields)
Определения base.php:104
internalizeDateTimeValue($value)
Определения base.php:367
convertKeysToSnakeCaseArguments($name, $arguments)
Определения base.php:119
externalizeFieldsGet($fields, $fieldsInfo=[])
Определения base.php:855
prepareFieldInfos($fields)
Определения base.php:20
checkArguments($name, $arguments)
Определения base.php:897
convertKeysToSnakeCase($data)
Определения base.php:124
internalizeFieldsUpdate($fields, $fieldsInfo=[])
Определения base.php:202
externalizeFileValue($name, $value, $fields)
Определения base.php:807
externalizeBooleanValue($value)
Определения base.php:754
internalizeOrderFields($fields, array $fieldsInfo)
Определения base.php:570
convertKeysToSnakeCaseSelect($fields)
Определения base.php:93
externalizeDateValue($value)
Определения base.php:771
checkRequiredFieldsUpdate($fields)
Определения base.php:910
externalizeListFields($list, $fieldsInfo=[])
Определения base.php:828
externalizeResult($name, $fields)
Определения base.php:850
prepareFieldAttributs($info, $attributs)
Определения base.php:38
internalizeFields($fields, array $fieldsInfo)
Определения base.php:215
checkFieldsAdd($fields)
Определения base.php:870
internalizeDate($value)
Определения base.php:390
internalizeListFields($list, $fieldsInfo=[])
Определения base.php:606
convertKeysToSnakeCaseFields($fields)
Определения base.php:88
internalizeValue($value, $info)
Определения base.php:239
internalizeFileValue($value)
Определения base.php:418
convertKeysToSnakeCaseFilter($fields)
Определения base.php:99
internalizeDateValue($value)
Определения base.php:344
externalizeDateTimeValue($value)
Определения base.php:786
internalizeDateTime($value)
Определения base.php:404
checkRequiredFields($fields, array $fieldsInfo, $params=[])
Определения base.php:918
checkFieldsList($arguments)
Определения base.php:892
externalizeEmptyValue($name, $value, $fields, $fieldsInfo)
Определения base.php:749
internalizeExtendedTypeValue($value, $info)
Определения base.php:452
static GetFilterOperation($key)
Определения sql_util.php:45
$content
Определения commerceml.php:144
$data['IS_AVAILABLE']
Определения .description.php:13
</td ></tr ></table ></td ></tr >< tr >< td class="bx-popup-label bx-width30"><?=GetMessage("PAGE_NEW_TAGS")?> array( $site)
Определения file_new.php:804
$result
Определения get_property_values.php:14
$select
Определения iblock_catalog_list.php:194
$filter
Определения iblock_catalog_list.php:54
$filterFields
Определения iblock_catalog_list.php:55
if($NS['step']==6) if( $NS[ 'step']==7) if(COption::GetOptionInt('main', 'disk_space', 0) > 0) $info
Определения backup.php:924
$name
Определения menu_edit.php:35
Определения collection.php:2
$order
Определения payment.php:8
$time
Определения payment.php:61
if( $daysToExpire >=0 &&$daysToExpire< 60 elseif)( $daysToExpire< 0)
Определения prolog_main_admin.php:393
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
if($inWords) echo htmlspecialcharsbx(Number2Word_Rus(roundEx($totalVatSum $params['CURRENCY']
Определения template.php:799
$k
Определения template_pdf.php:567
$fields
Определения yandex_run.php:501