From e92d8667608d8bf6001d4d1500248c75a5bd5847 Mon Sep 17 00:00:00 2001 From: Nikita Hovratov Date: Wed, 4 Dec 2024 20:33:45 +0100 Subject: [PATCH] [TASK] Prevent override of existing type or typeicon_column --- Classes/Generator/TcaGenerator.php | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/Classes/Generator/TcaGenerator.php b/Classes/Generator/TcaGenerator.php index 2fd6afa7..ae4a3e00 100644 --- a/Classes/Generator/TcaGenerator.php +++ b/Classes/Generator/TcaGenerator.php @@ -181,8 +181,12 @@ protected function generateTableTca(TableDefinition $tableDefinition, array $bas if ($tableDefinition->hasTypeField()) { // Ensure "type" is always set when a type field exists. This could be missing when an existing // record is extended with a new record type. - $tca['ctrl']['type'] ??= $tableDefinition->getTypeField(); - $tca['ctrl']['typeicon_column'] ??= $tableDefinition->getTypeField(); + if ($isNewTable || !isset($baseTca[$tableDefinition->getTable()]['ctrl']['type'])) { + $tca['ctrl']['type'] ??= $tableDefinition->getTypeField(); + } + if ($isNewTable || !isset($baseTca[$tableDefinition->getTable()]['ctrl']['typeicon_column'])) { + $tca['ctrl']['typeicon_column'] ??= $tableDefinition->getTypeField(); + } } } if ($tableDefinition->getContentType() === ContentType::CONTENT_ELEMENT && $typeDefinition->hasColumn('bodytext')) {