Breaking: #97358 - Removed eval=int from TCA type "datetime"
See forge#97358
Description
With forge#97232 the new TCA type
datetime
has been introduced. To
further improve the usage of the new dedicated TCA type and to further reduce
complexity in the configuration, the
eval=int
option has now been
removed as well. All TCA type
datetime
fields, which do not use a
native database type (
db
) are now always handled with
int
.
It is therefore recommended to represent them by an
integer
database
field. To allow negative timestamps - used for dates before 1970 - the
integer
database fields are required to be defined as
signed
.
This means, the
unsigned
definition must be omitted.
Note
TYPO3 automatically creates database fields for all TCA type
datetime
columns, if those are not already manually
defined in the corresponding extension's ext_
file.
Impact
All TCA
datetime
fields are now always handled with
int
, as long
as no native database type is used.
TCA type
datetime
was the last TCA type using
eval=int
.
Therefore, the
int
option is no longer evaluated by neither FormEngine
nor
Data
. This means, custom FormEngine elements, which do
currently rely on this option being evaluated in any way, have to implement
the necessary functionality by themselves now.
Affected Installations
All installations which use TCA type
datetime
columns
without a native database type (
db
). Also installations, using
a non
int
default value in TCA.
All installations, relying on evaluation of the
eval=int
option
for their custom FormEngine elements.
Migration
Remove
eval=int
from any TCA column of type
datetime
.
Migrate necessary functionality, related to TCA option
eval=int
,
to your custom extension code, since FormEngine does no longer evaluate
this option.
Migrate
default
values for TCA type
datetime
fields
to
int
(e.g. ''
to 0
).
Migrate corresponding database fields to
integer
where applicable.
# Before
CREATE TABLE tx_ext_my_table (
datetime text
);
# After
CREATE TABLE tx_ext_my_table (
datetime int(11) DEFAULT '0' NOT NULL,
);
Note
In case the corresponding TCA field defines
eval=null
, the
NOT NULL
definition must be omitted.
Note
In case you don't need any manual configuration (e.g. a special default
value), you can omit the definition of the database field, since TYPO3
automatically creates those fields for TCA type
datetime
columns.