Сделал поле свой тип поля
Но мне надо вывести в него "данные по умолчанию", которые я заполняю при создании в DEFAULT_VALUE.
Это можно было бы сделать через компонент у поля main.view, но он не вызывается если поле пустое.
А "значение по умолчанию" подставляется только в новой карточке при создании. Нужно чтобы выводилось и в старых и везде значение, которое указалось при создании
| Код |
|---|
class LabelField extends BaseType
{
public const USER_TYPE_ID = 'label';
public const RENDER_COMPONENT = 'dev:label.field';
protected static function getDescription(): array
{
return [
// 'CLASS_NAME' => 'LabelField',
'DESCRIPTION' => 'Test111',
// 'EDIT_CALLBACK' => ['LabelField', 'renderEdit'],
// 'VIEW_CALLBACK' => ['LabelField', 'renderView'],
// 'USE_FIELD_COMPONENT' => true,
'BASE_TYPE' => \CUserTypeManager::BASE_TYPE_STRING,
'VALUE' => '123'
];
}
public static function getDbColumnType(): string
{
return 'char(3)';
}
public static function prepareSettings(array &$userField): array
{
return [
'DEFAULT_VALUE' => $userField['SETTINGS']['DEFAULT_VALUE'] ?: ''
];
}
public static function onBeforeSave(array $userField, string $value): string
{
return $value;
}
}
|
Это можно было бы сделать через компонент у поля main.view, но он не вызывается если поле пустое.
А "значение по умолчанию" подставляется только в новой карточке при создании. Нужно чтобы выводилось и в старых и везде значение, которое указалось при создании