|
39 | 39 | use TYPO3\CMS\ContentBlocks\Service\SystemExtensionAvailability; |
40 | 40 | use TYPO3\CMS\ContentBlocks\Validation\PageTypeNameValidator; |
41 | 41 | use TYPO3\CMS\Core\Configuration\Event\BeforeTcaOverridesEvent; |
| 42 | +use TYPO3\CMS\Core\Domain\Repository\PageRepository; |
42 | 43 | use TYPO3\CMS\Core\Utility\ArrayUtility; |
43 | 44 | use TYPO3\CMS\Core\Utility\ExtensionManagementUtility; |
44 | 45 | use TYPO3\CMS\Core\Utility\GeneralUtility; |
@@ -884,25 +885,7 @@ protected function getPageTypeStandardShowItem(array $showItemArray, string|int |
884 | 885 | '--palette--;;metatags', |
885 | 886 | ]; |
886 | 887 |
|
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); |
906 | 889 |
|
907 | 890 | $seoTab = [ |
908 | 891 | '--div--;LLL:EXT:seo/Resources/Private/Language/locallang_tca.xlf:pages.tabs.seo', |
@@ -933,6 +916,92 @@ protected function getPageTypeStandardShowItem(array $showItemArray, string|int |
933 | 916 | return $showItem; |
934 | 917 | } |
935 | 918 |
|
| 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 | + |
936 | 1005 | /** |
937 | 1006 | * Generate search fields in order to find content elements in global backend search. |
938 | 1007 | */ |
|
0 commit comments