Feature: #97193 - New TCA type "number"
See forge#97193
Description
Especially TCA type
input has a wide range of use cases, depending
on the configured
render and the
eval options. Determination
of the semantic meaning is therefore usually quite hard and often leads to
duplicated checks and evaluations in custom extension code.
In our effort of introducing dedicated TCA types for all those use
cases, the TCA type
number has been introduced. It replaces the
eval=int and
eval=double2 options of TCA type
input.
The TCA
number fields will be rendered with the html
type
attribute set to
number.
The TCA type
number features the following column configuration:
autocompletebehaviour:allowLanguage Synchronization defaultfieldControl fieldInformation fieldWizard format:integer,decimalmodenullableplaceholderrange:lower,upperreadOnly requiredsearchsizeslider:step,widthvalue:Picker items,mode
The following column configuration can be overwritten by page TSconfig:
readOnly size
The TCA type
number introduces the new configuration
format,
which can be set to
decimal or
integer, which is the default.
Note
The
slider option allows to define a visual slider element
next to the input field. The steps can be defined with the
step
option. The minimum and maximum value can be configured with the
range and
range options.
Note
The
value option allows to define default values via
items. With
mode, one can define how the selected
value should be added (replace, prepend or append).
Note
The options
range,
slider as well as
eval=double2
are no longer evaluated for TCA type
input.
Migration
The migration from
eval='int' to
type=number
is done like following:
// Before
'int_field' => [
'label' => 'Int field',
'config' => [
'type' => 'input',
'eval' => 'int',
]
]
// After
'int_field' => [
'label' => 'Int field',
'config' => [
'type' => 'number',
]
]
The migration from
eval=double2 to
type=number
is done like following:
// Before
'double2_field' => [
'label' => 'double2 field',
'config' => [
'type' => 'input',
'eval' => 'double2',
]
]
// After
'double2_field' => [
'label' => 'double2 field',
'config' => [
'type' => 'number',
'format' => 'decimal'
]
]
An automatic TCA migration is performed on the fly, migrating all occurrences
to the new TCA type and triggering a PHP
E_ error
where code adoption has to take place.
Impact
It's now possible to simplify the TCA configuration by using the new
dedicated TCA type
number. Setting the new
format option
to
decimal behaves like the former
eval=double2.