diff --git a/Classes/Backend/Grid/ContainerGridColumn.php b/Classes/Backend/Grid/ContainerGridColumn.php index a3cfc1fa..f34efda0 100644 --- a/Classes/Backend/Grid/ContainerGridColumn.php +++ b/Classes/Backend/Grid/ContainerGridColumn.php @@ -18,8 +18,6 @@ class ContainerGridColumn extends GridColumn { - public const CONTAINER_COL_POS_DELIMITER = '-'; - public function __construct( PageLayoutContext $context, array $columnDefinition, diff --git a/Classes/ContentDefender/ContainerColumnConfigurationService.php b/Classes/ContentDefender/ContainerColumnConfigurationService.php index 7d21af16..333473a9 100644 --- a/Classes/ContentDefender/ContainerColumnConfigurationService.php +++ b/Classes/ContentDefender/ContainerColumnConfigurationService.php @@ -12,7 +12,6 @@ * of the License, or any later version. */ -use B13\Container\Backend\Grid\ContainerGridColumn; use B13\Container\Domain\Factory\ContainerFactory; use B13\Container\Domain\Factory\Exception; use B13\Container\Domain\Model\Container; @@ -56,7 +55,7 @@ public function addCopyMapping(int $sourceContentId, int $containerId, int $targ $record = $this->getRecord($sourceContentId); $sourceColPos = (int)$record['colPos']; $sourceContainerId = (int)$record['tx_container_parent']; - $this->copyMapping[$sourceContainerId . ContainerGridColumn::CONTAINER_COL_POS_DELIMITER . $sourceColPos] = [ + $this->copyMapping[$sourceContainerId . '-' . $sourceColPos] = [ 'containerId' => $containerId, 'sourceColPos' => $sourceColPos, 'targetColPos' => $targetColpos, diff --git a/Classes/Hooks/Datahandler/CommandMapBeforeStartHook.php b/Classes/Hooks/Datahandler/CommandMapBeforeStartHook.php index de7abc5f..97a033f4 100644 --- a/Classes/Hooks/Datahandler/CommandMapBeforeStartHook.php +++ b/Classes/Hooks/Datahandler/CommandMapBeforeStartHook.php @@ -12,14 +12,12 @@ * of the License, or any later version. */ -use B13\Container\Backend\Grid\ContainerGridColumn; use B13\Container\Domain\Factory\ContainerFactory; use B13\Container\Domain\Factory\Exception; use B13\Container\Domain\Service\ContainerService; use B13\Container\Tca\Registry; use Symfony\Component\DependencyInjection\Attribute\Autoconfigure; use TYPO3\CMS\Core\DataHandling\DataHandler; -use TYPO3\CMS\Core\Utility\GeneralUtility; #[Autoconfigure(public: true)] class CommandMapBeforeStartHook @@ -36,7 +34,7 @@ public function processCmdmap_beforeStart(DataHandler $dataHandler): void { $this->unsetInconsistentLocalizeCommands($dataHandler); $dataHandler->cmdmap = $this->rewriteSimpleCommandMap($dataHandler->cmdmap); - $dataHandler->cmdmap = $this->extractContainerIdFromColPosOnUpdate($dataHandler->cmdmap); + $dataHandler->cmdmap = $this->setContainerIdToZeroIfNotSetOnUpdate($dataHandler->cmdmap); $this->unsetInconsistentCopyOrMoveCommands($dataHandler); // previously page id is used for copy/moving element at top of a container colum // but this leeds to wrong sorting in page context (e.g. List-Module) @@ -91,6 +89,24 @@ protected function unsetInconsistentCopyOrMoveCommands(DataHandler $dataHandler) } } + protected function setContainerIdToZeroIfNotSetOnUpdate(array $cmdmap): array + { + if (!empty($cmdmap['tt_content'])) { + foreach ($cmdmap['tt_content'] as $id => &$cmds) { + foreach ($cmds as &$cmd) { + if ( + (!empty($cmd['update'])) && + isset($cmd['update']['colPos']) && + !isset($cmd['update']['tx_container_parent']) + ) { + $cmd['update']['tx_container_parent'] = 0; + } + } + } + } + return $cmdmap; + } + protected function rewriteCommandMapTargetForAfterContainer(array $cmdmap): array { if (!empty($cmdmap['tt_content'])) { @@ -195,8 +211,9 @@ protected function rewriteSimpleCommandMap(array $cmdmap): array 'action' => 'paste', 'target' => $target, 'update' => [ - 'colPos' => $targetRecordForOperation['tx_container_parent'] . ContainerGridColumn::CONTAINER_COL_POS_DELIMITER . $targetRecordForOperation['colPos'], + 'colPos' => $targetRecordForOperation['colPos'], 'sys_language_uid' => $targetRecordForOperation['sys_language_uid'], + 'tx_container_parent' => $targetRecordForOperation['tx_container_parent'], ], ], @@ -246,37 +263,6 @@ protected function unsetInconsistentLocalizeCommands(DataHandler $dataHandler): } } - protected function extractContainerIdFromColPosOnUpdate(array $cmdmap): array - { - if (!empty($cmdmap['tt_content'])) { - foreach ($cmdmap['tt_content'] as $id => &$cmds) { - foreach ($cmds as &$cmd) { - if ( - (!empty($cmd['update'])) && - isset($cmd['update']['colPos']) - ) { - $cmd['update'] = $this->dataFromContainerIdColPos($cmd['update']); - } - } - } - } - return $cmdmap; - } - - protected function dataFromContainerIdColPos(array $data): array - { - $colPos = $data['colPos']; - if (strpos((string)$colPos, ContainerGridColumn::CONTAINER_COL_POS_DELIMITER) > 0) { - [$containerId, $newColPos] = GeneralUtility::intExplode(ContainerGridColumn::CONTAINER_COL_POS_DELIMITER, $colPos); - $data['colPos'] = $newColPos; - $data['tx_container_parent'] = $containerId; - } elseif (!isset($data['tx_container_parent'])) { - $data['tx_container_parent'] = 0; - $data['colPos'] = (int)$colPos; - } - return $data; - } - protected function logAndUnsetCmd(int $id, string $cmd, string $message, DataHandler $dataHandler): void { $dataHandler->log( diff --git a/Tests/Functional/Datahandler/ContentDefender/CopyContainerTest.php b/Tests/Functional/Datahandler/ContentDefender/CopyContainerTest.php index cebde641..f0061e7b 100644 --- a/Tests/Functional/Datahandler/ContentDefender/CopyContainerTest.php +++ b/Tests/Functional/Datahandler/ContentDefender/CopyContainerTest.php @@ -66,7 +66,8 @@ public function copyContainerIntoOtherContainerWithSameColPosCopiesAlsoChildEven 'action' => 'paste', 'target' => -2, 'update' => [ - 'colPos' => '1-200', + 'colPos' => 200, + 'tx_container_parent' => 1, ], ], ], diff --git a/Tests/Functional/Datahandler/ContentDefender/DefaultLanguageTest.php b/Tests/Functional/Datahandler/ContentDefender/DefaultLanguageTest.php index a39ddb33..5d4bf6d0 100644 --- a/Tests/Functional/Datahandler/ContentDefender/DefaultLanguageTest.php +++ b/Tests/Functional/Datahandler/ContentDefender/DefaultLanguageTest.php @@ -44,9 +44,9 @@ public function moveElementIntoContainerAtTopDoNotMoveDisallowedCTypeElement(): 'action' => 'paste', 'target' => 1, 'update' => [ - 'colPos' => '1-200', + 'colPos' => 200, 'sys_language_uid' => 0, - + 'tx_container_parent' => 1, ], ], ], @@ -71,8 +71,9 @@ public function moveElementIntoContainerAfterOtherElemenDoNotMoveDisallowedCType 'action' => 'paste', 'target' => -2, 'update' => [ - 'colPos' => '1-200', + 'colPos' => 200, 'sys_language_uid' => 0, + 'tx_container_parent' => 1, ], ], @@ -98,8 +99,9 @@ public function copyElementIntoContainerAtTopDoNotCopyDisallowedCTypeElement(): 'action' => 'paste', 'target' => 1, 'update' => [ - 'colPos' => '1-200', + 'colPos' => 200, 'sys_language_uid' => 0, + 'tx_container_parent' => 1, ], ], @@ -125,8 +127,9 @@ public function moveElementIntoContainerAtTopMoveAisallowedCTypeElement(): void 'action' => 'paste', 'target' => 1, 'update' => [ - 'colPos' => '1-200', + 'colPos' => 200, 'sys_language_uid' => 0, + 'tx_container_parent' => 1, ], ], @@ -152,8 +155,9 @@ public function moveElementIntoContainerAfterOtherElemenMoveAllowedCTypeElement( 'action' => 'paste', 'target' => -2, 'update' => [ - 'colPos' => '1-200', + 'colPos' => 200, 'sys_language_uid' => 0, + 'tx_container_parent' => 1, ], ], @@ -208,9 +212,9 @@ public function copyElementIntoContainerAtTopCopyAllowedCTypeElement(): void 'action' => 'paste', 'target' => 1, 'update' => [ - 'colPos' => '1-200', + 'colPos' => 200, 'sys_language_uid' => 0, - + 'tx_container_parent' => 1, ], ], ], @@ -235,9 +239,9 @@ public function copyChildFromOtherContainerIntoColposWhereTargetElementInOtherCo 'action' => 'paste', 'target' => -2, 'update' => [ - 'colPos' => '1-201', + 'colPos' => 201, 'sys_language_uid' => 0, - + 'tx_container_parent' => 1, ], ], ], diff --git a/Tests/Functional/Datahandler/ContentDefender/LocalizationTest.php b/Tests/Functional/Datahandler/ContentDefender/LocalizationTest.php index 202b645b..a32578d6 100644 --- a/Tests/Functional/Datahandler/ContentDefender/LocalizationTest.php +++ b/Tests/Functional/Datahandler/ContentDefender/LocalizationTest.php @@ -43,9 +43,9 @@ public function moveElementIntoContainerAtTopToNotMoveTranslationIfDisallowedCTy 'action' => 'paste', 'target' => 1, 'update' => [ - 'colPos' => '1-200', + 'colPos' => 200, 'sys_language_uid' => 0, - + 'tx_container_parent' => 1, ], ], ], @@ -69,9 +69,9 @@ public function copyElementIntoContainerAtTopDoNotCopyTranslationIfDisallowedCTy 'action' => 'paste', 'target' => 1, 'update' => [ - 'colPos' => '1-200', + 'colPos' => 200, 'sys_language_uid' => 0, - + 'tx_container_parent' => 1, ], ], ], diff --git a/Tests/Functional/Datahandler/ContentDefender/MaxItemsTest.php b/Tests/Functional/Datahandler/ContentDefender/MaxItemsTest.php index a50a5702..63d4bc94 100644 --- a/Tests/Functional/Datahandler/ContentDefender/MaxItemsTest.php +++ b/Tests/Functional/Datahandler/ContentDefender/MaxItemsTest.php @@ -44,9 +44,9 @@ public function canMoveElementIntoContainerIfMaxitemsIsNotReached(): void 'action' => 'paste', 'target' => 1, 'update' => [ - 'colPos' => '1-202', + 'colPos' => 202, 'sys_language_uid' => 0, - + 'tx_container_parent' => 1, ], ], ], @@ -71,9 +71,9 @@ public function cannotMoveElementIntoContainerIfMaxitemsIsReached(): void 'action' => 'paste', 'target' => -3, 'update' => [ - 'colPos' => '1-202', + 'colPos' => 202, 'sys_language_uid' => 0, - + 'tx_container_parent' => 1, ], ], ], @@ -104,9 +104,9 @@ public function cannotCopyElementIntoContainerIfMaxitemsIsReachedAfterIntoContai 'action' => 'paste', 'target' => 1, 'update' => [ - 'colPos' => '1-202', + 'colPos' => 202, 'sys_language_uid' => 0, - + 'tx_container_parent' => 1, ], ], ], @@ -157,7 +157,7 @@ public function canCreateElementInContainerIfMaxitemsIsNotReached(): void $datamap = [ 'tt_content' => [ $newId => [ - 'colPos' => '202', + 'colPos' => 202, 'tx_container_parent' => 1, 'pid' => -1, 'sys_language_uid' => 0, @@ -257,8 +257,9 @@ public function canCopyElementFromContainerMaxitemsReachedColumnToOtherColumn(): 'action' => 'paste', 'target' => 1, 'update' => [ - 'colPos' => '1-201', + 'colPos' => 201, 'sys_language_uid' => 0, + 'tx_container_parent' => 1, ], ], ], @@ -283,8 +284,9 @@ public function canCopyElementFromContainerMaxitemsReachedColumnToOtherContainer 'action' => 'paste', 'target' => 1, 'update' => [ - 'colPos' => '3-201', + 'colPos' => 201, 'sys_language_uid' => 0, + 'tx_container_parent' => 3, ], ], ], @@ -309,8 +311,9 @@ public function canMoveElementFromContainerMaxitemsReachedColumnToOtherContainer 'action' => 'paste', 'target' => 1, 'update' => [ - 'colPos' => '3-201', + 'colPos' => 201, 'sys_language_uid' => 0, + 'tx_container_parent' => 3, ], ], ], @@ -335,8 +338,9 @@ public function cannotMoveElementInsideContainerColumnIfMaxitemsIsReached(): voi 'action' => 'paste', 'target' => -2, 'update' => [ - 'colPos' => '1-202', + 'colPos' => 202, 'sys_language_uid' => 0, + 'tx_container_parent' => 1, ], ], ], diff --git a/Tests/Functional/Datahandler/DefaultLanguage/ContainerTest.php b/Tests/Functional/Datahandler/DefaultLanguage/ContainerTest.php index ebf879bf..c7a7358e 100644 --- a/Tests/Functional/Datahandler/DefaultLanguage/ContainerTest.php +++ b/Tests/Functional/Datahandler/DefaultLanguage/ContainerTest.php @@ -48,9 +48,9 @@ public function moveContainerIntoItSelfsNestedAtTop(): void 'action' => 'paste', 'target' => 2, 'update' => [ - 'colPos' => '2-202', + 'colPos' => 202, 'sys_language_uid' => 0, - + 'tx_container_parent' => 2, ], ], ], @@ -74,9 +74,9 @@ public function moveContainerIntoItSelfsAtTop(): void 'action' => 'paste', 'target' => 2, 'update' => [ - 'colPos' => '1-202', + 'colPos' => 202, 'sys_language_uid' => 0, - + 'tx_container_parent' => 1, ], ], ], @@ -118,7 +118,6 @@ public function moveContainerAfterElementMovesChildren(): void 'update' => [ 'colPos' => 0, 'sys_language_uid' => 0, - ], ], ], diff --git a/Tests/Functional/Datahandler/DefaultLanguage/CopyElementOtherPageTest.php b/Tests/Functional/Datahandler/DefaultLanguage/CopyElementOtherPageTest.php index 42a0217e..ffd11b87 100644 --- a/Tests/Functional/Datahandler/DefaultLanguage/CopyElementOtherPageTest.php +++ b/Tests/Functional/Datahandler/DefaultLanguage/CopyElementOtherPageTest.php @@ -30,7 +30,6 @@ public function copyChildElementOutsideContainerAtTop(): void 'update' => [ 'colPos' => 0, 'sys_language_uid' => 0, - ], ], ], @@ -55,7 +54,6 @@ public function copyChildElementOutsideContainerAfterElement(): void 'update' => [ 'colPos' => 0, 'sys_language_uid' => 0, - ], ], ], @@ -79,9 +77,9 @@ public function copyChildElementToOtherColumnTop(): void 'action' => 'paste', 'target' => 3, 'update' => [ - 'colPos' => '11-201', + 'colPos' => 201, 'sys_language_uid' => 0, - + 'tx_container_parent' => 11, ], ], ], @@ -105,9 +103,9 @@ public function copyChildElementToOtherColumnAfterElement(): void 'action' => 'paste', 'target' => -13, 'update' => [ - 'colPos' => '11-201', + 'colPos' => 201, 'sys_language_uid' => 0, - + 'tx_container_parent' => 11, ], ], ], @@ -130,9 +128,9 @@ public function copyElementIntoContainerAtTop(): void 'action' => 'paste', 'target' => 3, 'update' => [ - 'colPos' => '11-201', + 'colPos' => 201, 'sys_language_uid' => 0, - + 'tx_container_parent' => 11, ], ], ], @@ -156,9 +154,9 @@ public function copyElementIntoContainerAfterElement(): void 'action' => 'paste', 'target' => -13, 'update' => [ - 'colPos' => '11-201', + 'colPos' => 201, 'sys_language_uid' => 0, - + 'tx_container_parent' => 11, ], ], ], diff --git a/Tests/Functional/Datahandler/DefaultLanguage/CopyElementTest.php b/Tests/Functional/Datahandler/DefaultLanguage/CopyElementTest.php index 3c89ba9a..efe6b7b5 100644 --- a/Tests/Functional/Datahandler/DefaultLanguage/CopyElementTest.php +++ b/Tests/Functional/Datahandler/DefaultLanguage/CopyElementTest.php @@ -79,9 +79,9 @@ public function copyChildElementToOtherColumnTop(): void 'action' => 'paste', 'target' => 1, 'update' => [ - 'colPos' => '1-201', + 'colPos' => 201, 'sys_language_uid' => 0, - + 'tx_container_parent' => 1, ], ], ], @@ -105,9 +105,9 @@ public function copyChildElementToOtherColumnAfterElement(): void 'action' => 'paste', 'target' => -3, 'update' => [ - 'colPos' => '1-201', + 'colPos' => 201, 'sys_language_uid' => 0, - + 'tx_container_parent' => 1, ], ], ], @@ -130,9 +130,9 @@ public function copyElementIntoContainerAtTop(): void 'action' => 'paste', 'target' => 1, 'update' => [ - 'colPos' => '1-201', + 'colPos' => 201, 'sys_language_uid' => 0, - + 'tx_container_parent' => 1, ], ], ], @@ -156,9 +156,9 @@ public function copyElementIntoContainerAfterElement(): void 'action' => 'paste', 'target' => -3, 'update' => [ - 'colPos' => '1-201', + 'colPos' => 201, 'sys_language_uid' => 0, - + 'tx_container_parent' => 1, ], ], ], diff --git a/Tests/Functional/Datahandler/DefaultLanguage/MoveElementOtherPageTest.php b/Tests/Functional/Datahandler/DefaultLanguage/MoveElementOtherPageTest.php index d197cd46..27523a2d 100644 --- a/Tests/Functional/Datahandler/DefaultLanguage/MoveElementOtherPageTest.php +++ b/Tests/Functional/Datahandler/DefaultLanguage/MoveElementOtherPageTest.php @@ -79,9 +79,9 @@ public function moveChildElementToOtherColumnTop(): void 'action' => 'paste', 'target' => 3, 'update' => [ - 'colPos' => '11-201', + 'colPos' => 201, 'sys_language_uid' => 0, - + 'tx_container_parent' => 11, ], ], ], @@ -105,9 +105,9 @@ public function moveChildElementToOtherColumnAfterElement(): void 'action' => 'paste', 'target' => -13, 'update' => [ - 'colPos' => '11-201', + 'colPos' => 201, 'sys_language_uid' => 0, - + 'tx_container_parent' => 11, ], ], ], @@ -130,9 +130,9 @@ public function moveElementIntoContainerAtTop(): void 'action' => 'paste', 'target' => 3, 'update' => [ - 'colPos' => '11-201', + 'colPos' => 201, 'sys_language_uid' => 0, - + 'tx_container_parent' => 11, ], ], ], @@ -156,9 +156,9 @@ public function moveElementIntoContainerAfterElement(): void 'action' => 'paste', 'target' => -13, 'update' => [ - 'colPos' => '11-201', + 'colPos' => 201, 'sys_language_uid' => 0, - + 'tx_container_parent' => 11, ], ], ], diff --git a/Tests/Functional/Datahandler/DefaultLanguage/MoveElementTest.php b/Tests/Functional/Datahandler/DefaultLanguage/MoveElementTest.php index f09be4b9..52fa6b20 100644 --- a/Tests/Functional/Datahandler/DefaultLanguage/MoveElementTest.php +++ b/Tests/Functional/Datahandler/DefaultLanguage/MoveElementTest.php @@ -79,9 +79,9 @@ public function moveChildElementToOtherColumnTop(): void 'action' => 'paste', 'target' => 1, 'update' => [ - 'colPos' => '1-201', + 'colPos' => 201, 'sys_language_uid' => 0, - + 'tx_container_parent' => 1, ], ], ], @@ -105,9 +105,9 @@ public function moveChildElementToOtherColumnAfterElement(): void 'action' => 'paste', 'target' => -3, 'update' => [ - 'colPos' => '1-201', + 'colPos' => 201, 'sys_language_uid' => 0, - + 'tx_container_parent' => 1, ], ], ], @@ -130,9 +130,9 @@ public function moveElementIntoContainerAtTop(): void 'action' => 'paste', 'target' => 1, 'update' => [ - 'colPos' => '1-201', + 'colPos' => 201, 'sys_language_uid' => 0, - + 'tx_container_parent' => 1, ], ], ], @@ -156,9 +156,9 @@ public function moveElementIntoContainerAfterElement(): void 'action' => 'paste', 'target' => -3, 'update' => [ - 'colPos' => '1-201', + 'colPos' => 201, 'sys_language_uid' => 0, - + 'tx_container_parent' => 1, ], ], ], diff --git a/Tests/Functional/Datahandler/Localization/ConnectedMode/MoveElementOtherPageTest.php b/Tests/Functional/Datahandler/Localization/ConnectedMode/MoveElementOtherPageTest.php index 476ac91b..78d845ff 100644 --- a/Tests/Functional/Datahandler/Localization/ConnectedMode/MoveElementOtherPageTest.php +++ b/Tests/Functional/Datahandler/Localization/ConnectedMode/MoveElementOtherPageTest.php @@ -79,9 +79,9 @@ public function moveChildElementToOtherColumnTop(): void 'action' => 'paste', 'target' => 3, 'update' => [ - 'colPos' => '11-201', + 'colPos' => 201, 'sys_language_uid' => 0, - + 'tx_container_parent' => 11, ], ], ], @@ -105,9 +105,9 @@ public function moveChildElementToOtherColumnAfterElement(): void 'action' => 'paste', 'target' => -13, 'update' => [ - 'colPos' => '11-201', + 'colPos' => 201, 'sys_language_uid' => 0, - + 'tx_container_parent' => 11, ], ], ], @@ -130,9 +130,9 @@ public function moveElementIntoContainerAtTop(): void 'action' => 'paste', 'target' => 3, 'update' => [ - 'colPos' => '11-201', + 'colPos' => 201, 'sys_language_uid' => 0, - + 'tx_container_parent' => 11, ], ], ], @@ -156,9 +156,9 @@ public function moveElementIntoContainerAfterElement(): void 'action' => 'paste', 'target' => -13, 'update' => [ - 'colPos' => '11-201', + 'colPos' => 201, 'sys_language_uid' => 0, - + 'tx_container_parent' => 11, ], ], ], diff --git a/Tests/Functional/Datahandler/Localization/ConnectedMode/MoveElementTest.php b/Tests/Functional/Datahandler/Localization/ConnectedMode/MoveElementTest.php index d040f7fc..3a56d840 100644 --- a/Tests/Functional/Datahandler/Localization/ConnectedMode/MoveElementTest.php +++ b/Tests/Functional/Datahandler/Localization/ConnectedMode/MoveElementTest.php @@ -79,9 +79,9 @@ public function moveChildElementToOtherColumnTop(): void 'action' => 'paste', 'target' => 1, 'update' => [ - 'colPos' => '1-201', + 'colPos' => 201, 'sys_language_uid' => 0, - + 'tx_container_parent' => 1, ], ], ], @@ -105,9 +105,9 @@ public function moveChildElementToOtherColumnAfterElement(): void 'action' => 'paste', 'target' => -3, 'update' => [ - 'colPos' => '1-201', + 'colPos' => 201, 'sys_language_uid' => 0, - + 'tx_container_parent' => 1, ], ], ], @@ -130,9 +130,9 @@ public function moveElementIntoContainerAtTop(): void 'action' => 'paste', 'target' => 1, 'update' => [ - 'colPos' => '1-201', + 'colPos' => 201, 'sys_language_uid' => 0, - + 'tx_container_parent' => 1, ], ], ], @@ -156,9 +156,9 @@ public function moveElementIntoContainerAfterElement(): void 'action' => 'paste', 'target' => -3, 'update' => [ - 'colPos' => '1-201', + 'colPos' => 201, 'sys_language_uid' => 0, - + 'tx_container_parent' => 1, ], ], ], diff --git a/Tests/Functional/Datahandler/Localization/FreeMode/CopyElementOtherPageTest.php b/Tests/Functional/Datahandler/Localization/FreeMode/CopyElementOtherPageTest.php index d9a832bc..0978312d 100644 --- a/Tests/Functional/Datahandler/Localization/FreeMode/CopyElementOtherPageTest.php +++ b/Tests/Functional/Datahandler/Localization/FreeMode/CopyElementOtherPageTest.php @@ -79,9 +79,9 @@ public function copyChildElementToOtherColumnTop(): void 'action' => 'paste', 'target' => 3, 'update' => [ - 'colPos' => '61-201', + 'colPos' => 201, 'sys_language_uid' => 1, - + 'tx_container_parent' => 61, ], ], ], @@ -105,9 +105,9 @@ public function copyChildElementToOtherColumnAfterElement(): void 'action' => 'paste', 'target' => -63, 'update' => [ - 'colPos' => '61-201', + 'colPos' => 201, 'sys_language_uid' => 1, - + 'tx_container_parent' => 61, ], ], ], @@ -130,9 +130,9 @@ public function copyElementIntoContainerAtTop(): void 'action' => 'paste', 'target' => 3, 'update' => [ - 'colPos' => '61-201', + 'colPos' => 201, 'sys_language_uid' => 1, - + 'tx_container_parent' => 61, ], ], ], @@ -156,9 +156,9 @@ public function copyElementIntoContainerAfterElement(): void 'action' => 'paste', 'target' => -63, 'update' => [ - 'colPos' => '61-201', + 'colPos' => 201, 'sys_language_uid' => 1, - + 'tx_container_parent' => 61, ], ], ], diff --git a/Tests/Functional/Datahandler/Localization/FreeMode/CopyElementTest.php b/Tests/Functional/Datahandler/Localization/FreeMode/CopyElementTest.php index 002c3fd1..2d8585b9 100644 --- a/Tests/Functional/Datahandler/Localization/FreeMode/CopyElementTest.php +++ b/Tests/Functional/Datahandler/Localization/FreeMode/CopyElementTest.php @@ -79,9 +79,9 @@ public function copyChildElementToOtherColumnTop(): void 'action' => 'paste', 'target' => 1, 'update' => [ - 'colPos' => '51-201', + 'colPos' => 201, 'sys_language_uid' => 1, - + 'tx_container_parent' => 51, ], ], ], @@ -105,9 +105,9 @@ public function copyChildElementToOtherColumnAfterElement(): void 'action' => 'paste', 'target' => -53, 'update' => [ - 'colPos' => '51-201', + 'colPos' => 201, 'sys_language_uid' => 1, - + 'tx_container_parent' => 51, ], ], ], @@ -130,9 +130,9 @@ public function copyElementIntoContainerAtTop(): void 'action' => 'paste', 'target' => 1, 'update' => [ - 'colPos' => '51-201', + 'colPos' => 201, 'sys_language_uid' => 1, - + 'tx_container_parent' => 51, ], ], ], @@ -156,9 +156,9 @@ public function copyElementIntoContainerAfterElement(): void 'action' => 'paste', 'target' => -53, 'update' => [ - 'colPos' => '51-201', + 'colPos' => 201, 'sys_language_uid' => 1, - + 'tx_container_parent' => 51, ], ], ], diff --git a/Tests/Functional/Datahandler/Localization/FreeMode/MoveElementOtherPageTest.php b/Tests/Functional/Datahandler/Localization/FreeMode/MoveElementOtherPageTest.php index d335dd7e..008c60e7 100644 --- a/Tests/Functional/Datahandler/Localization/FreeMode/MoveElementOtherPageTest.php +++ b/Tests/Functional/Datahandler/Localization/FreeMode/MoveElementOtherPageTest.php @@ -79,9 +79,9 @@ public function moveChildElementToOtherColumnTop(): void 'action' => 'paste', 'target' => 3, 'update' => [ - 'colPos' => '61-201', + 'colPos' => 201, 'sys_language_uid' => 1, - + 'tx_container_parent' => 61, ], ], ], @@ -105,9 +105,9 @@ public function moveChildElementToOtherColumnAfterElement(): void 'action' => 'paste', 'target' => -63, 'update' => [ - 'colPos' => '61-201', + 'colPos' => 201, 'sys_language_uid' => 1, - + 'tx_container_parent' => 61, ], ], ], @@ -130,9 +130,9 @@ public function moveElementIntoContainerAtTop(): void 'action' => 'paste', 'target' => 3, 'update' => [ - 'colPos' => '61-201', + 'colPos' => 201, 'sys_language_uid' => 1, - + 'tx_container_parent' => 61, ], ], ], @@ -156,9 +156,9 @@ public function moveElementIntoContainerAfterElement(): void 'action' => 'paste', 'target' => -63, 'update' => [ - 'colPos' => '61-201', + 'colPos' => 201, 'sys_language_uid' => 1, - + 'tx_container_parent' => 61, ], ], ], diff --git a/Tests/Functional/Datahandler/Localization/FreeMode/MoveElementTest.php b/Tests/Functional/Datahandler/Localization/FreeMode/MoveElementTest.php index c3e1c80f..2a2e73bb 100644 --- a/Tests/Functional/Datahandler/Localization/FreeMode/MoveElementTest.php +++ b/Tests/Functional/Datahandler/Localization/FreeMode/MoveElementTest.php @@ -79,8 +79,9 @@ public function moveChildElementToOtherColumnTop(): void 'action' => 'paste', 'target' => 1, 'update' => [ - 'colPos' => '51-201', + 'colPos' => 201, 'sys_language_uid' => 1, + 'tx_container_parent' => 51, ], ], @@ -105,8 +106,9 @@ public function moveChildElementToOtherColumnAfterElement(): void 'action' => 'paste', 'target' => -53, 'update' => [ - 'colPos' => '51-201', + 'colPos' => 201, 'sys_language_uid' => 1, + 'tx_container_parent' => 51, ], ], @@ -130,8 +132,9 @@ public function moveElementIntoContainerAtTop(): void 'action' => 'paste', 'target' => 1, 'update' => [ - 'colPos' => '51-201', + 'colPos' => 201, 'sys_language_uid' => 1, + 'tx_container_parent' => 51, ], ], @@ -156,8 +159,9 @@ public function moveElementIntoContainerAfterElement(): void 'action' => 'paste', 'target' => -53, 'update' => [ - 'colPos' => '51-201', + 'colPos' => 201, 'sys_language_uid' => 1, + 'tx_container_parent' => 51, ], ], diff --git a/Tests/Functional/Datahandler/Workspace/ContainerTest.php b/Tests/Functional/Datahandler/Workspace/ContainerTest.php index 82d12ae6..3a48b484 100644 --- a/Tests/Functional/Datahandler/Workspace/ContainerTest.php +++ b/Tests/Functional/Datahandler/Workspace/ContainerTest.php @@ -76,8 +76,9 @@ public function moveChildsColPosInContainer(): void 'action' => 'paste', 'target' => 1, 'update' => [ - 'colPos' => '1-201', + 'colPos' => 201, 'sys_language_uid' => 0, + 'tx_container_parent' => 1, ], ], ], @@ -123,9 +124,9 @@ public function moveChildsColPosInOtherContainer(): void 'action' => 'paste', 'target' => 1, 'update' => [ - 'colPos' => '91-201', + 'colPos' => 201, 'sys_language_uid' => 0, - + 'tx_container_parent' => 91, ], ], ], @@ -147,9 +148,9 @@ public function copyChildsColPosInContainer(): void 'action' => 'paste', 'target' => 1, 'update' => [ - 'colPos' => '1-201', + 'colPos' => 201, 'sys_language_uid' => 0, - + 'tx_container_parent' => 1, ], ], ], @@ -196,9 +197,9 @@ public function copyChildsColPosInOtherContainer(): void 'action' => 'paste', 'target' => 1, 'update' => [ - 'colPos' => '91-201', + 'colPos' => 201, 'sys_language_uid' => 0, - + 'tx_container_parent' => 91, ], ], ], @@ -242,9 +243,9 @@ public function moveRecordInColPosCreatesWorkspaceElementInContainer() 'action' => 'paste', 'target' => 1, 'update' => [ - 'colPos' => '1-200', + 'colPos' => 200, 'sys_language_uid' => 0, - + 'tx_container_parent' => 1, ], ], ], diff --git a/Tests/Unit/Hooks/Datahandler/CommandMapBeforeStartHookTest.php b/Tests/Unit/Hooks/Datahandler/CommandMapBeforeStartHookTest.php index 108af399..ea259bfc 100644 --- a/Tests/Unit/Hooks/Datahandler/CommandMapBeforeStartHookTest.php +++ b/Tests/Unit/Hooks/Datahandler/CommandMapBeforeStartHookTest.php @@ -112,8 +112,9 @@ public function rewriteSimpleCommandMapTestForIntoContainer(): void 'action' => 'paste', 'target' => -1, 'update' => [ - 'colPos' => '2-3', + 'colPos' => 3, 'sys_language_uid' => 0, + 'tx_container_parent' => 2, ], ], @@ -173,7 +174,7 @@ public function rewriteSimpleCommandMapTestForAfterContainer(): void } #[Test] - public function extractContainerIdFromColPosInDatamapSetsContainerIdToSplittedColPosValue(): void + public function setContainerIdToZeroIfNotSetOnUpdateSetsContainerIdToZeroValue(): void { $database = $this->getMockBuilder(Database::class)->getMock(); $containerFactory = $this->getMockBuilder(ContainerFactory::class)->disableOriginalConstructor()->getMock(); @@ -184,80 +185,11 @@ public function extractContainerIdFromColPosInDatamapSetsContainerIdToSplittedCo ->onlyMethods([]) ->getMock(); $commandMap = [ - 'tt_content' => [ - 39 => [ - 'copy' => [ - 'update' => [ - 'colPos' => '2-34', - ], - ], - ], - ], - ]; - // should be - $expected = [ 'tt_content' => [ 39 => [ 'copy' => [ 'update' => [ 'colPos' => 34, - 'tx_container_parent' => 2, - - ], - ], - ], - ], - ]; - $commandMap = $dataHandlerHook->_call('extractContainerIdFromColPosOnUpdate', $commandMap); - self::assertSame(34, $commandMap['tt_content'][39]['copy']['update']['colPos']); - self::assertSame(2, $commandMap['tt_content'][39]['copy']['update']['tx_container_parent']); - } - - #[Test] - public function extractContainerIdFromColPosInDatamapSetsContainerIdToSplittedColPosValueForDelimiterV12WithMultipleDelimiters(): void - { - $database = $this->getMockBuilder(Database::class)->getMock(); - $containerFactory = $this->getMockBuilder(ContainerFactory::class)->disableOriginalConstructor()->getMock(); - $tcaRegistry = $this->getMockBuilder(Registry::class)->disableOriginalConstructor()->getMock(); - $containerService = $this->getMockBuilder(ContainerService::class)->disableOriginalConstructor()->getMock(); - $dataHandlerHook = $this->getMockBuilder($this->buildAccessibleProxy(CommandMapBeforeStartHook::class)) - ->setConstructorArgs(['containerFactory' => $containerFactory, 'tcaRegistry' => $tcaRegistry, 'database' => $database, 'containerService' => $containerService]) - ->onlyMethods([]) - ->getMock(); - $commandMap = [ - 'tt_content' => [ - 39 => [ - 'copy' => [ - 'update' => [ - 'colPos' => 34, - 'tx_container_parent' => 2, - ], - ], - ], - ], - ]; - $commandMap = $dataHandlerHook->_call('extractContainerIdFromColPosOnUpdate', $commandMap); - self::assertSame(34, $commandMap['tt_content'][39]['copy']['update']['colPos']); - self::assertSame(2, $commandMap['tt_content'][39]['copy']['update']['tx_container_parent']); - } - - #[Test] - public function extractContainerIdFromColPosInDatamapSetsContainerIdToZeroValue(): void - { - $database = $this->getMockBuilder(Database::class)->getMock(); - $containerFactory = $this->getMockBuilder(ContainerFactory::class)->disableOriginalConstructor()->getMock(); - $tcaRegistry = $this->getMockBuilder(Registry::class)->disableOriginalConstructor()->getMock(); - $containerService = $this->getMockBuilder(ContainerService::class)->disableOriginalConstructor()->getMock(); - $dataHandlerHook = $this->getMockBuilder($this->buildAccessibleProxy(CommandMapBeforeStartHook::class)) - ->setConstructorArgs(['containerFactory' => $containerFactory, 'tcaRegistry' => $tcaRegistry, 'database' => $database, 'containerService' => $containerService]) - ->onlyMethods([]) - ->getMock(); - $commandMap = [ - 'tt_content' => [ - 39 => [ - 'copy' => [ - 'update' => [ - 'colPos' => '34', ], ], ], @@ -277,7 +209,7 @@ public function extractContainerIdFromColPosInDatamapSetsContainerIdToZeroValue( ], ], ]; - $commandMap = $dataHandlerHook->_call('extractContainerIdFromColPosOnUpdate', $commandMap); + $commandMap = $dataHandlerHook->_call('setContainerIdToZeroIfNotSetOnUpdate', $commandMap); self::assertSame(34, $commandMap['tt_content'][39]['copy']['update']['colPos']); self::assertSame(0, $commandMap['tt_content'][39]['copy']['update']['tx_container_parent']); }