From 9b0a5e94bbefb094eb917172077a21675af7db8b Mon Sep 17 00:00:00 2001 From: Guido Schmechel Date: Sat, 29 Sep 2018 13:49:59 +0200 Subject: [PATCH] [BUGFIX] Use TSConfig defaults for DataHandler Now the DataHandler observes the default values set in TsConfig. Example: TCAdefaults.pages { # set page to visible hidden = 0 } Resolves: #59383 Releases: master, 9.5 Change-Id: I51e5d07e4e9a9457135bb9af88868cd52af373d7 Reviewed-on: https://review.typo3.org/c/59918 Tested-by: TYPO3com Tested-by: Markus Klein Reviewed-by: Markus Klein --- .../Classes/Controller/EditDocumentController.php | 5 ----- .../Controller/Page/NewMultiplePagesController.php | 6 ------ .../Classes/Controller/SimpleDataHandlerController.php | 4 ---- typo3/sysext/core/Classes/DataHandling/DataHandler.php | 9 ++++++++- 4 files changed, 8 insertions(+), 16 deletions(-) diff --git a/typo3/sysext/backend/Classes/Controller/EditDocumentController.php b/typo3/sysext/backend/Classes/Controller/EditDocumentController.php index b21929f3656e..ab9431c481a9 100644 --- a/typo3/sysext/backend/Classes/Controller/EditDocumentController.php +++ b/typo3/sysext/backend/Classes/Controller/EditDocumentController.php @@ -674,11 +674,6 @@ public function processData(ServerRequestInterface $request = null): ?ResponseIn $tce->setControl($parsedBody['control'] ?? $queryParams['control'] ?? []); - // Set default values specific for the user - $TCAdefaultOverride = $beUser->getTSConfig()['TCAdefaults.'] ?? null; - if (is_array($TCAdefaultOverride)) { - $tce->setDefaultsFromUserTS($TCAdefaultOverride); - } // Set internal vars if (isset($beUser->uc['neverHideAtCopy']) && $beUser->uc['neverHideAtCopy']) { $tce->neverHideAtCopy = 1; diff --git a/typo3/sysext/backend/Classes/Controller/Page/NewMultiplePagesController.php b/typo3/sysext/backend/Classes/Controller/Page/NewMultiplePagesController.php index 07ab16bd585f..684b18e4a620 100644 --- a/typo3/sysext/backend/Classes/Controller/Page/NewMultiplePagesController.php +++ b/typo3/sysext/backend/Classes/Controller/Page/NewMultiplePagesController.php @@ -181,12 +181,6 @@ protected function createPages(array $newPagesData, int $pageUid, bool $afterExi if (!empty($commandArray)) { $pagesCreated = true; $dataHandler = GeneralUtility::makeInstance(DataHandler::class); - // Set default TCA values specific for the user - $backendUser = $this->getBackendUser(); - $tcaDefaultOverride = $backendUser->getTSConfig()['TCAdefaults.'] ?? null; - if (is_array($tcaDefaultOverride)) { - $dataHandler->setDefaultsFromUserTS($tcaDefaultOverride); - } $dataHandler->start($commandArray, []); $dataHandler->process_datamap(); BackendUtility::setUpdateSignal('updatePageTree'); diff --git a/typo3/sysext/backend/Classes/Controller/SimpleDataHandlerController.php b/typo3/sysext/backend/Classes/Controller/SimpleDataHandlerController.php index 0cc7c1fd9e2c..a0556e3d741e 100644 --- a/typo3/sysext/backend/Classes/Controller/SimpleDataHandlerController.php +++ b/typo3/sysext/backend/Classes/Controller/SimpleDataHandlerController.php @@ -228,10 +228,6 @@ public function init(ServerRequestInterface $request = null): void if ($beUser->uc['neverHideAtCopy']) { $this->tce->neverHideAtCopy = 1; } - $TCAdefaultOverride = $beUser->getTSConfig()['TCAdefaults.'] ?? null; - if (is_array($TCAdefaultOverride)) { - $this->tce->setDefaultsFromUserTS($TCAdefaultOverride); - } // Reverse order. if ($this->flags['reverseOrder']) { $this->tce->reverseOrder = 1; diff --git a/typo3/sysext/core/Classes/DataHandling/DataHandler.php b/typo3/sysext/core/Classes/DataHandling/DataHandler.php index 5de6e996e4fb..91ee4f8b29dd 100644 --- a/typo3/sysext/core/Classes/DataHandling/DataHandler.php +++ b/typo3/sysext/core/Classes/DataHandling/DataHandler.php @@ -742,6 +742,13 @@ public function start($data, $cmd, $altUserObject = null) if ($this->BE_USER->uc['recursiveDelete']) { $this->deleteTree = 1; } + + // Get default values from user TSConfig + $tcaDefaultOverride = $this->BE_USER->getTSConfig()['TCAdefaults.'] ?? null; + if (is_array($tcaDefaultOverride)) { + $this->setDefaultsFromUserTS($tcaDefaultOverride); + } + // Initializing default permissions for pages $defaultPermissions = $GLOBALS['TYPO3_CONF_VARS']['BE']['defaultPermissions']; if (isset($defaultPermissions['user'])) { @@ -1018,7 +1025,7 @@ public function process_datamap() $this->autoVersioningUpdate = false; // Is it a new record? (Then Id is a string) if (!MathUtility::canBeInterpretedAsInteger($id)) { - // Get a fieldArray with default values + // Get a fieldArray with tca default values $fieldArray = $this->newFieldArray($table); // A pid must be set for new records. if (isset($incomingFieldArray['pid'])) {