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:
autocomplete
behaviour
:allow
Language Synchronization default
field
Control field
Information field
Wizard format
:integer
,decimal
mode
nullable
placeholder
range
:lower
,upper
read
Only required
search
size
slider
:step
,width
value
:Picker items
,mode
The following column configuration can be overwritten by page TSconfig:
read
Only 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
.