Skip to content

Commit 42b95fe

Browse files
committed
[BUGFIX] Provide dedicated showItems for Page Type Shortcut and External
1 parent 780190f commit 42b95fe

File tree

2 files changed

+90
-21
lines changed

2 files changed

+90
-21
lines changed

Classes/Generator/TcaGenerator.php

Lines changed: 88 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,7 @@
3939
use TYPO3\CMS\ContentBlocks\Service\SystemExtensionAvailability;
4040
use TYPO3\CMS\ContentBlocks\Validation\PageTypeNameValidator;
4141
use TYPO3\CMS\Core\Configuration\Event\BeforeTcaOverridesEvent;
42+
use TYPO3\CMS\Core\Domain\Repository\PageRepository;
4243
use TYPO3\CMS\Core\Utility\ArrayUtility;
4344
use TYPO3\CMS\Core\Utility\ExtensionManagementUtility;
4445
use TYPO3\CMS\Core\Utility\GeneralUtility;
@@ -884,25 +885,7 @@ protected function getPageTypeStandardShowItem(array $showItemArray, string|int
884885
'--palette--;;metatags',
885886
];
886887

887-
$systemTabs = [
888-
'--div--;LLL:EXT:frontend/Resources/Private/Language/locallang_tca.xlf:pages.tabs.appearance',
889-
'--palette--;;backend_layout',
890-
'--palette--;;replace',
891-
'--div--;LLL:EXT:frontend/Resources/Private/Language/locallang_tca.xlf:pages.tabs.behaviour',
892-
'--palette--;;links',
893-
'--palette--;;caching',
894-
'--palette--;;miscellaneous',
895-
'--palette--;;module',
896-
'--div--;LLL:EXT:frontend/Resources/Private/Language/locallang_tca.xlf:pages.tabs.resources',
897-
'--palette--;;config',
898-
'--div--;LLL:EXT:core/Resources/Private/Language/Form/locallang_tabs.xlf:language',
899-
'--palette--;;language',
900-
'--div--;LLL:EXT:frontend/Resources/Private/Language/locallang_tca.xlf:pages.tabs.access',
901-
'--palette--;;visibility',
902-
'--palette--;;access',
903-
'--div--;LLL:EXT:core/Resources/Private/Language/Form/locallang_tabs.xlf:notes',
904-
'rowDescription',
905-
];
888+
$systemTabs = $this->getPageTypeSystemTabs($typeName);
906889

