From c684eb085c71867a66c24aad16ae1749887cb80d Mon Sep 17 00:00:00 2001 From: Andreas Wolf Date: Sat, 22 Jun 2024 10:09:45 +0200 Subject: [PATCH 01/11] [TASK] Port RemoveConfigDoctypeSwitchFractor from ssch/typo-rector 1.x --- .../Fixtures/fixture.typoscript | 15 +++++++ .../RemoveConfigDoctypeSwitchFractorTest.php | 30 +++++++++++++ .../config/fractor.php | 9 ++++ .../RemoveConfigDoctypeSwitchFractor.php | 44 +++++++++++++++++++ 4 files changed, 98 insertions(+) create mode 100644 packages/typo3-fractor/rules-tests/TYPO3v12/TypoScript/RemoveConfigDoctypeSwitchFractor/Fixtures/fixture.typoscript create mode 100644 packages/typo3-fractor/rules-tests/TYPO3v12/TypoScript/RemoveConfigDoctypeSwitchFractor/RemoveConfigDoctypeSwitchFractorTest.php create mode 100644 packages/typo3-fractor/rules-tests/TYPO3v12/TypoScript/RemoveConfigDoctypeSwitchFractor/config/fractor.php create mode 100644 packages/typo3-fractor/rules/TYPO3v12/TypoScript/RemoveConfigDoctypeSwitchFractor.php diff --git a/packages/typo3-fractor/rules-tests/TYPO3v12/TypoScript/RemoveConfigDoctypeSwitchFractor/Fixtures/fixture.typoscript b/packages/typo3-fractor/rules-tests/TYPO3v12/TypoScript/RemoveConfigDoctypeSwitchFractor/Fixtures/fixture.typoscript new file mode 100644 index 00000000..5c3b97af --- /dev/null +++ b/packages/typo3-fractor/rules-tests/TYPO3v12/TypoScript/RemoveConfigDoctypeSwitchFractor/Fixtures/fixture.typoscript @@ -0,0 +1,15 @@ +config.doctypeSwitch = 1 + +config { + doctypeSwitch = 1 + dummy = 1 +} + +config.foo = true +----- + +config { + dummy = 1 +} + +config.foo = true diff --git a/packages/typo3-fractor/rules-tests/TYPO3v12/TypoScript/RemoveConfigDoctypeSwitchFractor/RemoveConfigDoctypeSwitchFractorTest.php b/packages/typo3-fractor/rules-tests/TYPO3v12/TypoScript/RemoveConfigDoctypeSwitchFractor/RemoveConfigDoctypeSwitchFractorTest.php new file mode 100644 index 00000000..b6d3c98d --- /dev/null +++ b/packages/typo3-fractor/rules-tests/TYPO3v12/TypoScript/RemoveConfigDoctypeSwitchFractor/RemoveConfigDoctypeSwitchFractorTest.php @@ -0,0 +1,30 @@ +doTestFile($filePath); + } + + public static function provideData(): \Iterator + { + return self::yieldFilesFromDirectory(__DIR__ . '/Fixtures', '*.typoscript'); + } + + public function provideConfigFilePath(): ?string + { + return __DIR__ . '/config/fractor.php'; + } +} diff --git a/packages/typo3-fractor/rules-tests/TYPO3v12/TypoScript/RemoveConfigDoctypeSwitchFractor/config/fractor.php b/packages/typo3-fractor/rules-tests/TYPO3v12/TypoScript/RemoveConfigDoctypeSwitchFractor/config/fractor.php new file mode 100644 index 00000000..64e45de4 --- /dev/null +++ b/packages/typo3-fractor/rules-tests/TYPO3v12/TypoScript/RemoveConfigDoctypeSwitchFractor/config/fractor.php @@ -0,0 +1,9 @@ +withRules([RemoveConfigDoctypeSwitchFractor::class]); diff --git a/packages/typo3-fractor/rules/TYPO3v12/TypoScript/RemoveConfigDoctypeSwitchFractor.php b/packages/typo3-fractor/rules/TYPO3v12/TypoScript/RemoveConfigDoctypeSwitchFractor.php new file mode 100644 index 00000000..afe90829 --- /dev/null +++ b/packages/typo3-fractor/rules/TYPO3v12/TypoScript/RemoveConfigDoctypeSwitchFractor.php @@ -0,0 +1,44 @@ +object->absoluteName !== 'config.doctypeSwitch') { + return null; + } + + return TypoScriptStatementsIterator::REMOVE_NODE; + } + + public function getRuleDefinition(): RuleDefinition + { + return new RuleDefinition('Remove config.doctypeSwitch', [new CodeSample( + <<<'CODE_SAMPLE' +config.doctypeSwitch = 1 +CODE_SAMPLE + , + <<<'CODE_SAMPLE' +- +CODE_SAMPLE + )]); + } +} From b2ce6086affa8b120e5aa5a1b5d891bea109ce7a Mon Sep 17 00:00:00 2001 From: Andreas Wolf Date: Sat, 22 Jun 2024 10:13:37 +0200 Subject: [PATCH 02/11] [TASK] Port RemoveDisablePageExternalUrlOptionFractor from ssch/typo-rector 1.x --- .../Fixtures/fixture.typoscript | 16 +++++++ ...isablePageExternalUrlOptionFractorTest.php | 30 +++++++++++++ .../config/fractor.php | 9 ++++ ...oveDisablePageExternalUrlOptionFractor.php | 44 +++++++++++++++++++ 4 files changed, 99 insertions(+) create mode 100644 packages/typo3-fractor/rules-tests/TYPO3v12/TypoScript/RemoveDisablePageExternalUrlOptionFractor/Fixtures/fixture.typoscript create mode 100644 packages/typo3-fractor/rules-tests/TYPO3v12/TypoScript/RemoveDisablePageExternalUrlOptionFractor/RemoveDisablePageExternalUrlOptionFractorTest.php create mode 100644 packages/typo3-fractor/rules-tests/TYPO3v12/TypoScript/RemoveDisablePageExternalUrlOptionFractor/config/fractor.php create mode 100644 packages/typo3-fractor/rules/TYPO3v12/TypoScript/RemoveDisablePageExternalUrlOptionFractor.php diff --git a/packages/typo3-fractor/rules-tests/TYPO3v12/TypoScript/RemoveDisablePageExternalUrlOptionFractor/Fixtures/fixture.typoscript b/packages/typo3-fractor/rules-tests/TYPO3v12/TypoScript/RemoveDisablePageExternalUrlOptionFractor/Fixtures/fixture.typoscript new file mode 100644 index 00000000..8b3d370a --- /dev/null +++ b/packages/typo3-fractor/rules-tests/TYPO3v12/TypoScript/RemoveDisablePageExternalUrlOptionFractor/Fixtures/fixture.typoscript @@ -0,0 +1,16 @@ +config.disablePageExternalUrl = 1 +config.disablePageExternalUrl = 0 + +config { + disablePageExternalUrl = 1 + dummy = 1 +} + +config.foo = true +----- + +config { + dummy = 1 +} + +config.foo = true diff --git a/packages/typo3-fractor/rules-tests/TYPO3v12/TypoScript/RemoveDisablePageExternalUrlOptionFractor/RemoveDisablePageExternalUrlOptionFractorTest.php b/packages/typo3-fractor/rules-tests/TYPO3v12/TypoScript/RemoveDisablePageExternalUrlOptionFractor/RemoveDisablePageExternalUrlOptionFractorTest.php new file mode 100644 index 00000000..b11d2fbc --- /dev/null +++ b/packages/typo3-fractor/rules-tests/TYPO3v12/TypoScript/RemoveDisablePageExternalUrlOptionFractor/RemoveDisablePageExternalUrlOptionFractorTest.php @@ -0,0 +1,30 @@ +doTestFile($filePath); + } + + public static function provideData(): \Iterator + { + return self::yieldFilesFromDirectory(__DIR__ . '/Fixtures', '*.typoscript'); + } + + public function provideConfigFilePath(): ?string + { + return __DIR__ . '/config/fractor.php'; + } +} diff --git a/packages/typo3-fractor/rules-tests/TYPO3v12/TypoScript/RemoveDisablePageExternalUrlOptionFractor/config/fractor.php b/packages/typo3-fractor/rules-tests/TYPO3v12/TypoScript/RemoveDisablePageExternalUrlOptionFractor/config/fractor.php new file mode 100644 index 00000000..db1be17a --- /dev/null +++ b/packages/typo3-fractor/rules-tests/TYPO3v12/TypoScript/RemoveDisablePageExternalUrlOptionFractor/config/fractor.php @@ -0,0 +1,9 @@ +withRules([RemoveDisablePageExternalUrlOptionFractor::class]); diff --git a/packages/typo3-fractor/rules/TYPO3v12/TypoScript/RemoveDisablePageExternalUrlOptionFractor.php b/packages/typo3-fractor/rules/TYPO3v12/TypoScript/RemoveDisablePageExternalUrlOptionFractor.php new file mode 100644 index 00000000..1c1d53bd --- /dev/null +++ b/packages/typo3-fractor/rules/TYPO3v12/TypoScript/RemoveDisablePageExternalUrlOptionFractor.php @@ -0,0 +1,44 @@ +object->absoluteName !== 'config.disablePageExternalUrl') { + return null; + } + + return TypoScriptStatementsIterator::REMOVE_NODE; + } + + public function getRuleDefinition(): RuleDefinition + { + return new RuleDefinition('Remove config.disablePageExternalUrl', [new CodeSample( + <<<'CODE_SAMPLE' +config.disablePageExternalUrl = 1 +CODE_SAMPLE + , + <<<'CODE_SAMPLE' +- +CODE_SAMPLE + )]); + } +} From 77a36109c58726844f458cf49fb112fc88a77f91 Mon Sep 17 00:00:00 2001 From: Andreas Wolf Date: Sat, 22 Jun 2024 10:19:26 +0200 Subject: [PATCH 03/11] [TASK] Simplify TS config option removal Fractors --- .../Fixtures/fixture.typoscript | 0 ...nfigDisablePageExternalUrlFractorTest.php} | 8 +-- .../config/fractor.php | 9 ++++ .../config/fractor.php | 9 ---- ...oveConfigDisablePageExternalUrlFractor.php | 18 +++++++ .../RemoveConfigDoctypeSwitchFractor.php | 34 ++----------- ...oveDisablePageExternalUrlOptionFractor.php | 44 ---------------- ...AbstractRemoveTypoScriptSettingFractor.php | 50 +++++++++++++++++++ 8 files changed, 85 insertions(+), 87 deletions(-) rename packages/typo3-fractor/rules-tests/TYPO3v12/TypoScript/{RemoveDisablePageExternalUrlOptionFractor => RemoveConfigDisablePageExternalUrlFractor}/Fixtures/fixture.typoscript (100%) rename packages/typo3-fractor/rules-tests/TYPO3v12/TypoScript/{RemoveDisablePageExternalUrlOptionFractor/RemoveDisablePageExternalUrlOptionFractorTest.php => RemoveConfigDisablePageExternalUrlFractor/RemoveConfigDisablePageExternalUrlFractorTest.php} (66%) create mode 100644 packages/typo3-fractor/rules-tests/TYPO3v12/TypoScript/RemoveConfigDisablePageExternalUrlFractor/config/fractor.php delete mode 100644 packages/typo3-fractor/rules-tests/TYPO3v12/TypoScript/RemoveDisablePageExternalUrlOptionFractor/config/fractor.php create mode 100644 packages/typo3-fractor/rules/TYPO3v12/TypoScript/RemoveConfigDisablePageExternalUrlFractor.php delete mode 100644 packages/typo3-fractor/rules/TYPO3v12/TypoScript/RemoveDisablePageExternalUrlOptionFractor.php create mode 100644 packages/typo3-fractor/src/AbstractRemoveTypoScriptSettingFractor.php diff --git a/packages/typo3-fractor/rules-tests/TYPO3v12/TypoScript/RemoveDisablePageExternalUrlOptionFractor/Fixtures/fixture.typoscript b/packages/typo3-fractor/rules-tests/TYPO3v12/TypoScript/RemoveConfigDisablePageExternalUrlFractor/Fixtures/fixture.typoscript similarity index 100% rename from packages/typo3-fractor/rules-tests/TYPO3v12/TypoScript/RemoveDisablePageExternalUrlOptionFractor/Fixtures/fixture.typoscript rename to packages/typo3-fractor/rules-tests/TYPO3v12/TypoScript/RemoveConfigDisablePageExternalUrlFractor/Fixtures/fixture.typoscript diff --git a/packages/typo3-fractor/rules-tests/TYPO3v12/TypoScript/RemoveDisablePageExternalUrlOptionFractor/RemoveDisablePageExternalUrlOptionFractorTest.php b/packages/typo3-fractor/rules-tests/TYPO3v12/TypoScript/RemoveConfigDisablePageExternalUrlFractor/RemoveConfigDisablePageExternalUrlFractorTest.php similarity index 66% rename from packages/typo3-fractor/rules-tests/TYPO3v12/TypoScript/RemoveDisablePageExternalUrlOptionFractor/RemoveDisablePageExternalUrlOptionFractorTest.php rename to packages/typo3-fractor/rules-tests/TYPO3v12/TypoScript/RemoveConfigDisablePageExternalUrlFractor/RemoveConfigDisablePageExternalUrlFractorTest.php index b11d2fbc..224625bd 100644 --- a/packages/typo3-fractor/rules-tests/TYPO3v12/TypoScript/RemoveDisablePageExternalUrlOptionFractor/RemoveDisablePageExternalUrlOptionFractorTest.php +++ b/packages/typo3-fractor/rules-tests/TYPO3v12/TypoScript/RemoveConfigDisablePageExternalUrlFractor/RemoveConfigDisablePageExternalUrlFractorTest.php @@ -2,15 +2,15 @@ declare(strict_types=1); -namespace a9f\Typo3Fractor\Tests\TYPO3v12\TypoScript\RemoveDisablePageExternalUrlOptionFractor; +namespace a9f\Typo3Fractor\Tests\TYPO3v12\TypoScript\RemoveConfigDisablePageExternalUrlOptionFractor; use a9f\Fractor\Testing\PHPUnit\AbstractFractorTestCase; -use a9f\Typo3Fractor\TYPO3v12\TypoScript\RemoveDisablePageExternalUrlOptionFractor; +use a9f\Typo3Fractor\TYPO3v12\TypoScript\RemoveConfigDisablePageExternalUrlFractor; use PHPUnit\Framework\Attributes\CoversClass; use PHPUnit\Framework\Attributes\DataProvider; -#[CoversClass(RemoveDisablePageExternalUrlOptionFractor::class)] -final class RemoveDisablePageExternalUrlOptionFractorTest extends AbstractFractorTestCase +#[CoversClass(RemoveConfigDisablePageExternalUrlFractor::class)] +final class RemoveConfigDisablePageExternalUrlFractorTest extends AbstractFractorTestCase { #[DataProvider('provideData')] public function test(string $filePath): void diff --git a/packages/typo3-fractor/rules-tests/TYPO3v12/TypoScript/RemoveConfigDisablePageExternalUrlFractor/config/fractor.php b/packages/typo3-fractor/rules-tests/TYPO3v12/TypoScript/RemoveConfigDisablePageExternalUrlFractor/config/fractor.php new file mode 100644 index 00000000..f13597a7 --- /dev/null +++ b/packages/typo3-fractor/rules-tests/TYPO3v12/TypoScript/RemoveConfigDisablePageExternalUrlFractor/config/fractor.php @@ -0,0 +1,9 @@ +withRules([RemoveConfigDisablePageExternalUrlFractor::class]); diff --git a/packages/typo3-fractor/rules-tests/TYPO3v12/TypoScript/RemoveDisablePageExternalUrlOptionFractor/config/fractor.php b/packages/typo3-fractor/rules-tests/TYPO3v12/TypoScript/RemoveDisablePageExternalUrlOptionFractor/config/fractor.php deleted file mode 100644 index db1be17a..00000000 --- a/packages/typo3-fractor/rules-tests/TYPO3v12/TypoScript/RemoveDisablePageExternalUrlOptionFractor/config/fractor.php +++ /dev/null @@ -1,9 +0,0 @@ -withRules([RemoveDisablePageExternalUrlOptionFractor::class]); diff --git a/packages/typo3-fractor/rules/TYPO3v12/TypoScript/RemoveConfigDisablePageExternalUrlFractor.php b/packages/typo3-fractor/rules/TYPO3v12/TypoScript/RemoveConfigDisablePageExternalUrlFractor.php new file mode 100644 index 00000000..caa9fd7e --- /dev/null +++ b/packages/typo3-fractor/rules/TYPO3v12/TypoScript/RemoveConfigDisablePageExternalUrlFractor.php @@ -0,0 +1,18 @@ +object->absoluteName !== 'config.doctypeSwitch') { - return null; - } - - return TypoScriptStatementsIterator::REMOVE_NODE; - } - - public function getRuleDefinition(): RuleDefinition - { - return new RuleDefinition('Remove config.doctypeSwitch', [new CodeSample( - <<<'CODE_SAMPLE' -config.doctypeSwitch = 1 -CODE_SAMPLE - , - <<<'CODE_SAMPLE' -- -CODE_SAMPLE - )]); + return 'config.doctypeSwitch'; } } diff --git a/packages/typo3-fractor/rules/TYPO3v12/TypoScript/RemoveDisablePageExternalUrlOptionFractor.php b/packages/typo3-fractor/rules/TYPO3v12/TypoScript/RemoveDisablePageExternalUrlOptionFractor.php deleted file mode 100644 index 1c1d53bd..00000000 --- a/packages/typo3-fractor/rules/TYPO3v12/TypoScript/RemoveDisablePageExternalUrlOptionFractor.php +++ /dev/null @@ -1,44 +0,0 @@ -object->absoluteName !== 'config.disablePageExternalUrl') { - return null; - } - - return TypoScriptStatementsIterator::REMOVE_NODE; - } - - public function getRuleDefinition(): RuleDefinition - { - return new RuleDefinition('Remove config.disablePageExternalUrl', [new CodeSample( - <<<'CODE_SAMPLE' -config.disablePageExternalUrl = 1 -CODE_SAMPLE - , - <<<'CODE_SAMPLE' -- -CODE_SAMPLE - )]); - } -} diff --git a/packages/typo3-fractor/src/AbstractRemoveTypoScriptSettingFractor.php b/packages/typo3-fractor/src/AbstractRemoveTypoScriptSettingFractor.php new file mode 100644 index 00000000..4252b019 --- /dev/null +++ b/packages/typo3-fractor/src/AbstractRemoveTypoScriptSettingFractor.php @@ -0,0 +1,50 @@ +object->absoluteName !== $this->getFullOptionName()) { + return null; + } + + return TypoScriptStatementsIterator::REMOVE_NODE; + } + + final public function getRuleDefinition(): RuleDefinition + { + return new RuleDefinition(sprintf('Remove %s', $this->getFullOptionName()), [new CodeSample( + sprintf(<<<'CODE_SAMPLE' +%s = 1 +CODE_SAMPLE + , $this->getFullOptionName()), + <<<'CODE_SAMPLE' +- +CODE_SAMPLE + )]); + } + + abstract protected function getFullOptionName(): string; +} From 1ce3bf843041bdf04f43ea0fdcfab0eb706a67d1 Mon Sep 17 00:00:00 2001 From: Andreas Wolf Date: Sat, 22 Jun 2024 10:26:02 +0200 Subject: [PATCH 04/11] [TASK] Port RemoveConfigMetaCharsetFractor from ssch/typo-rector 1.x --- .../Fixtures/fixture.typoscript | 15 ++++++++++ .../RemoveConfigMetaCharsetFractorTest.php | 30 +++++++++++++++++++ .../config/fractor.php | 9 ++++++ .../RemoveConfigMetaCharsetFractor.php | 18 +++++++++++ 4 files changed, 72 insertions(+) create mode 100644 packages/typo3-fractor/rules-tests/TYPO3v12/TypoScript/RemoveConfigMetaCharsetFractor/Fixtures/fixture.typoscript create mode 100644 packages/typo3-fractor/rules-tests/TYPO3v12/TypoScript/RemoveConfigMetaCharsetFractor/RemoveConfigMetaCharsetFractorTest.php create mode 100644 packages/typo3-fractor/rules-tests/TYPO3v12/TypoScript/RemoveConfigMetaCharsetFractor/config/fractor.php create mode 100644 packages/typo3-fractor/rules/TYPO3v12/TypoScript/RemoveConfigMetaCharsetFractor.php diff --git a/packages/typo3-fractor/rules-tests/TYPO3v12/TypoScript/RemoveConfigMetaCharsetFractor/Fixtures/fixture.typoscript b/packages/typo3-fractor/rules-tests/TYPO3v12/TypoScript/RemoveConfigMetaCharsetFractor/Fixtures/fixture.typoscript new file mode 100644 index 00000000..b5b01617 --- /dev/null +++ b/packages/typo3-fractor/rules-tests/TYPO3v12/TypoScript/RemoveConfigMetaCharsetFractor/Fixtures/fixture.typoscript @@ -0,0 +1,15 @@ +config.metaCharset = utf-8 + +config { + metaCharset = utf-8 + dummy = 1 +} + +config.foo = true +----- + +config { + dummy = 1 +} + +config.foo = true diff --git a/packages/typo3-fractor/rules-tests/TYPO3v12/TypoScript/RemoveConfigMetaCharsetFractor/RemoveConfigMetaCharsetFractorTest.php b/packages/typo3-fractor/rules-tests/TYPO3v12/TypoScript/RemoveConfigMetaCharsetFractor/RemoveConfigMetaCharsetFractorTest.php new file mode 100644 index 00000000..8419560b --- /dev/null +++ b/packages/typo3-fractor/rules-tests/TYPO3v12/TypoScript/RemoveConfigMetaCharsetFractor/RemoveConfigMetaCharsetFractorTest.php @@ -0,0 +1,30 @@ +doTestFile($filePath); + } + + public static function provideData(): \Iterator + { + return self::yieldFilesFromDirectory(__DIR__ . '/Fixtures', '*.typoscript'); + } + + public function provideConfigFilePath(): ?string + { + return __DIR__ . '/config/fractor.php'; + } +} diff --git a/packages/typo3-fractor/rules-tests/TYPO3v12/TypoScript/RemoveConfigMetaCharsetFractor/config/fractor.php b/packages/typo3-fractor/rules-tests/TYPO3v12/TypoScript/RemoveConfigMetaCharsetFractor/config/fractor.php new file mode 100644 index 00000000..02c3506c --- /dev/null +++ b/packages/typo3-fractor/rules-tests/TYPO3v12/TypoScript/RemoveConfigMetaCharsetFractor/config/fractor.php @@ -0,0 +1,9 @@ +withRules([RemoveConfigMetaCharsetFractor::class]); diff --git a/packages/typo3-fractor/rules/TYPO3v12/TypoScript/RemoveConfigMetaCharsetFractor.php b/packages/typo3-fractor/rules/TYPO3v12/TypoScript/RemoveConfigMetaCharsetFractor.php new file mode 100644 index 00000000..adbd7a98 --- /dev/null +++ b/packages/typo3-fractor/rules/TYPO3v12/TypoScript/RemoveConfigMetaCharsetFractor.php @@ -0,0 +1,18 @@ + Date: Sat, 22 Jun 2024 10:30:25 +0200 Subject: [PATCH 05/11] [TASK] Port RemoveConfigSendCacheHeadersOnlyWhenLoginDeniedInBranchFractor from ssch/typo-rector 1.x --- .../Fixtures/fixture.typoscript | 15 ++++++++++ ...OnlyWhenLoginDeniedInBranchFractorTest.php | 30 +++++++++++++++++++ .../config/fractor.php | 9 ++++++ ...dersOnlyWhenLoginDeniedInBranchFractor.php | 18 +++++++++++ 4 files changed, 72 insertions(+) create mode 100644 packages/typo3-fractor/rules-tests/TYPO3v12/TypoScript/RemoveConfigSendCacheHeadersOnlyWhenLoginDeniedInBranchFractor/Fixtures/fixture.typoscript create mode 100644 packages/typo3-fractor/rules-tests/TYPO3v12/TypoScript/RemoveConfigSendCacheHeadersOnlyWhenLoginDeniedInBranchFractor/RemoveConfigSendCacheHeadersOnlyWhenLoginDeniedInBranchFractorTest.php create mode 100644 packages/typo3-fractor/rules-tests/TYPO3v12/TypoScript/RemoveConfigSendCacheHeadersOnlyWhenLoginDeniedInBranchFractor/config/fractor.php create mode 100644 packages/typo3-fractor/rules/TYPO3v12/TypoScript/RemoveConfigSendCacheHeadersOnlyWhenLoginDeniedInBranchFractor.php diff --git a/packages/typo3-fractor/rules-tests/TYPO3v12/TypoScript/RemoveConfigSendCacheHeadersOnlyWhenLoginDeniedInBranchFractor/Fixtures/fixture.typoscript b/packages/typo3-fractor/rules-tests/TYPO3v12/TypoScript/RemoveConfigSendCacheHeadersOnlyWhenLoginDeniedInBranchFractor/Fixtures/fixture.typoscript new file mode 100644 index 00000000..b7ca75cb --- /dev/null +++ b/packages/typo3-fractor/rules-tests/TYPO3v12/TypoScript/RemoveConfigSendCacheHeadersOnlyWhenLoginDeniedInBranchFractor/Fixtures/fixture.typoscript @@ -0,0 +1,15 @@ +config.sendCacheHeaders_onlyWhenLoginDeniedInBranch = 1 + +config { + sendCacheHeaders_onlyWhenLoginDeniedInBranch = 0 + dummy = 1 +} + +config.foo = true +----- + +config { + dummy = 1 +} + +config.foo = true diff --git a/packages/typo3-fractor/rules-tests/TYPO3v12/TypoScript/RemoveConfigSendCacheHeadersOnlyWhenLoginDeniedInBranchFractor/RemoveConfigSendCacheHeadersOnlyWhenLoginDeniedInBranchFractorTest.php b/packages/typo3-fractor/rules-tests/TYPO3v12/TypoScript/RemoveConfigSendCacheHeadersOnlyWhenLoginDeniedInBranchFractor/RemoveConfigSendCacheHeadersOnlyWhenLoginDeniedInBranchFractorTest.php new file mode 100644 index 00000000..c90ca174 --- /dev/null +++ b/packages/typo3-fractor/rules-tests/TYPO3v12/TypoScript/RemoveConfigSendCacheHeadersOnlyWhenLoginDeniedInBranchFractor/RemoveConfigSendCacheHeadersOnlyWhenLoginDeniedInBranchFractorTest.php @@ -0,0 +1,30 @@ +doTestFile($filePath); + } + + public static function provideData(): \Iterator + { + return self::yieldFilesFromDirectory(__DIR__ . '/Fixtures', '*.typoscript'); + } + + public function provideConfigFilePath(): ?string + { + return __DIR__ . '/config/fractor.php'; + } +} diff --git a/packages/typo3-fractor/rules-tests/TYPO3v12/TypoScript/RemoveConfigSendCacheHeadersOnlyWhenLoginDeniedInBranchFractor/config/fractor.php b/packages/typo3-fractor/rules-tests/TYPO3v12/TypoScript/RemoveConfigSendCacheHeadersOnlyWhenLoginDeniedInBranchFractor/config/fractor.php new file mode 100644 index 00000000..adfb81a7 --- /dev/null +++ b/packages/typo3-fractor/rules-tests/TYPO3v12/TypoScript/RemoveConfigSendCacheHeadersOnlyWhenLoginDeniedInBranchFractor/config/fractor.php @@ -0,0 +1,9 @@ +withRules([RemoveConfigSendCacheHeadersOnlyWhenLoginDeniedInBranchFractor::class]); diff --git a/packages/typo3-fractor/rules/TYPO3v12/TypoScript/RemoveConfigSendCacheHeadersOnlyWhenLoginDeniedInBranchFractor.php b/packages/typo3-fractor/rules/TYPO3v12/TypoScript/RemoveConfigSendCacheHeadersOnlyWhenLoginDeniedInBranchFractor.php new file mode 100644 index 00000000..556b006c --- /dev/null +++ b/packages/typo3-fractor/rules/TYPO3v12/TypoScript/RemoveConfigSendCacheHeadersOnlyWhenLoginDeniedInBranchFractor.php @@ -0,0 +1,18 @@ + Date: Sat, 22 Jun 2024 10:39:39 +0200 Subject: [PATCH 06/11] [TASK] Port RemoveNewContentElementWizardOptionsFractor from ssch/typo-rector 1.x --- .../Fixtures/fixture.typoscript | 17 ++++++ ...ContentElementWizardOptionsFractorTest.php | 30 +++++++++++ .../config/fractor.php | 9 ++++ ...eNewContentElementWizardOptionsFractor.php | 52 +++++++++++++++++++ 4 files changed, 108 insertions(+) create mode 100644 packages/typo3-fractor/rules-tests/TYPO3v12/TypoScript/RemoveNewContentElementWizardOptionsFractor/Fixtures/fixture.typoscript create mode 100644 packages/typo3-fractor/rules-tests/TYPO3v12/TypoScript/RemoveNewContentElementWizardOptionsFractor/RemoveNewContentElementWizardOptionsFractorTest.php create mode 100644 packages/typo3-fractor/rules-tests/TYPO3v12/TypoScript/RemoveNewContentElementWizardOptionsFractor/config/fractor.php create mode 100644 packages/typo3-fractor/rules/TYPO3v12/TypoScript/RemoveNewContentElementWizardOptionsFractor.php diff --git a/packages/typo3-fractor/rules-tests/TYPO3v12/TypoScript/RemoveNewContentElementWizardOptionsFractor/Fixtures/fixture.typoscript b/packages/typo3-fractor/rules-tests/TYPO3v12/TypoScript/RemoveNewContentElementWizardOptionsFractor/Fixtures/fixture.typoscript new file mode 100644 index 00000000..b39fbdd5 --- /dev/null +++ b/packages/typo3-fractor/rules-tests/TYPO3v12/TypoScript/RemoveNewContentElementWizardOptionsFractor/Fixtures/fixture.typoscript @@ -0,0 +1,17 @@ +mod.web_layout.disableNewContentElementWizard = 1 +mod.newContentElementWizard.override = 1 + +mod { + web_layout.disableNewContentElementWizard = 0 + newContentElementWizard.override = 0 + dummy = 1 +} + +config.foo = true +----- + +mod { + dummy = 1 +} + +config.foo = true diff --git a/packages/typo3-fractor/rules-tests/TYPO3v12/TypoScript/RemoveNewContentElementWizardOptionsFractor/RemoveNewContentElementWizardOptionsFractorTest.php b/packages/typo3-fractor/rules-tests/TYPO3v12/TypoScript/RemoveNewContentElementWizardOptionsFractor/RemoveNewContentElementWizardOptionsFractorTest.php new file mode 100644 index 00000000..326db36c --- /dev/null +++ b/packages/typo3-fractor/rules-tests/TYPO3v12/TypoScript/RemoveNewContentElementWizardOptionsFractor/RemoveNewContentElementWizardOptionsFractorTest.php @@ -0,0 +1,30 @@ +doTestFile($filePath); + } + + public static function provideData(): \Iterator + { + return self::yieldFilesFromDirectory(__DIR__ . '/Fixtures', '*.typoscript'); + } + + public function provideConfigFilePath(): ?string + { + return __DIR__ . '/config/fractor.php'; + } +} diff --git a/packages/typo3-fractor/rules-tests/TYPO3v12/TypoScript/RemoveNewContentElementWizardOptionsFractor/config/fractor.php b/packages/typo3-fractor/rules-tests/TYPO3v12/TypoScript/RemoveNewContentElementWizardOptionsFractor/config/fractor.php new file mode 100644 index 00000000..b2a1cb71 --- /dev/null +++ b/packages/typo3-fractor/rules-tests/TYPO3v12/TypoScript/RemoveNewContentElementWizardOptionsFractor/config/fractor.php @@ -0,0 +1,9 @@ +withRules([RemoveNewContentElementWizardOptionsFractor::class]); diff --git a/packages/typo3-fractor/rules/TYPO3v12/TypoScript/RemoveNewContentElementWizardOptionsFractor.php b/packages/typo3-fractor/rules/TYPO3v12/TypoScript/RemoveNewContentElementWizardOptionsFractor.php new file mode 100644 index 00000000..443392ba --- /dev/null +++ b/packages/typo3-fractor/rules/TYPO3v12/TypoScript/RemoveNewContentElementWizardOptionsFractor.php @@ -0,0 +1,52 @@ +object->absoluteName !== 'mod.web_layout.disableNewContentElementWizard' + && $statement->object->absoluteName !== 'mod.newContentElementWizard.override') { + return null; + } + + return TypoScriptStatementsIterator::REMOVE_NODE; + } + + public function getRuleDefinition(): RuleDefinition + { + return new RuleDefinition( + 'Remove TSConfig mod.web_layout.disableNewContentElementWizard and mod.newContentElementWizard.override', + [ + new CodeSample( + <<<'CODE_SAMPLE' +mod.web_layout.disableNewContentElementWizard = 1 +mod.newContentElementWizard.override = 1 +CODE_SAMPLE + , + <<<'CODE_SAMPLE' +- +CODE_SAMPLE + ), + + ] + ); + } +} From 8abc1029469ef3d7d2c1e3244af4976226b6ef80 Mon Sep 17 00:00:00 2001 From: Andreas Wolf Date: Sat, 22 Jun 2024 10:44:44 +0200 Subject: [PATCH 07/11] [TASK] Port RemoveConfigSpamProtectEmailAddressesAsciiOptionFractor from ssch/typo-rector 1.x --- .../Fixtures/fixture-keep.typoscript | 17 +++++++ .../Fixtures/fixture-remove.typoscript | 15 +++++++ ...ctEmailAddressesAsciiOptionFractorTest.php | 30 +++++++++++++ .../config/fractor.php | 9 ++++ ...rotectEmailAddressesAsciiOptionFractor.php | 45 +++++++++++++++++++ 5 files changed, 116 insertions(+) create mode 100644 packages/typo3-fractor/rules-tests/TYPO3v12/TypoScript/RemoveConfigSpamProtectEmailAddressesAsciiOptionFractor/Fixtures/fixture-keep.typoscript create mode 100644 packages/typo3-fractor/rules-tests/TYPO3v12/TypoScript/RemoveConfigSpamProtectEmailAddressesAsciiOptionFractor/Fixtures/fixture-remove.typoscript create mode 100644 packages/typo3-fractor/rules-tests/TYPO3v12/TypoScript/RemoveConfigSpamProtectEmailAddressesAsciiOptionFractor/RemoveConfigSpamProtectEmailAddressesAsciiOptionFractorTest.php create mode 100644 packages/typo3-fractor/rules-tests/TYPO3v12/TypoScript/RemoveConfigSpamProtectEmailAddressesAsciiOptionFractor/config/fractor.php create mode 100644 packages/typo3-fractor/rules/TYPO3v12/TypoScript/RemoveConfigSpamProtectEmailAddressesAsciiOptionFractor.php diff --git a/packages/typo3-fractor/rules-tests/TYPO3v12/TypoScript/RemoveConfigSpamProtectEmailAddressesAsciiOptionFractor/Fixtures/fixture-keep.typoscript b/packages/typo3-fractor/rules-tests/TYPO3v12/TypoScript/RemoveConfigSpamProtectEmailAddressesAsciiOptionFractor/Fixtures/fixture-keep.typoscript new file mode 100644 index 00000000..66b87097 --- /dev/null +++ b/packages/typo3-fractor/rules-tests/TYPO3v12/TypoScript/RemoveConfigSpamProtectEmailAddressesAsciiOptionFractor/Fixtures/fixture-keep.typoscript @@ -0,0 +1,17 @@ +config.spamProtectEmailAddresses = 2 + +config { + spamProtectEmailAddresses = -4 + dummy = 1 +} + +config.foo = true +----- +config.spamProtectEmailAddresses = 2 + +config { + spamProtectEmailAddresses = -4 + dummy = 1 +} + +config.foo = true diff --git a/packages/typo3-fractor/rules-tests/TYPO3v12/TypoScript/RemoveConfigSpamProtectEmailAddressesAsciiOptionFractor/Fixtures/fixture-remove.typoscript b/packages/typo3-fractor/rules-tests/TYPO3v12/TypoScript/RemoveConfigSpamProtectEmailAddressesAsciiOptionFractor/Fixtures/fixture-remove.typoscript new file mode 100644 index 00000000..9d8f230a --- /dev/null +++ b/packages/typo3-fractor/rules-tests/TYPO3v12/TypoScript/RemoveConfigSpamProtectEmailAddressesAsciiOptionFractor/Fixtures/fixture-remove.typoscript @@ -0,0 +1,15 @@ +config.spamProtectEmailAddresses = ascii + +config { + spamProtectEmailAddresses = ascii + dummy = 1 +} + +config.foo = true +----- + +config { + dummy = 1 +} + +config.foo = true diff --git a/packages/typo3-fractor/rules-tests/TYPO3v12/TypoScript/RemoveConfigSpamProtectEmailAddressesAsciiOptionFractor/RemoveConfigSpamProtectEmailAddressesAsciiOptionFractorTest.php b/packages/typo3-fractor/rules-tests/TYPO3v12/TypoScript/RemoveConfigSpamProtectEmailAddressesAsciiOptionFractor/RemoveConfigSpamProtectEmailAddressesAsciiOptionFractorTest.php new file mode 100644 index 00000000..807e44db --- /dev/null +++ b/packages/typo3-fractor/rules-tests/TYPO3v12/TypoScript/RemoveConfigSpamProtectEmailAddressesAsciiOptionFractor/RemoveConfigSpamProtectEmailAddressesAsciiOptionFractorTest.php @@ -0,0 +1,30 @@ +doTestFile($filePath); + } + + public static function provideData(): \Iterator + { + return self::yieldFilesFromDirectory(__DIR__ . '/Fixtures', '*.typoscript'); + } + + public function provideConfigFilePath(): ?string + { + return __DIR__ . '/config/fractor.php'; + } +} diff --git a/packages/typo3-fractor/rules-tests/TYPO3v12/TypoScript/RemoveConfigSpamProtectEmailAddressesAsciiOptionFractor/config/fractor.php b/packages/typo3-fractor/rules-tests/TYPO3v12/TypoScript/RemoveConfigSpamProtectEmailAddressesAsciiOptionFractor/config/fractor.php new file mode 100644 index 00000000..9e95fbe0 --- /dev/null +++ b/packages/typo3-fractor/rules-tests/TYPO3v12/TypoScript/RemoveConfigSpamProtectEmailAddressesAsciiOptionFractor/config/fractor.php @@ -0,0 +1,9 @@ +withRules([RemoveConfigSpamProtectEmailAddressesAsciiOptionFractor::class]); diff --git a/packages/typo3-fractor/rules/TYPO3v12/TypoScript/RemoveConfigSpamProtectEmailAddressesAsciiOptionFractor.php b/packages/typo3-fractor/rules/TYPO3v12/TypoScript/RemoveConfigSpamProtectEmailAddressesAsciiOptionFractor.php new file mode 100644 index 00000000..c863414f --- /dev/null +++ b/packages/typo3-fractor/rules/TYPO3v12/TypoScript/RemoveConfigSpamProtectEmailAddressesAsciiOptionFractor.php @@ -0,0 +1,45 @@ +object->absoluteName !== 'config.spamProtectEmailAddresses' + || $statement->value->value !== 'ascii') { + return null; + } + + return TypoScriptStatementsIterator::REMOVE_NODE; + } + + public function getRuleDefinition(): RuleDefinition + { + return new RuleDefinition('Remove config.spamProtectEmailAddresses with option ascii', [new CodeSample( + <<<'CODE_SAMPLE' +config.spamProtectEmailAddresses = ascii +CODE_SAMPLE + , + <<<'CODE_SAMPLE' +- +CODE_SAMPLE + )]); + } +} From b5c40c502e5411bad49d4b0a1e61ddb46a12a8af Mon Sep 17 00:00:00 2001 From: Andreas Wolf Date: Sat, 22 Jun 2024 10:51:40 +0200 Subject: [PATCH 08/11] [TASK] Port RemoveWorkspaceModeOptionsFractor from ssch/typo-rector 1.x --- .../Fixtures/fixture.typoscript | 21 ++++++++ .../RemoveWorkspaceModeOptionsFractorTest.php | 30 +++++++++++ .../config/fractor.php | 9 ++++ .../RemoveWorkspaceModeOptionsFractor.php | 52 +++++++++++++++++++ 4 files changed, 112 insertions(+) create mode 100644 packages/typo3-fractor/rules-tests/TYPO3v12/TypoScript/RemoveWorkspaceModeOptionsFractor/Fixtures/fixture.typoscript create mode 100644 packages/typo3-fractor/rules-tests/TYPO3v12/TypoScript/RemoveWorkspaceModeOptionsFractor/RemoveWorkspaceModeOptionsFractorTest.php create mode 100644 packages/typo3-fractor/rules-tests/TYPO3v12/TypoScript/RemoveWorkspaceModeOptionsFractor/config/fractor.php create mode 100644 packages/typo3-fractor/rules/TYPO3v12/TypoScript/RemoveWorkspaceModeOptionsFractor.php diff --git a/packages/typo3-fractor/rules-tests/TYPO3v12/TypoScript/RemoveWorkspaceModeOptionsFractor/Fixtures/fixture.typoscript b/packages/typo3-fractor/rules-tests/TYPO3v12/TypoScript/RemoveWorkspaceModeOptionsFractor/Fixtures/fixture.typoscript new file mode 100644 index 00000000..a8d8ae0a --- /dev/null +++ b/packages/typo3-fractor/rules-tests/TYPO3v12/TypoScript/RemoveWorkspaceModeOptionsFractor/Fixtures/fixture.typoscript @@ -0,0 +1,21 @@ +options.workspaces.swapMode = any +options.workspaces.swapMode = page +options.workspaces.changeStageMode = any +options.workspaces.changeStageMode = page + +options { + workspaces.swapMode = any + workspaces.swapMode = page + workspaces.changeStageMode = any + workspaces.changeStageMode = page + dummy = 1 +} + +config.foo = true +----- + +options { + dummy = 1 +} + +config.foo = true diff --git a/packages/typo3-fractor/rules-tests/TYPO3v12/TypoScript/RemoveWorkspaceModeOptionsFractor/RemoveWorkspaceModeOptionsFractorTest.php b/packages/typo3-fractor/rules-tests/TYPO3v12/TypoScript/RemoveWorkspaceModeOptionsFractor/RemoveWorkspaceModeOptionsFractorTest.php new file mode 100644 index 00000000..6e1d4a0d --- /dev/null +++ b/packages/typo3-fractor/rules-tests/TYPO3v12/TypoScript/RemoveWorkspaceModeOptionsFractor/RemoveWorkspaceModeOptionsFractorTest.php @@ -0,0 +1,30 @@ +doTestFile($filePath); + } + + public static function provideData(): \Iterator + { + return self::yieldFilesFromDirectory(__DIR__ . '/Fixtures', '*.typoscript'); + } + + public function provideConfigFilePath(): ?string + { + return __DIR__ . '/config/fractor.php'; + } +} diff --git a/packages/typo3-fractor/rules-tests/TYPO3v12/TypoScript/RemoveWorkspaceModeOptionsFractor/config/fractor.php b/packages/typo3-fractor/rules-tests/TYPO3v12/TypoScript/RemoveWorkspaceModeOptionsFractor/config/fractor.php new file mode 100644 index 00000000..f9219643 --- /dev/null +++ b/packages/typo3-fractor/rules-tests/TYPO3v12/TypoScript/RemoveWorkspaceModeOptionsFractor/config/fractor.php @@ -0,0 +1,9 @@ +withRules([RemoveWorkspaceModeOptionsFractor::class]); diff --git a/packages/typo3-fractor/rules/TYPO3v12/TypoScript/RemoveWorkspaceModeOptionsFractor.php b/packages/typo3-fractor/rules/TYPO3v12/TypoScript/RemoveWorkspaceModeOptionsFractor.php new file mode 100644 index 00000000..809ca0f9 --- /dev/null +++ b/packages/typo3-fractor/rules/TYPO3v12/TypoScript/RemoveWorkspaceModeOptionsFractor.php @@ -0,0 +1,52 @@ +object->absoluteName !== 'options.workspaces.swapMode' + && $statement->object->absoluteName !== 'options.workspaces.changeStageMode') { + return null; + } + + return TypoScriptStatementsIterator::REMOVE_NODE; + } + + public function getRuleDefinition(): RuleDefinition + { + return new RuleDefinition( + 'Remove TSConfig options.workspaces.swapMode and options.workspaces.changeStageMode', + [ + new CodeSample( + <<<'CODE_SAMPLE' +options.workspaces.swapMode = any +options.workspaces.changeStageMode = any +CODE_SAMPLE + , + <<<'CODE_SAMPLE' +- +CODE_SAMPLE + ), + + ] + ); + } +} From d88f284aec50d469927d7bf566e54124ded04a83 Mon Sep 17 00:00:00 2001 From: Andreas Wolf Date: Sat, 22 Jun 2024 11:11:34 +0200 Subject: [PATCH 09/11] [TASK] Port RenameTcemainLinkHandlerMailKeyFractor from ssch/typo-rector 1.x --- .../Fixtures/fixture.typoscript | 73 +++++++++++++++++++ ...meTcemainLinkHandlerMailKeyFractorTest.php | 30 ++++++++ .../config/fractor.php | 9 +++ ...RenameTcemainLinkHandlerMailKeyFractor.php | 66 +++++++++++++++++ 4 files changed, 178 insertions(+) create mode 100644 packages/typo3-fractor/rules-tests/TYPO3v12/TypoScript/RenameTcemainLinkHandlerMailKeyFractor/Fixtures/fixture.typoscript create mode 100644 packages/typo3-fractor/rules-tests/TYPO3v12/TypoScript/RenameTcemainLinkHandlerMailKeyFractor/RenameTcemainLinkHandlerMailKeyFractorTest.php create mode 100644 packages/typo3-fractor/rules-tests/TYPO3v12/TypoScript/RenameTcemainLinkHandlerMailKeyFractor/config/fractor.php create mode 100644 packages/typo3-fractor/rules/TYPO3v12/TypoScript/RenameTcemainLinkHandlerMailKeyFractor.php diff --git a/packages/typo3-fractor/rules-tests/TYPO3v12/TypoScript/RenameTcemainLinkHandlerMailKeyFractor/Fixtures/fixture.typoscript b/packages/typo3-fractor/rules-tests/TYPO3v12/TypoScript/RenameTcemainLinkHandlerMailKeyFractor/Fixtures/fixture.typoscript new file mode 100644 index 00000000..1c898e48 --- /dev/null +++ b/packages/typo3-fractor/rules-tests/TYPO3v12/TypoScript/RenameTcemainLinkHandlerMailKeyFractor/Fixtures/fixture.typoscript @@ -0,0 +1,73 @@ +TCEMAIN.linkHandler { + page { + handler = TYPO3\\CMS\\Recordlist\\LinkHandler\\PageLinkHandler + label = LLL:EXT:recordlist/Resources/Private/Language/locallang_browse_links.xlf:page + } + file { + handler = TYPO3\\CMS\\Recordlist\\LinkHandler\\FileLinkHandler + label = LLL:EXT:recordlist/Resources/Private/Language/locallang_browse_links.xlf:file + displayAfter = page + scanAfter = page + } + folder { + handler = TYPO3\\CMS\\Recordlist\\LinkHandler\\FolderLinkHandler + label = LLL:EXT:recordlist/Resources/Private/Language/locallang_browse_links.xlf:folder + displayAfter = page,file + scanAfter = page,file + } + url { + handler = TYPO3\\CMS\\Recordlist\\LinkHandler\\UrlLinkHandler + label = LLL:EXT:recordlist/Resources/Private/Language/locallang_browse_links.xlf:extUrl + displayAfter = page,file,folder + scanAfter = telephone + } + mail { + handler = TYPO3\\CMS\\Recordlist\\LinkHandler\\MailLinkHandler + label = LLL:EXT:recordlist/Resources/Private/Language/locallang_browse_links.xlf:email + displayAfter = page,file,folder,url + scanBefore = url + } + telephone { + handler = TYPO3\\CMS\\Recordlist\\LinkHandler\\TelephoneLinkHandler + label = LLL:EXT:recordlist/Resources/Private/Language/locallang_browse_links.xlf:telephone + displayAfter = page,file,folder,url,mail + scanBefore = url + } +} +----- +TCEMAIN.linkHandler { + page { + handler = TYPO3\\CMS\\Recordlist\\LinkHandler\\PageLinkHandler + label = LLL:EXT:recordlist/Resources/Private/Language/locallang_browse_links.xlf:page + } + file { + handler = TYPO3\\CMS\\Recordlist\\LinkHandler\\FileLinkHandler + label = LLL:EXT:recordlist/Resources/Private/Language/locallang_browse_links.xlf:file + displayAfter = page + scanAfter = page + } + folder { + handler = TYPO3\\CMS\\Recordlist\\LinkHandler\\FolderLinkHandler + label = LLL:EXT:recordlist/Resources/Private/Language/locallang_browse_links.xlf:folder + displayAfter = page,file + scanAfter = page,file + } + url { + handler = TYPO3\\CMS\\Recordlist\\LinkHandler\\UrlLinkHandler + label = LLL:EXT:recordlist/Resources/Private/Language/locallang_browse_links.xlf:extUrl + displayAfter = page,file,folder + scanAfter = telephone + } + email { + handler = TYPO3\\CMS\\Recordlist\\LinkHandler\\MailLinkHandler + label = LLL:EXT:recordlist/Resources/Private/Language/locallang_browse_links.xlf:email + displayAfter = page,file,folder,url + scanBefore = url + } + telephone { + handler = TYPO3\\CMS\\Recordlist\\LinkHandler\\TelephoneLinkHandler + label = LLL:EXT:recordlist/Resources/Private/Language/locallang_browse_links.xlf:telephone + displayAfter = page,file,folder,url,mail + scanBefore = url + } +} diff --git a/packages/typo3-fractor/rules-tests/TYPO3v12/TypoScript/RenameTcemainLinkHandlerMailKeyFractor/RenameTcemainLinkHandlerMailKeyFractorTest.php b/packages/typo3-fractor/rules-tests/TYPO3v12/TypoScript/RenameTcemainLinkHandlerMailKeyFractor/RenameTcemainLinkHandlerMailKeyFractorTest.php new file mode 100644 index 00000000..4f2e35c0 --- /dev/null +++ b/packages/typo3-fractor/rules-tests/TYPO3v12/TypoScript/RenameTcemainLinkHandlerMailKeyFractor/RenameTcemainLinkHandlerMailKeyFractorTest.php @@ -0,0 +1,30 @@ +doTestFile($filePath); + } + + public static function provideData(): \Iterator + { + return self::yieldFilesFromDirectory(__DIR__ . '/Fixtures', '*.typoscript'); + } + + public function provideConfigFilePath(): ?string + { + return __DIR__ . '/config/fractor.php'; + } +} diff --git a/packages/typo3-fractor/rules-tests/TYPO3v12/TypoScript/RenameTcemainLinkHandlerMailKeyFractor/config/fractor.php b/packages/typo3-fractor/rules-tests/TYPO3v12/TypoScript/RenameTcemainLinkHandlerMailKeyFractor/config/fractor.php new file mode 100644 index 00000000..c76fdb8b --- /dev/null +++ b/packages/typo3-fractor/rules-tests/TYPO3v12/TypoScript/RenameTcemainLinkHandlerMailKeyFractor/config/fractor.php @@ -0,0 +1,9 @@ +withRules([RenameTcemainLinkHandlerMailKeyFractor::class]); diff --git a/packages/typo3-fractor/rules/TYPO3v12/TypoScript/RenameTcemainLinkHandlerMailKeyFractor.php b/packages/typo3-fractor/rules/TYPO3v12/TypoScript/RenameTcemainLinkHandlerMailKeyFractor.php new file mode 100644 index 00000000..3887f156 --- /dev/null +++ b/packages/typo3-fractor/rules/TYPO3v12/TypoScript/RenameTcemainLinkHandlerMailKeyFractor.php @@ -0,0 +1,66 @@ +object instanceof ObjectPath) { + return null; + } + + if ($statement->object->absoluteName !== 'TCEMAIN.linkHandler.mail') { + return null; + } + + $statement->object->relativeName = 'email'; + $statement->object->absoluteName = 'TCEMAIN.linkHandler.email'; + + return $statement; + } + + public function getRuleDefinition(): RuleDefinition + { + return new RuleDefinition('Rename key mail to email for MailLinkHandler', [new CodeSample( + <<<'CODE_SAMPLE' +TCEMAIN.linkHandler { + mail { + handler = TYPO3\\CMS\\Recordlist\\LinkHandler\\MailLinkHandler + label = LLL:EXT:recordlist/Resources/Private/Language/locallang_browse_links.xlf:email + displayAfter = page,file,folder,url + scanBefore = url + } +} +CODE_SAMPLE + , + <<<'CODE_SAMPLE' +TCEMAIN.linkHandler { + email { + handler = TYPO3\\CMS\\Recordlist\\LinkHandler\\MailLinkHandler + label = LLL:EXT:recordlist/Resources/Private/Language/locallang_browse_links.xlf:email + displayAfter = page,file,folder,url + scanBefore = url + } +} +CODE_SAMPLE + )]); + } +} From 1dd9a452789dad34318c512d75035800a32832c1 Mon Sep 17 00:00:00 2001 From: Andreas Wolf Date: Sat, 22 Jun 2024 11:20:49 +0200 Subject: [PATCH 10/11] [TASK] Port UseConfigArrayForTSFEPropertiesFractor from ssch/typo-rector 1.x --- .../Fixtures/fixture.typoscript | 59 +++++++++++++++++ ...onfigArrayForTSFEPropertiesFractorTest.php | 30 +++++++++ .../config/fractor.php | 9 +++ ...UseConfigArrayForTSFEPropertiesFractor.php | 63 +++++++++++++++++++ 4 files changed, 161 insertions(+) create mode 100644 packages/typo3-fractor/rules-tests/TYPO3v12/TypoScript/UseConfigArrayForTSFEPropertiesFractor/Fixtures/fixture.typoscript create mode 100644 packages/typo3-fractor/rules-tests/TYPO3v12/TypoScript/UseConfigArrayForTSFEPropertiesFractor/UseConfigArrayForTSFEPropertiesFractorTest.php create mode 100644 packages/typo3-fractor/rules-tests/TYPO3v12/TypoScript/UseConfigArrayForTSFEPropertiesFractor/config/fractor.php create mode 100644 packages/typo3-fractor/rules/TYPO3v12/TypoScript/UseConfigArrayForTSFEPropertiesFractor.php diff --git a/packages/typo3-fractor/rules-tests/TYPO3v12/TypoScript/UseConfigArrayForTSFEPropertiesFractor/Fixtures/fixture.typoscript b/packages/typo3-fractor/rules-tests/TYPO3v12/TypoScript/UseConfigArrayForTSFEPropertiesFractor/Fixtures/fixture.typoscript new file mode 100644 index 00000000..cd46bc95 --- /dev/null +++ b/packages/typo3-fractor/rules-tests/TYPO3v12/TypoScript/UseConfigArrayForTSFEPropertiesFractor/Fixtures/fixture.typoscript @@ -0,0 +1,59 @@ +page.10 = TEXT +page.10 { + data = TSFE:fileTarget +} + +page.20 < page.10 +page.20 { + data = TSFE:spamProtectEmailAddresses +} + +page.30 = TEXT +page.30 { + data = TSFE:intTarget +} + +page.40 = TEXT +page.40 { + data = TSFE:extTarget +} + +page.50 = TEXT +page.50 { + data = TSFE:baseUrl +} + +page.60 = TEXT +page.60 { + data = TSFE:foo +} +----- +page.10 = TEXT +page.10 { + data = TSFE:config|config|fileTarget +} + +page.20 < page.10 +page.20 { + data = TSFE:config|config|spamProtectEmailAddresses +} + +page.30 = TEXT +page.30 { + data = TSFE:config|config|intTarget +} + +page.40 = TEXT +page.40 { + data = TSFE:config|config|extTarget +} + +page.50 = TEXT +page.50 { + data = TSFE:config|config|baseUrl +} + +page.60 = TEXT +page.60 { + data = TSFE:foo +} diff --git a/packages/typo3-fractor/rules-tests/TYPO3v12/TypoScript/UseConfigArrayForTSFEPropertiesFractor/UseConfigArrayForTSFEPropertiesFractorTest.php b/packages/typo3-fractor/rules-tests/TYPO3v12/TypoScript/UseConfigArrayForTSFEPropertiesFractor/UseConfigArrayForTSFEPropertiesFractorTest.php new file mode 100644 index 00000000..0502ddfe --- /dev/null +++ b/packages/typo3-fractor/rules-tests/TYPO3v12/TypoScript/UseConfigArrayForTSFEPropertiesFractor/UseConfigArrayForTSFEPropertiesFractorTest.php @@ -0,0 +1,30 @@ +doTestFile($filePath); + } + + public static function provideData(): \Iterator + { + return self::yieldFilesFromDirectory(__DIR__ . '/Fixtures', '*.typoscript'); + } + + public function provideConfigFilePath(): ?string + { + return __DIR__ . '/config/fractor.php'; + } +} diff --git a/packages/typo3-fractor/rules-tests/TYPO3v12/TypoScript/UseConfigArrayForTSFEPropertiesFractor/config/fractor.php b/packages/typo3-fractor/rules-tests/TYPO3v12/TypoScript/UseConfigArrayForTSFEPropertiesFractor/config/fractor.php new file mode 100644 index 00000000..b79b8d84 --- /dev/null +++ b/packages/typo3-fractor/rules-tests/TYPO3v12/TypoScript/UseConfigArrayForTSFEPropertiesFractor/config/fractor.php @@ -0,0 +1,9 @@ +withRules([UseConfigArrayForTSFEPropertiesFractor::class]); diff --git a/packages/typo3-fractor/rules/TYPO3v12/TypoScript/UseConfigArrayForTSFEPropertiesFractor.php b/packages/typo3-fractor/rules/TYPO3v12/TypoScript/UseConfigArrayForTSFEPropertiesFractor.php new file mode 100644 index 00000000..8c51ac77 --- /dev/null +++ b/packages/typo3-fractor/rules/TYPO3v12/TypoScript/UseConfigArrayForTSFEPropertiesFractor.php @@ -0,0 +1,63 @@ +object->absoluteName, '.data')) { + return null; + } + + if (! str_starts_with($statement->value->value, 'TSFE:')) { + return null; + } + + $property = substr($statement->value->value, 5); + + if (! in_array($property, self::DEPRECATED_PUBLIC_PROPERTIES, true)) { + return null; + } + + $statement->value->value = sprintf('TSFE:config|config|%s', $property); + + return $statement; + } + + public function getRuleDefinition(): RuleDefinition + { + return new RuleDefinition('Use config array in TSFE instead of deprecated class properties', [new CodeSample( + <<<'CODE_SAMPLE' +page.10.data = TSFE:fileTarget +CODE_SAMPLE + , + <<<'CODE_SAMPLE' +page.10.data = TSFE:config|config|fileTarget +CODE_SAMPLE + )]); + } +} From 3d659e751684f3830373f82c4a5004ae656c7ccb Mon Sep 17 00:00:00 2001 From: Andreas Wolf Date: Sat, 22 Jun 2024 11:26:44 +0200 Subject: [PATCH 11/11] [TASK] Port RenameConfigXhtmlDoctypeToDoctypeFractor from ssch/typo-rector 1.x --- .../Fixtures/fixture.typoscript | 11 +++++ ...ConfigXhtmlDoctypeToDoctypeFractorTest.php | 30 ++++++++++++ .../config/fractor.php | 9 ++++ ...nameConfigXhtmlDoctypeToDoctypeFractor.php | 46 +++++++++++++++++++ 4 files changed, 96 insertions(+) create mode 100644 packages/typo3-fractor/rules-tests/TYPO3v12/TypoScript/RenameConfigXhtmlDoctypeToDoctypeFractor/Fixtures/fixture.typoscript create mode 100644 packages/typo3-fractor/rules-tests/TYPO3v12/TypoScript/RenameConfigXhtmlDoctypeToDoctypeFractor/RenameConfigXhtmlDoctypeToDoctypeFractorTest.php create mode 100644 packages/typo3-fractor/rules-tests/TYPO3v12/TypoScript/RenameConfigXhtmlDoctypeToDoctypeFractor/config/fractor.php create mode 100644 packages/typo3-fractor/rules/TYPO3v12/TypoScript/RenameConfigXhtmlDoctypeToDoctypeFractor.php diff --git a/packages/typo3-fractor/rules-tests/TYPO3v12/TypoScript/RenameConfigXhtmlDoctypeToDoctypeFractor/Fixtures/fixture.typoscript b/packages/typo3-fractor/rules-tests/TYPO3v12/TypoScript/RenameConfigXhtmlDoctypeToDoctypeFractor/Fixtures/fixture.typoscript new file mode 100644 index 00000000..184c6fac --- /dev/null +++ b/packages/typo3-fractor/rules-tests/TYPO3v12/TypoScript/RenameConfigXhtmlDoctypeToDoctypeFractor/Fixtures/fixture.typoscript @@ -0,0 +1,11 @@ +config.xhtmlDoctype = 1 + +config { + xhtmlDoctype = 1 +} +----- +config.doctype = 1 + +config { + doctype = 1 +} diff --git a/packages/typo3-fractor/rules-tests/TYPO3v12/TypoScript/RenameConfigXhtmlDoctypeToDoctypeFractor/RenameConfigXhtmlDoctypeToDoctypeFractorTest.php b/packages/typo3-fractor/rules-tests/TYPO3v12/TypoScript/RenameConfigXhtmlDoctypeToDoctypeFractor/RenameConfigXhtmlDoctypeToDoctypeFractorTest.php new file mode 100644 index 00000000..8ff3d3a3 --- /dev/null +++ b/packages/typo3-fractor/rules-tests/TYPO3v12/TypoScript/RenameConfigXhtmlDoctypeToDoctypeFractor/RenameConfigXhtmlDoctypeToDoctypeFractorTest.php @@ -0,0 +1,30 @@ +doTestFile($filePath); + } + + public static function provideData(): \Iterator + { + return self::yieldFilesFromDirectory(__DIR__ . '/Fixtures', '*.typoscript'); + } + + public function provideConfigFilePath(): ?string + { + return __DIR__ . '/config/fractor.php'; + } +} diff --git a/packages/typo3-fractor/rules-tests/TYPO3v12/TypoScript/RenameConfigXhtmlDoctypeToDoctypeFractor/config/fractor.php b/packages/typo3-fractor/rules-tests/TYPO3v12/TypoScript/RenameConfigXhtmlDoctypeToDoctypeFractor/config/fractor.php new file mode 100644 index 00000000..9fc11d9f --- /dev/null +++ b/packages/typo3-fractor/rules-tests/TYPO3v12/TypoScript/RenameConfigXhtmlDoctypeToDoctypeFractor/config/fractor.php @@ -0,0 +1,9 @@ +withRules([RenameConfigXhtmlDoctypeToDoctypeFractor::class]); diff --git a/packages/typo3-fractor/rules/TYPO3v12/TypoScript/RenameConfigXhtmlDoctypeToDoctypeFractor.php b/packages/typo3-fractor/rules/TYPO3v12/TypoScript/RenameConfigXhtmlDoctypeToDoctypeFractor.php new file mode 100644 index 00000000..f208a51a --- /dev/null +++ b/packages/typo3-fractor/rules/TYPO3v12/TypoScript/RenameConfigXhtmlDoctypeToDoctypeFractor.php @@ -0,0 +1,46 @@ +object->absoluteName !== 'config.xhtmlDoctype') { + return null; + } + + $statement->object->relativeName = str_replace('xhtmlDoctype', 'doctype', $statement->object->relativeName); + $statement->object->absoluteName = str_replace('xhtmlDoctype', 'doctype', $statement->object->absoluteName); + + return $statement; + } + + public function getRuleDefinition(): RuleDefinition + { + return new RuleDefinition('Migrate typoscript xhtmlDoctype to doctype', [new CodeSample( + <<<'CODE_SAMPLE' +config.xhtmlDoctype = 1 +CODE_SAMPLE + , + <<<'CODE_SAMPLE' +config.doctype = 1 +CODE_SAMPLE + )]); + } +}