...Человеческий поиск в разработке...
- Модуль: crm
- Путь к файлу: ~/bitrix/modules/crm/lib/webform/entityfieldprovider.php
- Класс: Bitrix\Crm\WebForm\EntityFieldProvider
- Вызов: EntityFieldProvider::getFieldDescription
static function getFieldDescription(array $fieldAvailable, array $field = []) { static $stringTypes = null; if ($stringTypes === null) { $stringTypes = array_keys(Helper::getFieldStringTypes()); } if (!empty($field['CODE']) && $field['CODE'] != $fieldAvailable['name']) { return null; } $field['CODE'] = $fieldAvailable['name']; $field['TYPE_ORIGINAL'] = $fieldAvailable['type']; $field['MULTIPLE_ORIGINAL'] = $fieldAvailable['multiple']; $field['VALUE_TYPE_ORIGINAL'] = empty($fieldAvailable['value_type']) ? [] : $fieldAvailable['value_type']; $isSetOriginalType = ($field['TYPE'] != 'section' && (!in_array($field['TYPE'], $stringTypes))); $isSetOriginalType = $isSetOriginalType && !($field['TYPE'] == 'radio' && $fieldAvailable['type'] === 'checkbox'); if($isSetOriginalType) { $field['TYPE'] = $fieldAvailable['type']; } $field['ENTITY_NAME'] = $fieldAvailable['entity_name']; $field['ENTITY_FIELD_NAME'] = $fieldAvailable['entity_field_name']; $field['ENTITY_CAPTION'] = $fieldAvailable['entity_caption']; $field['ENTITY_FIELD_CAPTION'] = $fieldAvailable['caption']; $field['SIZE'] = $fieldAvailable['size'] ?? null; if(!isset($fieldAvailable['items']) || !is_array($fieldAvailable['items'])) { return $field; } if(!isset($field['ITEMS']) || !is_array($field['ITEMS'])) { $field['ITEMS'] = []; } $itemsTmp = array_values($field['ITEMS']); $field['ITEMS'] = array(); foreach($fieldAvailable['items'] as $availableItem) { foreach($itemsTmp as $item) { if($item['ID'] != $availableItem['ID']) { continue; } if(isset($item['VALUE']) && trim($item['VALUE']) <> '') { $availableItem['VALUE'] = (string) $item['VALUE']; } if(isset($item['SELECTED'])) { $availableItem['SELECTED'] = (bool) $item['SELECTED']; } break; } $field['ITEMS'][] = $availableItem; } return $field; }