...Человеческий поиск в разработке...
- Модуль: crm
- Путь к файлу: ~/bitrix/modules/crm/classes/general/restservice_invoice.php
- Класс: \CCrmInvoiceRestService
- Вызов: CCrmInvoiceRestService::internalizeUserFields
static function internalizeUserFields(&$fields, $options) { if(!is_array($fields)) { return; } if(!is_array($options)) { $options = array(); } $fieldsInfo = array(); $userType = new CCrmUserType($GLOBALS['USER_FIELD_MANAGER'], CCrmInvoice::$sUFEntityID); $userType->PrepareFieldsInfo($fieldsInfo); $ignoredAttrs = isset($options['IGNORED_ATTRS']) ? $options['IGNORED_ATTRS'] : array(); if(!in_array(CCrmFieldInfoAttr::Hidden, $ignoredAttrs, true)) { $ignoredAttrs[] = CCrmFieldInfoAttr::Hidden; } if(!in_array(CCrmFieldInfoAttr::ReadOnly, $ignoredAttrs, true)) { $ignoredAttrs[] = CCrmFieldInfoAttr::ReadOnly; } foreach($fields as $k => $v) { $info = isset($fieldsInfo[$k]) ? $fieldsInfo[$k] : null; if(!$info) { continue; } $attrs = isset($info['ATTRIBUTES']) ? $info['ATTRIBUTES'] : array(); $isMultiple = in_array(CCrmFieldInfoAttr::Multiple, $attrs, true); $ary = array_intersect($ignoredAttrs, $attrs); if(!empty($ary)) { unset($fields[$k]); continue; } $fieldType = isset($info['TYPE']) ? $info['TYPE'] : ''; if($fieldType === 'date' || $fieldType === 'datetime') { $date = $fieldType === 'date' ? CRestUtil::unConvertDate($v) : CRestUtil::unConvertDateTime($v); if($isMultiple) { if(!is_array($date)) { $date = array($date); } $dates = array(); foreach($date as $item) { if(is_string($item)) { $dates[] = $item; } } if(!empty($dates)) { $fields[$k] = $dates; } else { unset($fields[$k]); } } elseif(is_string($date)) { $fields[$k] = $date; } else { unset($fields[$k]); } } elseif($fieldType === 'file') { self::tryInternalizeFileField($fields, $k, $isMultiple); } elseif($fieldType === 'webdav') { self::tryInternalizeWebDavElementField($fields, $k, $isMultiple); } elseif($fieldType === 'diskfile') { self::tryInternalizeDiskFileField($fields, $k, $isMultiple); } } }