- Модуль: sale
- Путь к файлу: ~/bitrix/modules/sale/lib/rest/entity/base.php
- Класс: BitrixSaleRestEntityBase
- Вызов: Base::internalizeFilterFields
protected function internalizeFilterFields($fields, array $fieldsInfo)
{
$result = [];
$fieldsInfo = empty($fieldsInfo)? $this->getFields():$fieldsInfo;
if(is_array($fields) && count($fields)>0)
{
$listFieldsInfo = $this->getListFieldInfo($fieldsInfo, ['filter'=>['ignoredAttributes'=>[Attributes::Hidden]]]);
foreach ($fields as $rawName=>$value)
{
$field = CSqlUtil::GetFilterOperation($rawName);
$info = isset($listFieldsInfo[$field['FIELD']]) ? $listFieldsInfo[$field['FIELD']]:null;
if(!$info)
{
continue;
}
$r = $this->internalizeFieldValue($value, $info);
if($r->isSuccess())
{
$value = current($r->getData());
}
else
{
continue;
}
$operation = mb_substr($rawName, 0, mb_strlen($rawName) - mb_strlen($field['FIELD']));
if(isset($info['FORBIDDEN_FILTERS'])
&& is_array($info['FORBIDDEN_FILTERS'])
&& in_array($operation, $info['FORBIDDEN_FILTERS'], true))
{
continue;
}
$result[$rawName]=$value;
}
}
return $result;
}