File manager - Edit - /home/web/vm-3fadc827.na4u.ru/www/bitrix/modules/sale/lib/rest/entity/basketproperties.php
Back
<?php namespace Bitrix\Sale\Rest\Entity; use Bitrix\Main\Error; use Bitrix\Sale\Rest\Attributes; use Bitrix\Sale\Result; class BasketProperties extends Base { public function getFields() { return [ 'ID'=>[ 'TYPE'=>self::TYPE_INT, 'ATTRIBUTES'=>[Attributes::ReadOnly] ], 'BASKET_ID'=>[ 'TYPE'=>self::TYPE_INT, 'ATTRIBUTES'=>[ Attributes::Required, Attributes::Immutable, ] ], 'NAME'=>[ 'TYPE'=>self::TYPE_STRING, 'ATTRIBUTES'=>[Attributes::Required] ], 'VALUE'=>[ 'TYPE'=>self::TYPE_STRING, 'ATTRIBUTES'=>[Attributes::Required] ], 'CODE'=>[ 'TYPE'=>self::TYPE_STRING, 'ATTRIBUTES'=>[Attributes::Required] ], 'SORT'=>[ 'TYPE'=>self::TYPE_INT ], 'XML_ID'=>[ 'TYPE'=>self::TYPE_STRING, ] ]; } public function internalizeFieldsModify($fields, $fieldsInfo=[]) { $result = []; $fieldsInfo = empty($fieldsInfo)? $this->getFields():$fieldsInfo; $listFieldsInfoAdd = $this->getListFieldInfo($fieldsInfo, ['filter'=>['ignoredAttributes'=>[Attributes::Hidden, Attributes::ReadOnly]]]); $listFieldsInfoUpdate = $this->getListFieldInfo($fieldsInfo, ['filter'=>['ignoredAttributes'=>[Attributes::Hidden, Attributes::ReadOnly, Attributes::Immutable], 'skipFields'=>['ID']]]); foreach ($fields['BASKET_ITEM']['PROPERTIES'] as $k=>$item) { $result['BASKET_ITEM']['PROPERTIES'][$k] = $this->internalizeFields($item, $this->isNewItem($item)? $listFieldsInfoAdd:$listFieldsInfoUpdate ); } return $result; } public function checkFieldsModify($fields) { $r = new Result(); $emptyFields = []; if(!isset($fields['BASKET_ITEM']['ID'])) { $emptyFields[] = '[basketItem][id]'; } if(!isset($fields['BASKET_ITEM']['PROPERTIES']) || !is_array($fields['BASKET_ITEM']['PROPERTIES'])) { $emptyFields[] = '[basketItem][properties][]'; } if(count($emptyFields)>0) { $r->addError(new Error(implode(', ', $emptyFields))); } else { $r = parent::checkFieldsModify($fields); } return $r; } public function checkRequiredFieldsModify($fields) { $r = new Result(); $listFieldsInfoAdd = $this->getListFieldInfo($this->getFields(), ['filter'=>['ignoredAttributes'=>[Attributes::Hidden, Attributes::ReadOnly]]]); $listFieldsInfoUpdate = $this->getListFieldInfo($this->getFields(), ['filter'=>['ignoredAttributes'=>[Attributes::Hidden, Attributes::ReadOnly, Attributes::Immutable]]]); foreach ($fields['BASKET_ITEM']['PROPERTIES'] as $k=>$item) { $required = $this->checkRequiredFields($item, $this->isNewItem($item)? $listFieldsInfoAdd:$listFieldsInfoUpdate ); if(!$required->isSuccess()) { $r->addError(new Error('[properties]['.$k.'] - '.implode(', ', $required->getErrorMessages()).'.')); } } return $r; } }
| ver. 1.4 |
Github
|
.
| PHP 7.4.33 | Generation time: 0.24 |
proxy
|
phpinfo
|
Settings