...Человеческий поиск в разработке...
- Модуль: crm
- Путь к файлу: ~/bitrix/modules/crm/lib/webform/options/fields.php
- Класс: Bitrix\Crm\WebForm\Options\Fields
- Вызов: Fields::getFieldEditing
private function getFieldEditing($field, array $data) { $isCommonStringType = in_array($data['TYPE_ORIGINAL'], ['typed_string', 'string']); $hasLabel = self::isTypeHasLabel($field['TYPE']); $isValuableType = !isset(WebForm\Helper::getFieldNonValueTypes()[$field['TYPE']]); $items = []; $hasListableItems = isset(WebForm\Helper::getFieldListableTypes()[$field['TYPE']]); if ($hasListableItems) { foreach (($data['ITEMS'] ?? []) as $item) { $items[] = array_change_key_case($item); } } $catalog = $field['TYPE'] === 'product' ? WebForm\Catalog::create()->setItems($field['ITEMS'])->getSelectorProducts() : [] ; $types = []; if (($data['TYPE_ORIGINAL'] ?? null) === 'typed_string') { foreach (WebForm\Helper::getFieldStringTypes() as $key => $val) { $types[] = ['id' => $key, 'name' => $val]; } } $valueTypes = []; if (is_array($data['VALUE_TYPE_ORIGINAL'])) { $valueTypes = array_map( function ($item) { return [ 'id' => $item['ID'], 'name' => $item['VALUE'], ]; }, $data['VALUE_TYPE_ORIGINAL'] ); } $supportAutocomplete = !in_array($field['TYPE'], [ WebForm\Internals\FieldTable::TYPE_ENUM_RESOURCEBOOKING, WebForm\Internals\FieldTable::TYPE_ENUM_FILE, WebForm\Internals\FieldTable::TYPE_ENUM_PRODUCT, WebForm\Internals\FieldTable::TYPE_ENUM_SECTION, WebForm\Internals\FieldTable::TYPE_ENUM_PAGE, ]); $defaultValueType = array_filter( $valueTypes, function (array $item) { return $item['id'] === 'OTHER'; } ); $defaultValueType = current($defaultValueType)['id'] ?? ''; return [ 'id' => $field['ID'] ?? null, 'entityId' => \CCrmOwnerType::resolveID($data['ENTITY_NAME']), 'entityName' => $data['ENTITY_NAME'] ?? null, 'name' => $data['ENTITY_FIELD_NAME'] ?? null, 'types' => $types, 'hasLabel' => $hasLabel, 'hasHint' => $isValuableType, 'supportHintOnFocus' => $isCommonStringType, 'hasPlaceholder' => $isCommonStringType, 'hasStringDefaultValue' => $isCommonStringType, 'valueTypes' => $valueTypes, 'canBeMultiple' => $data['MULTIPLE_ORIGINAL'] ?? $isValuableType, 'canBeRequired' => $isValuableType, 'supportContentTypes' => $field['TYPE'] === 'file' && !self::isFieldFileImage($data['CODE']), 'supportListableItems' => $hasListableItems, 'supportAutocomplete' => $supportAutocomplete, 'supportCustomItems' => $field['TYPE'] === 'product', 'catalog' => $field['TYPE'] === 'product' ? $catalog : null, 'items' => $items, 'editable' => [ 'valueType' => $field['VALUE_TYPE'] ?: $defaultValueType, ], ]; }