Bitrix-D7 23.9
 
Загрузка...
Поиск...
Не найдено
dispatcher.php
1<?php
3
8
10{
14 protected static $instance;
15
16 protected $languageId = LANGUAGE_ID;
17
18 protected $fieldList = array();
19 protected $validateFieldList = array();
20 protected $userFieldList = array();
21 protected $storedFieldSignature = 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 = array(
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'],
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'];
216 }
217 }
218
219 protected function processValidate()
220 {
221 global $APPLICATION, $USER_FIELD_MANAGER;
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] = array(
371 'XML_ID' => $valueDescription['XML_ID'],
372 'VALUE' => $valueDescription['VALUE'],
373 'DEF' => $valueDescription['DEF'] === 'Y' ? 'Y' : 'N',
374 'SORT' => $valueDescription['SORT'],
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 $itemKey = $enumItem['ID'] > 0
421 ? $enumItem['ID']
422 : 'n'.($countAdded++);
423
424 $itemDescription = array(
425 'VALUE' => $enumItem['VALUE'],
426 'DEF' => $enumItem['DEF'] === 'Y' ? 'Y' : 'N',
427 'SORT' => $enumItem['SORT'],
428 );
429
430 if($enumItem['XML_ID'] <> '')
431 {
432 $itemDescription['XML_ID'] = $enumItem['XML_ID'];
433 }
434
435 if(intval($enumItem['SORT']) > 0)
436 {
437 $itemDescription['SORT'] = $enumItem['SORT'];
438 }
439
440 $updatedEnum[$itemKey] = $itemDescription;
441 }
442 }
443
444 foreach($deletedEnum as $deletedId => $t)
445 {
446 $updatedEnum[$deletedId] = array(
447 'ID' => $deletedId,
448 'DEL' => 'Y'
449 );
450 }
451
452 $enumValuesManager = new \CUserFieldEnum();
453 $setEnumResult = $enumValuesManager->setEnumValues($fieldId, $updatedEnum);
454
455 if(!$setEnumResult)
456 {
457 $this->getErrorFromApplicationException($fieldInfo);
458 }
459 }
460 }
461
462 protected function getErrorFromApplicationException($fieldInfo)
463 {
464 global $APPLICATION;
465
466 $ex = $APPLICATION->GetException();
467 if($ex)
468 {
469 $this->addError($ex->GetString(), $fieldInfo['FIELD']);
470 }
471 }
472
473 protected function checkLabel($label)
474 {
475 return is_array($label) ? $label : array($this->languageId => $label);
476 }
477
478 protected function storeFieldSignature($entityId, $field, $signature)
479 {
480 $this->storedFieldSignature[$entityId.'|'.$field] = $signature;
481 }
482
483 protected function getStoredFieldSignature($entityId, $field)
484 {
485 return $this->storedFieldSignature[$entityId.'|'.$field] ?? null;
486 }
487
502 public function addField($field)
503 {
504 $this->fieldList[] = $field;
505 }
506
527 public function getResult()
528 {
529 $this->assetCollectior->startAssetCollection();
530
531 if(!empty($this->validateFieldList))
532 {
533 $this->processValidate();
534 }
535
536 foreach($this->fieldList as $fieldInfo)
537 {
538 $this->processField($fieldInfo);
539 }
540
541 $result = array(
542 'FIELD' => $this->result,
543 'ERROR' => $this->getErrorList(),
544 'ASSET' => $this->assetCollectior->getCollectedAssets(),
545 );
546
547 $this->reset();
548
549 return $result;
550 }
551
557 public function setView(IDisplay $view)
558 {
559 $this->view = $view;
560 }
561
568 public function getView()
569 {
570 if(!$this->view)
571 {
572 throw new ObjectNotFoundException(Loc::getMessage('MAIN_UF_DISPATCHER_EXCEPTION_VIEW'));
573 }
574
575 return $this->view;
576 }
577
581 public function getSignatureManager()
582 {
583 if(!$this->signatureManager)
584 {
586 }
587
589 }
590
595 {
596 $this->signatureManager = $signatureManager;
597 }
598
606 protected function processField(array $fieldInfo)
607 {
608 if(!$this->checkFieldDescription($fieldInfo))
609 {
610 return false;
611 }
612
613 if(!SignatureHelper::validateSignature($this->getSignatureManager(), $fieldInfo, $fieldInfo['SIGNATURE']))
614 {
615 $this->addError(Loc::getMessage('MAIN_UF_DISPATCHER_ERROR_SIGNATURE'), $fieldInfo['FIELD']);
616
617 return false;
618 }
619
620 $userFieldInfo = $this->getUserFieldInfo($fieldInfo['ENTITY_ID'], $fieldInfo['FIELD']);
621
622 if(!$userFieldInfo)
623 {
624 $this->addError(Loc::getMessage('MAIN_UF_DISPATCHER_ERROR_FIELD_NOT_FOUND'), $fieldInfo['FIELD']);
625
626 return false;
627 }
628
629 if(isset($fieldInfo['ENTITY_VALUE_ID']))
630 {
631 $userFieldInfo['ENTITY_VALUE_ID'] = $fieldInfo['ENTITY_VALUE_ID'];
632 }
633
634 if(isset($fieldInfo['VALUE']))
635 {
636 $userFieldInfo['VALUE'] = $fieldInfo['VALUE'];
637 }
638 else
639 {
640 unset($userFieldInfo['VALUE']);
641 }
642
643 if(isset($fieldInfo['CONTEXT']))
644 {
645 $userFieldInfo['CONTEXT'] = $fieldInfo['CONTEXT'];
646 }
647
648 $view = $this->getView();
649
650 $view->setField($userFieldInfo);
651
652 if (!empty($fieldInfo['ADDITIONAL']) && is_array($fieldInfo['ADDITIONAL']))
653 {
654 foreach ($fieldInfo['ADDITIONAL'] as $paramName => $paramValue)
655 {
656 $view->setAdditionalParameter($paramName, $paramValue);
657 }
658 }
659
660 $this->result[$fieldInfo['FIELD']] = [
661 'HTML' => $view->display(),
662 'FIELD' => $this->getResultFieldInfo($userFieldInfo),
663 ];
664
665 $view->clear();
666 unset($view);
667
668 return true;
669 }
670
674 protected function reset()
675 {
676 $this->fieldList = array();
677 $this->result = array();
678 $this->errorCollection->clear();
679 $this->view = null;
680 }
681
688 protected function addError($message, $field = 0)
689 {
690 $this->errorCollection->setError(new Error($message, $field));
691 }
692
698 protected function getErrorList()
699 {
700 $result = array();
701 if(!$this->errorCollection->isEmpty())
702 {
706 foreach($this->errorCollection->toArray() as $error)
707 {
708 if($error->getCode())
709 {
710 $result[] = $error->getCode().': '.$error->getMessage();
711 }
712 else
713 {
714 $result[] = $error->getMessage();
715 }
716 }
717 }
718
719 return $result;
720 }
721
722 protected function getValidateErrorList()
723 {
724 $result = array();
725 if(!$this->errorCollection->isEmpty())
726 {
730 foreach($this->errorCollection->toArray() as $error)
731 {
732 if($error->getCode())
733 {
734 $result[$error->getCode()] = $error->getMessage();
735 }
736 else
737 {
738 $result[] = $error->getMessage();
739 }
740 }
741 }
742
743 return $result;
744 }
745
746 protected function clearErrorList()
747 {
748 $this->errorCollection->clear();
749 }
750
758 protected function checkFieldDescription($fieldInfo)
759 {
760 if(!is_array($fieldInfo))
761 {
762 $this->addError(Loc::getMessage('MAIN_UF_DISPATCHER_ERROR_FORMAT'));
763 }
764 elseif(empty($fieldInfo['FIELD']))
765 {
766 $this->addError(Loc::getMessage('MAIN_UF_DISPATCHER_ERROR_FORMAT'));
767 }
768 elseif(empty($fieldInfo['ENTITY_ID']))
769 {
770 $this->addError(Loc::getMessage('MAIN_UF_DISPATCHER_ERROR_FORMAT', $fieldInfo['FIELD']));
771 }
772 else
773 {
774 return true;
775 }
776
777 return false;
778 }
779
788 protected function getUserFieldInfo($entityId, $field)
789 {
790 global $USER_FIELD_MANAGER;
791
792 if(!array_key_exists($entityId, $this->userFieldList))
793 {
794 $this->userFieldList[$entityId] = $USER_FIELD_MANAGER->GetUserFields($entityId, 0, $this->languageId);
795 }
796
797 if(
798 isset($this->userFieldList[$entityId][$field])
799 && $this->userFieldList[$entityId][$field]['USER_TYPE_ID'] === \CUserTypeEnum::USER_TYPE_ID
800 && !isset($this->userFieldList[$entityId][$field]['ENUM'])
801 )
802 {
803 $this->userFieldList[$entityId][$field]['ENUM'] = array();
804
805 $enumValuesManager = new \CUserFieldEnum();
806 $dbRes = $enumValuesManager->GetList(array(), array('USER_FIELD_ID' => $this->userFieldList[$entityId][$field]['ID']));
807
808 while($enumValue = $dbRes->fetch())
809 {
810 $this->userFieldList[$entityId][$field]['ENUM'][] = array(
811 'ID' => $enumValue['ID'],
812 'VALUE' => $enumValue['VALUE'],
813 'DEF' => $enumValue['DEF'],
814 'SORT' => $enumValue['SORT'],
815 'XML_ID' => $enumValue['XML_ID'],
816 );
817 }
818 }
819
820 return $this->userFieldList[$entityId][$field];
821 }
822
828 protected function reloadUserFieldInfo($entityId)
829 {
830 unset($this->userFieldList[$entityId]);
831 }
832
840 protected function getResultFieldInfo(array $userField)
841 {
842 $fieldInfo = array(
843 'ID' => $userField['ID'],
844 'USER_TYPE_ID' => $userField['USER_TYPE_ID'],
845 'ENTITY_ID' => $userField['ENTITY_ID'],
846 'ENTITY_VALUE_ID' => $userField['ENTITY_VALUE_ID'] ?? 0,
847 'MANDATORY' => $userField['MANDATORY'],
848 'MULTIPLE' => $userField['MULTIPLE'],
849 'FIELD' => $userField['FIELD_NAME'],
850 'EDIT_FORM_LABEL' => $userField['EDIT_FORM_LABEL'],
851 'LIST_COLUMN_LABEL' => $userField['LIST_COLUMN_LABEL'],
852 'LIST_FILTER_LABEL' => $userField['LIST_FILTER_LABEL'],
853 'HELP_MESSAGE' => $userField['HELP_MESSAGE'],
854 'SETTINGS' => $userField['SETTINGS'],
855 'SHOW_FILTER' => $userField['SHOW_FILTER'],
856 'SHOW_IN_LIST' => $userField['SHOW_IN_LIST'],
857 'SORT' => $userField['SORT'],
858 'CONTEXT_PARAMS' => $userField['CONTEXT_PARAMS'] ?? [],
859 );
860
861 if($userField['USER_TYPE_ID'] === \CUserTypeEnum::USER_TYPE_ID && is_array($userField['ENUM']))
862 {
863 $fieldInfo['ENUM'] = $userField['ENUM'];
864 }
865
866 $storedSignature = $this->getStoredFieldSignature($fieldInfo['ENTITY_ID'], $fieldInfo['FIELD']);
867 if($storedSignature)
868 {
869 $fieldInfo['SIGNATURE'] = $storedSignature;
870 }
871
872 return $fieldInfo;
873 }
874
875 protected function setDefaultSignatureManager()
876 {
877 $this->signatureManager = new SignatureManager();
878 }
879
880 public function getSignature(array $fieldParam)
881 {
882 return SignatureHelper::getSignature($this->getSignatureManager(), $fieldParam);
883 }
884
885 public function getCreateSignature(array $fieldParam)
886 {
887 return SignatureHelperCreate::getSignature($this->getSignatureManager(), $fieldParam);
888 }
889}
static getMessage($code, $replace=null, $language=null)
Definition loc.php:29
storeFieldSignature($entityId, $field, $signature)
getSignature(array $fieldParam)
getStoredFieldSignature($entityId, $field)
getCreateSignature(array $fieldParam)
createNewFieldEnumValues($fieldId, $fieldInfo)
getResultFieldInfo(array $userField)
updateFieldEnumValues($fieldId, $fieldInfo)
setSignatureManager(SignatureManager $signatureManager)
getUserFieldInfo($entityId, $field)
static validateSignature(SignatureManager $signatureManager, array $fieldParam, $signature)
static getSignature(SignatureManager $signatureManager, array $fieldParam)