diff --git a/Build/content-blocks-examples/ContentBlocks/ContentElements/accordion/Assets/EditorPreview.css b/Build/content-blocks-examples/ContentBlocks/ContentElements/accordion/assets/EditorPreview.css similarity index 100% rename from Build/content-blocks-examples/ContentBlocks/ContentElements/accordion/Assets/EditorPreview.css rename to Build/content-blocks-examples/ContentBlocks/ContentElements/accordion/assets/EditorPreview.css diff --git a/Build/content-blocks-examples/ContentBlocks/ContentElements/accordion/Assets/Frontend.css b/Build/content-blocks-examples/ContentBlocks/ContentElements/accordion/assets/Frontend.css similarity index 100% rename from Build/content-blocks-examples/ContentBlocks/ContentElements/accordion/Assets/Frontend.css rename to Build/content-blocks-examples/ContentBlocks/ContentElements/accordion/assets/Frontend.css diff --git a/Build/content-blocks-examples/ContentBlocks/ContentElements/accordion/Assets/Frontend.js b/Build/content-blocks-examples/ContentBlocks/ContentElements/accordion/assets/Frontend.js similarity index 100% rename from Build/content-blocks-examples/ContentBlocks/ContentElements/accordion/Assets/Frontend.js rename to Build/content-blocks-examples/ContentBlocks/ContentElements/accordion/assets/Frontend.js diff --git a/Build/content-blocks-examples/ContentBlocks/ContentElements/accordion/Assets/accordion_item.svg b/Build/content-blocks-examples/ContentBlocks/ContentElements/accordion/assets/accordion_item.svg similarity index 100% rename from Build/content-blocks-examples/ContentBlocks/ContentElements/accordion/Assets/accordion_item.svg rename to Build/content-blocks-examples/ContentBlocks/ContentElements/accordion/assets/accordion_item.svg diff --git a/Build/content-blocks-examples/ContentBlocks/ContentElements/accordion/Assets/Icon.svg b/Build/content-blocks-examples/ContentBlocks/ContentElements/accordion/assets/icon.svg similarity index 100% rename from Build/content-blocks-examples/ContentBlocks/ContentElements/accordion/Assets/Icon.svg rename to Build/content-blocks-examples/ContentBlocks/ContentElements/accordion/assets/icon.svg diff --git a/Build/content-blocks-examples/ContentBlocks/ContentElements/accordion/EditorInterface.yaml b/Build/content-blocks-examples/ContentBlocks/ContentElements/accordion/config.yaml similarity index 100% rename from Build/content-blocks-examples/ContentBlocks/ContentElements/accordion/EditorInterface.yaml rename to Build/content-blocks-examples/ContentBlocks/ContentElements/accordion/config.yaml diff --git a/Build/content-blocks-examples/ContentBlocks/ContentElements/accordion/Source/Language/Labels.xlf b/Build/content-blocks-examples/ContentBlocks/ContentElements/accordion/language/labels.xlf similarity index 100% rename from Build/content-blocks-examples/ContentBlocks/ContentElements/accordion/Source/Language/Labels.xlf rename to Build/content-blocks-examples/ContentBlocks/ContentElements/accordion/language/labels.xlf diff --git a/Build/content-blocks-examples/ContentBlocks/ContentElements/accordion/Source/Frontend.html b/Build/content-blocks-examples/ContentBlocks/ContentElements/accordion/templates/frontend.html similarity index 100% rename from Build/content-blocks-examples/ContentBlocks/ContentElements/accordion/Source/Frontend.html rename to Build/content-blocks-examples/ContentBlocks/ContentElements/accordion/templates/frontend.html diff --git a/Build/content-blocks-examples/ContentBlocks/ContentElements/accordion/Source/EditorPreview.html b/Build/content-blocks-examples/ContentBlocks/ContentElements/accordion/templates/preview.html similarity index 100% rename from Build/content-blocks-examples/ContentBlocks/ContentElements/accordion/Source/EditorPreview.html rename to Build/content-blocks-examples/ContentBlocks/ContentElements/accordion/templates/preview.html diff --git a/Build/content-blocks-examples/ContentBlocks/ContentElements/card_group/Assets/EditorPreview.css b/Build/content-blocks-examples/ContentBlocks/ContentElements/card_group/assets/EditorPreview.css similarity index 100% rename from Build/content-blocks-examples/ContentBlocks/ContentElements/card_group/Assets/EditorPreview.css rename to Build/content-blocks-examples/ContentBlocks/ContentElements/card_group/assets/EditorPreview.css diff --git a/Build/content-blocks-examples/ContentBlocks/ContentElements/card_group/Assets/Frontend.css b/Build/content-blocks-examples/ContentBlocks/ContentElements/card_group/assets/Frontend.css similarity index 100% rename from Build/content-blocks-examples/ContentBlocks/ContentElements/card_group/Assets/Frontend.css rename to Build/content-blocks-examples/ContentBlocks/ContentElements/card_group/assets/Frontend.css diff --git a/Build/content-blocks-examples/ContentBlocks/ContentElements/card_group/Assets/card_group_item.svg b/Build/content-blocks-examples/ContentBlocks/ContentElements/card_group/assets/card_group_item.svg similarity index 100% rename from Build/content-blocks-examples/ContentBlocks/ContentElements/card_group/Assets/card_group_item.svg rename to Build/content-blocks-examples/ContentBlocks/ContentElements/card_group/assets/card_group_item.svg diff --git a/Build/content-blocks-examples/ContentBlocks/ContentElements/card_group/Assets/Icon.svg b/Build/content-blocks-examples/ContentBlocks/ContentElements/card_group/assets/icon.svg similarity index 100% rename from Build/content-blocks-examples/ContentBlocks/ContentElements/card_group/Assets/Icon.svg rename to Build/content-blocks-examples/ContentBlocks/ContentElements/card_group/assets/icon.svg diff --git a/Build/content-blocks-examples/ContentBlocks/ContentElements/card_group/EditorInterface.yaml b/Build/content-blocks-examples/ContentBlocks/ContentElements/card_group/config.yaml similarity index 100% rename from Build/content-blocks-examples/ContentBlocks/ContentElements/card_group/EditorInterface.yaml rename to Build/content-blocks-examples/ContentBlocks/ContentElements/card_group/config.yaml diff --git a/Build/content-blocks-examples/ContentBlocks/ContentElements/card_group/Source/Language/Labels.xlf b/Build/content-blocks-examples/ContentBlocks/ContentElements/card_group/language/labels.xlf similarity index 100% rename from Build/content-blocks-examples/ContentBlocks/ContentElements/card_group/Source/Language/Labels.xlf rename to Build/content-blocks-examples/ContentBlocks/ContentElements/card_group/language/labels.xlf diff --git a/Build/content-blocks-examples/ContentBlocks/ContentElements/card_group/Source/Partials/LinkWrap.html b/Build/content-blocks-examples/ContentBlocks/ContentElements/card_group/templates/Partials/LinkWrap.html similarity index 100% rename from Build/content-blocks-examples/ContentBlocks/ContentElements/card_group/Source/Partials/LinkWrap.html rename to Build/content-blocks-examples/ContentBlocks/ContentElements/card_group/templates/Partials/LinkWrap.html diff --git a/Build/content-blocks-examples/ContentBlocks/ContentElements/card_group/Source/Frontend.html b/Build/content-blocks-examples/ContentBlocks/ContentElements/card_group/templates/frontend.html similarity index 100% rename from Build/content-blocks-examples/ContentBlocks/ContentElements/card_group/Source/Frontend.html rename to Build/content-blocks-examples/ContentBlocks/ContentElements/card_group/templates/frontend.html diff --git a/Build/content-blocks-examples/ContentBlocks/ContentElements/card_group/Source/EditorPreview.html b/Build/content-blocks-examples/ContentBlocks/ContentElements/card_group/templates/preview.html similarity index 100% rename from Build/content-blocks-examples/ContentBlocks/ContentElements/card_group/Source/EditorPreview.html rename to Build/content-blocks-examples/ContentBlocks/ContentElements/card_group/templates/preview.html diff --git a/Build/content-blocks-examples/ContentBlocks/ContentElements/cta/Assets/EditorPreview.css b/Build/content-blocks-examples/ContentBlocks/ContentElements/cta/assets/EditorPreview.css similarity index 100% rename from Build/content-blocks-examples/ContentBlocks/ContentElements/cta/Assets/EditorPreview.css rename to Build/content-blocks-examples/ContentBlocks/ContentElements/cta/assets/EditorPreview.css diff --git a/Build/content-blocks-examples/ContentBlocks/ContentElements/cta/Assets/Frontend.css b/Build/content-blocks-examples/ContentBlocks/ContentElements/cta/assets/Frontend.css similarity index 100% rename from Build/content-blocks-examples/ContentBlocks/ContentElements/cta/Assets/Frontend.css rename to Build/content-blocks-examples/ContentBlocks/ContentElements/cta/assets/Frontend.css diff --git a/Build/content-blocks-examples/ContentBlocks/ContentElements/cta/Assets/Icon.svg b/Build/content-blocks-examples/ContentBlocks/ContentElements/cta/assets/icon.svg similarity index 100% rename from Build/content-blocks-examples/ContentBlocks/ContentElements/cta/Assets/Icon.svg rename to Build/content-blocks-examples/ContentBlocks/ContentElements/cta/assets/icon.svg diff --git a/Build/content-blocks-examples/ContentBlocks/ContentElements/cta/EditorInterface.yaml b/Build/content-blocks-examples/ContentBlocks/ContentElements/cta/config.yaml similarity index 100% rename from Build/content-blocks-examples/ContentBlocks/ContentElements/cta/EditorInterface.yaml rename to Build/content-blocks-examples/ContentBlocks/ContentElements/cta/config.yaml diff --git a/Build/content-blocks-examples/ContentBlocks/ContentElements/cta/Source/Language/Labels.xlf b/Build/content-blocks-examples/ContentBlocks/ContentElements/cta/language/labels.xlf similarity index 100% rename from Build/content-blocks-examples/ContentBlocks/ContentElements/cta/Source/Language/Labels.xlf rename to Build/content-blocks-examples/ContentBlocks/ContentElements/cta/language/labels.xlf diff --git a/Build/content-blocks-examples/ContentBlocks/ContentElements/cta/Source/Frontend.html b/Build/content-blocks-examples/ContentBlocks/ContentElements/cta/templates/frontend.html similarity index 100% rename from Build/content-blocks-examples/ContentBlocks/ContentElements/cta/Source/Frontend.html rename to Build/content-blocks-examples/ContentBlocks/ContentElements/cta/templates/frontend.html diff --git a/Build/content-blocks-examples/ContentBlocks/ContentElements/cta/Source/EditorPreview.html b/Build/content-blocks-examples/ContentBlocks/ContentElements/cta/templates/preview.html similarity index 100% rename from Build/content-blocks-examples/ContentBlocks/ContentElements/cta/Source/EditorPreview.html rename to Build/content-blocks-examples/ContentBlocks/ContentElements/cta/templates/preview.html diff --git a/Build/content-blocks-examples/ContentBlocks/ContentElements/icon_group/Assets/EditorPreview.css b/Build/content-blocks-examples/ContentBlocks/ContentElements/icon_group/assets/EditorPreview.css similarity index 100% rename from Build/content-blocks-examples/ContentBlocks/ContentElements/icon_group/Assets/EditorPreview.css rename to Build/content-blocks-examples/ContentBlocks/ContentElements/icon_group/assets/EditorPreview.css diff --git a/Build/content-blocks-examples/ContentBlocks/ContentElements/icon_group/Assets/Frontend.css b/Build/content-blocks-examples/ContentBlocks/ContentElements/icon_group/assets/Frontend.css similarity index 100% rename from Build/content-blocks-examples/ContentBlocks/ContentElements/icon_group/Assets/Frontend.css rename to Build/content-blocks-examples/ContentBlocks/ContentElements/icon_group/assets/Frontend.css diff --git a/Build/content-blocks-examples/ContentBlocks/ContentElements/icon_group/Assets/Icon.svg b/Build/content-blocks-examples/ContentBlocks/ContentElements/icon_group/assets/icon.svg similarity index 100% rename from Build/content-blocks-examples/ContentBlocks/ContentElements/icon_group/Assets/Icon.svg rename to Build/content-blocks-examples/ContentBlocks/ContentElements/icon_group/assets/icon.svg diff --git a/Build/content-blocks-examples/ContentBlocks/ContentElements/icon_group/Assets/icon_group_item.svg b/Build/content-blocks-examples/ContentBlocks/ContentElements/icon_group/assets/icon_group_item.svg similarity index 100% rename from Build/content-blocks-examples/ContentBlocks/ContentElements/icon_group/Assets/icon_group_item.svg rename to Build/content-blocks-examples/ContentBlocks/ContentElements/icon_group/assets/icon_group_item.svg diff --git a/Build/content-blocks-examples/ContentBlocks/ContentElements/icon_group/EditorInterface.yaml b/Build/content-blocks-examples/ContentBlocks/ContentElements/icon_group/config.yaml similarity index 100% rename from Build/content-blocks-examples/ContentBlocks/ContentElements/icon_group/EditorInterface.yaml rename to Build/content-blocks-examples/ContentBlocks/ContentElements/icon_group/config.yaml diff --git a/Build/content-blocks-examples/ContentBlocks/ContentElements/icon_group/Source/Language/Labels.xlf b/Build/content-blocks-examples/ContentBlocks/ContentElements/icon_group/language/labels.xlf similarity index 100% rename from Build/content-blocks-examples/ContentBlocks/ContentElements/icon_group/Source/Language/Labels.xlf rename to Build/content-blocks-examples/ContentBlocks/ContentElements/icon_group/language/labels.xlf diff --git a/Build/content-blocks-examples/ContentBlocks/ContentElements/icon_group/Source/Frontend.html b/Build/content-blocks-examples/ContentBlocks/ContentElements/icon_group/templates/frontend.html similarity index 100% rename from Build/content-blocks-examples/ContentBlocks/ContentElements/icon_group/Source/Frontend.html rename to Build/content-blocks-examples/ContentBlocks/ContentElements/icon_group/templates/frontend.html diff --git a/Build/content-blocks-examples/ContentBlocks/ContentElements/icon_group/Source/EditorPreview.html b/Build/content-blocks-examples/ContentBlocks/ContentElements/icon_group/templates/preview.html similarity index 100% rename from Build/content-blocks-examples/ContentBlocks/ContentElements/icon_group/Source/EditorPreview.html rename to Build/content-blocks-examples/ContentBlocks/ContentElements/icon_group/templates/preview.html diff --git a/Build/content-blocks-examples/ContentBlocks/ContentElements/imageslider/Assets/EditorPreview.css b/Build/content-blocks-examples/ContentBlocks/ContentElements/imageslider/assets/EditorPreview.css similarity index 100% rename from Build/content-blocks-examples/ContentBlocks/ContentElements/imageslider/Assets/EditorPreview.css rename to Build/content-blocks-examples/ContentBlocks/ContentElements/imageslider/assets/EditorPreview.css diff --git a/Build/content-blocks-examples/ContentBlocks/ContentElements/imageslider/Assets/Frontend.css b/Build/content-blocks-examples/ContentBlocks/ContentElements/imageslider/assets/Frontend.css similarity index 100% rename from Build/content-blocks-examples/ContentBlocks/ContentElements/imageslider/Assets/Frontend.css rename to Build/content-blocks-examples/ContentBlocks/ContentElements/imageslider/assets/Frontend.css diff --git a/Build/content-blocks-examples/ContentBlocks/ContentElements/imageslider/Assets/Library/SwiffySlider/swiffy-slider.min.css b/Build/content-blocks-examples/ContentBlocks/ContentElements/imageslider/assets/Library/SwiffySlider/swiffy-slider.min.css similarity index 100% rename from Build/content-blocks-examples/ContentBlocks/ContentElements/imageslider/Assets/Library/SwiffySlider/swiffy-slider.min.css rename to Build/content-blocks-examples/ContentBlocks/ContentElements/imageslider/assets/Library/SwiffySlider/swiffy-slider.min.css diff --git a/Build/content-blocks-examples/ContentBlocks/ContentElements/imageslider/Assets/Library/SwiffySlider/swiffy-slider.min.js b/Build/content-blocks-examples/ContentBlocks/ContentElements/imageslider/assets/Library/SwiffySlider/swiffy-slider.min.js similarity index 100% rename from Build/content-blocks-examples/ContentBlocks/ContentElements/imageslider/Assets/Library/SwiffySlider/swiffy-slider.min.js rename to Build/content-blocks-examples/ContentBlocks/ContentElements/imageslider/assets/Library/SwiffySlider/swiffy-slider.min.js diff --git a/Build/content-blocks-examples/ContentBlocks/ContentElements/imageslider/Assets/Icon.svg b/Build/content-blocks-examples/ContentBlocks/ContentElements/imageslider/assets/icon.svg similarity index 100% rename from Build/content-blocks-examples/ContentBlocks/ContentElements/imageslider/Assets/Icon.svg rename to Build/content-blocks-examples/ContentBlocks/ContentElements/imageslider/assets/icon.svg diff --git a/Build/content-blocks-examples/ContentBlocks/ContentElements/imageslider/EditorInterface.yaml b/Build/content-blocks-examples/ContentBlocks/ContentElements/imageslider/config.yaml similarity index 100% rename from Build/content-blocks-examples/ContentBlocks/ContentElements/imageslider/EditorInterface.yaml rename to Build/content-blocks-examples/ContentBlocks/ContentElements/imageslider/config.yaml diff --git a/Build/content-blocks-examples/ContentBlocks/ContentElements/imageslider/Source/Language/Labels.xlf b/Build/content-blocks-examples/ContentBlocks/ContentElements/imageslider/language/labels.xlf similarity index 100% rename from Build/content-blocks-examples/ContentBlocks/ContentElements/imageslider/Source/Language/Labels.xlf rename to Build/content-blocks-examples/ContentBlocks/ContentElements/imageslider/language/labels.xlf diff --git a/Build/content-blocks-examples/ContentBlocks/ContentElements/imageslider/Source/Frontend.html b/Build/content-blocks-examples/ContentBlocks/ContentElements/imageslider/templates/frontend.html similarity index 100% rename from Build/content-blocks-examples/ContentBlocks/ContentElements/imageslider/Source/Frontend.html rename to Build/content-blocks-examples/ContentBlocks/ContentElements/imageslider/templates/frontend.html diff --git a/Build/content-blocks-examples/ContentBlocks/ContentElements/imageslider/Source/EditorPreview.html b/Build/content-blocks-examples/ContentBlocks/ContentElements/imageslider/templates/preview.html similarity index 100% rename from Build/content-blocks-examples/ContentBlocks/ContentElements/imageslider/Source/EditorPreview.html rename to Build/content-blocks-examples/ContentBlocks/ContentElements/imageslider/templates/preview.html diff --git a/Build/content-blocks-examples/ContentBlocks/ContentElements/tabs/Assets/Frontend.css b/Build/content-blocks-examples/ContentBlocks/ContentElements/tabs/assets/Frontend.css similarity index 100% rename from Build/content-blocks-examples/ContentBlocks/ContentElements/tabs/Assets/Frontend.css rename to Build/content-blocks-examples/ContentBlocks/ContentElements/tabs/assets/Frontend.css diff --git a/Build/content-blocks-examples/ContentBlocks/ContentElements/tabs/Assets/Frontend.js b/Build/content-blocks-examples/ContentBlocks/ContentElements/tabs/assets/Frontend.js similarity index 100% rename from Build/content-blocks-examples/ContentBlocks/ContentElements/tabs/Assets/Frontend.js rename to Build/content-blocks-examples/ContentBlocks/ContentElements/tabs/assets/Frontend.js diff --git a/Build/content-blocks-examples/ContentBlocks/ContentElements/tabs/Assets/Icon.svg b/Build/content-blocks-examples/ContentBlocks/ContentElements/tabs/assets/icon.svg similarity index 100% rename from Build/content-blocks-examples/ContentBlocks/ContentElements/tabs/Assets/Icon.svg rename to Build/content-blocks-examples/ContentBlocks/ContentElements/tabs/assets/icon.svg diff --git a/Build/content-blocks-examples/ContentBlocks/ContentElements/tabs/Assets/tabs_item.svg b/Build/content-blocks-examples/ContentBlocks/ContentElements/tabs/assets/tabs_item.svg similarity index 100% rename from Build/content-blocks-examples/ContentBlocks/ContentElements/tabs/Assets/tabs_item.svg rename to Build/content-blocks-examples/ContentBlocks/ContentElements/tabs/assets/tabs_item.svg diff --git a/Build/content-blocks-examples/ContentBlocks/ContentElements/tabs/EditorInterface.yaml b/Build/content-blocks-examples/ContentBlocks/ContentElements/tabs/config.yaml similarity index 100% rename from Build/content-blocks-examples/ContentBlocks/ContentElements/tabs/EditorInterface.yaml rename to Build/content-blocks-examples/ContentBlocks/ContentElements/tabs/config.yaml diff --git a/Build/content-blocks-examples/ContentBlocks/ContentElements/tabs/Source/Language/Labels.xlf b/Build/content-blocks-examples/ContentBlocks/ContentElements/tabs/language/labels.xlf similarity index 100% rename from Build/content-blocks-examples/ContentBlocks/ContentElements/tabs/Source/Language/Labels.xlf rename to Build/content-blocks-examples/ContentBlocks/ContentElements/tabs/language/labels.xlf diff --git a/Build/content-blocks-examples/ContentBlocks/ContentElements/tabs/Source/Frontend.html b/Build/content-blocks-examples/ContentBlocks/ContentElements/tabs/templates/frontend.html similarity index 100% rename from Build/content-blocks-examples/ContentBlocks/ContentElements/tabs/Source/Frontend.html rename to Build/content-blocks-examples/ContentBlocks/ContentElements/tabs/templates/frontend.html diff --git a/Build/content-blocks-examples/ContentBlocks/ContentElements/tabs/Source/EditorPreview.html b/Build/content-blocks-examples/ContentBlocks/ContentElements/tabs/templates/preview.html similarity index 100% rename from Build/content-blocks-examples/ContentBlocks/ContentElements/tabs/Source/EditorPreview.html rename to Build/content-blocks-examples/ContentBlocks/ContentElements/tabs/templates/preview.html diff --git a/Build/content-blocks-examples/ContentBlocks/ContentElements/text/Assets/Icon.svg b/Build/content-blocks-examples/ContentBlocks/ContentElements/text/assets/icon.svg similarity index 100% rename from Build/content-blocks-examples/ContentBlocks/ContentElements/text/Assets/Icon.svg rename to Build/content-blocks-examples/ContentBlocks/ContentElements/text/assets/icon.svg diff --git a/Build/content-blocks-examples/ContentBlocks/ContentElements/text/EditorInterface.yaml b/Build/content-blocks-examples/ContentBlocks/ContentElements/text/config.yaml similarity index 100% rename from Build/content-blocks-examples/ContentBlocks/ContentElements/text/EditorInterface.yaml rename to Build/content-blocks-examples/ContentBlocks/ContentElements/text/config.yaml diff --git a/Build/content-blocks-examples/ContentBlocks/ContentElements/text/Source/Language/Labels.xlf b/Build/content-blocks-examples/ContentBlocks/ContentElements/text/language/labels.xlf similarity index 100% rename from Build/content-blocks-examples/ContentBlocks/ContentElements/text/Source/Language/Labels.xlf rename to Build/content-blocks-examples/ContentBlocks/ContentElements/text/language/labels.xlf diff --git a/Build/content-blocks-examples/ContentBlocks/ContentElements/text/Source/Frontend.html b/Build/content-blocks-examples/ContentBlocks/ContentElements/text/templates/frontend.html similarity index 100% rename from Build/content-blocks-examples/ContentBlocks/ContentElements/text/Source/Frontend.html rename to Build/content-blocks-examples/ContentBlocks/ContentElements/text/templates/frontend.html diff --git a/Build/content-blocks-examples/ContentBlocks/PageTypes/example/Assets/IconHideInMenu.svg b/Build/content-blocks-examples/ContentBlocks/PageTypes/example/assets/icon-hide-in-menu.svg similarity index 100% rename from Build/content-blocks-examples/ContentBlocks/PageTypes/example/Assets/IconHideInMenu.svg rename to Build/content-blocks-examples/ContentBlocks/PageTypes/example/assets/icon-hide-in-menu.svg diff --git a/Build/content-blocks-examples/ContentBlocks/PageTypes/example/Assets/IconRoot.svg b/Build/content-blocks-examples/ContentBlocks/PageTypes/example/assets/icon-root.svg similarity index 100% rename from Build/content-blocks-examples/ContentBlocks/PageTypes/example/Assets/IconRoot.svg rename to Build/content-blocks-examples/ContentBlocks/PageTypes/example/assets/icon-root.svg diff --git a/Build/content-blocks-examples/ContentBlocks/PageTypes/example/Assets/Icon.svg b/Build/content-blocks-examples/ContentBlocks/PageTypes/example/assets/icon.svg similarity index 100% rename from Build/content-blocks-examples/ContentBlocks/PageTypes/example/Assets/Icon.svg rename to Build/content-blocks-examples/ContentBlocks/PageTypes/example/assets/icon.svg diff --git a/Build/content-blocks-examples/ContentBlocks/PageTypes/example/EditorInterface.yaml b/Build/content-blocks-examples/ContentBlocks/PageTypes/example/config.yaml similarity index 100% rename from Build/content-blocks-examples/ContentBlocks/PageTypes/example/EditorInterface.yaml rename to Build/content-blocks-examples/ContentBlocks/PageTypes/example/config.yaml diff --git a/Build/content-blocks-examples/ContentBlocks/PageTypes/example/Source/Language/Labels.xlf b/Build/content-blocks-examples/ContentBlocks/PageTypes/example/language/labels.xlf similarity index 100% rename from Build/content-blocks-examples/ContentBlocks/PageTypes/example/Source/Language/Labels.xlf rename to Build/content-blocks-examples/ContentBlocks/PageTypes/example/language/labels.xlf diff --git a/Build/content-blocks-examples/ContentBlocks/RecordTypes/notype/Assets/Icon.svg b/Build/content-blocks-examples/ContentBlocks/RecordTypes/notype/assets/icon.svg similarity index 100% rename from Build/content-blocks-examples/ContentBlocks/RecordTypes/notype/Assets/Icon.svg rename to Build/content-blocks-examples/ContentBlocks/RecordTypes/notype/assets/icon.svg diff --git a/Build/content-blocks-examples/ContentBlocks/RecordTypes/notype/EditorInterface.yaml b/Build/content-blocks-examples/ContentBlocks/RecordTypes/notype/config.yaml similarity index 100% rename from Build/content-blocks-examples/ContentBlocks/RecordTypes/notype/EditorInterface.yaml rename to Build/content-blocks-examples/ContentBlocks/RecordTypes/notype/config.yaml diff --git a/Build/content-blocks-examples/ContentBlocks/RecordTypes/notype/Source/Language/Labels.xlf b/Build/content-blocks-examples/ContentBlocks/RecordTypes/notype/language/labels.xlf similarity index 100% rename from Build/content-blocks-examples/ContentBlocks/RecordTypes/notype/Source/Language/Labels.xlf rename to Build/content-blocks-examples/ContentBlocks/RecordTypes/notype/language/labels.xlf diff --git a/Build/content-blocks-examples/ContentBlocks/RecordTypes/record1/Assets/Icon.svg b/Build/content-blocks-examples/ContentBlocks/RecordTypes/record1/assets/icon.svg similarity index 100% rename from Build/content-blocks-examples/ContentBlocks/RecordTypes/record1/Assets/Icon.svg rename to Build/content-blocks-examples/ContentBlocks/RecordTypes/record1/assets/icon.svg diff --git a/Build/content-blocks-examples/ContentBlocks/RecordTypes/record1/EditorInterface.yaml b/Build/content-blocks-examples/ContentBlocks/RecordTypes/record1/config.yaml similarity index 100% rename from Build/content-blocks-examples/ContentBlocks/RecordTypes/record1/EditorInterface.yaml rename to Build/content-blocks-examples/ContentBlocks/RecordTypes/record1/config.yaml diff --git a/Build/content-blocks-examples/ContentBlocks/RecordTypes/record1/Source/Language/Labels.xlf b/Build/content-blocks-examples/ContentBlocks/RecordTypes/record1/language/labels.xlf similarity index 100% rename from Build/content-blocks-examples/ContentBlocks/RecordTypes/record1/Source/Language/Labels.xlf rename to Build/content-blocks-examples/ContentBlocks/RecordTypes/record1/language/labels.xlf diff --git a/Build/content-blocks-examples/ContentBlocks/RecordTypes/record2/Assets/Icon.svg b/Build/content-blocks-examples/ContentBlocks/RecordTypes/record2/assets/icon.svg similarity index 100% rename from Build/content-blocks-examples/ContentBlocks/RecordTypes/record2/Assets/Icon.svg rename to Build/content-blocks-examples/ContentBlocks/RecordTypes/record2/assets/icon.svg diff --git a/Build/content-blocks-examples/ContentBlocks/RecordTypes/record2/EditorInterface.yaml b/Build/content-blocks-examples/ContentBlocks/RecordTypes/record2/config.yaml similarity index 100% rename from Build/content-blocks-examples/ContentBlocks/RecordTypes/record2/EditorInterface.yaml rename to Build/content-blocks-examples/ContentBlocks/RecordTypes/record2/config.yaml diff --git a/Build/content-blocks-examples/ContentBlocks/RecordTypes/record2/Source/Language/Labels.xlf b/Build/content-blocks-examples/ContentBlocks/RecordTypes/record2/language/labels.xlf similarity index 100% rename from Build/content-blocks-examples/ContentBlocks/RecordTypes/record2/Source/Language/Labels.xlf rename to Build/content-blocks-examples/ContentBlocks/RecordTypes/record2/language/labels.xlf diff --git a/Classes/Backend/Preview/PageLayout.php b/Classes/Backend/Preview/PageLayout.php index eade1c80..6bbd5240 100644 --- a/Classes/Backend/Preview/PageLayout.php +++ b/Classes/Backend/Preview/PageLayout.php @@ -115,7 +115,7 @@ protected function getContentBlocksLayoutRootPaths(string $contentBlockPrivatePa protected function getContentBlockPrivatePath(ContentTypeInterface $contentTypeDefinition): string { $contentBlockExtPath = $this->getEditorPreviewExtPath($contentTypeDefinition); - $contentBlockPrivatePath = $contentBlockExtPath . '/' . ContentBlockPathUtility::getPrivateFolder(); + $contentBlockPrivatePath = $contentBlockExtPath . '/' . ContentBlockPathUtility::getTemplatesFolder(); return $contentBlockPrivatePath; } diff --git a/Classes/Backend/Preview/PreviewRenderer.php b/Classes/Backend/Preview/PreviewRenderer.php index 04f9d18b..c6a4a329 100644 --- a/Classes/Backend/Preview/PreviewRenderer.php +++ b/Classes/Backend/Preview/PreviewRenderer.php @@ -58,7 +58,7 @@ public function renderPageModulePreviewContent(GridColumnItem $item): string $contentTypeDefinition = $contentTypeCollection->getFirst(); } $contentBlockExtPath = $this->contentBlockRegistry->getContentBlockExtPath($contentTypeDefinition->getName()); - $contentBlockPrivatePath = $contentBlockExtPath . '/' . ContentBlockPathUtility::getPrivateFolder(); + $contentBlockPrivatePath = $contentBlockExtPath . '/' . ContentBlockPathUtility::getTemplatesFolder(); // Fall back to standard preview rendering if EditorPreview.html does not exist. $editorPreviewExtPath = $contentBlockExtPath . '/' . ContentBlockPathUtility::getBackendPreviewPath(); diff --git a/Classes/Builder/ContentBlockBuilder.php b/Classes/Builder/ContentBlockBuilder.php index fb4fb5a3..580340ad 100644 --- a/Classes/Builder/ContentBlockBuilder.php +++ b/Classes/Builder/ContentBlockBuilder.php @@ -65,9 +65,13 @@ public function create(LoadedContentBlock $contentBlock): void $this->initializeRegistries($contentBlock); - // Create public Assets directory. - $publicPath = $basePath . '/' . ContentBlockPathUtility::getPublicFolder(); - GeneralUtility::mkdir_deep($publicPath); + // Create base directories for a Content Block. + $assetsPath = $basePath . '/' . ContentBlockPathUtility::getAssetsFolder(); + $templatePath = $basePath . '/' . ContentBlockPathUtility::getTemplatesFolder(); + $languagePath = $basePath . '/' . ContentBlockPathUtility::getLanguageFolder(); + GeneralUtility::mkdir_deep($assetsPath); + GeneralUtility::mkdir_deep($templatePath); + GeneralUtility::mkdir_deep($languagePath); $this->createLabelsXlf($contentBlock, $basePath); $this->createEditorInterfaceYaml($contentBlock, $basePath); @@ -76,7 +80,7 @@ public function create(LoadedContentBlock $contentBlock): void if ($contentType === ContentType::CONTENT_ELEMENT) { $this->createFrontendHtml($contentBlock, $basePath); $this->createBackendPreviewHtml($contentBlock, $basePath); - $this->createExamplePublicAssets($publicPath); + $this->createExamplePublicAssets($assetsPath); } $this->copyDefaultIcon($contentType, $basePath); if ($contentType === ContentType::PAGE_TYPE) { @@ -115,7 +119,6 @@ protected function createEditorInterfaceYaml(LoadedContentBlock $contentBlock, s protected function createLabelsXlf(LoadedContentBlock $contentBlock, string $basePath): void { - GeneralUtility::mkdir_deep($basePath . '/' . ContentBlockPathUtility::getLanguageFolderPath()); $xliffContent = $this->languageFileGenerator->generate($contentBlock); GeneralUtility::writeFile( $basePath . '/' . ContentBlockPathUtility::getLanguageFilePath(), @@ -142,15 +145,15 @@ protected function createFrontendHtml(LoadedContentBlock $contentBlock, string $ protected function createExamplePublicAssets(string $publicPath): void { GeneralUtility::writeFile( - $publicPath . '/EditorPreview.css', + $publicPath . '/editor-preview.css', '/* Created by Content Blocks */' ); GeneralUtility::writeFile( - $publicPath . '/Frontend.css', + $publicPath . '/frontend.css', '/* Created by Content Blocks */' ); GeneralUtility::writeFile( - $publicPath . '/Frontend.js', + $publicPath . '/frontend.js', '/* Created by Content Blocks */' ); } diff --git a/Classes/Command/GenerateLanguageFileCommand.php b/Classes/Command/GenerateLanguageFileCommand.php index 075dad80..57062228 100644 --- a/Classes/Command/GenerateLanguageFileCommand.php +++ b/Classes/Command/GenerateLanguageFileCommand.php @@ -107,7 +107,7 @@ protected function execute(InputInterface $input, OutputInterface $output): int protected function writeLabelsXlf(LoadedContentBlock $contentBlock): void { $contentBlockPath = GeneralUtility::getFileAbsFileName($contentBlock->getExtPath()); - $labelsFolder = $contentBlockPath . '/' . ContentBlockPathUtility::getLanguageFolderPath(); + $labelsFolder = $contentBlockPath . '/' . ContentBlockPathUtility::getLanguageFolder(); $labelsXlfPath = $contentBlockPath . '/' . ContentBlockPathUtility::getLanguageFilePath(); $result = $this->languageFileGenerator->generate($contentBlock); GeneralUtility::mkdir_deep($labelsFolder); diff --git a/Classes/Generator/HtmlTemplateCodeGenerator.php b/Classes/Generator/HtmlTemplateCodeGenerator.php index 8ef05797..5ce39f44 100644 --- a/Classes/Generator/HtmlTemplateCodeGenerator.php +++ b/Classes/Generator/HtmlTemplateCodeGenerator.php @@ -49,7 +49,7 @@ public function generateEditorPreviewTemplate(LoadedContentBlock $contentBlockCo $package = $contentBlockConfiguration->getName(); $vendor = $contentBlockConfiguration->getVendor(); - $defaultContent[] = ''; + $defaultContent[] = ''; $defaultContent[] = ''; $defaultContent[] = 'Preview for Content Block: ' . $contentBlockConfiguration->getName() . '
'; $defaultContent[] = 'Header: {data.header}'; @@ -64,8 +64,8 @@ public function generateFrontendTemplate(LoadedContentBlock $contentBlockConfigu { $package = $contentBlockConfiguration->getName(); $vendor = $contentBlockConfiguration->getVendor(); - $frontendTemplate[] = ''; - $frontendTemplate[] = ''; + $frontendTemplate[] = ''; + $frontendTemplate[] = ''; $frontendTemplate[] = ''; $frontendTemplate[] = 'Frontend template for Content Block: ' . $contentBlockConfiguration->getName() . '
'; $frontendTemplate[] = 'Header: {data.header}'; diff --git a/Classes/Generator/LanguageFileGenerator.php b/Classes/Generator/LanguageFileGenerator.php index f58b0a3a..4452e9b4 100644 --- a/Classes/Generator/LanguageFileGenerator.php +++ b/Classes/Generator/LanguageFileGenerator.php @@ -97,7 +97,7 @@ protected function wrap(string $content, string $date, string $vendor, string $n $xliffContent = << - +
$content diff --git a/Classes/Loader/ContentBlockLoader.php b/Classes/Loader/ContentBlockLoader.php index 29ecdd29..d0534459 100644 --- a/Classes/Loader/ContentBlockLoader.php +++ b/Classes/Loader/ContentBlockLoader.php @@ -145,6 +145,9 @@ protected function loadContentBlocksInExtension(string $path, string $extensionK $contentBlockFolderName = $splFileInfo->getRelativePathname(); $contentBlockExtPath = ContentBlockPathUtility::getContentBlockExtPath($extensionKey, $contentBlockFolderName, $contentType); $editorInterfaceYaml = $this->parseEditorInterfaceYaml($absoluteContentBlockPath, $contentBlockExtPath, $contentType); + if ($editorInterfaceYaml === null) { + continue; + } $result[] = $this->loadSingleContentBlock( $editorInterfaceYaml['name'], $contentType, @@ -157,15 +160,12 @@ protected function loadContentBlocksInExtension(string $path, string $extensionK return $result; } - protected function parseEditorInterfaceYaml(string $absoluteContentBlockPath, string $contentBlockExtPath, ContentType $contentType): array + protected function parseEditorInterfaceYaml(string $absoluteContentBlockPath, string $contentBlockExtPath, ContentType $contentType): ?array { $contentBlockDefinitionFileName = ContentBlockPathUtility::getContentBlockDefinitionFileName(); $yamlPath = $absoluteContentBlockPath . '/' . $contentBlockDefinitionFileName; if (!file_exists($yamlPath)) { - throw new \RuntimeException( - 'Found Content Block folder in "' . $contentBlockExtPath . '" but ' . $contentBlockDefinitionFileName . ' is missing.', - 1711039210 - ); + return null; } $editorInterfaceYaml = Yaml::parseFile($yamlPath); if (!is_array($editorInterfaceYaml) || strlen($editorInterfaceYaml['name'] ?? '') < 3 || !str_contains($editorInterfaceYaml['name'], '/')) { @@ -285,7 +285,7 @@ protected function publishAssets(array $loadedContentBlocks): void $fileSystem = new Filesystem(); foreach ($loadedContentBlocks as $loadedContentBlock) { $hostExtension = $loadedContentBlock->getHostExtension(); - $contentBlockExtPublicPath = $loadedContentBlock->getExtPath() . '/' . ContentBlockPathUtility::getPublicFolder(); + $contentBlockExtPublicPath = $loadedContentBlock->getExtPath() . '/' . ContentBlockPathUtility::getAssetsFolder(); $contentBlockAbsolutePublicPath = GeneralUtility::getFileAbsFileName($contentBlockExtPublicPath); // If the Content Block does not have an Assets folder, nothing to publish here. if (!file_exists($contentBlockAbsolutePublicPath)) { diff --git a/Classes/Service/Icon/ContentTypeIconResolver.php b/Classes/Service/Icon/ContentTypeIconResolver.php index fe1d1a8a..d223c4ec 100644 --- a/Classes/Service/Icon/ContentTypeIconResolver.php +++ b/Classes/Service/Icon/ContentTypeIconResolver.php @@ -33,7 +33,7 @@ public static function resolve(ContentTypeIconResolverInput $input): ?ContentTyp { $allowedFileExtension = ['svg', 'png', 'gif']; foreach ($allowedFileExtension as $fileExtension) { - $iconPathWithoutFileExtension = ContentBlockPathUtility::getPublicFolder() . '/' . $input->identifier; + $iconPathWithoutFileExtension = ContentBlockPathUtility::getAssetsFolder() . '/' . $input->identifier; $relativeIconPath = $iconPathWithoutFileExtension . '.' . $fileExtension; $checkIconPath = $input->absolutePath . '/' . $relativeIconPath; if (!file_exists($checkIconPath)) { diff --git a/Classes/ServiceProvider.php b/Classes/ServiceProvider.php index 70959fb9..607a22a1 100644 --- a/Classes/ServiceProvider.php +++ b/Classes/ServiceProvider.php @@ -162,20 +162,17 @@ public static function getContentBlockTypoScript(ContainerInterface $container): foreach ($tableDefinition->getContentTypeDefinitionCollection() ?? [] as $typeDefinition) { if ($tableDefinition->getContentType() === ContentType::CONTENT_ELEMENT) { $extPath = $contentBlockRegistry->getContentBlockExtPath($typeDefinition->getName()); - $privatePath = $extPath . '/' . ContentBlockPathUtility::getPrivateFolder(); - $template = ContentBlockPathUtility::getFrontendTemplateFileNameWithoutExtension(); + $privatePath = $extPath . '/' . ContentBlockPathUtility::getTemplatesFolder(); + $template = ContentBlockPathUtility::getFrontendTemplateFileName(); $typoScript = <<getTypeName()} =< lib.contentBlock tt_content.{$typeDefinition->getTypeName()} { - templateName = {$template} - templateRootPaths { - 20 = $privatePath/ - } + file = $privatePath/$template partialRootPaths { - 20 = $privatePath/Partials/ + 20 = $privatePath/partials/ } layoutRootPaths { - 20 = $privatePath/Layouts/ + 20 = $privatePath/layouts/ } } HEREDOC; diff --git a/Classes/Update/ContentBlockFolderStructureMigration.php b/Classes/Update/ContentBlockFolderStructureMigration.php new file mode 100644 index 00000000..14c026e7 --- /dev/null +++ b/Classes/Update/ContentBlockFolderStructureMigration.php @@ -0,0 +1,155 @@ +findContentBlockPaths() as $path) { + $this->migrate($path); + } + return true; + } + + public function updateNecessary(): bool + { + return $this->findContentBlockPaths() !== []; + } + + public function getPrerequisites(): array + { + return []; + } + + /** + * @return string[] + */ + protected function findContentBlockPaths(): array + { + $contentBlockPaths = []; + foreach ($this->packageManager->getActivePackages() as $package) { + $contentElementsFolder = $package->getPackagePath() . 'ContentBlocks/ContentElements'; + $pageTypesFolder = $package->getPackagePath() . 'ContentBlocks/PageTypes'; + $recordTypesFolder = $package->getPackagePath() . 'ContentBlocks/RecordTypes'; + if (is_dir($contentElementsFolder)) { + $contentBlockPaths[] = $this->loadContentBlocksInExtension($contentElementsFolder); + } + if (is_dir($pageTypesFolder)) { + $contentBlockPaths[] = $this->loadContentBlocksInExtension($pageTypesFolder); + } + if (is_dir($recordTypesFolder)) { + $contentBlockPaths[] = $this->loadContentBlocksInExtension($recordTypesFolder); + } + } + $contentBlockPaths = array_merge(...$contentBlockPaths); + return $contentBlockPaths; + } + + /** + * @return string[] + */ + protected function loadContentBlocksInExtension(string $path): array + { + $result = []; + $finder = new Finder(); + $finder->directories()->depth(0)->in($path); + foreach ($finder as $splFileInfo) { + $absoluteContentBlockPath = $splFileInfo->getPathname(); + if (file_exists($absoluteContentBlockPath . '/EditorInterface.yaml')) { + $result[] = $absoluteContentBlockPath; + } + } + return $result; + } + + protected function migrate(string $path): void + { + rename($path . '/EditorInterface.yaml', $path . '/config.yaml'); + if (file_exists($path . '/Source')) { + rename($path . '/Source', $path . '/templates'); + } + if (file_exists($path . '/templates/Frontend.html')) { + rename($path . '/templates/Frontend.html', $path . '/templates/frontend.html'); + } + if (file_exists($path . '/templates/Partials')) { + rename($path . '/templates/Partials', $path . '/templates/partials'); + } + if (file_exists($path . '/templates/Layouts')) { + rename($path . '/templates/Layouts', $path . '/templates/layouts'); + } + if (file_exists($path . '/templates/EditorPreview.html')) { + rename($path . '/templates/EditorPreview.html', $path . '/templates/preview.html'); + } + if (file_exists($path . '/templates/Language')) { + rename($path . '/templates/Language', $path . '/language'); + } + if (file_exists($path . '/language/Labels.xlf')) { + rename($path . '/language/Labels.xlf', $path . '/language/labels.xlf'); + $this->migrateLocalizedLabelFiles($path . '/language'); + } + if (file_exists($path . '/Assets')) { + rename($path . '/Assets', $path . '/assets'); + } + if (file_exists($path . '/assets/Icon.svg')) { + rename($path . '/assets/Icon.svg', $path . '/assets/icon.svg'); + } + if (file_exists($path . '/assets/IconHideInMenu.svg')) { + rename($path . '/assets/IconHideInMenu.svg', $path . '/assets/icon-hide-in-menu.svg'); + } + if (file_exists($path . '/assets/IconRoot.svg')) { + rename($path . '/assets/IconRoot.svg', $path . '/assets/icon-root.svg'); + } + } + + protected function migrateLocalizedLabelFiles(string $languagePath): void + { + $finder = new Finder(); + $finder->files()->name('*.xlf')->in($languagePath); + foreach ($finder as $splFileInfo) { + $fileName = $splFileInfo->getFilename(); + $parts = explode('.', $fileName); + if (count($parts) !== 3) { + continue; + } + $parts[1] = 'labels'; + $newFileName = implode('.', $parts); + rename($splFileInfo->getPathname(), $languagePath . '/' . $newFileName); + } + } +} diff --git a/Classes/Utility/ContentBlockPathUtility.php b/Classes/Utility/ContentBlockPathUtility.php index 383ead83..5b6de1b8 100644 --- a/Classes/Utility/ContentBlockPathUtility.php +++ b/Classes/Utility/ContentBlockPathUtility.php @@ -37,12 +37,12 @@ public static function getContentBlockExtPath(string $extensionKey, string $cont public static function getContentBlockDefinitionFileName(): string { - return 'EditorInterface.yaml'; + return 'config.yaml'; } public static function getBackendPreviewFileName(): string { - return 'EditorPreview.html'; + return 'preview.html'; } public static function getBackendPreviewFileNameWithoutExtension(): string @@ -52,12 +52,12 @@ public static function getBackendPreviewFileNameWithoutExtension(): string public static function getBackendPreviewPath(): string { - return self::getPrivateFolder() . '/' . self::getBackendPreviewFileName(); + return self::getTemplatesFolder() . '/' . self::getBackendPreviewFileName(); } public static function getFrontendTemplateFileName(): string { - return 'Frontend.html'; + return 'frontend.html'; } public static function getFrontendTemplateFileNameWithoutExtension(): string @@ -67,42 +67,37 @@ public static function getFrontendTemplateFileNameWithoutExtension(): string public static function getFrontendTemplatePath(): string { - return self::getPrivateFolder() . '/' . self::getFrontendTemplateFileName(); - } - - public static function getLanguageFolderPath(): string - { - return self::getPrivateFolder() . '/Language'; + return self::getTemplatesFolder() . '/' . self::getFrontendTemplateFileName(); } public static function getLanguageFilePath(): string { - return self::getLanguageFolderPath() . '/Labels.xlf'; + return self::getLanguageFolder() . '/labels.xlf'; } public static function getIconNameWithoutFileExtension(): string { - return 'Icon'; + return 'icon'; } public static function getIconHideInMenuNameWithoutFileExtension(): string { - return 'IconHideInMenu'; + return 'icon-hide-in-menu'; } public static function getIconRootNameWithoutFileExtension(): string { - return 'IconRoot'; + return 'icon-root'; } public static function getIconPathWithoutFileExtension(): string { - return self::getPublicFolder() . '/' . self::getIconNameWithoutFileExtension(); + return self::getAssetsFolder() . '/' . self::getIconNameWithoutFileExtension(); } public static function getHideInMenuIconPathWithoutFileExtension(): string { - return self::getPublicFolder() . '/' . self::getIconHideInMenuNameWithoutFileExtension(); + return self::getAssetsFolder() . '/' . self::getIconHideInMenuNameWithoutFileExtension(); } public static function getRelativeContentElementsPath(): string @@ -140,14 +135,19 @@ public static function getRecordTypesFolder(): string return 'RecordTypes'; } - public static function getPublicFolder(): string + public static function getAssetsFolder(): string + { + return 'assets'; + } + + public static function getTemplatesFolder(): string { - return 'Assets'; + return 'templates'; } - public static function getPrivateFolder(): string + public static function getLanguageFolder(): string { - return 'Source'; + return 'language'; } public static function getHostExtPublicContentBlockBasePath(string $hostExtension): string diff --git a/Documentation/Appendix/CoreContentTypes/Index.rst b/Documentation/Appendix/CoreContentTypes/Index.rst index 2b56255a..c4287df4 100644 --- a/Documentation/Appendix/CoreContentTypes/Index.rst +++ b/Documentation/Appendix/CoreContentTypes/Index.rst @@ -73,5 +73,5 @@ cases like file references or collections. :ref:`Fluid ` is the templating engine for TYPO3 and is both used in the backend and the frontend. Content Blocks registers a -`Frontend.html` and a `EditorPreview.html` file, which can immediately be used +`frontend.html` and a `preview.html` file, which can immediately be used for styling your Content Element. Layouts and partials can be used as usual. diff --git a/Documentation/Appendix/History/Index.rst b/Documentation/Appendix/History/Index.rst index 31efba3a..3068940e 100644 --- a/Documentation/Appendix/History/Index.rst +++ b/Documentation/Appendix/History/Index.rst @@ -37,13 +37,13 @@ The outcome of the research and the discussions in the community is: * A content block is a definition in your {extDir}/ContentBlocks/ folder, which will be determined and loaded automatically * A content block is not a TYPO3 Extension but a sub-resource, so there is no PHP, TypoScript, SQL nor TSconfig inside -* The configuration for a new content element is stored in a YAML file, the EditorInterface.yaml +* The configuration for a new content element is stored in a YAML file, the config.yaml * Content blocks are made for frontend developers / TYPO3 beginners as main target group * As a common best practice in TYPO3, labels and every other language related stuff is stored in a XLF file. This will be registered and processed by convention -* The entered name (vendor/name) in the EditorInterface.yaml file defines the identifier of a content block +* The entered name (vendor/name) in the config.yaml file defines the identifier of a content block * GUI to create / kickstart a new content block * If there are breaking changes, support e.g via UpgradeWizards to migrate easily to the new version -* Better UX for editors by shipping a template (EditorPreview.html) for the backend preview +* Better UX for editors by shipping a template (preview.html) for the backend preview * Usage of the AssetCollector: JavaScript and CSS in backend and frontend * The content blocks are encapsulated, in a own folder * You can move a content block from one project to another project and it will work out of the box @@ -53,9 +53,9 @@ The outcome of the research and the discussions in the community is: What it does ============ -Basically, this extension registers the new content type with the entered vendor/name in the corresponding EditorInterface.yaml +Basically, this extension registers the new content type with the entered vendor/name in the corresponding config.yaml file in TYPO3 and the newContentElementWizard, and translates the YAML-file into TCA and SQL. -It registers the Labels.xlf and sets the labels and descriptions by the field identifiers, +It registers the labels.xlf and sets the labels and descriptions by the field identifiers, registers the icon and adds the necessary TypoScript. So it is a abstraction layer to ease up and speed up the work of integrators and frontend developers. @@ -85,7 +85,7 @@ Learnings are: * Overriding of TCA is essential to add custom functions * Copy and paste is useful and easy * Writing the YAML file is not so hard as expected, but a GUI for editing would be beneficial -* The identifiers in the Labels.xlf are not so easy to work with, would be better to have a GUI for that +* The identifiers in the labels.xlf are not so easy to work with, would be better to have a GUI for that * The GUI / kickstarter in big projects should not be available in production environment diff --git a/Documentation/Commands/LanguageGenerate/Index.rst b/Documentation/Commands/LanguageGenerate/Index.rst index 090b048d..653c3a8f 100644 --- a/Documentation/Commands/LanguageGenerate/Index.rst +++ b/Documentation/Commands/LanguageGenerate/Index.rst @@ -5,9 +5,9 @@ Language Generate command ========================= -The command :bash:`content-blocks:language:generate` updates the Labels.xlf +The command :bash:`content-blocks:language:generate` updates the labels.xlf content for the specified Content Block. Already set labels in both the -Labels.xlf file and in the EditorInterface.yaml are considered. The Labels.xlf +labels.xlf file and in the config.yaml are considered. The labels.xlf file has precedence over inline labels in the YAML definition. Optional keys like descriptions or labels for existing fields will only be be generated if they have been set manually. Custom translations, which don't belong to the @@ -33,7 +33,7 @@ Options :Shortcut: p :Type: bool - Print Labels.xlf to terminal instead of writing to file system. + Print labels.xlf to terminal instead of writing to file system. .. confval:: extension :name: language-generate-extension @@ -41,21 +41,21 @@ Options :Shortcut: e :Type: string - Write Labels.xlf to all Content Blocks within the given extension. + Write labels.xlf to all Content Blocks within the given extension. -Write up-to-date Labels.xlf file for Content Block example/example. +Write up-to-date labels.xlf file for Content Block example/example. .. code-block:: bash vendor/bin/typo3 content-blocks:language:generate example/example -Update all Labels.xlf files within the extension "site_package". +Update all labels.xlf files within the extension "site_package". .. code-block:: bash vendor/bin/typo3 content-blocks:language:generate example/example --extension="site_package" -Print up-to-date Labels.xlf content for Content Block example/example. +Print up-to-date labels.xlf content for Content Block example/example. .. code-block:: bash @@ -67,7 +67,7 @@ Example output: - +
diff --git a/Documentation/Definition/Assets/Index.rst b/Documentation/Definition/Assets/Index.rst index 9cc078b4..f6dfcd3f 100644 --- a/Documentation/Definition/Assets/Index.rst +++ b/Documentation/Definition/Assets/Index.rst @@ -2,10 +2,10 @@ .. _cb_definition_assets: ====== -Assets +assets ====== -The **Assets** folder contains public resources. If you are familiar with the +The **assets** folder contains public resources. If you are familiar with the directory structure of extensions, this would be the **Resources/Public** folder. This is the place where you can put your CSS, JavaScript or image files inside. In order to include these in your template, you must use custom @@ -22,7 +22,7 @@ line to the host extension's :file:`.gitignore` file: .. code-block:: /Resources/Public/ContentBlocks -Icon.svg +icon.svg ======== This is the icon for the Content Type. There is a fallback to a default icon, @@ -30,14 +30,14 @@ but it is **recommended** to replace it with your own, custom icon. You can find many official TYPO3 icons `here `__. Allowed file extensions are **svg**, **png** and **gif** (in preferred order). -IconHideInMenu.svg +icon-hide-in-menu.svg ================== This is a special icon for Page Types for the "hide in menu" state. The same -logic applies as for the standard Icon.svg. +logic applies as for the standard icon.svg. IconRoot.svg ============ This is a special icon for Page Types for the "is_siteroot" state. The same -logic applies as for the standard Icon.svg. +logic applies as for the standard icon.svg. diff --git a/Documentation/Definition/EditorInterface/Index.rst b/Documentation/Definition/EditorInterface/Index.rst index 7bc9f72c..89d8e8e9 100644 --- a/Documentation/Definition/EditorInterface/Index.rst +++ b/Documentation/Definition/EditorInterface/Index.rst @@ -1,11 +1,11 @@ .. include:: /Includes.rst.txt .. _cb_definition_editor_interface: -==================== -EditorInterface.yaml -==================== +=========== +config.yaml +=========== -The heart of a Content Block is the **EditorInterface.yaml** file. This YAML +The heart of a Content Block is the **config.yaml** file. This YAML file defines both the available fields and the structure: .. code-block:: yaml diff --git a/Documentation/Definition/Index.rst b/Documentation/Definition/Index.rst index 99362923..228a9b9e 100644 --- a/Documentation/Definition/Index.rst +++ b/Documentation/Definition/Index.rst @@ -6,23 +6,22 @@ Definition ========== The minimal viable definition consists of a folder with a YAML file named -**EditorInterface.yaml** inside. All other resources are split into two folders -named **Assets** and **Source**. These include public resources, translations -and templates. +**config.yaml** inside. All other resources are split into three folders +named **assets**, **templates** and **language**. .. code-block:: none :caption: Directory structure of a Content Block - ├── Assets - │ └── Icon.svg - ├── Source - │ ├── Language - │ │ └── Labels.xlf - │ ├── Partials - │ │ └── Component.html - │ ├── EditorPreview.html - │ └── Frontend.html - └── EditorInterface.yaml + ├── assets + │ └── icon.svg + ├── language + │ └── labels.xlf + ├── templates + | ├── partials + | | └── component.html + │ ├── preview.html + │ └── frontend.html + └── config.yaml .. toctree:: :titlesonly: diff --git a/Documentation/Definition/Language/Index.rst b/Documentation/Definition/Language/Index.rst index a7eb9e41..7ac0dfbe 100644 --- a/Documentation/Definition/Language/Index.rst +++ b/Documentation/Definition/Language/Index.rst @@ -2,20 +2,20 @@ .. _cb_definition_language: ======== -Language +language ======== This is the folder for your translations. In fact, if you only have one language, there is no actual need to maintain translations here. However, it is best practice to separate labels and configuration. -Labels.xlf +labels.xlf ========== This XLF file is the **english** basis for your translations. All translations for backend labels as well as for frontend labels are defined here. Translations to other languages are defined in separate files prefixed with the language code -e.g. **de.Labels.xlf**. +e.g. **de.labels.xlf**. * Learn more about the :ref:`XLIFF Format in TYPO3 ` @@ -43,29 +43,29 @@ Have a look at the example beneath for better understanding. You don't have to remember all these rules. The command :ref:`content-blocks:language:generate ` creates - the Labels.xlf file with all available keys for you. + the labels.xlf file with all available keys for you. .. note:: - Labels defined in Labels.xlf will always override :yaml:`label` defined in - EditorInterface.yaml. + Labels defined in labels.xlf will always override :yaml:`label` defined in + config.yaml. Workflow -------- The recommended workflow is defining the :yaml:`label` in the -EditorInterface.yaml first. When you are done, you run the command to -auto-generate the Labels.xlf file. After that you can remove the labels from +config.yaml first. When you are done, you run the command to +auto-generate the labels.xlf file. After that you can remove the labels from the yaml definition. You can also skip the first step and generate the xlf without defining labels first. This will add the :yaml:`identifier` as label and you can adjust it afterwards. Either way, it is recommended to maintain a -Labels.xlf file so you don't mix labels with configuration. +labels.xlf file so you don't mix labels with configuration. .. code-block:: xml - +
diff --git a/Documentation/Definition/Source/Index.rst b/Documentation/Definition/Source/Index.rst index 56153c78..e4bdba65 100644 --- a/Documentation/Definition/Source/Index.rst +++ b/Documentation/Definition/Source/Index.rst @@ -1,19 +1,19 @@ .. include:: /Includes.rst.txt .. _cb_definition_source: -====== -Source -====== +========= +templates +========= -The **Source** folder contains private resources. If you are familiar with the +The **templates** folder contains private resources. If you are familiar with the directory structure of extensions, this would be the **Resources/Private** folder. There is a limited set of directories and files, which you can place here. -EditorPreview.html -================== +preview.html +============ -The **EditorPreview.html** can be added to customize the backend preview for +The **preview.html** can be added to customize the backend preview for your editors. By default, TYPO3 comes with a standard preview renderer. However, it is specialized in rendering the preview of Core Content Elements. This means only Core fields like :sql:`header`, :sql:`subheader` or :sql:`bodytext` are @@ -50,7 +50,7 @@ See also: * Learn more about :ref:`templating `. * Learn how to include :ref:`shared partials ` -Frontend.html +frontend.html ============= This is the default frontend rendering definition for :ref:`Content Elements `. @@ -61,14 +61,14 @@ Learn more about :ref:`templating `. Partials ======== -For larger Content Elements, you can divide your **Frontend.html** template into +For larger Content Elements, you can divide your **frontend.html** template into smaller chunks by creating separate partials here. Partials are included as you normally would in any Fluid template. .. code-block:: html - + See also: diff --git a/Documentation/Guides/ExtendContentBlockTypoScript/Index.rst b/Documentation/Guides/ExtendContentBlockTypoScript/Index.rst index eabbe354..3fda0a2c 100644 --- a/Documentation/Guides/ExtendContentBlockTypoScript/Index.rst +++ b/Documentation/Guides/ExtendContentBlockTypoScript/Index.rst @@ -35,7 +35,7 @@ known as "TypoScript Object Browser", the Content Elements created by Content Blocks can be found as usual in the section `tt_content`. The name corresponds to the :confval:`typeName ` -defined in EditorInterface.yaml. +defined in config.yaml. Example: @@ -43,15 +43,12 @@ Example: tt_content { myvendor_mycontentblockname { + file = EXT:site_package/ContentBlocks/ContentElements/content-element-name/templates/frontend.html layoutRootPaths { - 20 = EXT:site_package/ContentBlocks/ContentElements/content-element-name/Source/Layouts/ + 20 = EXT:site_package/ContentBlocks/ContentElements/content-element-name/templates/Layouts/ } partialRootPaths { - 20 = EXT:site_package/ContentBlocks/ContentElements/content-element-name/Source/Partials/ - } - templateName = Frontend - templateRootPaths { - 20 = EXT:site_package/ContentBlocks/ContentElements/content-element-name/Source/ + 20 = EXT:site_package/ContentBlocks/ContentElements/content-element-name/templates/Partials/ } } } diff --git a/Documentation/Guides/FluidStyledContent/Index.rst b/Documentation/Guides/FluidStyledContent/Index.rst index ccdfbfc3..75d2eb0d 100644 --- a/Documentation/Guides/FluidStyledContent/Index.rst +++ b/Documentation/Guides/FluidStyledContent/Index.rst @@ -51,10 +51,10 @@ templates. partials. In order to use the standard FSC fields, you should include them as Basics in -your EditorInterface.yaml file. These are already shipped by Content Blocks. +your config.yaml file. These are already shipped by Content Blocks. .. code-block:: yaml - :caption: EXT:your_extension/ContentBlocks/ContentElements/fsc-test/EditorInterface.yaml + :caption: EXT:your_extension/ContentBlocks/ContentElements/fsc-test/config.yaml name: vendor/fsc-test title: FSC Element @@ -65,10 +65,10 @@ your EditorInterface.yaml file. These are already shipped by Content Blocks. type: Basic Now the setup is complete and all what's left to do is to use the newly -available layout in your Frontend.html templates. +available layout in your frontend.html templates. .. code-block:: html - :caption: EXT:your_extension/ContentBlocks/ContentElements/fsc-test/Source/Frontend.html + :caption: EXT:your_extension/ContentBlocks/ContentElements/fsc-test/templates/frontend.html diff --git a/Documentation/Guides/NestedContentElements/Index.rst b/Documentation/Guides/NestedContentElements/Index.rst index 9b38aac3..cd8d0293 100644 --- a/Documentation/Guides/NestedContentElements/Index.rst +++ b/Documentation/Guides/NestedContentElements/Index.rst @@ -24,7 +24,7 @@ In order to have nested Content Elements, we need to make use of the field type relation to another table. In our case :sql:`tt_content`. .. code-block:: yaml - :caption: EXT:my_extension/ContentBlocks/ContentElements/tabs/EditorInterface.yaml + :caption: EXT:my_extension/ContentBlocks/ContentElements/tabs/config.yaml name: example/tabs fields: @@ -55,7 +55,7 @@ contains all relations which might have a frontend rendering definition defined in TypoScript. Normally, these are only Content Elements. .. code-block:: html - :caption: EXT:my_extension/ContentBlocks/ContentElements/tabs/Source/Frontend.html + :caption: EXT:my_extension/ContentBlocks/ContentElements/tabs/templates/frontend.html @@ -81,7 +81,7 @@ used as a child. This method is a lot more flexible, but requires a little bit more work. .. code-block:: html - :caption: EXT:my_extension/ContentBlocks/ContentElements/tabs/Source/Frontend.html + :caption: EXT:my_extension/ContentBlocks/ContentElements/tabs/templates/frontend.html
@@ -103,7 +103,7 @@ the backend. For this Content Blocks provides ready to use Fluid partials which are able to render backend previews the same way the Core page layout does it. .. code-block:: html - :caption: EXT:my_extension/ContentBlocks/ContentElements/tabs/Source/EditorPreview.html + :caption: EXT:my_extension/ContentBlocks/ContentElements/tabs/templates/preview.html diff --git a/Documentation/Guides/PageTypes/Index.rst b/Documentation/Guides/PageTypes/Index.rst index c1d3c492..b7d0e389 100644 --- a/Documentation/Guides/PageTypes/Index.rst +++ b/Documentation/Guides/PageTypes/Index.rst @@ -84,7 +84,7 @@ extension. Backend preview =============== -Just like for Content Elements, you can define an **EditorPreview.html** file +Just like for Content Elements, you can define an **preview.html** file to create a preview of your Page Type. This can be used to preview custom properties and to link directly to them. To make them prettier it is advised to utilise CSS bootstrap classes like `card`. @@ -105,8 +105,8 @@ Icons for states Page Types can have special states like disabled or hidden in menu. Depending on this state, the icon changes or is overlayed with another icon. As for now, the "hide in menu" and "is site root" states can be supplied via a custom icons. -Put an icon with the name **IconHideInMenu.svg** and one with **IconRoot.svg** -inside your Assets folder to use them. +Put an icon with the name **icon-hide-in-menu.svg** and one with **IconRoot.svg** +inside your assets folder to use them. Processing of page data ======================= diff --git a/Documentation/Guides/RecordTypes/Index.rst b/Documentation/Guides/RecordTypes/Index.rst index 6db7ba53..301e65af 100644 --- a/Documentation/Guides/RecordTypes/Index.rst +++ b/Documentation/Guides/RecordTypes/Index.rst @@ -10,7 +10,7 @@ not a Content Element or Page Type. Adding custom records requires you to define a :yaml:`table` name. A minimal example looks like this: .. code-block:: yaml - :caption: EXT:your_extension/ContentBlocks/RecordTypes/my-record-type/EditorInterface.yaml + :caption: EXT:your_extension/ContentBlocks/RecordTypes/my-record-type/config.yaml name: example/my-record-type table: tx_vendor_my_record_type @@ -35,7 +35,7 @@ It is also possible to allow creation of Record Types in normal pages. For that you have to enable :yaml:`ignorePageTypeRestriction`: .. code-block:: yaml - :caption: EXT:your_extension/ContentBlocks/RecordTypes/my-record-type/EditorInterface.yaml + :caption: EXT:your_extension/ContentBlocks/RecordTypes/my-record-type/config.yaml name: example/my-record-type table: my_record_type @@ -58,7 +58,7 @@ interface as a select dropdown. The different types will be also added automatically to the list: .. code-block:: yaml - :caption: EXT:your_extension/ContentBlocks/RecordTypes/diver/EditorInterface.yaml + :caption: EXT:your_extension/ContentBlocks/RecordTypes/diver/config.yaml name: example/diver table: person @@ -69,7 +69,7 @@ automatically to the list: type: Text .. code-block:: yaml - :caption: EXT:your_extension/ContentBlocks/RecordTypes/instructor/EditorInterface.yaml + :caption: EXT:your_extension/ContentBlocks/RecordTypes/instructor/config.yaml name: example/instructor table: person @@ -94,7 +94,7 @@ as the "default" type. This is done simply by giving it the highest configuration for all other types. .. code-block:: yaml - :caption: EXT:your_extension/ContentBlocks/RecordTypes/default/EditorInterface.yaml + :caption: EXT:your_extension/ContentBlocks/RecordTypes/default/config.yaml name: example/default table: my_record @@ -109,7 +109,7 @@ configuration for all other types. type: Text .. code-block:: yaml - :caption: EXT:your_extension/ContentBlocks/RecordTypes/special/EditorInterface.yaml + :caption: EXT:your_extension/ContentBlocks/RecordTypes/special/config.yaml name: example/special table: my_record @@ -162,7 +162,7 @@ In addition, you can set a fixed :yaml:`typeName` if you wish. In this example we extend the News records with a custom type: .. code-block:: yaml - :caption: EXT:your_extension/ContentBlocks/RecordTypes/my-news-record/EditorInterface.yaml + :caption: EXT:your_extension/ContentBlocks/RecordTypes/my-news-record/config.yaml name: example/my-news-record table: tx_news_domain_model_news diff --git a/Documentation/Guides/SharedPartials/Index.rst b/Documentation/Guides/SharedPartials/Index.rst index 4ae69401..d1dacff2 100644 --- a/Documentation/Guides/SharedPartials/Index.rst +++ b/Documentation/Guides/SharedPartials/Index.rst @@ -40,8 +40,8 @@ For a specific Content Block .. _editor_preview_partials: -For all EditorPreview.html templates -==================================== +For all preview.html templates +============================== Sometimes it is needed to include partials from another source to be used in the preview. For this some Page TsConfig is needed. This can be included in the diff --git a/Documentation/Introduction/Index.rst b/Documentation/Introduction/Index.rst index a985ae85..52af6a04 100644 --- a/Documentation/Introduction/Index.rst +++ b/Documentation/Introduction/Index.rst @@ -37,26 +37,26 @@ easily copy-pasted into other projects. .. code-block:: none :caption: Directory structure of a Content Block - ├── Assets - │ └── Icon.svg - ├── Source - │ ├── Language - │ │ └── Labels.xlf - │ ├── EditorPreview.html - │ └── Frontend.html - └── EditorInterface.yaml + ├── assets + │ └── icon.svg + ├── language + │ └── labels.xlf + ├── templates + │ ├── preview.html + │ └── frontend.html + └── config.yaml * Learn more about the :ref:`Content Block definition ` -EditorInterface.yaml -==================== +config.yaml +=========== This file is the **basis** for the definition. It defines **exactly** one Content Type. Using YAML over PHP includes a wider range of people, which is able to modify Content Blocks without the need of a developer. .. code-block:: yaml - :caption: EXT:some_extension/ContentBlocks/ContentElements/content-block-name/EditorInterface.yaml + :caption: EXT:some_extension/ContentBlocks/ContentElements/content-block-name/config.yaml name: vendor/content-block-name fields: diff --git a/Documentation/Migrations/Mask/Index.rst b/Documentation/Migrations/Mask/Index.rst index 3aec4e91..3ed5a9ca 100644 --- a/Documentation/Migrations/Mask/Index.rst +++ b/Documentation/Migrations/Mask/Index.rst @@ -46,7 +46,7 @@ vendor and name, which you don't want in this case. We disable prefixing, so we can adopt the existing Mask fields. .. code-block:: yaml - :caption: EXT:site_package/ContentBlocks/ContentElements/slider/EditorInterface.yaml + :caption: EXT:site_package/ContentBlocks/ContentElements/slider/config.yaml name: tx-mask/slider typeName: mask_slider @@ -62,7 +62,7 @@ All other fields can be re-defined in Content Blocks as usual. Don't forget to prefix **all** fields with `tx_mask`, even inside Collections. .. code-block:: yaml - :caption: EXT:site_package/ContentBlocks/ContentElements/slider/EditorInterface.yaml + :caption: EXT:site_package/ContentBlocks/ContentElements/slider/config.yaml name: tx-mask/slider typeName: mask_slider @@ -83,29 +83,29 @@ to prefix **all** fields with `tx_mask`, even inside Collections. Templates --------- -This is the easy part. Simply copy the Mask template into **Frontend.html** and +This is the easy part. Simply copy the Mask template into **frontend.html** and you are done. That said, if you didn't use any partials or layouts. If so, move -these to the according **Source/Partials** and **Source/Layouts** folder in your +these to the according **templates/partials** and **templates/Layouts** folder in your Content Block. Icon ---- In case you've used a custom SVG icon for the Mask Element, you can rename it -to **Icon.svg** and move it to the **Assets** folder. For FontAwesome icons you +to **icon.svg** and move it to the **assets** folder. For FontAwesome icons you can download the SVG version from the official website. Labels ------ Mask doesn't have a translation feature. Labels can be copied from the backend -module view, and pasted directly into the **Labels.xlf** file. +module view, and pasted directly into the **labels.xlf** file. .. tip:: Use the :ref:`command ` :bash:`content-blocks:language:generate vendor/name` to automatically - generate the **Labels.xlf** file with automatic keys prefilled. + generate the **labels.xlf** file with automatic keys prefilled. Finish ------ @@ -151,7 +151,7 @@ You do the migration as described with Collections above. In addition, you have to add some more config. .. code-block:: yaml - :caption: EXT:site_package/ContentBlocks/ContentElements/nested-content/EditorInterface.yaml + :caption: EXT:site_package/ContentBlocks/ContentElements/nested-content/config.yaml name: tx-mask/nested-content typeName: mask_nested_content @@ -169,7 +169,7 @@ The limitation is, that you can't add constraints to the available CTypes in the child field. However, you can set a default value. .. code-block:: yaml - :caption: EXT:site_package/ContentBlocks/ContentElements/nested-content/EditorInterface.yaml + :caption: EXT:site_package/ContentBlocks/ContentElements/nested-content/config.yaml name: tx-mask/nested-content typeName: mask_nested_content diff --git a/Documentation/Registration/Index.rst b/Documentation/Registration/Index.rst index e410a8a3..61425fc5 100644 --- a/Documentation/Registration/Index.rst +++ b/Documentation/Registration/Index.rst @@ -30,7 +30,7 @@ folder. These are named **ContentElements**, **PageTypes** and **RecordTypes**. └── composer.json The system loads them automatically as soon as it finds any folder inside these -directories, which has a file with the name **EditorInterface.yaml** inside. +directories, which has a file with the name **config.yaml** inside. Refer to the :ref:`YAML reference `, on how to define this file. .. tip:: diff --git a/Documentation/Templating/Index.rst b/Documentation/Templating/Index.rst index 04de5527..62b553d5 100644 --- a/Documentation/Templating/Index.rst +++ b/Documentation/Templating/Index.rst @@ -12,7 +12,7 @@ additional features like own variables and ViewHelpers with it. Accessing variables =================== -Inside your `Frontend.html` or `EditorPreview.html` file you can access the +Inside your `frontend.html` or `preview.html` file you can access the properties of your Content Element as usual by the :html:`{data}` variable. This variable, however, is special. It has real superpowers! @@ -112,8 +112,8 @@ experience for the editors. With this feature, there is the possibility to provide nearly the same layout in the frontend and the backend, so the editors easily find the element they want to edit. -The frontend template is located in **Source/Frontend.html** and the backend -template in **Source/EditorPreview.html**. +The frontend template is located in **templates/frontend.html** and the backend +template in **templates/preview.html**. .. _asset_view_helpers: @@ -125,11 +125,11 @@ the current Content Block in the template. .. code-block:: html - - + + - - + + The information of the current Content Block is stored in :html:`{data}`. This means if you use an asset ViewHelper in a partial, you have to provide @@ -139,13 +139,13 @@ means if you use an asset ViewHelper in a partial, you have to provide .. code-block:: html - + Translation ViewHelper ====================== Content Blocks provides a LanguagePathViewHelper to retrieve the LLL-path for -the Labels.xlf file of the current Content Block. +the labels.xlf file of the current Content Block. .. code-block:: html @@ -164,7 +164,7 @@ Partials Partials are a very useful feature of Fluid. You can use them to split up your templates into smaller parts. If you want to use a partial in a Content Block, -you can create a subdirectory **Partials** in the **Source** directory and place +you can create a subdirectory **partials** in the **templates** directory and place your partials there. This part is automatically added, but you can also @@ -176,7 +176,7 @@ want to make use of automatic detection of the current Content Block. .. code-block:: html - + See also: @@ -186,7 +186,7 @@ Layouts ======= Analogous to partials, you can also use layouts. You can create a subdirectory -`Layouts` in the `Source` directory and place your layouts there. The +`layouts` in the `templates` directory and place your layouts there. The configuration is added automatically, but you can also extend or overwrite the TypoScript configuration in your sitepackage. Afterwards you can use your layouts as usual in Fluid. diff --git a/Documentation/YamlReference/Basics/Index.rst b/Documentation/YamlReference/Basics/Index.rst index 7b6bc3aa..7e88f506 100644 --- a/Documentation/YamlReference/Basics/Index.rst +++ b/Documentation/YamlReference/Basics/Index.rst @@ -6,7 +6,7 @@ Basics (Mixins) =============== **Basics**, also known as partials or mixins, are used to have a pre-defined set -of fields that can be used to better organize your EditorInterface.yaml file and +of fields that can be used to better organize your config.yaml file and to reduce redundancy by sharing them between multiple Content Blocks. .. note:: @@ -39,7 +39,7 @@ This is an example on how to add the classic Fluid Styled Content **Appearance** Tab and the additional **Links** palette. .. code-block:: yaml - :caption: EXT:your_extension/ContentBlocks/ContentElements/basics/EditorInterface.yaml + :caption: EXT:your_extension/ContentBlocks/ContentElements/basics/config.yaml name: example/basics basics: @@ -58,7 +58,7 @@ be done by using the according Basic :yaml:`identifier` and the type :yaml:`Basic`. .. code-block:: yaml - :caption: EXT:your_extension/ContentBlocks/ContentElements/basics/EditorInterface.yaml + :caption: EXT:your_extension/ContentBlocks/ContentElements/basics/config.yaml name: example/basics fields: @@ -102,7 +102,7 @@ Example on how to create a single Basic: type: Text label: LLL:EXT:sitepackage/Resources/Private/Language/locallang.xlf:a_basic_field -The :yaml:`fields` part is exactly the same as in the EditorInterface.yaml. Here +The :yaml:`fields` part is exactly the same as in the config.yaml. Here you can define a Tab, a Palette or simply a set of fields. The most practical way to use Basics is to use pre-defined tabs as the global diff --git a/Documentation/YamlReference/ContentTypes/ContentElements/Index.rst b/Documentation/YamlReference/ContentTypes/ContentElements/Index.rst index f1093c2c..4e67d5ff 100644 --- a/Documentation/YamlReference/ContentTypes/ContentElements/Index.rst +++ b/Documentation/YamlReference/ContentTypes/ContentElements/Index.rst @@ -16,7 +16,7 @@ do need to know the name, you can inspect it e.g. in the Page TsConfig module. A minimal Content Element looks like this: .. code-block:: yaml - :caption: EXT:your_extension/ContentBlocks/ContentElements/cta/EditorInterface.yaml + :caption: EXT:your_extension/ContentBlocks/ContentElements/cta/config.yaml name: example/cta fields: @@ -27,7 +27,7 @@ In case you need the well-known `Appearance` tab back, you can add pre-defined Basics to your definition: .. code-block:: yaml - :caption: EXT:your_extension/ContentBlocks/ContentElements/cta/EditorInterface.yaml + :caption: EXT:your_extension/ContentBlocks/ContentElements/cta/config.yaml name: example/cta basics: @@ -50,7 +50,7 @@ Here you can find all :ref:`common root options `. :Required: false :Type: string - This is the description of the Content Element. If you have a Labels.xlf + This is the description of the Content Element. If you have a labels.xlf file, you should define it there with the key :xml:`description`. If both are defined, the translation file has precedence. diff --git a/Documentation/YamlReference/ContentTypes/PageTypes/Index.rst b/Documentation/YamlReference/ContentTypes/PageTypes/Index.rst index c52e1310..69e94eff 100644 --- a/Documentation/YamlReference/ContentTypes/PageTypes/Index.rst +++ b/Documentation/YamlReference/ContentTypes/PageTypes/Index.rst @@ -12,7 +12,7 @@ already defined in the TYPO3 Core. Content Blocks only adds new types to it. A minimal Page Type looks like this: .. code-block:: yaml - :caption: EXT:your_extension/ContentBlocks/PageTypes/blog/EditorInterface.yaml + :caption: EXT:your_extension/ContentBlocks/PageTypes/blog/config.yaml name: example/blog typeName: 1701284006 diff --git a/Documentation/YamlReference/ContentTypes/RecordTypes/Index.rst b/Documentation/YamlReference/ContentTypes/RecordTypes/Index.rst index c857b485..847080df 100644 --- a/Documentation/YamlReference/ContentTypes/RecordTypes/Index.rst +++ b/Documentation/YamlReference/ContentTypes/RecordTypes/Index.rst @@ -12,7 +12,7 @@ not a Content Element or Page Type. Adding custom records requires you to define a :yaml:`table` name. A minimal example looks like this: .. code-block:: yaml - :caption: EXT:your_extension/ContentBlocks/RecordTypes/my-record-type/EditorInterface.yaml + :caption: EXT:your_extension/ContentBlocks/RecordTypes/my-record-type/config.yaml name: example/my-record-type table: tx_vendor_my_record_type diff --git a/Documentation/YamlReference/FieldTypes/Basic/Index.rst b/Documentation/YamlReference/FieldTypes/Basic/Index.rst index 38960b32..84e244b8 100644 --- a/Documentation/YamlReference/FieldTypes/Basic/Index.rst +++ b/Documentation/YamlReference/FieldTypes/Basic/Index.rst @@ -11,7 +11,7 @@ the main article about Basics :ref:`here `. Example: .. code-block:: yaml - :caption: EXT:your_extension/ContentBlocks/ContentElements/basics/EditorInterface.yaml + :caption: EXT:your_extension/ContentBlocks/ContentElements/basics/config.yaml name: example/basics basics: diff --git a/Documentation/YamlReference/FieldTypes/Collection/Index.rst b/Documentation/YamlReference/FieldTypes/Collection/Index.rst index aaa2a768..55becfc7 100644 --- a/Documentation/YamlReference/FieldTypes/Collection/Index.rst +++ b/Documentation/YamlReference/FieldTypes/Collection/Index.rst @@ -24,7 +24,7 @@ Custom icon =========== In order to define a custom icon for your Collection field, you may place an -image file inside **Assets** folder called **{identifier}.svg**. So for example +image file inside **assets** folder called **{identifier}.svg**. So for example if your identifier for the Collection is :yaml:`my_collection`, then your image should be named **my_collection.svg**. Alternatively, you can also provide png or gif files. These should be 64x64px. diff --git a/Documentation/YamlReference/FieldTypes/Index.rst b/Documentation/YamlReference/FieldTypes/Index.rst index a87685d0..085e7232 100644 --- a/Documentation/YamlReference/FieldTypes/Index.rst +++ b/Documentation/YamlReference/FieldTypes/Index.rst @@ -86,7 +86,7 @@ Field options, which can be defined inside the :yaml:`fields` array. :Required: false :Type: string - By default labels should be defined inside the :file:`Labels.xlf` file. But in + By default labels should be defined inside the :file:`labels.xlf` file. But in case there is only one language for the backend you may define labels directly in the YAML configuration. Translation files have precedence over this. diff --git a/Documentation/YamlReference/FieldTypes/Select/Index.rst b/Documentation/YamlReference/FieldTypes/Select/Index.rst index 4ab74d84..68c9ecf8 100644 --- a/Documentation/YamlReference/FieldTypes/Select/Index.rst +++ b/Documentation/YamlReference/FieldTypes/Select/Index.rst @@ -48,7 +48,7 @@ Settings .. tip:: You can omit the label, if you have the translation already in your - Labels.xlf file. + labels.xlf file. .. code-block:: yaml diff --git a/Documentation/YamlReference/Index.rst b/Documentation/YamlReference/Index.rst index 9fed4381..e223f8d8 100644 --- a/Documentation/YamlReference/Index.rst +++ b/Documentation/YamlReference/Index.rst @@ -5,7 +5,7 @@ YAML reference ============== -The heart of a Content Block is the `EditorInterface.yaml` file. Here you can +The heart of a Content Block is the `config.yaml` file. Here you can find all possible configuration options. There are slight differences, whether you are dealing with :ref:`Content Elements `, :ref:`Page Types ` or diff --git a/Documentation/YamlReference/Root/Index.rst b/Documentation/YamlReference/Root/Index.rst index a5e40814..3de90d07 100644 --- a/Documentation/YamlReference/Root/Index.rst +++ b/Documentation/YamlReference/Root/Index.rst @@ -28,7 +28,7 @@ Common root options :Required: false :Type: string - This is the title of the Content Block. If you have a Labels.xlf file, you + This is the title of the Content Block. If you have a labels.xlf file, you should define it there with the key :xml:`title`. If both are defined, the translation file has precedence. If nothing is defined, the title falls back to :yaml:`name`. diff --git a/Tests/Fixtures/Extensions/test_content_blocks_a/ContentBlocks/ContentElements/content-element-a/Assets/EditorPreview.css b/Tests/Fixtures/Extensions/test_content_blocks_a/ContentBlocks/ContentElements/content-element-a/assets/EditorPreview.css similarity index 100% rename from Tests/Fixtures/Extensions/test_content_blocks_a/ContentBlocks/ContentElements/content-element-a/Assets/EditorPreview.css rename to Tests/Fixtures/Extensions/test_content_blocks_a/ContentBlocks/ContentElements/content-element-a/assets/EditorPreview.css diff --git a/Tests/Fixtures/Extensions/test_content_blocks_a/ContentBlocks/ContentElements/content-element-a/Assets/Frontend.css b/Tests/Fixtures/Extensions/test_content_blocks_a/ContentBlocks/ContentElements/content-element-a/assets/Frontend.css similarity index 100% rename from Tests/Fixtures/Extensions/test_content_blocks_a/ContentBlocks/ContentElements/content-element-a/Assets/Frontend.css rename to Tests/Fixtures/Extensions/test_content_blocks_a/ContentBlocks/ContentElements/content-element-a/assets/Frontend.css diff --git a/Tests/Fixtures/Extensions/test_content_blocks_a/ContentBlocks/ContentElements/content-element-a/Assets/Frontend.js b/Tests/Fixtures/Extensions/test_content_blocks_a/ContentBlocks/ContentElements/content-element-a/assets/Frontend.js similarity index 100% rename from Tests/Fixtures/Extensions/test_content_blocks_a/ContentBlocks/ContentElements/content-element-a/Assets/Frontend.js rename to Tests/Fixtures/Extensions/test_content_blocks_a/ContentBlocks/ContentElements/content-element-a/assets/Frontend.js diff --git a/Tests/Fixtures/Extensions/test_content_blocks_a/ContentBlocks/ContentElements/content-element-a/Assets/Icon.svg b/Tests/Fixtures/Extensions/test_content_blocks_a/ContentBlocks/ContentElements/content-element-a/assets/icon.svg similarity index 100% rename from Tests/Fixtures/Extensions/test_content_blocks_a/ContentBlocks/ContentElements/content-element-a/Assets/Icon.svg rename to Tests/Fixtures/Extensions/test_content_blocks_a/ContentBlocks/ContentElements/content-element-a/assets/icon.svg diff --git a/Tests/Fixtures/Extensions/test_content_blocks_a/ContentBlocks/ContentElements/content-element-a/EditorInterface.yaml b/Tests/Fixtures/Extensions/test_content_blocks_a/ContentBlocks/ContentElements/content-element-a/config.yaml similarity index 100% rename from Tests/Fixtures/Extensions/test_content_blocks_a/ContentBlocks/ContentElements/content-element-a/EditorInterface.yaml rename to Tests/Fixtures/Extensions/test_content_blocks_a/ContentBlocks/ContentElements/content-element-a/config.yaml diff --git a/Tests/Fixtures/Extensions/test_content_blocks_a/ContentBlocks/ContentElements/content-element-a/Source/Language/Labels.xlf b/Tests/Fixtures/Extensions/test_content_blocks_a/ContentBlocks/ContentElements/content-element-a/language/labels.xlf similarity index 100% rename from Tests/Fixtures/Extensions/test_content_blocks_a/ContentBlocks/ContentElements/content-element-a/Source/Language/Labels.xlf rename to Tests/Fixtures/Extensions/test_content_blocks_a/ContentBlocks/ContentElements/content-element-a/language/labels.xlf diff --git a/Tests/Fixtures/Extensions/test_content_blocks_a/ContentBlocks/ContentElements/content-element-a/Source/Frontend.html b/Tests/Fixtures/Extensions/test_content_blocks_a/ContentBlocks/ContentElements/content-element-a/templates/frontend.html similarity index 100% rename from Tests/Fixtures/Extensions/test_content_blocks_a/ContentBlocks/ContentElements/content-element-a/Source/Frontend.html rename to Tests/Fixtures/Extensions/test_content_blocks_a/ContentBlocks/ContentElements/content-element-a/templates/frontend.html diff --git a/Tests/Fixtures/Extensions/test_content_blocks_a/ContentBlocks/ContentElements/content-element-a/Source/EditorPreview.html b/Tests/Fixtures/Extensions/test_content_blocks_a/ContentBlocks/ContentElements/content-element-a/templates/preview.html similarity index 100% rename from Tests/Fixtures/Extensions/test_content_blocks_a/ContentBlocks/ContentElements/content-element-a/Source/EditorPreview.html rename to Tests/Fixtures/Extensions/test_content_blocks_a/ContentBlocks/ContentElements/content-element-a/templates/preview.html diff --git a/Tests/Fixtures/Extensions/test_content_blocks_b/ContentBlocks/ContentElements/content-element-b/Assets/EditorPreview.css b/Tests/Fixtures/Extensions/test_content_blocks_b/ContentBlocks/ContentElements/content-element-b/assets/EditorPreview.css similarity index 100% rename from Tests/Fixtures/Extensions/test_content_blocks_b/ContentBlocks/ContentElements/content-element-b/Assets/EditorPreview.css rename to Tests/Fixtures/Extensions/test_content_blocks_b/ContentBlocks/ContentElements/content-element-b/assets/EditorPreview.css diff --git a/Tests/Fixtures/Extensions/test_content_blocks_b/ContentBlocks/ContentElements/content-element-b/Assets/Frontend.css b/Tests/Fixtures/Extensions/test_content_blocks_b/ContentBlocks/ContentElements/content-element-b/assets/Frontend.css similarity index 100% rename from Tests/Fixtures/Extensions/test_content_blocks_b/ContentBlocks/ContentElements/content-element-b/Assets/Frontend.css rename to Tests/Fixtures/Extensions/test_content_blocks_b/ContentBlocks/ContentElements/content-element-b/assets/Frontend.css diff --git a/Tests/Fixtures/Extensions/test_content_blocks_b/ContentBlocks/ContentElements/content-element-b/Assets/Frontend.js b/Tests/Fixtures/Extensions/test_content_blocks_b/ContentBlocks/ContentElements/content-element-b/assets/Frontend.js similarity index 100% rename from Tests/Fixtures/Extensions/test_content_blocks_b/ContentBlocks/ContentElements/content-element-b/Assets/Frontend.js rename to Tests/Fixtures/Extensions/test_content_blocks_b/ContentBlocks/ContentElements/content-element-b/assets/Frontend.js diff --git a/Tests/Fixtures/Extensions/test_content_blocks_b/ContentBlocks/ContentElements/content-element-b/Assets/Icon.svg b/Tests/Fixtures/Extensions/test_content_blocks_b/ContentBlocks/ContentElements/content-element-b/assets/icon.svg similarity index 100% rename from Tests/Fixtures/Extensions/test_content_blocks_b/ContentBlocks/ContentElements/content-element-b/Assets/Icon.svg rename to Tests/Fixtures/Extensions/test_content_blocks_b/ContentBlocks/ContentElements/content-element-b/assets/icon.svg diff --git a/Tests/Fixtures/Extensions/test_content_blocks_b/ContentBlocks/ContentElements/content-element-b/EditorInterface.yaml b/Tests/Fixtures/Extensions/test_content_blocks_b/ContentBlocks/ContentElements/content-element-b/config.yaml similarity index 100% rename from Tests/Fixtures/Extensions/test_content_blocks_b/ContentBlocks/ContentElements/content-element-b/EditorInterface.yaml rename to Tests/Fixtures/Extensions/test_content_blocks_b/ContentBlocks/ContentElements/content-element-b/config.yaml diff --git a/Tests/Fixtures/Extensions/test_content_blocks_b/ContentBlocks/ContentElements/content-element-b/Source/Language/Labels.xlf b/Tests/Fixtures/Extensions/test_content_blocks_b/ContentBlocks/ContentElements/content-element-b/language/labels.xlf similarity index 100% rename from Tests/Fixtures/Extensions/test_content_blocks_b/ContentBlocks/ContentElements/content-element-b/Source/Language/Labels.xlf rename to Tests/Fixtures/Extensions/test_content_blocks_b/ContentBlocks/ContentElements/content-element-b/language/labels.xlf diff --git a/Tests/Fixtures/Extensions/test_content_blocks_b/ContentBlocks/ContentElements/content-element-b/Source/Frontend.html b/Tests/Fixtures/Extensions/test_content_blocks_b/ContentBlocks/ContentElements/content-element-b/templates/frontend.html similarity index 100% rename from Tests/Fixtures/Extensions/test_content_blocks_b/ContentBlocks/ContentElements/content-element-b/Source/Frontend.html rename to Tests/Fixtures/Extensions/test_content_blocks_b/ContentBlocks/ContentElements/content-element-b/templates/frontend.html diff --git a/Tests/Fixtures/Extensions/test_content_blocks_b/ContentBlocks/ContentElements/content-element-b/Source/EditorPreview.html b/Tests/Fixtures/Extensions/test_content_blocks_b/ContentBlocks/ContentElements/content-element-b/templates/preview.html similarity index 100% rename from Tests/Fixtures/Extensions/test_content_blocks_b/ContentBlocks/ContentElements/content-element-b/Source/EditorPreview.html rename to Tests/Fixtures/Extensions/test_content_blocks_b/ContentBlocks/ContentElements/content-element-b/templates/preview.html diff --git a/Tests/Fixtures/Extensions/test_content_blocks_b/ContentBlocks/RecordTypes/test-record/EditorInterface.yaml b/Tests/Fixtures/Extensions/test_content_blocks_b/ContentBlocks/RecordTypes/test-record/config.yaml similarity index 100% rename from Tests/Fixtures/Extensions/test_content_blocks_b/ContentBlocks/RecordTypes/test-record/EditorInterface.yaml rename to Tests/Fixtures/Extensions/test_content_blocks_b/ContentBlocks/RecordTypes/test-record/config.yaml diff --git a/Tests/Fixtures/Extensions/test_content_blocks_c/ContentBlocks/ContentElements/simple-relation/Assets/EditorPreview.css b/Tests/Fixtures/Extensions/test_content_blocks_c/ContentBlocks/ContentElements/simple-relation/assets/EditorPreview.css similarity index 100% rename from Tests/Fixtures/Extensions/test_content_blocks_c/ContentBlocks/ContentElements/simple-relation/Assets/EditorPreview.css rename to Tests/Fixtures/Extensions/test_content_blocks_c/ContentBlocks/ContentElements/simple-relation/assets/EditorPreview.css diff --git a/Tests/Fixtures/Extensions/test_content_blocks_c/ContentBlocks/ContentElements/simple-relation/Assets/Frontend.css b/Tests/Fixtures/Extensions/test_content_blocks_c/ContentBlocks/ContentElements/simple-relation/assets/Frontend.css similarity index 100% rename from Tests/Fixtures/Extensions/test_content_blocks_c/ContentBlocks/ContentElements/simple-relation/Assets/Frontend.css rename to Tests/Fixtures/Extensions/test_content_blocks_c/ContentBlocks/ContentElements/simple-relation/assets/Frontend.css diff --git a/Tests/Fixtures/Extensions/test_content_blocks_c/ContentBlocks/ContentElements/simple-relation/Assets/Frontend.js b/Tests/Fixtures/Extensions/test_content_blocks_c/ContentBlocks/ContentElements/simple-relation/assets/Frontend.js similarity index 100% rename from Tests/Fixtures/Extensions/test_content_blocks_c/ContentBlocks/ContentElements/simple-relation/Assets/Frontend.js rename to Tests/Fixtures/Extensions/test_content_blocks_c/ContentBlocks/ContentElements/simple-relation/assets/Frontend.js diff --git a/Tests/Fixtures/Extensions/test_content_blocks_c/ContentBlocks/ContentElements/simple-relation/Assets/Icon.svg b/Tests/Fixtures/Extensions/test_content_blocks_c/ContentBlocks/ContentElements/simple-relation/assets/icon.svg similarity index 100% rename from Tests/Fixtures/Extensions/test_content_blocks_c/ContentBlocks/ContentElements/simple-relation/Assets/Icon.svg rename to Tests/Fixtures/Extensions/test_content_blocks_c/ContentBlocks/ContentElements/simple-relation/assets/icon.svg diff --git a/Tests/Fixtures/Extensions/test_content_blocks_c/ContentBlocks/ContentElements/simple-relation/EditorInterface.yaml b/Tests/Fixtures/Extensions/test_content_blocks_c/ContentBlocks/ContentElements/simple-relation/config.yaml similarity index 100% rename from Tests/Fixtures/Extensions/test_content_blocks_c/ContentBlocks/ContentElements/simple-relation/EditorInterface.yaml rename to Tests/Fixtures/Extensions/test_content_blocks_c/ContentBlocks/ContentElements/simple-relation/config.yaml diff --git a/Tests/Fixtures/Extensions/test_content_blocks_c/ContentBlocks/ContentElements/simple-relation/Source/Language/Labels.xlf b/Tests/Fixtures/Extensions/test_content_blocks_c/ContentBlocks/ContentElements/simple-relation/language/labels.xlf similarity index 100% rename from Tests/Fixtures/Extensions/test_content_blocks_c/ContentBlocks/ContentElements/simple-relation/Source/Language/Labels.xlf rename to Tests/Fixtures/Extensions/test_content_blocks_c/ContentBlocks/ContentElements/simple-relation/language/labels.xlf diff --git a/Tests/Fixtures/Extensions/test_content_blocks_c/ContentBlocks/ContentElements/simple-relation/Source/Frontend.html b/Tests/Fixtures/Extensions/test_content_blocks_c/ContentBlocks/ContentElements/simple-relation/templates/frontend.html similarity index 100% rename from Tests/Fixtures/Extensions/test_content_blocks_c/ContentBlocks/ContentElements/simple-relation/Source/Frontend.html rename to Tests/Fixtures/Extensions/test_content_blocks_c/ContentBlocks/ContentElements/simple-relation/templates/frontend.html diff --git a/Tests/Fixtures/Extensions/test_content_blocks_c/ContentBlocks/ContentElements/simple-vendor/Assets/Icon.svg b/Tests/Fixtures/Extensions/test_content_blocks_c/ContentBlocks/ContentElements/simple-vendor/assets/icon.svg similarity index 100% rename from Tests/Fixtures/Extensions/test_content_blocks_c/ContentBlocks/ContentElements/simple-vendor/Assets/Icon.svg rename to Tests/Fixtures/Extensions/test_content_blocks_c/ContentBlocks/ContentElements/simple-vendor/assets/icon.svg diff --git a/Tests/Fixtures/Extensions/test_content_blocks_c/ContentBlocks/ContentElements/simple-vendor/EditorInterface.yaml b/Tests/Fixtures/Extensions/test_content_blocks_c/ContentBlocks/ContentElements/simple-vendor/config.yaml similarity index 100% rename from Tests/Fixtures/Extensions/test_content_blocks_c/ContentBlocks/ContentElements/simple-vendor/EditorInterface.yaml rename to Tests/Fixtures/Extensions/test_content_blocks_c/ContentBlocks/ContentElements/simple-vendor/config.yaml diff --git a/Tests/Fixtures/Extensions/test_content_blocks_c/ContentBlocks/ContentElements/simple-vendor/Source/Language/Labels.xlf b/Tests/Fixtures/Extensions/test_content_blocks_c/ContentBlocks/ContentElements/simple-vendor/language/labels.xlf similarity index 100% rename from Tests/Fixtures/Extensions/test_content_blocks_c/ContentBlocks/ContentElements/simple-vendor/Source/Language/Labels.xlf rename to Tests/Fixtures/Extensions/test_content_blocks_c/ContentBlocks/ContentElements/simple-vendor/language/labels.xlf diff --git a/Tests/Fixtures/Extensions/test_content_blocks_c/ContentBlocks/ContentElements/simple-vendor/Source/Frontend.html b/Tests/Fixtures/Extensions/test_content_blocks_c/ContentBlocks/ContentElements/simple-vendor/templates/frontend.html similarity index 100% rename from Tests/Fixtures/Extensions/test_content_blocks_c/ContentBlocks/ContentElements/simple-vendor/Source/Frontend.html rename to Tests/Fixtures/Extensions/test_content_blocks_c/ContentBlocks/ContentElements/simple-vendor/templates/frontend.html diff --git a/Tests/Fixtures/Extensions/test_content_blocks_c/ContentBlocks/ContentElements/simple-with-basics/Assets/EditorPreview.css b/Tests/Fixtures/Extensions/test_content_blocks_c/ContentBlocks/ContentElements/simple-with-basics/assets/EditorPreview.css similarity index 100% rename from Tests/Fixtures/Extensions/test_content_blocks_c/ContentBlocks/ContentElements/simple-with-basics/Assets/EditorPreview.css rename to Tests/Fixtures/Extensions/test_content_blocks_c/ContentBlocks/ContentElements/simple-with-basics/assets/EditorPreview.css diff --git a/Tests/Fixtures/Extensions/test_content_blocks_c/ContentBlocks/ContentElements/simple-with-basics/Assets/Frontend.css b/Tests/Fixtures/Extensions/test_content_blocks_c/ContentBlocks/ContentElements/simple-with-basics/assets/Frontend.css similarity index 100% rename from Tests/Fixtures/Extensions/test_content_blocks_c/ContentBlocks/ContentElements/simple-with-basics/Assets/Frontend.css rename to Tests/Fixtures/Extensions/test_content_blocks_c/ContentBlocks/ContentElements/simple-with-basics/assets/Frontend.css diff --git a/Tests/Fixtures/Extensions/test_content_blocks_c/ContentBlocks/ContentElements/simple-with-basics/Assets/Frontend.js b/Tests/Fixtures/Extensions/test_content_blocks_c/ContentBlocks/ContentElements/simple-with-basics/assets/Frontend.js similarity index 100% rename from Tests/Fixtures/Extensions/test_content_blocks_c/ContentBlocks/ContentElements/simple-with-basics/Assets/Frontend.js rename to Tests/Fixtures/Extensions/test_content_blocks_c/ContentBlocks/ContentElements/simple-with-basics/assets/Frontend.js diff --git a/Tests/Fixtures/Extensions/test_content_blocks_c/ContentBlocks/ContentElements/simple-with-basics/Assets/Icon.svg b/Tests/Fixtures/Extensions/test_content_blocks_c/ContentBlocks/ContentElements/simple-with-basics/assets/icon.svg similarity index 100% rename from Tests/Fixtures/Extensions/test_content_blocks_c/ContentBlocks/ContentElements/simple-with-basics/Assets/Icon.svg rename to Tests/Fixtures/Extensions/test_content_blocks_c/ContentBlocks/ContentElements/simple-with-basics/assets/icon.svg diff --git a/Tests/Fixtures/Extensions/test_content_blocks_c/ContentBlocks/ContentElements/simple-with-basics/EditorInterface.yaml b/Tests/Fixtures/Extensions/test_content_blocks_c/ContentBlocks/ContentElements/simple-with-basics/config.yaml similarity index 100% rename from Tests/Fixtures/Extensions/test_content_blocks_c/ContentBlocks/ContentElements/simple-with-basics/EditorInterface.yaml rename to Tests/Fixtures/Extensions/test_content_blocks_c/ContentBlocks/ContentElements/simple-with-basics/config.yaml diff --git a/Tests/Fixtures/Extensions/test_content_blocks_c/ContentBlocks/ContentElements/simple-with-basics/Source/Language/Labels.xlf b/Tests/Fixtures/Extensions/test_content_blocks_c/ContentBlocks/ContentElements/simple-with-basics/language/labels.xlf similarity index 100% rename from Tests/Fixtures/Extensions/test_content_blocks_c/ContentBlocks/ContentElements/simple-with-basics/Source/Language/Labels.xlf rename to Tests/Fixtures/Extensions/test_content_blocks_c/ContentBlocks/ContentElements/simple-with-basics/language/labels.xlf diff --git a/Tests/Fixtures/Extensions/test_content_blocks_c/ContentBlocks/ContentElements/simple-with-basics/Source/Frontend.html b/Tests/Fixtures/Extensions/test_content_blocks_c/ContentBlocks/ContentElements/simple-with-basics/templates/frontend.html similarity index 100% rename from Tests/Fixtures/Extensions/test_content_blocks_c/ContentBlocks/ContentElements/simple-with-basics/Source/Frontend.html rename to Tests/Fixtures/Extensions/test_content_blocks_c/ContentBlocks/ContentElements/simple-with-basics/templates/frontend.html diff --git a/Tests/Fixtures/Extensions/test_content_blocks_c/ContentBlocks/ContentElements/simple/Assets/EditorPreview.css b/Tests/Fixtures/Extensions/test_content_blocks_c/ContentBlocks/ContentElements/simple/assets/EditorPreview.css similarity index 100% rename from Tests/Fixtures/Extensions/test_content_blocks_c/ContentBlocks/ContentElements/simple/Assets/EditorPreview.css rename to Tests/Fixtures/Extensions/test_content_blocks_c/ContentBlocks/ContentElements/simple/assets/EditorPreview.css diff --git a/Tests/Fixtures/Extensions/test_content_blocks_c/ContentBlocks/ContentElements/simple/Assets/Frontend.css b/Tests/Fixtures/Extensions/test_content_blocks_c/ContentBlocks/ContentElements/simple/assets/Frontend.css similarity index 100% rename from Tests/Fixtures/Extensions/test_content_blocks_c/ContentBlocks/ContentElements/simple/Assets/Frontend.css rename to Tests/Fixtures/Extensions/test_content_blocks_c/ContentBlocks/ContentElements/simple/assets/Frontend.css diff --git a/Tests/Fixtures/Extensions/test_content_blocks_c/ContentBlocks/ContentElements/simple/Assets/Frontend.js b/Tests/Fixtures/Extensions/test_content_blocks_c/ContentBlocks/ContentElements/simple/assets/Frontend.js similarity index 100% rename from Tests/Fixtures/Extensions/test_content_blocks_c/ContentBlocks/ContentElements/simple/Assets/Frontend.js rename to Tests/Fixtures/Extensions/test_content_blocks_c/ContentBlocks/ContentElements/simple/assets/Frontend.js diff --git a/Tests/Fixtures/Extensions/test_content_blocks_c/ContentBlocks/ContentElements/simple/Assets/Icon.svg b/Tests/Fixtures/Extensions/test_content_blocks_c/ContentBlocks/ContentElements/simple/assets/icon.svg similarity index 100% rename from Tests/Fixtures/Extensions/test_content_blocks_c/ContentBlocks/ContentElements/simple/Assets/Icon.svg rename to Tests/Fixtures/Extensions/test_content_blocks_c/ContentBlocks/ContentElements/simple/assets/icon.svg diff --git a/Tests/Fixtures/Extensions/test_content_blocks_c/ContentBlocks/ContentElements/simple/EditorInterface.yaml b/Tests/Fixtures/Extensions/test_content_blocks_c/ContentBlocks/ContentElements/simple/config.yaml similarity index 100% rename from Tests/Fixtures/Extensions/test_content_blocks_c/ContentBlocks/ContentElements/simple/EditorInterface.yaml rename to Tests/Fixtures/Extensions/test_content_blocks_c/ContentBlocks/ContentElements/simple/config.yaml diff --git a/Tests/Fixtures/Extensions/test_content_blocks_c/ContentBlocks/ContentElements/simple/Source/Language/Labels.xlf b/Tests/Fixtures/Extensions/test_content_blocks_c/ContentBlocks/ContentElements/simple/language/labels.xlf similarity index 100% rename from Tests/Fixtures/Extensions/test_content_blocks_c/ContentBlocks/ContentElements/simple/Source/Language/Labels.xlf rename to Tests/Fixtures/Extensions/test_content_blocks_c/ContentBlocks/ContentElements/simple/language/labels.xlf diff --git a/Tests/Fixtures/Extensions/test_content_blocks_c/ContentBlocks/ContentElements/simple/Source/Frontend.html b/Tests/Fixtures/Extensions/test_content_blocks_c/ContentBlocks/ContentElements/simple/templates/frontend.html similarity index 86% rename from Tests/Fixtures/Extensions/test_content_blocks_c/ContentBlocks/ContentElements/simple/Source/Frontend.html rename to Tests/Fixtures/Extensions/test_content_blocks_c/ContentBlocks/ContentElements/simple/templates/frontend.html index 9fba2b5d..7dde57f7 100644 --- a/Tests/Fixtures/Extensions/test_content_blocks_c/ContentBlocks/ContentElements/simple/Source/Frontend.html +++ b/Tests/Fixtures/Extensions/test_content_blocks_c/ContentBlocks/ContentElements/simple/templates/frontend.html @@ -18,5 +18,5 @@

{data.header}

creationDate:{data.systemProperties.createdAt.timestamp}

updateDate:{data.systemProperties.lastUpdatedAt.timestamp}

- - + + diff --git a/Tests/Fixtures/Extensions/test_content_blocks_c/ContentBlocks/ContentElements/simple2/Assets/EditorPreview.css b/Tests/Fixtures/Extensions/test_content_blocks_c/ContentBlocks/ContentElements/simple2/assets/EditorPreview.css similarity index 100% rename from Tests/Fixtures/Extensions/test_content_blocks_c/ContentBlocks/ContentElements/simple2/Assets/EditorPreview.css rename to Tests/Fixtures/Extensions/test_content_blocks_c/ContentBlocks/ContentElements/simple2/assets/EditorPreview.css diff --git a/Tests/Fixtures/Extensions/test_content_blocks_c/ContentBlocks/ContentElements/simple2/Assets/Frontend.css b/Tests/Fixtures/Extensions/test_content_blocks_c/ContentBlocks/ContentElements/simple2/assets/Frontend.css similarity index 100% rename from Tests/Fixtures/Extensions/test_content_blocks_c/ContentBlocks/ContentElements/simple2/Assets/Frontend.css rename to Tests/Fixtures/Extensions/test_content_blocks_c/ContentBlocks/ContentElements/simple2/assets/Frontend.css diff --git a/Tests/Fixtures/Extensions/test_content_blocks_c/ContentBlocks/ContentElements/simple2/Assets/Frontend.js b/Tests/Fixtures/Extensions/test_content_blocks_c/ContentBlocks/ContentElements/simple2/assets/Frontend.js similarity index 100% rename from Tests/Fixtures/Extensions/test_content_blocks_c/ContentBlocks/ContentElements/simple2/Assets/Frontend.js rename to Tests/Fixtures/Extensions/test_content_blocks_c/ContentBlocks/ContentElements/simple2/assets/Frontend.js diff --git a/Tests/Fixtures/Extensions/test_content_blocks_c/ContentBlocks/ContentElements/simple2/Assets/Icon.svg b/Tests/Fixtures/Extensions/test_content_blocks_c/ContentBlocks/ContentElements/simple2/assets/icon.svg similarity index 100% rename from Tests/Fixtures/Extensions/test_content_blocks_c/ContentBlocks/ContentElements/simple2/Assets/Icon.svg rename to Tests/Fixtures/Extensions/test_content_blocks_c/ContentBlocks/ContentElements/simple2/assets/icon.svg diff --git a/Tests/Fixtures/Extensions/test_content_blocks_c/ContentBlocks/ContentElements/simple2/EditorInterface.yaml b/Tests/Fixtures/Extensions/test_content_blocks_c/ContentBlocks/ContentElements/simple2/config.yaml similarity index 100% rename from Tests/Fixtures/Extensions/test_content_blocks_c/ContentBlocks/ContentElements/simple2/EditorInterface.yaml rename to Tests/Fixtures/Extensions/test_content_blocks_c/ContentBlocks/ContentElements/simple2/config.yaml diff --git a/Tests/Fixtures/Extensions/test_content_blocks_c/ContentBlocks/ContentElements/simple2/Source/Language/Labels.xlf b/Tests/Fixtures/Extensions/test_content_blocks_c/ContentBlocks/ContentElements/simple2/language/labels.xlf similarity index 100% rename from Tests/Fixtures/Extensions/test_content_blocks_c/ContentBlocks/ContentElements/simple2/Source/Language/Labels.xlf rename to Tests/Fixtures/Extensions/test_content_blocks_c/ContentBlocks/ContentElements/simple2/language/labels.xlf diff --git a/Tests/Fixtures/Extensions/test_content_blocks_c/ContentBlocks/ContentElements/simple2/Source/Frontend.html b/Tests/Fixtures/Extensions/test_content_blocks_c/ContentBlocks/ContentElements/simple2/templates/frontend.html similarity index 100% rename from Tests/Fixtures/Extensions/test_content_blocks_c/ContentBlocks/ContentElements/simple2/Source/Frontend.html rename to Tests/Fixtures/Extensions/test_content_blocks_c/ContentBlocks/ContentElements/simple2/templates/frontend.html diff --git a/Tests/Fixtures/Extensions/test_content_blocks_c/ContentBlocks/RecordTypes/record1/EditorInterface.yaml b/Tests/Fixtures/Extensions/test_content_blocks_c/ContentBlocks/RecordTypes/record1/config.yaml similarity index 100% rename from Tests/Fixtures/Extensions/test_content_blocks_c/ContentBlocks/RecordTypes/record1/EditorInterface.yaml rename to Tests/Fixtures/Extensions/test_content_blocks_c/ContentBlocks/RecordTypes/record1/config.yaml diff --git a/Tests/Fixtures/Extensions/test_content_blocks_c/ContentBlocks/RecordTypes/record1/Source/Language/Labels.xlf b/Tests/Fixtures/Extensions/test_content_blocks_c/ContentBlocks/RecordTypes/record1/language/labels.xlf similarity index 100% rename from Tests/Fixtures/Extensions/test_content_blocks_c/ContentBlocks/RecordTypes/record1/Source/Language/Labels.xlf rename to Tests/Fixtures/Extensions/test_content_blocks_c/ContentBlocks/RecordTypes/record1/language/labels.xlf diff --git a/Tests/Fixtures/Extensions/test_content_blocks_c/ContentBlocks/RecordTypes/record2/EditorInterface.yaml b/Tests/Fixtures/Extensions/test_content_blocks_c/ContentBlocks/RecordTypes/record2/config.yaml similarity index 100% rename from Tests/Fixtures/Extensions/test_content_blocks_c/ContentBlocks/RecordTypes/record2/EditorInterface.yaml rename to Tests/Fixtures/Extensions/test_content_blocks_c/ContentBlocks/RecordTypes/record2/config.yaml diff --git a/Tests/Functional/Frontend/ContentBlockFrontendRenderingTest.php b/Tests/Functional/Frontend/ContentBlockFrontendRenderingTest.php index 0247979b..eb865e86 100644 --- a/Tests/Functional/Frontend/ContentBlockFrontendRenderingTest.php +++ b/Tests/Functional/Frontend/ContentBlockFrontendRenderingTest.php @@ -78,8 +78,8 @@ public function variablesAndAssetsRendered(): void // @todo The path should be absolute. See: https://github.com/TYPO3/testing-framework/issues/577 self::assertStringContainsString(' SvgIconProvider::class, 'options' => [ - 'source' => 'EXT:test_content_blocks_c/Resources/Public/ContentBlocks/simple/simple/Icon.svg', + 'source' => 'EXT:test_content_blocks_c/Resources/Public/ContentBlocks/simple/simple/icon.svg', ], ], ]; @@ -62,7 +62,7 @@ public static function registeredContentBlockIconsHaveCorrectConfigurationDataPr [ 'provider' => SvgIconProvider::class, 'options' => [ - 'source' => 'EXT:test_content_blocks_c/Resources/Public/ContentBlocks/simple/simple2/Icon.svg', + 'source' => 'EXT:test_content_blocks_c/Resources/Public/ContentBlocks/simple/simple2/icon.svg', ], ], ]; @@ -71,7 +71,7 @@ public static function registeredContentBlockIconsHaveCorrectConfigurationDataPr [ 'provider' => SvgIconProvider::class, 'options' => [ - 'source' => 'EXT:test_content_blocks_c/Resources/Public/ContentBlocks/simple/basics/Icon.svg', + 'source' => 'EXT:test_content_blocks_c/Resources/Public/ContentBlocks/simple/basics/icon.svg', ], ], ]; diff --git a/Tests/Functional/Generator/TcaGeneratorTest.php b/Tests/Functional/Generator/TcaGeneratorTest.php index d9634930..562944b9 100644 --- a/Tests/Functional/Generator/TcaGeneratorTest.php +++ b/Tests/Functional/Generator/TcaGeneratorTest.php @@ -37,7 +37,7 @@ public function coreLabelsAreNotOverriddenIfMissingInLanguageFile(): void public function coreLabelsAreOverriddenIfTranslationExistsInLanguageFile(): void { self::assertSame( - 'LLL:EXT:test_content_blocks_c/ContentBlocks/ContentElements/simple2/Source/Language/Labels.xlf:header.label', + 'LLL:EXT:test_content_blocks_c/ContentBlocks/ContentElements/simple2/language/labels.xlf:header.label', $GLOBALS['TCA']['tt_content']['types']['simple_simple2']['columnsOverrides']['header']['label'] ); } @@ -138,11 +138,11 @@ public function typeFieldSelectAddedForRecordType(): void self::assertSame( [ [ - 'label' => 'LLL:EXT:test_content_blocks_c/ContentBlocks/RecordTypes/record1/Source/Language/Labels.xlf:title', + 'label' => 'LLL:EXT:test_content_blocks_c/ContentBlocks/RecordTypes/record1/language/labels.xlf:title', 'value' => 'record1', 'icon' => 'custom_record-record1-cc2849f', 'group' => null, - 'description' => 'LLL:EXT:test_content_blocks_c/ContentBlocks/RecordTypes/record1/Source/Language/Labels.xlf:description', + 'description' => 'LLL:EXT:test_content_blocks_c/ContentBlocks/RecordTypes/record1/language/labels.xlf:description', ], [ 'label' => 'content-blocks/record2', diff --git a/Tests/Functional/ViewHelpers/LanguagePathViewHelperTest.php b/Tests/Functional/ViewHelpers/LanguagePathViewHelperTest.php index f62bc5cb..e1eaccfa 100644 --- a/Tests/Functional/ViewHelpers/LanguagePathViewHelperTest.php +++ b/Tests/Functional/ViewHelpers/LanguagePathViewHelperTest.php @@ -40,11 +40,11 @@ public static function renderReturnsStringDataProvider(): array return [ 'name explicitly set' => [ '', - 'LLL:EXT:test_content_blocks_b/ContentBlocks/ContentElements/content-element-b/Source/Language/Labels.xlf', + 'LLL:EXT:test_content_blocks_b/ContentBlocks/ContentElements/content-element-b/language/labels.xlf', ], 'fallback to name from context' => [ '', - 'LLL:EXT:test_content_blocks_b/ContentBlocks/ContentElements/content-element-b/Source/Language/Labels.xlf', + 'LLL:EXT:test_content_blocks_b/ContentBlocks/ContentElements/content-element-b/language/labels.xlf', ], ]; } diff --git a/Tests/Unit/Generator/TcaGeneratorTest.php b/Tests/Unit/Generator/TcaGeneratorTest.php index 8b9a42fe..623bbc6f 100644 --- a/Tests/Unit/Generator/TcaGeneratorTest.php +++ b/Tests/Unit/Generator/TcaGeneratorTest.php @@ -268,117 +268,117 @@ public static function checkTcaFieldTypesDataProvider(): iterable ], 'types' => [ 't3ce_example' => [ - 'showitem' => 'bodytext,t3ce_example_text,--palette--;;t3ce_example_palette_1,t3ce_example_email,t3ce_example_check,t3ce_example_color,t3ce_example_file,assets,pages,t3ce_example_category,t3ce_example_datetime,--div--;LLL:EXT:foo/ContentBlocks/example/Source/Language/Labels.xlf:tabs.tab_1,t3ce_example_select,t3ce_example_link,t3ce_example_radio,t3ce_example_relation,t3ce_example_password,t3ce_example_uuid,t3ce_example_collection', + 'showitem' => 'bodytext,t3ce_example_text,--palette--;;t3ce_example_palette_1,t3ce_example_email,t3ce_example_check,t3ce_example_color,t3ce_example_file,assets,pages,t3ce_example_category,t3ce_example_datetime,--div--;LLL:EXT:foo/ContentBlocks/example/language/labels.xlf:tabs.tab_1,t3ce_example_select,t3ce_example_link,t3ce_example_radio,t3ce_example_relation,t3ce_example_password,t3ce_example_uuid,t3ce_example_collection', 'previewRenderer' => PreviewRenderer::class, 'creationOptions' => [ 'saveAndClose' => true, ], 'columnsOverrides' => [ 'bodytext' => [ - 'label' => 'LLL:EXT:foo/ContentBlocks/example/Source/Language/Labels.xlf:bodytext.label', - 'description' => 'LLL:EXT:foo/ContentBlocks/example/Source/Language/Labels.xlf:bodytext.description', + 'label' => 'LLL:EXT:foo/ContentBlocks/example/language/labels.xlf:bodytext.label', + 'description' => 'LLL:EXT:foo/ContentBlocks/example/language/labels.xlf:bodytext.description', 'config' => [ 'enableRichtext' => true, ], ], 't3ce_example_text' => [ - 'label' => 'LLL:EXT:foo/ContentBlocks/example/Source/Language/Labels.xlf:text.label', - 'description' => 'LLL:EXT:foo/ContentBlocks/example/Source/Language/Labels.xlf:text.description', + 'label' => 'LLL:EXT:foo/ContentBlocks/example/language/labels.xlf:text.label', + 'description' => 'LLL:EXT:foo/ContentBlocks/example/language/labels.xlf:text.description', 'config' => [ 'default' => 'Default value', 'placeholder' => 'Placeholder text', ], ], 't3ce_example_textarea' => [ - 'label' => 'LLL:EXT:foo/ContentBlocks/example/Source/Language/Labels.xlf:textarea.label', - 'description' => 'LLL:EXT:foo/ContentBlocks/example/Source/Language/Labels.xlf:textarea.description', + 'label' => 'LLL:EXT:foo/ContentBlocks/example/language/labels.xlf:textarea.label', + 'description' => 'LLL:EXT:foo/ContentBlocks/example/language/labels.xlf:textarea.description', ], 't3ce_example_number' => [ - 'label' => 'LLL:EXT:foo/ContentBlocks/example/Source/Language/Labels.xlf:number.label', - 'description' => 'LLL:EXT:foo/ContentBlocks/example/Source/Language/Labels.xlf:number.description', + 'label' => 'LLL:EXT:foo/ContentBlocks/example/language/labels.xlf:number.label', + 'description' => 'LLL:EXT:foo/ContentBlocks/example/language/labels.xlf:number.description', ], 't3ce_example_email' => [ - 'label' => 'LLL:EXT:foo/ContentBlocks/example/Source/Language/Labels.xlf:email.label', - 'description' => 'LLL:EXT:foo/ContentBlocks/example/Source/Language/Labels.xlf:email.description', + 'label' => 'LLL:EXT:foo/ContentBlocks/example/language/labels.xlf:email.label', + 'description' => 'LLL:EXT:foo/ContentBlocks/example/language/labels.xlf:email.description', ], 't3ce_example_check' => [ - 'label' => 'LLL:EXT:foo/ContentBlocks/example/Source/Language/Labels.xlf:check.label', - 'description' => 'LLL:EXT:foo/ContentBlocks/example/Source/Language/Labels.xlf:check.description', + 'label' => 'LLL:EXT:foo/ContentBlocks/example/language/labels.xlf:check.label', + 'description' => 'LLL:EXT:foo/ContentBlocks/example/language/labels.xlf:check.description', 'config' => [ 'items' => [ [ - 'label' => 'LLL:EXT:foo/ContentBlocks/example/Source/Language/Labels.xlf:check.items.0.label', + 'label' => 'LLL:EXT:foo/ContentBlocks/example/language/labels.xlf:check.items.0.label', ], [ - 'label' => 'LLL:EXT:foo/ContentBlocks/example/Source/Language/Labels.xlf:check.items.1.label', + 'label' => 'LLL:EXT:foo/ContentBlocks/example/language/labels.xlf:check.items.1.label', ], ], ], ], 't3ce_example_color' => [ - 'label' => 'LLL:EXT:foo/ContentBlocks/example/Source/Language/Labels.xlf:color.label', - 'description' => 'LLL:EXT:foo/ContentBlocks/example/Source/Language/Labels.xlf:color.description', + 'label' => 'LLL:EXT:foo/ContentBlocks/example/language/labels.xlf:color.label', + 'description' => 'LLL:EXT:foo/ContentBlocks/example/language/labels.xlf:color.description', ], 't3ce_example_file' => [ - 'label' => 'LLL:EXT:foo/ContentBlocks/example/Source/Language/Labels.xlf:file.label', - 'description' => 'LLL:EXT:foo/ContentBlocks/example/Source/Language/Labels.xlf:file.description', + 'label' => 'LLL:EXT:foo/ContentBlocks/example/language/labels.xlf:file.label', + 'description' => 'LLL:EXT:foo/ContentBlocks/example/language/labels.xlf:file.description', ], 't3ce_example_category' => [ - 'label' => 'LLL:EXT:foo/ContentBlocks/example/Source/Language/Labels.xlf:category.label', - 'description' => 'LLL:EXT:foo/ContentBlocks/example/Source/Language/Labels.xlf:category.description', + 'label' => 'LLL:EXT:foo/ContentBlocks/example/language/labels.xlf:category.label', + 'description' => 'LLL:EXT:foo/ContentBlocks/example/language/labels.xlf:category.description', ], 't3ce_example_datetime' => [ - 'label' => 'LLL:EXT:foo/ContentBlocks/example/Source/Language/Labels.xlf:datetime.label', - 'description' => 'LLL:EXT:foo/ContentBlocks/example/Source/Language/Labels.xlf:datetime.description', + 'label' => 'LLL:EXT:foo/ContentBlocks/example/language/labels.xlf:datetime.label', + 'description' => 'LLL:EXT:foo/ContentBlocks/example/language/labels.xlf:datetime.description', ], 't3ce_example_select' => [ - 'label' => 'LLL:EXT:foo/ContentBlocks/example/Source/Language/Labels.xlf:select.label', - 'description' => 'LLL:EXT:foo/ContentBlocks/example/Source/Language/Labels.xlf:select.description', + 'label' => 'LLL:EXT:foo/ContentBlocks/example/language/labels.xlf:select.label', + 'description' => 'LLL:EXT:foo/ContentBlocks/example/language/labels.xlf:select.description', 'config' => [ 'renderType' => 'selectSingle', 'items' => [ [ - 'label' => 'LLL:EXT:foo/ContentBlocks/example/Source/Language/Labels.xlf:select.items.label', + 'label' => 'LLL:EXT:foo/ContentBlocks/example/language/labels.xlf:select.items.label', 'value' => '', ], [ - 'label' => 'LLL:EXT:foo/ContentBlocks/example/Source/Language/Labels.xlf:select.items.select_1.label', + 'label' => 'LLL:EXT:foo/ContentBlocks/example/language/labels.xlf:select.items.select_1.label', 'value' => 'select_1', ], [ - 'label' => 'LLL:EXT:foo/ContentBlocks/example/Source/Language/Labels.xlf:select.items.select_2.label', + 'label' => 'LLL:EXT:foo/ContentBlocks/example/language/labels.xlf:select.items.select_2.label', 'value' => 'select_2', ], ], ], ], 't3ce_example_link' => [ - 'label' => 'LLL:EXT:foo/ContentBlocks/example/Source/Language/Labels.xlf:link.label', - 'description' => 'LLL:EXT:foo/ContentBlocks/example/Source/Language/Labels.xlf:link.description', + 'label' => 'LLL:EXT:foo/ContentBlocks/example/language/labels.xlf:link.label', + 'description' => 'LLL:EXT:foo/ContentBlocks/example/language/labels.xlf:link.description', ], 't3ce_example_radio' => [ - 'label' => 'LLL:EXT:foo/ContentBlocks/example/Source/Language/Labels.xlf:radio.label', - 'description' => 'LLL:EXT:foo/ContentBlocks/example/Source/Language/Labels.xlf:radio.description', + 'label' => 'LLL:EXT:foo/ContentBlocks/example/language/labels.xlf:radio.label', + 'description' => 'LLL:EXT:foo/ContentBlocks/example/language/labels.xlf:radio.description', 'config' => [ 'items' => [ [ - 'label' => 'LLL:EXT:foo/ContentBlocks/example/Source/Language/Labels.xlf:radio.items.1.label', + 'label' => 'LLL:EXT:foo/ContentBlocks/example/language/labels.xlf:radio.items.1.label', 'value' => '1', ], [ - 'label' => 'LLL:EXT:foo/ContentBlocks/example/Source/Language/Labels.xlf:radio.items.2.label', + 'label' => 'LLL:EXT:foo/ContentBlocks/example/language/labels.xlf:radio.items.2.label', 'value' => '2', ], ], ], ], 't3ce_example_relation' => [ - 'label' => 'LLL:EXT:foo/ContentBlocks/example/Source/Language/Labels.xlf:relation.label', - 'description' => 'LLL:EXT:foo/ContentBlocks/example/Source/Language/Labels.xlf:relation.description', + 'label' => 'LLL:EXT:foo/ContentBlocks/example/language/labels.xlf:relation.label', + 'description' => 'LLL:EXT:foo/ContentBlocks/example/language/labels.xlf:relation.description', ], 't3ce_example_collection' => [ - 'label' => 'LLL:EXT:foo/ContentBlocks/example/Source/Language/Labels.xlf:collection.label', - 'description' => 'LLL:EXT:foo/ContentBlocks/example/Source/Language/Labels.xlf:collection.description', + 'label' => 'LLL:EXT:foo/ContentBlocks/example/language/labels.xlf:collection.label', + 'description' => 'LLL:EXT:foo/ContentBlocks/example/language/labels.xlf:collection.description', 'config' => [ 'appearance' => [ 'useSortable' => false, @@ -386,23 +386,23 @@ public static function checkTcaFieldTypesDataProvider(): iterable ], ], 'assets' => [ - 'label' => 'LLL:EXT:foo/ContentBlocks/example/Source/Language/Labels.xlf:assets.label', - 'description' => 'LLL:EXT:foo/ContentBlocks/example/Source/Language/Labels.xlf:assets.description', + 'label' => 'LLL:EXT:foo/ContentBlocks/example/language/labels.xlf:assets.label', + 'description' => 'LLL:EXT:foo/ContentBlocks/example/language/labels.xlf:assets.description', 'config' => [ 'allowed' => 'png', ], ], 'pages' => [ - 'label' => 'LLL:EXT:foo/ContentBlocks/example/Source/Language/Labels.xlf:pages.label', - 'description' => 'LLL:EXT:foo/ContentBlocks/example/Source/Language/Labels.xlf:pages.description', + 'label' => 'LLL:EXT:foo/ContentBlocks/example/language/labels.xlf:pages.label', + 'description' => 'LLL:EXT:foo/ContentBlocks/example/language/labels.xlf:pages.description', ], 't3ce_example_password' => [ - 'label' => 'LLL:EXT:foo/ContentBlocks/example/Source/Language/Labels.xlf:password.label', - 'description' => 'LLL:EXT:foo/ContentBlocks/example/Source/Language/Labels.xlf:password.description', + 'label' => 'LLL:EXT:foo/ContentBlocks/example/language/labels.xlf:password.label', + 'description' => 'LLL:EXT:foo/ContentBlocks/example/language/labels.xlf:password.description', ], 't3ce_example_uuid' => [ - 'label' => 'LLL:EXT:foo/ContentBlocks/example/Source/Language/Labels.xlf:uuid.label', - 'description' => 'LLL:EXT:foo/ContentBlocks/example/Source/Language/Labels.xlf:uuid.description', + 'label' => 'LLL:EXT:foo/ContentBlocks/example/language/labels.xlf:uuid.label', + 'description' => 'LLL:EXT:foo/ContentBlocks/example/language/labels.xlf:uuid.description', ], 't3ce_example_pass' => [ ], @@ -413,12 +413,12 @@ public static function checkTcaFieldTypesDataProvider(): iterable 'previewRenderer' => PreviewRenderer::class, 'columnsOverrides' => [ 't3ce_testblock_text' => [ - 'label' => 'LLL:EXT:foo/ContentBlocks/testblock/Source/Language/Labels.xlf:text.label', - 'description' => 'LLL:EXT:foo/ContentBlocks/testblock/Source/Language/Labels.xlf:text.description', + 'label' => 'LLL:EXT:foo/ContentBlocks/testblock/language/labels.xlf:text.label', + 'description' => 'LLL:EXT:foo/ContentBlocks/testblock/language/labels.xlf:text.description', ], 'bodytext' => [ - 'label' => 'LLL:EXT:foo/ContentBlocks/testblock/Source/Language/Labels.xlf:bodytext.label', - 'description' => 'LLL:EXT:foo/ContentBlocks/testblock/Source/Language/Labels.xlf:bodytext.description', + 'label' => 'LLL:EXT:foo/ContentBlocks/testblock/language/labels.xlf:bodytext.label', + 'description' => 'LLL:EXT:foo/ContentBlocks/testblock/language/labels.xlf:bodytext.description', ], ], ], @@ -564,15 +564,15 @@ public static function checkTcaFieldTypesDataProvider(): iterable ], 'palettes' => [ 't3ce_example_palette_1' => [ - 'label' => 'LLL:EXT:foo/ContentBlocks/example/Source/Language/Labels.xlf:palettes.palette_1.label', - 'description' => 'LLL:EXT:foo/ContentBlocks/example/Source/Language/Labels.xlf:palettes.palette_1.description', + 'label' => 'LLL:EXT:foo/ContentBlocks/example/language/labels.xlf:palettes.palette_1.label', + 'description' => 'LLL:EXT:foo/ContentBlocks/example/language/labels.xlf:palettes.palette_1.description', 'showitem' => 't3ce_example_textarea,--linebreak--,t3ce_example_number', ], ], ], 't3ce_example_collection' => [ 'ctrl' => [ - 'title' => 'LLL:EXT:foo/ContentBlocks/example/Source/Language/Labels.xlf:collection.label', + 'title' => 'LLL:EXT:foo/ContentBlocks/example/language/labels.xlf:collection.label', 'label' => 'text2', 'label_alt' => 'text', 'sortby' => 'sorting', @@ -602,7 +602,7 @@ public static function checkTcaFieldTypesDataProvider(): iterable ], 'types' => [ '1' => [ - 'showitem' => '--div--;LLL:EXT:core/Resources/Private/Language/Form/locallang_tabs.xlf:general,text,--div--;LLL:EXT:foo/ContentBlocks/example/Source/Language/Labels.xlf:collection.tabs.tab_1,text2,--palette--;;palette_inline,collection2,--div--;LLL:EXT:core/Resources/Private/Language/Form/locallang_tabs.xlf:language,--palette--;;language,--div--;LLL:EXT:core/Resources/Private/Language/Form/locallang_tabs.xlf:access,--palette--;;hidden,--palette--;;access', + 'showitem' => '--div--;LLL:EXT:core/Resources/Private/Language/Form/locallang_tabs.xlf:general,text,--div--;LLL:EXT:foo/ContentBlocks/example/language/labels.xlf:collection.tabs.tab_1,text2,--palette--;;palette_inline,collection2,--div--;LLL:EXT:core/Resources/Private/Language/Form/locallang_tabs.xlf:language,--palette--;;language,--div--;LLL:EXT:core/Resources/Private/Language/Form/locallang_tabs.xlf:access,--palette--;;hidden,--palette--;;access', ], ], 'palettes' => [ @@ -618,8 +618,8 @@ public static function checkTcaFieldTypesDataProvider(): iterable 'showitem' => 'starttime;LLL:EXT:frontend/Resources/Private/Language/locallang_ttc.xlf:starttime_formlabel,endtime;LLL:EXT:frontend/Resources/Private/Language/locallang_ttc.xlf:endtime_formlabel,--linebreak--,fe_group;LLL:EXT:frontend/Resources/Private/Language/locallang_ttc.xlf:fe_group_formlabel,--linebreak--,editlock', ], 'palette_inline' => [ - 'label' => 'LLL:EXT:foo/ContentBlocks/example/Source/Language/Labels.xlf:collection.palettes.palette_inline.label', - 'description' => 'LLL:EXT:foo/ContentBlocks/example/Source/Language/Labels.xlf:collection.palettes.palette_inline.description', + 'label' => 'LLL:EXT:foo/ContentBlocks/example/language/labels.xlf:collection.palettes.palette_inline.label', + 'description' => 'LLL:EXT:foo/ContentBlocks/example/language/labels.xlf:collection.palettes.palette_inline.description', 'showitem' => 'palette_field1,--linebreak--,palette_field2', ], ], @@ -636,40 +636,40 @@ public static function checkTcaFieldTypesDataProvider(): iterable ], 'text' => [ 'exclude' => true, - 'label' => 'LLL:EXT:foo/ContentBlocks/example/Source/Language/Labels.xlf:collection.text.label', - 'description' => 'LLL:EXT:foo/ContentBlocks/example/Source/Language/Labels.xlf:collection.text.description', + 'label' => 'LLL:EXT:foo/ContentBlocks/example/language/labels.xlf:collection.text.label', + 'description' => 'LLL:EXT:foo/ContentBlocks/example/language/labels.xlf:collection.text.description', 'config' => [ 'type' => 'input', ], ], 'text2' => [ 'exclude' => true, - 'label' => 'LLL:EXT:foo/ContentBlocks/example/Source/Language/Labels.xlf:collection.text2.label', - 'description' => 'LLL:EXT:foo/ContentBlocks/example/Source/Language/Labels.xlf:collection.text2.description', + 'label' => 'LLL:EXT:foo/ContentBlocks/example/language/labels.xlf:collection.text2.label', + 'description' => 'LLL:EXT:foo/ContentBlocks/example/language/labels.xlf:collection.text2.description', 'config' => [ 'type' => 'input', ], ], 'palette_field1' => [ 'exclude' => true, - 'label' => 'LLL:EXT:foo/ContentBlocks/example/Source/Language/Labels.xlf:collection.palette_field1.label', - 'description' => 'LLL:EXT:foo/ContentBlocks/example/Source/Language/Labels.xlf:collection.palette_field1.description', + 'label' => 'LLL:EXT:foo/ContentBlocks/example/language/labels.xlf:collection.palette_field1.label', + 'description' => 'LLL:EXT:foo/ContentBlocks/example/language/labels.xlf:collection.palette_field1.description', 'config' => [ 'type' => 'input', ], ], 'palette_field2' => [ 'exclude' => true, - 'label' => 'LLL:EXT:foo/ContentBlocks/example/Source/Language/Labels.xlf:collection.palette_field2.label', - 'description' => 'LLL:EXT:foo/ContentBlocks/example/Source/Language/Labels.xlf:collection.palette_field2.description', + 'label' => 'LLL:EXT:foo/ContentBlocks/example/language/labels.xlf:collection.palette_field2.label', + 'description' => 'LLL:EXT:foo/ContentBlocks/example/language/labels.xlf:collection.palette_field2.description', 'config' => [ 'type' => 'input', ], ], 'collection2' => [ 'exclude' => true, - 'label' => 'LLL:EXT:foo/ContentBlocks/example/Source/Language/Labels.xlf:collection.collection2.label', - 'description' => 'LLL:EXT:foo/ContentBlocks/example/Source/Language/Labels.xlf:collection.collection2.description', + 'label' => 'LLL:EXT:foo/ContentBlocks/example/language/labels.xlf:collection.collection2.label', + 'description' => 'LLL:EXT:foo/ContentBlocks/example/language/labels.xlf:collection.collection2.description', 'config' => [ 'type' => 'inline', 'foreign_table' => 'collection2', @@ -680,7 +680,7 @@ public static function checkTcaFieldTypesDataProvider(): iterable ], 'collection2' => [ 'ctrl' => [ - 'title' => 'LLL:EXT:foo/ContentBlocks/example/Source/Language/Labels.xlf:collection.collection2.label', + 'title' => 'LLL:EXT:foo/ContentBlocks/example/language/labels.xlf:collection.collection2.label', 'label' => 'text', 'sortby' => 'sorting', 'tstamp' => 'tstamp', @@ -738,16 +738,16 @@ public static function checkTcaFieldTypesDataProvider(): iterable ], 'text' => [ 'exclude' => true, - 'label' => 'LLL:EXT:foo/ContentBlocks/example/Source/Language/Labels.xlf:collection.collection2.text.label', - 'description' => 'LLL:EXT:foo/ContentBlocks/example/Source/Language/Labels.xlf:collection.collection2.text.description', + 'label' => 'LLL:EXT:foo/ContentBlocks/example/language/labels.xlf:collection.collection2.text.label', + 'description' => 'LLL:EXT:foo/ContentBlocks/example/language/labels.xlf:collection.collection2.text.description', 'config' => [ 'type' => 'input', ], ], 'text2' => [ 'exclude' => true, - 'label' => 'LLL:EXT:foo/ContentBlocks/example/Source/Language/Labels.xlf:collection.collection2.text2.label', - 'description' => 'LLL:EXT:foo/ContentBlocks/example/Source/Language/Labels.xlf:collection.collection2.text2.description', + 'label' => 'LLL:EXT:foo/ContentBlocks/example/language/labels.xlf:collection.collection2.text2.label', + 'description' => 'LLL:EXT:foo/ContentBlocks/example/language/labels.xlf:collection.collection2.text2.description', 'config' => [ 'type' => 'input', ], @@ -795,12 +795,12 @@ public static function checkTcaFieldTypesDataProvider(): iterable ], 'types' => [ 't3ce_example' => [ - 'showitem' => '--div--;LLL:EXT:foo/ContentBlocks/example/Source/Language/Labels.xlf:tabs.tab_1,t3ce_example_text', + 'showitem' => '--div--;LLL:EXT:foo/ContentBlocks/example/language/labels.xlf:tabs.tab_1,t3ce_example_text', 'previewRenderer' => PreviewRenderer::class, 'columnsOverrides' => [ 't3ce_example_text' => [ - 'label' => 'LLL:EXT:foo/ContentBlocks/example/Source/Language/Labels.xlf:text.label', - 'description' => 'LLL:EXT:foo/ContentBlocks/example/Source/Language/Labels.xlf:text.description', + 'label' => 'LLL:EXT:foo/ContentBlocks/example/language/labels.xlf:text.label', + 'description' => 'LLL:EXT:foo/ContentBlocks/example/language/labels.xlf:text.description', ], ], ], @@ -851,7 +851,7 @@ public static function checkTcaFieldTypesDataProvider(): iterable ], 'types' => [ 't3ce_example' => [ - 'showitem' => '--div--;LLL:EXT:foo/ContentBlocks/example/Source/Language/Labels.xlf:tabs.tab_1', + 'showitem' => '--div--;LLL:EXT:foo/ContentBlocks/example/language/labels.xlf:tabs.tab_1', 'previewRenderer' => PreviewRenderer::class, ], ], @@ -865,7 +865,7 @@ public static function checkTcaFieldTypesDataProvider(): iterable 'name' => 't3ce/example', 'extPath' => 'EXT:foo/ContentBlocks/RecordTypes/example', 'icon' => [ - 'iconPath' => 'EXT:foo/ContentBlocks/RecordTypes/example/Assets/Icon.svg', + 'iconPath' => 'EXT:foo/ContentBlocks/RecordTypes/example/Assets/icon.svg', 'iconProvider' => SvgIconProvider::class, 'iconIdentifier' => 'foobar-1', ], @@ -883,7 +883,7 @@ public static function checkTcaFieldTypesDataProvider(): iterable 'expected' => [ 'foobar' => [ 'ctrl' => [ - 'title' => 'LLL:EXT:foo/ContentBlocks/RecordTypes/example/Source/Language/Labels.xlf:title', + 'title' => 'LLL:EXT:foo/ContentBlocks/RecordTypes/example/language/labels.xlf:title', 'label' => 't3ce_example_number', 'sortby' => 'sorting', 'tstamp' => 'tstamp', @@ -933,8 +933,8 @@ public static function checkTcaFieldTypesDataProvider(): iterable ], 't3ce_example_number' => [ 'exclude' => true, - 'label' => 'LLL:EXT:foo/ContentBlocks/RecordTypes/example/Source/Language/Labels.xlf:number.label', - 'description' => 'LLL:EXT:foo/ContentBlocks/RecordTypes/example/Source/Language/Labels.xlf:number.description', + 'label' => 'LLL:EXT:foo/ContentBlocks/RecordTypes/example/language/labels.xlf:number.label', + 'description' => 'LLL:EXT:foo/ContentBlocks/RecordTypes/example/language/labels.xlf:number.description', 'config' => [ 'type' => 'number', ], @@ -999,7 +999,7 @@ public static function checkTcaFieldTypesDataProvider(): iterable 'expected' => [ 'foobar' => [ 'ctrl' => [ - 'title' => 'LLL:EXT:foo/ContentBlocks/example/Source/Language/Labels.xlf:title', + 'title' => 'LLL:EXT:foo/ContentBlocks/example/language/labels.xlf:title', 'label' => 't3ce_example_text', 'label_alt' => 't3ce_example_text2', 'label_alt_force' => true, @@ -1039,16 +1039,16 @@ public static function checkTcaFieldTypesDataProvider(): iterable 'columns' => [ 't3ce_example_text' => [ 'exclude' => true, - 'label' => 'LLL:EXT:foo/ContentBlocks/example/Source/Language/Labels.xlf:text.label', - 'description' => 'LLL:EXT:foo/ContentBlocks/example/Source/Language/Labels.xlf:text.description', + 'label' => 'LLL:EXT:foo/ContentBlocks/example/language/labels.xlf:text.label', + 'description' => 'LLL:EXT:foo/ContentBlocks/example/language/labels.xlf:text.description', 'config' => [ 'type' => 'input', ], ], 't3ce_example_text2' => [ 'exclude' => true, - 'label' => 'LLL:EXT:foo/ContentBlocks/example/Source/Language/Labels.xlf:text2.label', - 'description' => 'LLL:EXT:foo/ContentBlocks/example/Source/Language/Labels.xlf:text2.description', + 'label' => 'LLL:EXT:foo/ContentBlocks/example/language/labels.xlf:text2.label', + 'description' => 'LLL:EXT:foo/ContentBlocks/example/language/labels.xlf:text2.description', 'config' => [ 'type' => 'input', ], @@ -1114,7 +1114,7 @@ public static function checkTcaFieldTypesDataProvider(): iterable 'expected' => [ 'foobar' => [ 'ctrl' => [ - 'title' => 'LLL:EXT:foo/ContentBlocks/example/Source/Language/Labels.xlf:title', + 'title' => 'LLL:EXT:foo/ContentBlocks/example/language/labels.xlf:title', 'label' => 't3ce_example_text', 'label_alt' => 't3ce_example_text2', 'default_sortby' => 't3ce_example_text DESC,t3ce_example_text2 ASC', @@ -1148,16 +1148,16 @@ public static function checkTcaFieldTypesDataProvider(): iterable 'columns' => [ 't3ce_example_text' => [ 'exclude' => true, - 'label' => 'LLL:EXT:foo/ContentBlocks/example/Source/Language/Labels.xlf:text.label', - 'description' => 'LLL:EXT:foo/ContentBlocks/example/Source/Language/Labels.xlf:text.description', + 'label' => 'LLL:EXT:foo/ContentBlocks/example/language/labels.xlf:text.label', + 'description' => 'LLL:EXT:foo/ContentBlocks/example/language/labels.xlf:text.description', 'config' => [ 'type' => 'input', ], ], 't3ce_example_text2' => [ 'exclude' => true, - 'label' => 'LLL:EXT:foo/ContentBlocks/example/Source/Language/Labels.xlf:text2.label', - 'description' => 'LLL:EXT:foo/ContentBlocks/example/Source/Language/Labels.xlf:text2.description', + 'label' => 'LLL:EXT:foo/ContentBlocks/example/language/labels.xlf:text2.label', + 'description' => 'LLL:EXT:foo/ContentBlocks/example/language/labels.xlf:text2.description', 'config' => [ 'type' => 'input', ], @@ -1219,7 +1219,7 @@ public static function checkTcaFieldTypesDataProvider(): iterable 'expected' => [ 'foobar' => [ 'ctrl' => [ - 'title' => 'LLL:EXT:foo/ContentBlocks/RecordTypes/example/Source/Language/Labels.xlf:title', + 'title' => 'LLL:EXT:foo/ContentBlocks/RecordTypes/example/language/labels.xlf:title', 'label' => 'text', 'sortby' => 'sorting', 'tstamp' => 'tstamp', @@ -1252,8 +1252,8 @@ public static function checkTcaFieldTypesDataProvider(): iterable 'showitem' => '--div--;LLL:EXT:core/Resources/Private/Language/Form/locallang_tabs.xlf:general,type,text,--div--;LLL:EXT:core/Resources/Private/Language/Form/locallang_tabs.xlf:language,--palette--;;language,--div--;LLL:EXT:core/Resources/Private/Language/Form/locallang_tabs.xlf:access,--palette--;;hidden,--palette--;;access', 'columnsOverrides' => [ 'text' => [ - 'label' => 'LLL:EXT:foo/ContentBlocks/RecordTypes/example/Source/Language/Labels.xlf:text.label', - 'description' => 'LLL:EXT:foo/ContentBlocks/RecordTypes/example/Source/Language/Labels.xlf:text.description', + 'label' => 'LLL:EXT:foo/ContentBlocks/RecordTypes/example/language/labels.xlf:text.label', + 'description' => 'LLL:EXT:foo/ContentBlocks/RecordTypes/example/language/labels.xlf:text.description', ], ], ], @@ -1261,12 +1261,12 @@ public static function checkTcaFieldTypesDataProvider(): iterable 'showitem' => '--div--;LLL:EXT:core/Resources/Private/Language/Form/locallang_tabs.xlf:general,type,text,text2,--div--;LLL:EXT:core/Resources/Private/Language/Form/locallang_tabs.xlf:language,--palette--;;language,--div--;LLL:EXT:core/Resources/Private/Language/Form/locallang_tabs.xlf:access,--palette--;;hidden,--palette--;;access', 'columnsOverrides' => [ 'text' => [ - 'label' => 'LLL:EXT:foo/ContentBlocks/RecordTypes/example2/Source/Language/Labels.xlf:text.label', - 'description' => 'LLL:EXT:foo/ContentBlocks/RecordTypes/example2/Source/Language/Labels.xlf:text.description', + 'label' => 'LLL:EXT:foo/ContentBlocks/RecordTypes/example2/language/labels.xlf:text.label', + 'description' => 'LLL:EXT:foo/ContentBlocks/RecordTypes/example2/language/labels.xlf:text.description', ], 'text2' => [ - 'label' => 'LLL:EXT:foo/ContentBlocks/RecordTypes/example2/Source/Language/Labels.xlf:text2.label', - 'description' => 'LLL:EXT:foo/ContentBlocks/RecordTypes/example2/Source/Language/Labels.xlf:text2.description', + 'label' => 'LLL:EXT:foo/ContentBlocks/RecordTypes/example2/language/labels.xlf:text2.label', + 'description' => 'LLL:EXT:foo/ContentBlocks/RecordTypes/example2/language/labels.xlf:text2.description', ], ], ], @@ -1377,16 +1377,16 @@ public static function checkTcaFieldTypesDataProvider(): iterable 'previewRenderer' => PreviewRenderer::class, 'columnsOverrides' => [ 'text' => [ - 'label' => 'LLL:EXT:foo/ContentBlocks/example/Source/Language/Labels.xlf:text.label', - 'description' => 'LLL:EXT:foo/ContentBlocks/example/Source/Language/Labels.xlf:text.description', + 'label' => 'LLL:EXT:foo/ContentBlocks/example/language/labels.xlf:text.label', + 'description' => 'LLL:EXT:foo/ContentBlocks/example/language/labels.xlf:text.description', ], 'color' => [ - 'label' => 'LLL:EXT:foo/ContentBlocks/example/Source/Language/Labels.xlf:color.label', - 'description' => 'LLL:EXT:foo/ContentBlocks/example/Source/Language/Labels.xlf:color.description', + 'label' => 'LLL:EXT:foo/ContentBlocks/example/language/labels.xlf:color.label', + 'description' => 'LLL:EXT:foo/ContentBlocks/example/language/labels.xlf:color.description', ], 'collection' => [ - 'label' => 'LLL:EXT:foo/ContentBlocks/example/Source/Language/Labels.xlf:collection.label', - 'description' => 'LLL:EXT:foo/ContentBlocks/example/Source/Language/Labels.xlf:collection.description', + 'label' => 'LLL:EXT:foo/ContentBlocks/example/language/labels.xlf:collection.label', + 'description' => 'LLL:EXT:foo/ContentBlocks/example/language/labels.xlf:collection.description', 'config' => [ 'appearance' => [ 'useSortable' => true, @@ -1423,15 +1423,15 @@ public static function checkTcaFieldTypesDataProvider(): iterable ], 'palettes' => [ 'palette' => [ - 'label' => 'LLL:EXT:foo/ContentBlocks/example/Source/Language/Labels.xlf:palettes.palette.label', - 'description' => 'LLL:EXT:foo/ContentBlocks/example/Source/Language/Labels.xlf:palettes.palette.description', + 'label' => 'LLL:EXT:foo/ContentBlocks/example/language/labels.xlf:palettes.palette.label', + 'description' => 'LLL:EXT:foo/ContentBlocks/example/language/labels.xlf:palettes.palette.description', 'showitem' => 'color', ], ], ], 'collection' => [ 'ctrl' => [ - 'title' => 'LLL:EXT:foo/ContentBlocks/example/Source/Language/Labels.xlf:collection.label', + 'title' => 'LLL:EXT:foo/ContentBlocks/example/language/labels.xlf:collection.label', 'label' => 'text', 'sortby' => 'sorting', 'tstamp' => 'tstamp', @@ -1484,8 +1484,8 @@ public static function checkTcaFieldTypesDataProvider(): iterable ], 'text' => [ 'exclude' => true, - 'label' => 'LLL:EXT:foo/ContentBlocks/example/Source/Language/Labels.xlf:collection.text.label', - 'description' => 'LLL:EXT:foo/ContentBlocks/example/Source/Language/Labels.xlf:collection.text.description', + 'label' => 'LLL:EXT:foo/ContentBlocks/example/language/labels.xlf:collection.text.label', + 'description' => 'LLL:EXT:foo/ContentBlocks/example/language/labels.xlf:collection.text.description', 'config' => [ 'type' => 'input', ], @@ -1596,16 +1596,16 @@ public static function pageTypesGenerateCorrectTcaDataProvider(): iterable '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', 'columnsOverrides' => [ 'title' => [ - 'label' => 'LLL:EXT:my_sitepackage/ContentBlocks/PageTypes/custom-page-type/Source/Language/Labels.xlf:title.label', - 'description' => 'LLL:EXT:my_sitepackage/ContentBlocks/PageTypes/custom-page-type/Source/Language/Labels.xlf:title.description', + 'label' => 'LLL:EXT:my_sitepackage/ContentBlocks/PageTypes/custom-page-type/language/labels.xlf:title.label', + 'description' => 'LLL:EXT:my_sitepackage/ContentBlocks/PageTypes/custom-page-type/language/labels.xlf:title.description', ], 'slug' => [ - 'label' => 'LLL:EXT:my_sitepackage/ContentBlocks/PageTypes/custom-page-type/Source/Language/Labels.xlf:slug.label', - 'description' => 'LLL:EXT:my_sitepackage/ContentBlocks/PageTypes/custom-page-type/Source/Language/Labels.xlf:slug.description', + 'label' => 'LLL:EXT:my_sitepackage/ContentBlocks/PageTypes/custom-page-type/language/labels.xlf:slug.label', + 'description' => 'LLL:EXT:my_sitepackage/ContentBlocks/PageTypes/custom-page-type/language/labels.xlf:slug.description', ], 'nav_title' => [ - 'label' => 'LLL:EXT:my_sitepackage/ContentBlocks/PageTypes/custom-page-type/Source/Language/Labels.xlf:nav_title.label', - 'description' => 'LLL:EXT:my_sitepackage/ContentBlocks/PageTypes/custom-page-type/Source/Language/Labels.xlf:nav_title.description', + 'label' => 'LLL:EXT:my_sitepackage/ContentBlocks/PageTypes/custom-page-type/language/labels.xlf:nav_title.label', + 'description' => 'LLL:EXT:my_sitepackage/ContentBlocks/PageTypes/custom-page-type/language/labels.xlf:nav_title.description', ], ], ], @@ -1614,8 +1614,8 @@ public static function pageTypesGenerateCorrectTcaDataProvider(): iterable 'palettes' => [ 'content_blocks_titleonly' => [ 'showitem' => 'title,--linebreak--,slug,--linebreak--,nav_title', - 'label' => 'LLL:EXT:my_sitepackage/ContentBlocks/PageTypes/custom-page-type/Source/Language/Labels.xlf:palettes.content_blocks_titleonly.label', - 'description' => 'LLL:EXT:my_sitepackage/ContentBlocks/PageTypes/custom-page-type/Source/Language/Labels.xlf:palettes.content_blocks_titleonly.description', + 'label' => 'LLL:EXT:my_sitepackage/ContentBlocks/PageTypes/custom-page-type/language/labels.xlf:palettes.content_blocks_titleonly.label', + 'description' => 'LLL:EXT:my_sitepackage/ContentBlocks/PageTypes/custom-page-type/language/labels.xlf:palettes.content_blocks_titleonly.description', ], ], ], @@ -1653,16 +1653,16 @@ public static function pageTypesGenerateCorrectTcaDataProvider(): iterable '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', 'columnsOverrides' => [ 'title' => [ - 'label' => 'LLL:EXT:my_sitepackage/ContentBlocks/PageTypes/custom-page-type/Source/Language/Labels.xlf:title.label', - 'description' => 'LLL:EXT:my_sitepackage/ContentBlocks/PageTypes/custom-page-type/Source/Language/Labels.xlf:title.description', + 'label' => 'LLL:EXT:my_sitepackage/ContentBlocks/PageTypes/custom-page-type/language/labels.xlf:title.label', + 'description' => 'LLL:EXT:my_sitepackage/ContentBlocks/PageTypes/custom-page-type/language/labels.xlf:title.description', ], 'slug' => [ - 'label' => 'LLL:EXT:my_sitepackage/ContentBlocks/PageTypes/custom-page-type/Source/Language/Labels.xlf:slug.label', - 'description' => 'LLL:EXT:my_sitepackage/ContentBlocks/PageTypes/custom-page-type/Source/Language/Labels.xlf:slug.description', + 'label' => 'LLL:EXT:my_sitepackage/ContentBlocks/PageTypes/custom-page-type/language/labels.xlf:slug.label', + 'description' => 'LLL:EXT:my_sitepackage/ContentBlocks/PageTypes/custom-page-type/language/labels.xlf:slug.description', ], 'nav_title' => [ - 'label' => 'LLL:EXT:my_sitepackage/ContentBlocks/PageTypes/custom-page-type/Source/Language/Labels.xlf:nav_title.label', - 'description' => 'LLL:EXT:my_sitepackage/ContentBlocks/PageTypes/custom-page-type/Source/Language/Labels.xlf:nav_title.description', + 'label' => 'LLL:EXT:my_sitepackage/ContentBlocks/PageTypes/custom-page-type/language/labels.xlf:nav_title.label', + 'description' => 'LLL:EXT:my_sitepackage/ContentBlocks/PageTypes/custom-page-type/language/labels.xlf:nav_title.description', ], ], ], @@ -1671,8 +1671,8 @@ public static function pageTypesGenerateCorrectTcaDataProvider(): iterable 'palettes' => [ 'content_blocks_titleonly' => [ 'showitem' => 'title,--linebreak--,slug,--linebreak--,nav_title', - 'label' => 'LLL:EXT:my_sitepackage/ContentBlocks/PageTypes/custom-page-type/Source/Language/Labels.xlf:palettes.content_blocks_titleonly.label', - 'description' => 'LLL:EXT:my_sitepackage/ContentBlocks/PageTypes/custom-page-type/Source/Language/Labels.xlf:palettes.content_blocks_titleonly.description', + 'label' => 'LLL:EXT:my_sitepackage/ContentBlocks/PageTypes/custom-page-type/language/labels.xlf:palettes.content_blocks_titleonly.label', + 'description' => 'LLL:EXT:my_sitepackage/ContentBlocks/PageTypes/custom-page-type/language/labels.xlf:palettes.content_blocks_titleonly.description', ], ], ], @@ -1860,8 +1860,8 @@ public static function checkFlexFormTcaDataProvider(): iterable 'previewRenderer' => PreviewRenderer::class, 'columnsOverrides' => [ 'flex' => [ - 'label' => 'LLL:EXT:foo/ContentBlocks/example/Source/Language/Labels.xlf:flex.label', - 'description' => 'LLL:EXT:foo/ContentBlocks/example/Source/Language/Labels.xlf:flex.description', + 'label' => 'LLL:EXT:foo/ContentBlocks/example/language/labels.xlf:flex.label', + 'description' => 'LLL:EXT:foo/ContentBlocks/example/language/labels.xlf:flex.description', ], ], ], @@ -1870,8 +1870,8 @@ public static function checkFlexFormTcaDataProvider(): iterable 'previewRenderer' => PreviewRenderer::class, 'columnsOverrides' => [ 'flex' => [ - 'label' => 'LLL:EXT:foo/ContentBlocks/testblock/Source/Language/Labels.xlf:flex.label', - 'description' => 'LLL:EXT:foo/ContentBlocks/testblock/Source/Language/Labels.xlf:flex.description', + 'label' => 'LLL:EXT:foo/ContentBlocks/testblock/language/labels.xlf:flex.label', + 'description' => 'LLL:EXT:foo/ContentBlocks/testblock/language/labels.xlf:flex.description', ], ], ], @@ -1904,18 +1904,18 @@ public static function checkFlexFormTcaDataProvider(): iterable array - + input - LLL:EXT:foo/ContentBlocks/example/Source/Language/Labels.xlf:flex.header.description + LLL:EXT:foo/ContentBlocks/example/language/labels.xlf:flex.header.description - + text - LLL:EXT:foo/ContentBlocks/example/Source/Language/Labels.xlf:flex.settings.textarea.description + LLL:EXT:foo/ContentBlocks/example/language/labels.xlf:flex.settings.textarea.description @@ -1929,18 +1929,18 @@ public static function checkFlexFormTcaDataProvider(): iterable array - + color - LLL:EXT:foo/ContentBlocks/testblock/Source/Language/Labels.xlf:flex.color.description + LLL:EXT:foo/ContentBlocks/testblock/language/labels.xlf:flex.color.description - + link - LLL:EXT:foo/ContentBlocks/testblock/Source/Language/Labels.xlf:flex.link.description + LLL:EXT:foo/ContentBlocks/testblock/language/labels.xlf:flex.link.description @@ -2085,8 +2085,8 @@ public static function checkFlexFormTcaDataProvider(): iterable 'previewRenderer' => PreviewRenderer::class, 'columnsOverrides' => [ 'pi_flexform' => [ - 'label' => 'LLL:EXT:foo/ContentBlocks/example/Source/Language/Labels.xlf:pi_flexform.label', - 'description' => 'LLL:EXT:foo/ContentBlocks/example/Source/Language/Labels.xlf:pi_flexform.description', + 'label' => 'LLL:EXT:foo/ContentBlocks/example/language/labels.xlf:pi_flexform.label', + 'description' => 'LLL:EXT:foo/ContentBlocks/example/language/labels.xlf:pi_flexform.description', ], ], ], @@ -2095,8 +2095,8 @@ public static function checkFlexFormTcaDataProvider(): iterable 'previewRenderer' => PreviewRenderer::class, 'columnsOverrides' => [ 'pi_flexform' => [ - 'label' => 'LLL:EXT:foo/ContentBlocks/example2/Source/Language/Labels.xlf:pi_flexform.label', - 'description' => 'LLL:EXT:foo/ContentBlocks/example2/Source/Language/Labels.xlf:pi_flexform.description', + 'label' => 'LLL:EXT:foo/ContentBlocks/example2/language/labels.xlf:pi_flexform.label', + 'description' => 'LLL:EXT:foo/ContentBlocks/example2/language/labels.xlf:pi_flexform.description', ], ], ], @@ -2105,8 +2105,8 @@ public static function checkFlexFormTcaDataProvider(): iterable 'previewRenderer' => PreviewRenderer::class, 'columnsOverrides' => [ 'pi_flexform' => [ - 'label' => 'LLL:EXT:foo/ContentBlocks/example3/Source/Language/Labels.xlf:pi_flexform.label', - 'description' => 'LLL:EXT:foo/ContentBlocks/example3/Source/Language/Labels.xlf:pi_flexform.description', + 'label' => 'LLL:EXT:foo/ContentBlocks/example3/language/labels.xlf:pi_flexform.label', + 'description' => 'LLL:EXT:foo/ContentBlocks/example3/language/labels.xlf:pi_flexform.description', ], ], ], @@ -2122,18 +2122,18 @@ public static function checkFlexFormTcaDataProvider(): iterable array - + input - LLL:EXT:foo/ContentBlocks/example/Source/Language/Labels.xlf:pi_flexform.header.description + LLL:EXT:foo/ContentBlocks/example/language/labels.xlf:pi_flexform.header.description - + text - LLL:EXT:foo/ContentBlocks/example/Source/Language/Labels.xlf:pi_flexform.textarea.description + LLL:EXT:foo/ContentBlocks/example/language/labels.xlf:pi_flexform.textarea.description @@ -2147,18 +2147,18 @@ public static function checkFlexFormTcaDataProvider(): iterable array - + input - LLL:EXT:foo/ContentBlocks/example2/Source/Language/Labels.xlf:pi_flexform.header.description + LLL:EXT:foo/ContentBlocks/example2/language/labels.xlf:pi_flexform.header.description - + text - LLL:EXT:foo/ContentBlocks/example2/Source/Language/Labels.xlf:pi_flexform.textarea.description + LLL:EXT:foo/ContentBlocks/example2/language/labels.xlf:pi_flexform.textarea.description @@ -2172,23 +2172,23 @@ public static function checkFlexFormTcaDataProvider(): iterable array - + input - LLL:EXT:foo/ContentBlocks/example3/Source/Language/Labels.xlf:pi_flexform.header.description + LLL:EXT:foo/ContentBlocks/example3/language/labels.xlf:pi_flexform.header.description - + text - LLL:EXT:foo/ContentBlocks/example3/Source/Language/Labels.xlf:pi_flexform.textarea.description + LLL:EXT:foo/ContentBlocks/example3/language/labels.xlf:pi_flexform.textarea.description - LLL:EXT:foo/ContentBlocks/example3/Source/Language/Labels.xlf:pi_flexform.sheets.sheet1.label - LLL:EXT:foo/ContentBlocks/example3/Source/Language/Labels.xlf:pi_flexform.sheets.sheet1.description - LLL:EXT:foo/ContentBlocks/example3/Source/Language/Labels.xlf:pi_flexform.sheets.sheet1.linkTitle + LLL:EXT:foo/ContentBlocks/example3/language/labels.xlf:pi_flexform.sheets.sheet1.label + LLL:EXT:foo/ContentBlocks/example3/language/labels.xlf:pi_flexform.sheets.sheet1.description + LLL:EXT:foo/ContentBlocks/example3/language/labels.xlf:pi_flexform.sheets.sheet1.linkTitle @@ -2196,23 +2196,23 @@ public static function checkFlexFormTcaDataProvider(): iterable array - + link - LLL:EXT:foo/ContentBlocks/example3/Source/Language/Labels.xlf:pi_flexform.link.description + LLL:EXT:foo/ContentBlocks/example3/language/labels.xlf:pi_flexform.link.description - + number - LLL:EXT:foo/ContentBlocks/example3/Source/Language/Labels.xlf:pi_flexform.number.description + LLL:EXT:foo/ContentBlocks/example3/language/labels.xlf:pi_flexform.number.description - LLL:EXT:foo/ContentBlocks/example3/Source/Language/Labels.xlf:pi_flexform.sheets.sheet2.label - LLL:EXT:foo/ContentBlocks/example3/Source/Language/Labels.xlf:pi_flexform.sheets.sheet2.description - LLL:EXT:foo/ContentBlocks/example3/Source/Language/Labels.xlf:pi_flexform.sheets.sheet2.linkTitle + LLL:EXT:foo/ContentBlocks/example3/language/labels.xlf:pi_flexform.sheets.sheet2.label + LLL:EXT:foo/ContentBlocks/example3/language/labels.xlf:pi_flexform.sheets.sheet2.description + LLL:EXT:foo/ContentBlocks/example3/language/labels.xlf:pi_flexform.sheets.sheet2.linkTitle @@ -2297,8 +2297,8 @@ public static function checkFlexFormTcaDataProvider(): iterable 'previewRenderer' => PreviewRenderer::class, 'columnsOverrides' => [ 'flex' => [ - 'label' => 'LLL:EXT:foo/ContentBlocks/example/Source/Language/Labels.xlf:flex.label', - 'description' => 'LLL:EXT:foo/ContentBlocks/example/Source/Language/Labels.xlf:flex.description', + 'label' => 'LLL:EXT:foo/ContentBlocks/example/language/labels.xlf:flex.label', + 'description' => 'LLL:EXT:foo/ContentBlocks/example/language/labels.xlf:flex.description', ], ], ], @@ -2331,47 +2331,47 @@ public static function checkFlexFormTcaDataProvider(): iterable array - LLL:EXT:foo/ContentBlocks/example/Source/Language/Labels.xlf:flex.sections.section1.title + LLL:EXT:foo/ContentBlocks/example/language/labels.xlf:flex.sections.section1.title array
1
- LLL:EXT:foo/ContentBlocks/example/Source/Language/Labels.xlf:flex.sections.section1.container.container1.title + LLL:EXT:foo/ContentBlocks/example/language/labels.xlf:flex.sections.section1.container.container1.title array - + input - LLL:EXT:foo/ContentBlocks/example/Source/Language/Labels.xlf:flex.sections.section1.container.container1.header.description + LLL:EXT:foo/ContentBlocks/example/language/labels.xlf:flex.sections.section1.container.container1.header.description - + text - LLL:EXT:foo/ContentBlocks/example/Source/Language/Labels.xlf:flex.sections.section1.container.container1.textarea.description + LLL:EXT:foo/ContentBlocks/example/language/labels.xlf:flex.sections.section1.container.container1.textarea.description - LLL:EXT:foo/ContentBlocks/example/Source/Language/Labels.xlf:flex.sections.section1.container.container2.title + LLL:EXT:foo/ContentBlocks/example/language/labels.xlf:flex.sections.section1.container.container2.title array - + input - LLL:EXT:foo/ContentBlocks/example/Source/Language/Labels.xlf:flex.sections.section1.container.container2.header2.description + LLL:EXT:foo/ContentBlocks/example/language/labels.xlf:flex.sections.section1.container.container2.header2.description - + text - LLL:EXT:foo/ContentBlocks/example/Source/Language/Labels.xlf:flex.sections.section1.container.container2.textarea2.description + LLL:EXT:foo/ContentBlocks/example/language/labels.xlf:flex.sections.section1.container.container2.textarea2.description @@ -2447,8 +2447,8 @@ public static function checkFlexFormTcaDataProvider(): iterable 'previewRenderer' => PreviewRenderer::class, 'columnsOverrides' => [ 'flex' => [ - 'label' => 'LLL:EXT:foo/ContentBlocks/example/Source/Language/Labels.xlf:flex.label', - 'description' => 'LLL:EXT:foo/ContentBlocks/example/Source/Language/Labels.xlf:flex.description', + 'label' => 'LLL:EXT:foo/ContentBlocks/example/language/labels.xlf:flex.label', + 'description' => 'LLL:EXT:foo/ContentBlocks/example/language/labels.xlf:flex.description', ], ], ], @@ -2481,26 +2481,26 @@ public static function checkFlexFormTcaDataProvider(): iterable array - + selectSingle select - + 1 - + 2 - + - LLL:EXT:foo/ContentBlocks/example/Source/Language/Labels.xlf:flex.select.description + LLL:EXT:foo/ContentBlocks/example/language/labels.xlf:flex.select.description @@ -2734,8 +2734,8 @@ public static function existingTablesCanBeExtendedWithAdditionalTypeDataProvider 'showitem' => '--div--;LLL:EXT:core/Resources/Private/Language/Form/locallang_tabs.xlf:general,record_type,a_field,--div--;LLL:EXT:core/Resources/Private/Language/Form/locallang_tabs.xlf:access,--palette--;;hidden,--palette--;;access,--div--;LLL:EXT:core/Resources/Private/Language/Form/locallang_tabs.xlf:notes,a_description_column', 'columnsOverrides' => [ 'a_field' => [ - 'label' => 'LLL:EXT:my_extension/ContentBlocks/RecordType/record/Source/Language/Labels.xlf:a_field.label', - 'description' => 'LLL:EXT:my_extension/ContentBlocks/RecordType/record/Source/Language/Labels.xlf:a_field.description', + 'label' => 'LLL:EXT:my_extension/ContentBlocks/RecordType/record/language/labels.xlf:a_field.label', + 'description' => 'LLL:EXT:my_extension/ContentBlocks/RecordType/record/language/labels.xlf:a_field.description', ], ], ], @@ -2752,11 +2752,11 @@ public static function existingTablesCanBeExtendedWithAdditionalTypeDataProvider 'value' => 'type_1', ], [ - 'label' => 'LLL:EXT:my_extension/ContentBlocks/RecordType/record/Source/Language/Labels.xlf:title', + 'label' => 'LLL:EXT:my_extension/ContentBlocks/RecordType/record/language/labels.xlf:title', 'value' => 'type_2', 'icon' => 'existing_record-type_2', 'group' => null, - 'description' => 'LLL:EXT:my_extension/ContentBlocks/RecordType/record/Source/Language/Labels.xlf:description', + 'description' => 'LLL:EXT:my_extension/ContentBlocks/RecordType/record/language/labels.xlf:description', ], ], ], @@ -2913,8 +2913,8 @@ public static function existingTablesCanBeExtendedWithAdditionalTypeDataProvider 'showitem' => '--div--;LLL:EXT:core/Resources/Private/Language/Form/locallang_tabs.xlf:general,record_type,a_field,--div--;LLL:EXT:core/Resources/Private/Language/Form/locallang_tabs.xlf:access,--palette--;;hidden,--palette--;;access,--div--;LLL:EXT:core/Resources/Private/Language/Form/locallang_tabs.xlf:notes,a_description_column', 'columnsOverrides' => [ 'a_field' => [ - 'label' => 'LLL:EXT:my_extension/ContentBlocks/RecordType/record/Source/Language/Labels.xlf:a_field.label', - 'description' => 'LLL:EXT:my_extension/ContentBlocks/RecordType/record/Source/Language/Labels.xlf:a_field.description', + 'label' => 'LLL:EXT:my_extension/ContentBlocks/RecordType/record/language/labels.xlf:a_field.label', + 'description' => 'LLL:EXT:my_extension/ContentBlocks/RecordType/record/language/labels.xlf:a_field.description', ], ], ], @@ -2960,11 +2960,11 @@ public static function existingTablesCanBeExtendedWithAdditionalTypeDataProvider 'default' => 'type_2', 'items' => [ [ - 'label' => 'LLL:EXT:my_extension/ContentBlocks/RecordType/record/Source/Language/Labels.xlf:title', + 'label' => 'LLL:EXT:my_extension/ContentBlocks/RecordType/record/language/labels.xlf:title', 'value' => 'type_2', 'icon' => 'existing_record-type_2', 'group' => null, - 'description' => 'LLL:EXT:my_extension/ContentBlocks/RecordType/record/Source/Language/Labels.xlf:description', + 'description' => 'LLL:EXT:my_extension/ContentBlocks/RecordType/record/language/labels.xlf:description', ], ], ],