907890
$seoTab = [
908891
'--div--;LLL:EXT:seo/Resources/Private/Language/locallang_tca.xlf:pages.tabs.seo',
@@ -933,6 +916,92 @@ protected function getPageTypeStandardShowItem(array $showItemArray, string|int
933916
return $showItem;
934917
}
935918

919+
/**
920+
* @return string[]
921+
*/
922+
protected function getPageTypeSystemTabs(string|int $typeName): array
923+
{
924+
return match ((int)$typeName) {
925+
PageRepository::DOKTYPE_LINK => $this->getPageTypeExternalShowItemSystemTabs(),
926+
PageRepository::DOKTYPE_SHORTCUT => $this->getPageTypeShortcutShowItemSystemTabs(),
927+
default => $this->getPageTypeStandardShowItemSystemTabs(),
928+
};
929+
}
930+
931+
/**
932+
* @return string[]
933+
*/
934+
protected function getPageTypeStandardShowItemSystemTabs(): array
935+
{
936+
return [
937+
'--div--;LLL:EXT:frontend/Resources/Private/Language/locallang_tca.xlf:pages.tabs.appearance',
938+
'--palette--;;backend_layout',
939+
'--palette--;;replace',
940+
'--div--;LLL:EXT:frontend/Resources/Private/Language/locallang_tca.xlf:pages.tabs.behaviour',
941+
'--palette--;;links',
942+
'--palette--;;caching',
943+
'--palette--;;miscellaneous',
944+
'--palette--;;module',
945+
'--div--;LLL:EXT:frontend/Resources/Private/Language/locallang_tca.xlf:pages.tabs.resources',
946+
'--palette--;;config',
947+
'--div--;LLL:EXT:core/Resources/Private/Language/Form/locallang_tabs.xlf:language',
948+
'--palette--;;language',
949+
'--div--;LLL:EXT:frontend/Resources/Private/Language/locallang_tca.xlf:pages.tabs.access',
950+
'--palette--;;visibility',
951+
'--palette--;;access',
952+
'--div--;LLL:EXT:core/Resources/Private/Language/Form/locallang_tabs.xlf:notes',
953+
'rowDescription',
954+
'--div--;LLL:EXT:core/Resources/Private/Language/Form/locallang_tabs.xlf:extended',
955+
];
956+
}
957+
958+
/**
959+
* @return string[]
960+
*/
961+
protected function getPageTypeExternalShowItemSystemTabs(): array
962+
{
963+
return [
964+
'--div--;LLL:EXT:frontend/Resources/Private/Language/locallang_tca.xlf:pages.tabs.appearance',
965+
'--palette--;;layout',
966+
'--div--;LLL:EXT:frontend/Resources/Private/Language/locallang_tca.xlf:pages.tabs.behaviour',
967+
'--palette--;;miscellaneous',
968+
'--div--;LLL:EXT:frontend/Resources/Private/Language/locallang_tca.xlf:pages.tabs.resources',
969+
'--palette--;;config',
970+
'--div--;LLL:EXT:core/Resources/Private/Language/Form/locallang_tabs.xlf:language',
971+
'--palette--;;language',
972+
'--div--;LLL:EXT:frontend/Resources/Private/Language/locallang_tca.xlf:pages.tabs.access',
973+
'--palette--;;visibility',
974+
'--palette--;;access',
975+
'--div--;LLL:EXT:core/Resources/Private/Language/Form/locallang_tabs.xlf:notes',
976+
'rowDescription',
977+
'--div--;LLL:EXT:core/Resources/Private/Language/Form/locallang_tabs.xlf:extended',
978+
];
979+
}
980+
981+
/**
982+
* @return string[]
983+
*/
984+
protected function getPageTypeShortcutShowItemSystemTabs(): array
985+
{
986+
return [
987+
'--div--;LLL:EXT:frontend/Resources/Private/Language/locallang_tca.xlf:pages.tabs.appearance',
988+
'--palette--;;layout',
989+
'--div--;LLL:EXT:frontend/Resources/Private/Language/locallang_tca.xlf:pages.tabs.behaviour',
990+
'--palette--;;links',
991+
'--palette--;;miscellaneous',
992+
'--div--;LLL:EXT:frontend/Resources/Private/Language/locallang_tca.xlf:pages.tabs.resources',
993+
'--palette--;;config',
994+
'--div--;LLL:EXT:core/Resources/Private/Language/Form/locallang_tabs.xlf:language',
995+
'--palette--;;language',
996+
'--div--;LLL:EXT:frontend/Resources/Private/Language/locallang_tca.xlf:pages.tabs.access',
997+
'--palette--;;visibility',
998+
'--palette--;;access',
999+
'--div--;LLL:EXT:core/Resources/Private/Language/Form/locallang_tabs.xlf:notes',
1000+
'rowDescription',
1001+
'--div--;LLL:EXT:core/Resources/Private/Language/Form/locallang_tabs.xlf:extended',
1002+
];
1003+
}
1004+
9361005
/**
9371006
* Generate search fields in order to find content elements in global backend search.
9381007
*/

Tests/Unit/Generator/TcaGeneratorTest.php

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1702,7 +1702,7 @@ public static function pageTypesGenerateCorrectTcaDataProvider(): iterable
17021702
],
17031703
'types' => [
17041704
'1700156757' => [
1705-
'showitem' => '--div--;LLL:EXT:core/Resources/Private/Language/Form/locallang_tabs.xlf:general,--palette--;;standard,--palette--;;content_blocks_titleonly,--div--;LLL:EXT:frontend/Resources/Private/Language/locallang_tca.xlf:pages.tabs.metadata,--palette--;;metatags,--div--;LLL:EXT:frontend/Resources/Private/Language/locallang_tca.xlf:pages.tabs.appearance,--palette--;;backend_layout,--palette--;;replace,--div--;LLL:EXT:frontend/Resources/Private/Language/locallang_tca.xlf:pages.tabs.behaviour,--palette--;;links,--palette--;;caching,--palette--;;miscellaneous,--palette--;;module,--div--;LLL:EXT:frontend/Resources/Private/Language/locallang_tca.xlf:pages.tabs.resources,--palette--;;config,--div--;LLL:EXT:core/Resources/Private/Language/Form/locallang_tabs.xlf:language,--palette--;;language,--div--;LLL:EXT:frontend/Resources/Private/Language/locallang_tca.xlf:pages.tabs.access,--palette--;;visibility,--palette--;;access,--div--;LLL:EXT:core/Resources/Private/Language/Form/locallang_tabs.xlf:notes,rowDescription',
1705+
'showitem' => '--div--;LLL:EXT:core/Resources/Private/Language/Form/locallang_tabs.xlf:general,--palette--;;standard,--palette--;;content_blocks_titleonly,--div--;LLL:EXT:frontend/Resources/Private/Language/locallang_tca.xlf:pages.tabs.metadata,--palette--;;metatags,--div--;LLL:EXT:frontend/Resources/Private/Language/locallang_tca.xlf:pages.tabs.appearance,--palette--;;backend_layout,--palette--;;replace,--div--;LLL:EXT:frontend/Resources/Private/Language/locallang_tca.xlf:pages.tabs.behaviour,--palette--;;links,--palette--;;caching,--palette--;;miscellaneous,--palette--;;module,--div--;LLL:EXT:frontend/Resources/Private/Language/locallang_tca.xlf:pages.tabs.resources,--palette--;;config,--div--;LLL:EXT:core/Resources/Private/Language/Form/locallang_tabs.xlf:language,--palette--;;language,--div--;LLL:EXT:frontend/Resources/Private/Language/locallang_tca.xlf:pages.tabs.access,--palette--;;visibility,--palette--;;access,--div--;LLL:EXT:core/Resources/Private/Language/Form/locallang_tabs.xlf:notes,rowDescription,--div--;LLL:EXT:core/Resources/Private/Language/Form/locallang_tabs.xlf:extended',
17061706
'columnsOverrides' => [
17071707
'title' => [
17081708
'label' => 'LLL:EXT:my_sitepackage/ContentBlocks/PageTypes/custom-page-type/language/labels.xlf:title.label',
@@ -1760,7 +1760,7 @@ public static function pageTypesGenerateCorrectTcaDataProvider(): iterable
17601760
],
17611761
'types' => [
17621762
'1700156757' => [
1763-
'showitem' => '--div--;LLL:EXT:core/Resources/Private/Language/Form/locallang_tabs.xlf:general,--palette--;;standard,--palette--;;content_blocks_titleonly,--div--;LLL:EXT:frontend/Resources/Private/Language/locallang_tca.xlf:pages.tabs.metadata,--palette--;;metatags,--div--;LLL:EXT:seo/Resources/Private/Language/locallang_tca.xlf:pages.tabs.seo,--palette--;;seo,--palette--;;robots,--palette--;;canonical,--palette--;;sitemap,--div--;LLL:EXT:seo/Resources/Private/Language/locallang_tca.xlf:pages.tabs.socialmedia,--palette--;;opengraph,--palette--;;twittercards,--div--;LLL:EXT:frontend/Resources/Private/Language/locallang_tca.xlf:pages.tabs.appearance,--palette--;;backend_layout,--palette--;;replace,--div--;LLL:EXT:frontend/Resources/Private/Language/locallang_tca.xlf:pages.tabs.behaviour,--palette--;;links,--palette--;;caching,--palette--;;miscellaneous,--palette--;;module,--div--;LLL:EXT:frontend/Resources/Private/Language/locallang_tca.xlf:pages.tabs.resources,--palette--;;config,--div--;LLL:EXT:core/Resources/Private/Language/Form/locallang_tabs.xlf:language,--palette--;;language,--div--;LLL:EXT:frontend/Resources/Private/Language/locallang_tca.xlf:pages.tabs.access,--palette--;;visibility,--palette--;;access,--div--;LLL:EXT:core/Resources/Private/Language/Form/locallang_tabs.xlf:notes,rowDescription',
1763+
'showitem' => '--div--;LLL:EXT:core/Resources/Private/Language/Form/locallang_tabs.xlf:general,--palette--;;standard,--palette--;;content_blocks_titleonly,--div--;LLL:EXT:frontend/Resources/Private/Language/locallang_tca.xlf:pages.tabs.metadata,--palette--;;metatags,--div--;LLL:EXT:seo/Resources/Private/Language/locallang_tca.xlf:pages.tabs.seo,--palette--;;seo,--palette--;;robots,--palette--;;canonical,--palette--;;sitemap,--div--;LLL:EXT:seo/Resources/Private/Language/locallang_tca.xlf:pages.tabs.socialmedia,--palette--;;opengraph,--palette--;;twittercards,--div--;LLL:EXT:frontend/Resources/Private/Language/locallang_tca.xlf:pages.tabs.appearance,--palette--;;backend_layout,--palette--;;replace,--div--;LLL:EXT:frontend/Resources/Private/Language/locallang_tca.xlf:pages.tabs.behaviour,--palette--;;links,--palette--;;caching,--palette--;;miscellaneous,--palette--;;module,--div--;LLL:EXT:frontend/Resources/Private/Language/locallang_tca.xlf:pages.tabs.resources,--palette--;;config,--div--;LLL:EXT:core/Resources/Private/Language/Form/locallang_tabs.xlf:language,--palette--;;language,--div--;LLL:EXT:frontend/Resources/Private/Language/locallang_tca.xlf:pages.tabs.access,--palette--;;visibility,--palette--;;access,--div--;LLL:EXT:core/Resources/Private/Language/Form/locallang_tabs.xlf:notes,rowDescription,--div--;LLL:EXT:core/Resources/Private/Language/Form/locallang_tabs.xlf:extended',
17641764
'columnsOverrides' => [
17651765
'title' => [
17661766
'label' => 'LLL:EXT:my_sitepackage/ContentBlocks/PageTypes/custom-page-type/language/labels.xlf:title.label',

0 commit comments

Comments
 (0)