...Человеческий поиск в разработке...
- Модуль: crm
- Путь к файлу: ~/bitrix/modules/crm/classes/general/restservice.php
- Класс: \CCrmRestHelper
- Вызов: CCrmRestHelper::prepareFieldInfos
static function prepareFieldInfos(array &$fieldsInfo) { $result = array(); foreach($fieldsInfo as $fieldID => &$fieldInfo) { $attrs = $fieldInfo['ATTRIBUTES'] ?? array(); // Skip hidden fields if(in_array(CCrmFieldInfoAttr::Hidden, $attrs, true)) { continue; } $fieldType = $fieldInfo['TYPE']; $field = array( 'type' => $fieldType, 'isRequired' => in_array(CCrmFieldInfoAttr::Required, $attrs, true), 'isReadOnly' => in_array(CCrmFieldInfoAttr::ReadOnly, $attrs, true), 'isImmutable' => in_array(CCrmFieldInfoAttr::Immutable, $attrs, true), 'isMultiple' => in_array(CCrmFieldInfoAttr::Multiple, $attrs, true), 'isDynamic' => in_array(CCrmFieldInfoAttr::Dynamic, $attrs, true) ); if(in_array(CCrmFieldInfoAttr::Deprecated, $attrs, true)) { $field['isDeprecated'] = true; } if($fieldType === 'enumeration') { $field['items'] = $fieldInfo['ITEMS'] ?? array(); } elseif($fieldType === 'crm_status') { $field['statusType'] = $fieldInfo['CRM_STATUS_TYPE'] ?? ''; } elseif ($fieldType === 'product_property') { $field['propertyType'] = $fieldInfo['PROPERTY_TYPE'] ?? ''; $field['userType'] = $fieldInfo['USER_TYPE'] ?? ''; $field['title'] = $fieldInfo['NAME'] ?? ''; if ($field['propertyType'] === 'L') $field['values'] = $fieldInfo['VALUES'] ?? array(); } elseif ($fieldType === 'recurring_params') { $field['definition'] = []; if (is_array($fieldInfo['FIELDS'])) { $paramFields = self::prepareFieldInfos($fieldInfo['FIELDS']); $field['definition'] = is_array($paramFields) ? $paramFields : []; } } if (empty($field['title'])) { $field['title'] = isset($fieldInfo['CAPTION']) && $fieldInfo['CAPTION'] <> '' ? $fieldInfo['CAPTION'] : $fieldID; } if(isset($fieldInfo['LABELS']) && is_array($fieldInfo['LABELS'])) { $labels = $fieldInfo['LABELS']; if(isset($labels['LIST'])) { $field['listLabel'] = $labels['LIST']; } if(isset($labels['FORM'])) { $field['formLabel'] = $labels['FORM']; } if(isset($labels['FILTER'])) { $field['filterLabel'] = $labels['FILTER']; } } if (isset($fieldInfo['SETTINGS'])) { $field['settings'] = $fieldInfo['SETTINGS']; } $result[$fieldID] = &$field; unset($field); } unset($fieldInfo); return $result; }