1C-Bitrix 25.700.0
Загрузка...
Поиск...
Не найдено
dispatcher.php
См. документацию.
1<?php
2namespace Bitrix\Main\UserField;
3
4use Bitrix\Main\Error;
5use Bitrix\Main\ErrorCollection;
6use Bitrix\Main\Localization\Loc;
7use Bitrix\Main\ObjectNotFoundException;
8
10{
14 protected static $instance;
15
16 protected $languageId = LANGUAGE_ID;
17
18 protected $fieldList = array();
20 protected $userFieldList = array();
22
23 protected $result = array();
24
28 protected $view = null;
29
34
39
44
50 public static function instance()
51 {
52 if(!static::$instance)
53 {
54 static::$instance = new static();
55 }
56 return static::$instance;
57 }
58
59 public function __construct()
60 {
61 $this->errorCollection = new ErrorCollection();
62 $this->assetCollectior = new AssetCollector();
63 }
64
70 public function setLanguage($languageId)
71 {
72 $this->languageId = $languageId;
73 }
74
75 protected function validateFieldChangeRequest($fieldInfo)
76 {
77 if(!$this->checkFieldDescription($fieldInfo))
78 {
79 return false;
80 }
81
82 if(!SignatureHelperCreate::validateSignature($this->getSignatureManager(), $fieldInfo, $fieldInfo['SIGNATURE']))
83 {
84 $this->addError(Loc::getMessage('MAIN_UF_DISPATCHER_ERROR_SIGNATURE'), $fieldInfo['FIELD']);
85
86 return false;
87 }
88
89 return true;
90 }
91
92 public function createField($fieldInfo)
93 {
94 if(!$this->validateFieldChangeRequest($fieldInfo))
95 {
96 return false;
97 }
98
99 $fieldId = $this->createNewField($fieldInfo);
100
101 if($fieldId)
102 {
103 if($fieldInfo['USER_TYPE_ID'] === \CUserTypeEnum::USER_TYPE_ID)
104 {
105 $this->createNewFieldEnumValues($fieldId, $fieldInfo);
106 }
107
108 $addFieldInfo = array(
109 'ENTITY_ID' => $fieldInfo['ENTITY_ID'],
110 'FIELD' => $fieldInfo['FIELD'],
111 'CONTEXT' => $fieldInfo['CONTEXT'] ?? null,
112 );
113
114 $addFieldInfo['SIGNATURE'] = $this->getSignature($addFieldInfo);
115
116 $this->storeFieldSignature($addFieldInfo['ENTITY_ID'], $addFieldInfo['FIELD'], $addFieldInfo['SIGNATURE']);
117
118 $this->addField($addFieldInfo);
119 }
120
121 return $fieldId > 0;
122 }
123
124 public function editField($fieldInfo)
125 {
126 if(!$this->validateFieldChangeRequest($fieldInfo))
127 {
128 return false;
129 }
130
131 $currentFieldInfo = $this->getUserFieldInfo($fieldInfo['ENTITY_ID'], $fieldInfo['FIELD']);
132
133 $fieldId = $this->updateField($fieldInfo);
134 if($fieldId)
135 {
136 if($currentFieldInfo['USER_TYPE_ID'] === \CUserTypeEnum::USER_TYPE_ID)
137 {
138 $this->updateFieldEnumValues($fieldId, $fieldInfo);
139 }
140
141 $this->reloadUserFieldInfo($fieldInfo['ENTITY_ID']);
142
143 $addFieldInfo = [
144 'ENTITY_ID' => $fieldInfo['ENTITY_ID'],
145 'ENTITY_VALUE_ID' => $fieldInfo['ENTITY_VALUE_ID'],
146 'FIELD' => $fieldInfo['FIELD'],
147 'VALUE' => $fieldInfo['VALUE'],
148 'CONTEXT' => $fieldInfo['CONTEXT'] ?? null,
149 ];
150
151 $addFieldInfo['SIGNATURE'] = $this->getSignature($addFieldInfo);
152
153 $this->storeFieldSignature($addFieldInfo['ENTITY_ID'], $addFieldInfo['FIELD'], $addFieldInfo['SIGNATURE']);
154
155 $this->addField($addFieldInfo);
156 }
157
158 return true;
159
160 }
161
162 public function deleteField($fieldInfo)
163 {
164 if(!$this->validateFieldChangeRequest($fieldInfo))
165 {
166 return false;
167 }
168
169 $userFieldInfo = $this->getUserFieldInfo($fieldInfo['ENTITY_ID'], $fieldInfo['FIELD']);
170
171 if(!$userFieldInfo)
172 {
173 $this->addError('Field not found', $fieldInfo['FIELD']);
174 }
175 else
176 {
177 $userTypeEntity = new \CUserTypeEntity();
178 $deleteResult = $userTypeEntity->delete($userFieldInfo['ID']);
179
180 if(!$deleteResult)
181 {
182 $this->getErrorFromApplicationException($fieldInfo);
183
184 return false;
185 }
186
187 $this->reloadUserFieldInfo($fieldInfo['ENTITY_ID']);
188
189 return true;
190 }
191
192 return false;
193 }
194
195 public function validateField($fieldInfo)
196 {
197 $userFieldInfo = $this->getUserFieldInfo($fieldInfo['ENTITY_ID'], $fieldInfo['FIELD']);
198
199 if(!$userFieldInfo)
200 {
201 $this->addError('Field not found', $fieldInfo['FIELD']);
202 }
203 else
204 {
205 if(!isset($this->validateFieldList[$fieldInfo['ENTITY_ID']]))
206 {
207 $this->validateFieldList[$fieldInfo['ENTITY_ID']] = array();
208 }
209
210 if(!isset($this->validateFieldList[$fieldInfo['ENTITY_ID']][$fieldInfo['ENTITY_VALUE_ID']]))
211 {
212 $this->validateFieldList[$fieldInfo['ENTITY_ID']][$fieldInfo['ENTITY_VALUE_ID']] = array();
213 }
214
215 $this->validateFieldList[$fieldInfo['ENTITY_ID']][$fieldInfo['ENTITY_VALUE_ID']][$fieldInfo['FIELD']] = $fieldInfo['VALUE'] ?? null;
216 }
217 }
218
219 protected function processValidate()
220 {
222
223 foreach($this->validateFieldList as $entityId => $entityFields)
224 {
225 foreach($entityFields as $entityValueId => $fieldList)
226 {
227 $validateResult = $USER_FIELD_MANAGER->CheckFields($entityId, $entityValueId, $fieldList);
228
229 if(!$validateResult)
230 {
231 $e = $APPLICATION->GetException();
235 $errorMessages = $e->GetMessages();
236
237 foreach($errorMessages as $message)
238 {
239 $this->addError($message['text'], $message['id']);
240 }
241 }
242 }
243 }
244
245 $this->result = array_merge($this->result, $this->getValidateErrorList());
246 $this->clearErrorList();
247 }
248
249 protected function createNewField(array $fieldInfo)
250 {
251 $userTypeEntity = new \CUserTypeEntity();
252 $fieldId = $userTypeEntity->add(array(
253 'ENTITY_ID' => $fieldInfo['ENTITY_ID'],
254 'FIELD_NAME' => $fieldInfo['FIELD'],
255 'USER_TYPE_ID' => $fieldInfo['USER_TYPE_ID'],
256 'MULTIPLE' => $fieldInfo['MULTIPLE'],
257 'MANDATORY' => $fieldInfo['MANDATORY'],
258 'SHOW_FILTER' => $fieldInfo['SHOW_FILTER'] ?? null,
259 'SHOW_IN_LIST' => $fieldInfo['SHOW_IN_LIST'] ?? null,
260 'EDIT_IN_LIST' => $fieldInfo['EDIT_IN_LIST'] ?? null,
261 'IS_SEARCHABLE' => $fieldInfo['IS_SEARCHABLE'] ?? null,
262 'SETTINGS' => $fieldInfo['SETTINGS'] ?? null,
263 'EDIT_FORM_LABEL' => $this->checkLabel($fieldInfo['EDIT_FORM_LABEL'] ?? null),
264 'LIST_COLUMN_LABEL' => $this->checkLabel($fieldInfo['LIST_COLUMN_LABEL'] ?? null),
265 'LIST_FILTER_LABEL' => $this->checkLabel($fieldInfo['LIST_FILTER_LABEL'] ?? null),
266 'ERROR_MESSAGE' => $this->checkLabel($fieldInfo['ERROR_MESSAGE'] ?? null),
267 'HELP_MESSAGE' => $this->checkLabel($fieldInfo['HELP_MESSAGE'] ?? null),
268 'CONTEXT_PARAMS' => $fieldInfo['CONTEXT_PARAMS'] ?? null,
269 ));
270
271 if(!$fieldId)
272 {
273 $this->getErrorFromApplicationException($fieldInfo);
274 }
275
276 return $fieldId;
277 }
278
279 protected function updateField(array $fieldInfo)
280 {
281 $userFieldInfo = $this->getUserFieldInfo($fieldInfo['ENTITY_ID'], $fieldInfo['FIELD']);
282
283 if(is_array($userFieldInfo))
284 {
285 $updateField = array();
286
287 if(array_key_exists('MANDATORY', $fieldInfo))
288 {
289 $updateField['MANDATORY'] = $fieldInfo['MANDATORY'];
290 }
291
292 if(array_key_exists('SHOW_FILTER', $fieldInfo))
293 {
294 $updateField['SHOW_FILTER'] = $fieldInfo['SHOW_FILTER'];
295 }
296
297 if(array_key_exists('SHOW_IN_LIST', $fieldInfo))
298 {
299 $updateField['SHOW_IN_LIST'] = $fieldInfo['SHOW_IN_LIST'];
300 }
301
302 if(array_key_exists('EDIT_IN_LIST', $fieldInfo))
303 {
304 $updateField['EDIT_IN_LIST'] = $fieldInfo['EDIT_IN_LIST'];
305 }
306
307 if(array_key_exists('IS_SEARCHABLE', $fieldInfo))
308 {
309 $updateField['IS_SEARCHABLE'] = $fieldInfo['IS_SEARCHABLE'];
310 }
311
312 if(array_key_exists('EDIT_FORM_LABEL', $fieldInfo))
313 {
314 $updateField['EDIT_FORM_LABEL'] = $this->checkLabel($fieldInfo['EDIT_FORM_LABEL']);
315 }
316
317 if(array_key_exists('LIST_COLUMN_LABEL', $fieldInfo))
318 {
319 $updateField['LIST_COLUMN_LABEL'] = $this->checkLabel($fieldInfo['LIST_COLUMN_LABEL']);
320 }
321
322 if(array_key_exists('LIST_FILTER_LABEL', $fieldInfo))
323 {
324 $updateField['LIST_FILTER_LABEL'] = $this->checkLabel($fieldInfo['LIST_FILTER_LABEL']);
325 }
326
327 if(array_key_exists('ERROR_MESSAGE', $fieldInfo))
328 {
329 $updateField['ERROR_MESSAGE'] = $this->checkLabel($fieldInfo['ERROR_MESSAGE']);
330 }
331
332 if(array_key_exists('HELP_MESSAGE', $fieldInfo))
333 {
334 $updateField['HELP_MESSAGE'] = $this->checkLabel($fieldInfo['HELP_MESSAGE']);
335 }
336
337 if(array_key_exists('SETTINGS', $fieldInfo) && is_array($fieldInfo['SETTINGS']))
338 {
339 $updateField['SETTINGS'] = array_merge($userFieldInfo['SETTINGS'], $fieldInfo['SETTINGS']);
340 }
341
342 if(!empty($updateField))
343 {
344 $userTypeEntity = new \CUserTypeEntity();
345 $updateResult = $userTypeEntity->update($userFieldInfo['ID'], $updateField);
346
347 if(!$updateResult)
348 {
349 $this->getErrorFromApplicationException($fieldInfo);
350 return false;
351 }
352 }
353 }
354
355 return $userFieldInfo['ID'];
356 }
357
358 protected function createNewFieldEnumValues($fieldId, $fieldInfo)
359 {
360 if(array_key_exists('ENUM', $fieldInfo) && is_array($fieldInfo['ENUM']))
361 {
362 $enumValuesManager = new \CUserFieldEnum();
363
364 $enum = array_values($fieldInfo['ENUM']);
365 $enumValues = array();
366 foreach($enum as $key => $valueDescription)
367 {
368 if(is_array($valueDescription))
369 {
370 $enumValues['n' . $key] = [
371 'XML_ID' => $valueDescription['XML_ID'] ?? null,
372 'VALUE' => $valueDescription['VALUE'],
373 'DEF' => ($valueDescription['DEF'] ?? 'N') === 'Y' ? 'Y' : 'N',
374 'SORT' => $valueDescription['SORT'] ?? 0,
375 ];
376 }
377 }
378 $setEnumResult = $enumValuesManager->setEnumValues($fieldId, $enumValues);
379 if(!$setEnumResult)
380 {
381 $this->getErrorFromApplicationException($fieldInfo);
382 }
383 }
384 }
385
386 protected function updateFieldEnumValues($fieldId, $fieldInfo)
387 {
388 if(
389 array_key_exists('ENUM', $fieldInfo) && is_array($fieldInfo['ENUM']))
390 {
391 $currentFieldInfo = $this->getUserFieldInfo($fieldInfo['ENTITY_ID'], $fieldInfo['FIELD']);
392
393 $deletedEnum = array();
394 $storedEnum = array();
395 $updatedEnum = array();
396
397 if(is_array($currentFieldInfo['ENUM']))
398 {
399 foreach($currentFieldInfo['ENUM'] as $enumItem)
400 {
401 $storedEnum[$enumItem['ID']] = $enumItem;
402 $deletedEnum[$enumItem['ID']] = true;
403 }
404 }
405
406 $countAdded = 0;
407 foreach($fieldInfo['ENUM'] as $enumItem)
408 {
409 if(is_array($enumItem))
410 {
411 if(array_key_exists('ID', $enumItem))
412 {
413 if(empty($enumItem['XML_ID']))
414 {
415 $enumItem['XML_ID'] = $storedEnum[$enumItem['ID']]['XML_ID'];
416 }
417
418 unset($deletedEnum[$enumItem['ID']]);
419 }
420
421 $enumTypeId = $enumItem['ID'] ?? null;
422 $itemKey = (
423 $enumTypeId > 0
424 ? $enumTypeId
425 : 'n' . ($countAdded++)
426 );
427
428 $isDefault = ($enumItem['DEF'] ?? 'N');
429 $itemDescription = array(
430 'VALUE' => $enumItem['VALUE'],
431 'DEF' => $isDefault === 'Y' ? 'Y' : 'N',
432 'SORT' => $enumItem['SORT'],
433 );
434
435 if (!empty($enumItem['XML_ID']))
436 {
437 $itemDescription['XML_ID'] = $enumItem['XML_ID'];
438 }
439
440 if(intval($enumItem['SORT']) > 0)
441 {
442 $itemDescription['SORT'] = $enumItem['SORT'];
443 }
444
445 $updatedEnum[$itemKey] = $itemDescription;
446 }
447 }
448
449 foreach($deletedEnum as $deletedId => $t)
450 {
451 $updatedEnum[$deletedId] = array(
452 'ID' => $deletedId,
453 'DEL' => 'Y'
454 );
455 }
456
457 $enumValuesManager = new \CUserFieldEnum();
458 $setEnumResult = $enumValuesManager->setEnumValues($fieldId, $updatedEnum);
459
460 if(!$setEnumResult)
461 {
462 $this->getErrorFromApplicationException($fieldInfo);
463 }
464 }
465 }
466
467 protected function getErrorFromApplicationException($fieldInfo)
468 {
469 global $APPLICATION;
470
471 $ex = $APPLICATION->GetException();
472 if($ex)
473 {
474 $this->addError($ex->GetString(), $fieldInfo['FIELD']);
475 }
476 }
477
478 protected function checkLabel($label)
479 {
480 return is_array($label) ? $label : array($this->languageId => $label);
481 }
482
483 protected function storeFieldSignature($entityId, $field, $signature)
484 {
485 $this->storedFieldSignature[$entityId.'|'.$field] = $signature;
486 }
487
488 protected function getStoredFieldSignature($entityId, $field)
489 {
490 return $this->storedFieldSignature[$entityId.'|'.$field] ?? null;
491 }
492
507 public function addField($field)
508 {
509 $this->fieldList[] = $field;
510 }
511
532 public function getResult()
533 {
534 $this->assetCollectior->startAssetCollection();
535
536 if(!empty($this->validateFieldList))
537 {
538 $this->processValidate();
539 }
540
541 foreach($this->fieldList as $fieldInfo)
542 {
543 $this->processField($fieldInfo);
544 }
545
546 $result = array(
547 'FIELD' => $this->result,
548 'ERROR' => $this->getErrorList(),
549 'ASSET' => $this->assetCollectior->getCollectedAssets(),
550 );
551
552 $this->reset();
553
554 return $result;
555 }
556
562 public function setView(IDisplay $view)
563 {
564 $this->view = $view;
565 }
566
573 public function getView()
574 {
575 if(!$this->view)
576 {
577 throw new ObjectNotFoundException(Loc::getMessage('MAIN_UF_DISPATCHER_EXCEPTION_VIEW'));
578 }
579
580 return $this->view;
581 }
582
586 public function getSignatureManager()
587 {
588 if(!$this->signatureManager)
589 {
591 }
592
594 }
595
600 {
601 $this->signatureManager = $signatureManager;
602 }
603
611 protected function processField(array $fieldInfo)
612 {
613 if(!$this->checkFieldDescription($fieldInfo))
614 {
615 return false;
616 }
617
618 if(!SignatureHelper::validateSignature($this->getSignatureManager(), $fieldInfo, $fieldInfo['SIGNATURE']))
619 {
620 $this->addError(Loc::getMessage('MAIN_UF_DISPATCHER_ERROR_SIGNATURE'), $fieldInfo['FIELD']);
621
622 return false;
623 }
624
625 $userFieldInfo = $this->getUserFieldInfo($fieldInfo['ENTITY_ID'], $fieldInfo['FIELD']);
626
627 if(!$userFieldInfo)
628 {
629 $this->addError(Loc::getMessage('MAIN_UF_DISPATCHER_ERROR_FIELD_NOT_FOUND'), $fieldInfo['FIELD']);
630
631 return false;
632 }
633
634 if(isset($fieldInfo['ENTITY_VALUE_ID']))
635 {
636 $userFieldInfo['ENTITY_VALUE_ID'] = $fieldInfo['ENTITY_VALUE_ID'];
637 }
638
639 if(isset($fieldInfo['VALUE']))
640 {
641 $userFieldInfo['VALUE'] = $fieldInfo['VALUE'];
642 }
643 else
644 {
645 unset($userFieldInfo['VALUE']);
646 }
647
648 if(isset($fieldInfo['CONTEXT']))
649 {
650 $userFieldInfo['CONTEXT'] = $fieldInfo['CONTEXT'];
651 }
652
653 $view = $this->getView();
654
655 $view->setField($userFieldInfo);
656
657 if (!empty($fieldInfo['ADDITIONAL']) && is_array($fieldInfo['ADDITIONAL']))
658 {
659 foreach ($fieldInfo['ADDITIONAL'] as $paramName => $paramValue)
660 {
661 $view->setAdditionalParameter($paramName, $paramValue);
662 }
663 }
664
665 $this->result[$fieldInfo['FIELD']] = [
666 'HTML' => $view->display(),
667 'FIELD' => $this->getResultFieldInfo($userFieldInfo),
668 ];
669
670 $view->clear();
671 unset($view);
672
673 return true;
674 }
675
679 protected function reset()
680 {
681 $this->fieldList = array();
682 $this->result = array();
683 $this->errorCollection->clear();
684 $this->view = null;
685 }
686
693 protected function addError($message, $field = 0)
694 {
695 $this->errorCollection->setError(new Error($message, $field));
696 }
697
703 protected function getErrorList()
704 {
705 $result = array();
706 if(!$this->errorCollection->isEmpty())
707 {
711 foreach($this->errorCollection->toArray() as $error)
712 {
713 if($error->getCode())
714 {
715 $result[] = $error->getCode().': '.$error->getMessage();
716 }
717 else
718 {
719 $result[] = $error->getMessage();
720 }
721 }
722 }
723
724 return $result;
725 }
726
727 protected function getValidateErrorList()
728 {
729 $result = array();
730 if(!$this->errorCollection->isEmpty())
731 {
735 foreach($this->errorCollection->toArray() as $error)
736 {
737 if($error->getCode())
738 {
739 $result[$error->getCode()] = $error->getMessage();
740 }
741 else
742 {
743 $result[] = $error->getMessage();
744 }
745 }
746 }
747
748 return $result;
749 }
750
751 protected function clearErrorList()
752 {
753 $this->errorCollection->clear();
754 }
755
763 protected function checkFieldDescription($fieldInfo)
764 {
765 if(!is_array($fieldInfo))
766 {
767 $this->addError(Loc::getMessage('MAIN_UF_DISPATCHER_ERROR_FORMAT'));
768 }
769 elseif(empty($fieldInfo['FIELD']))
770 {
771 $this->addError(Loc::getMessage('MAIN_UF_DISPATCHER_ERROR_FORMAT'));
772 }
773 elseif(empty($fieldInfo['ENTITY_ID']))
774 {
775 $this->addError(Loc::getMessage('MAIN_UF_DISPATCHER_ERROR_FORMAT', $fieldInfo['FIELD']));
776 }
777 else
778 {
779 return true;
780 }
781
782 return false;
783 }
784
793 protected function getUserFieldInfo($entityId, $field)
794 {
795 global $USER_FIELD_MANAGER;
796
797 if(!array_key_exists($entityId, $this->userFieldList))
798 {
799 $this->userFieldList[$entityId] = $USER_FIELD_MANAGER->GetUserFields($entityId, 0, $this->languageId);
800 }
801
802 if(
803 isset($this->userFieldList[$entityId][$field])
804 && $this->userFieldList[$entityId][$field]['USER_TYPE_ID'] === \CUserTypeEnum::USER_TYPE_ID
805 && !isset($this->userFieldList[$entityId][$field]['ENUM'])
806 )
807 {
808 $this->userFieldList[$entityId][$field]['ENUM'] = array();
809
810 $enumValuesManager = new \CUserFieldEnum();
811 $dbRes = $enumValuesManager->GetList(array(), array('USER_FIELD_ID' => $this->userFieldList[$entityId][$field]['ID']));
812
813 while($enumValue = $dbRes->fetch())
814 {
815 $this->userFieldList[$entityId][$field]['ENUM'][] = array(
816 'ID' => $enumValue['ID'],
817 'VALUE' => $enumValue['VALUE'],
818 'DEF' => $enumValue['DEF'],
819 'SORT' => $enumValue['SORT'],
820 'XML_ID' => $enumValue['XML_ID'],
821 );
822 }
823 }
824
825 return $this->userFieldList[$entityId][$field];
826 }
827
833 protected function reloadUserFieldInfo($entityId)
834 {
835 unset($this->userFieldList[$entityId]);
836 }
837
845 protected function getResultFieldInfo(array $userField)
846 {
847 $fieldInfo = array(
848 'ID' => $userField['ID'],
849 'USER_TYPE_ID' => $userField['USER_TYPE_ID'],
850 'ENTITY_ID' => $userField['ENTITY_ID'],
851 'ENTITY_VALUE_ID' => $userField['ENTITY_VALUE_ID'] ?? 0,
852 'MANDATORY' => $userField['MANDATORY'],
853 'MULTIPLE' => $userField['MULTIPLE'],
854 'FIELD' => $userField['FIELD_NAME'],
855 'EDIT_FORM_LABEL' => $userField['EDIT_FORM_LABEL'],
856 'LIST_COLUMN_LABEL' => $userField['LIST_COLUMN_LABEL'],
857 'LIST_FILTER_LABEL' => $userField['LIST_FILTER_LABEL'],
858 'HELP_MESSAGE' => $userField['HELP_MESSAGE'],
859 'SETTINGS' => $userField['SETTINGS'],
860 'SHOW_FILTER' => $userField['SHOW_FILTER'],
861 'SHOW_IN_LIST' => $userField['SHOW_IN_LIST'],
862 'SORT' => $userField['SORT'],
863 'CONTEXT_PARAMS' => $userField['CONTEXT_PARAMS'] ?? [],
864 );
865
866 if($userField['USER_TYPE_ID'] === \CUserTypeEnum::USER_TYPE_ID && is_array($userField['ENUM']))
867 {
868 $fieldInfo['ENUM'] = $userField['ENUM'];
869 }
870
871 $storedSignature = $this->getStoredFieldSignature($fieldInfo['ENTITY_ID'], $fieldInfo['FIELD']);
872 if($storedSignature)
873 {
874 $fieldInfo['SIGNATURE'] = $storedSignature;
875 }
876
877 return $fieldInfo;
878 }
879
880 protected function setDefaultSignatureManager()
881 {
882 $this->signatureManager = new SignatureManager();
883 }
884
885 public function getSignature(array $fieldParam)
886 {
887 return SignatureHelper::getSignature($this->getSignatureManager(), $fieldParam);
888 }
889
890 public function getCreateSignature(array $fieldParam)
891 {
892 return SignatureHelperCreate::getSignature($this->getSignatureManager(), $fieldParam);
893 }
894}
global $APPLICATION
Определения include.php:80
Определения error.php:15
storeFieldSignature($entityId, $field, $signature)
Определения dispatcher.php:483
static instance()
Определения dispatcher.php:50
validateField($fieldInfo)
Определения dispatcher.php:195
getErrorFromApplicationException($fieldInfo)
Определения dispatcher.php:467
setLanguage($languageId)
Определения dispatcher.php:70
reloadUserFieldInfo($entityId)
Определения dispatcher.php:833
validateFieldChangeRequest($fieldInfo)
Определения dispatcher.php:75
deleteField($fieldInfo)
Определения dispatcher.php:162
getSignature(array $fieldParam)
Определения dispatcher.php:885
checkLabel($label)
Определения dispatcher.php:478
getStoredFieldSignature($entityId, $field)
Определения dispatcher.php:488
setView(IDisplay $view)
Определения dispatcher.php:562
createNewField(array $fieldInfo)
Определения dispatcher.php:249
editField($fieldInfo)
Определения dispatcher.php:124
getCreateSignature(array $fieldParam)
Определения dispatcher.php:890
createField($fieldInfo)
Определения dispatcher.php:92
checkFieldDescription($fieldInfo)
Определения dispatcher.php:763
updateField(array $fieldInfo)
Определения dispatcher.php:279
addError($message, $field=0)
Определения dispatcher.php:693
createNewFieldEnumValues($fieldId, $fieldInfo)
Определения dispatcher.php:358
getResultFieldInfo(array $userField)
Определения dispatcher.php:845
updateFieldEnumValues($fieldId, $fieldInfo)
Определения dispatcher.php:386
setSignatureManager(SignatureManager $signatureManager)
Определения dispatcher.php:599
getUserFieldInfo($entityId, $field)
Определения dispatcher.php:793
processField(array $fieldInfo)
Определения dispatcher.php:611
static validateSignature(SignatureManager $signatureManager, array $fieldParam, $signature)
Определения signaturehelper.php:13
static getSignature(SignatureManager $signatureManager, array $fieldParam)
Определения signaturehelper.php:6
const USER_TYPE_ID
Определения usertypeenum.php:20
</td ></tr ></table ></td ></tr >< tr >< td class="bx-popup-label bx-width30"><?=GetMessage("PAGE_NEW_TAGS")?> array( $site)
Определения file_new.php:804
global $USER_FIELD_MANAGER
Определения attempt.php:6
$result
Определения get_property_values.php:14
$entityId
Определения payment.php:4
$message
Определения payment.php:8
if( $daysToExpire >=0 &&$daysToExpire< 60 elseif)( $daysToExpire< 0)
Определения prolog_main_admin.php:393
if(empty($signedUserToken)) $key
Определения quickway.php:257
$error
Определения subscription_card_product.php:20
$dbRes
Определения yandex_detail.php:168