TYPO3 v15 dev-main snapshot ()

This commit is contained in:
2026-08-10 22:31:00 +02:00
commit f9941541b7
1178 changed files with 135377 additions and 0 deletions
@@ -0,0 +1,58 @@
<?php
/*
* This file is part of the TYPO3 CMS project.
*
* It is free software; you can redistribute it and/or modify it under
* the terms of the GNU General Public License, either version 2
* of the License, or any later version.
*
* For the full copyright and license information, please read the
* LICENSE.txt file that was distributed with this source code.
*
* The TYPO3 project - inspiring people to share!
*/
namespace TYPO3\CMS\Backend\Form\FormDataProvider;
use TYPO3\CMS\Backend\Form\FormDataProviderInterface;
/**
* Merge type specific columnsOverrides into columns of processedTca
*/
class TcaColumnsOverrides implements FormDataProviderInterface
{
/**
* Merge columnsOverrides
*
* @return array
*/
public function addData(array $result)
{
$type = $result['recordTypeValue'];
if (isset($result['processedTca']['types'][$type]['columnsOverrides'])
&& is_array($result['processedTca']['types'][$type]['columnsOverrides'])
) {
$result['processedTca']['columns'] = array_replace_recursive(
$result['processedTca']['columns'],
$result['processedTca']['types'][$type]['columnsOverrides']
);
if ($result['command'] === 'new') {
$tableNameWithDot = $result['tableName'] . '.';
foreach ($result['processedTca']['types'][$type]['columnsOverrides'] as $field => $columnsOverrideConfig) {
$overridenDefault = $columnsOverrideConfig['config']['default'] ?? '';
if ($overridenDefault !== ''
&& !isset($result['userTsConfig']['TCAdefaults.'][$tableNameWithDot][$field])
&& !isset($result['pageTsConfig']['TCAdefaults.'][$tableNameWithDot][$field])
&& !isset($result['defaultValues'][$result['tableName']][$field])
&& ($result['databaseRow'][$field] ?? '') !== $overridenDefault
) {
$result['databaseRow'][$field] = $overridenDefault;
}
}
}
unset($result['processedTca']['types'][$type]['columnsOverrides']);
}
return $result;
}
}