From 414fc2ee27b9f28343d008b2aa220297965e784d Mon Sep 17 00:00:00 2001 From: Helmut Hackbarth Date: Sun, 28 May 2023 19:18:16 +0200 Subject: [PATCH] New release v5.2.20 - Support of TYPO3 v12 & drop support of v11 --- .../EventListener/FlexForm/FlexformEvent.php | 57 + .../FlexForm/NewsFlexformEvent.php | 30 + .../EventListener/TCA/TcaCompilation.php | 2 +- .../FormDataProvider/FlexFormManipulation.php | 76 +- .../Preview/DefaultPreviewRenderer.php | 193 +- .../Backend/Preview/T3sbPreviewRenderer.php | 420 -- Classes/Command/CdnToLocal.php | 9 +- Classes/Command/CustomScss.php | 2 +- Classes/Components/Button.php | 4 +- Classes/Components/Carousel.php | 9 +- Classes/Components/Toast.php | 6 +- Classes/ContentElements/Menu.php | 10 +- Classes/ContentElements/Table.php | 2 +- Classes/Controller/AbstractController.php | 26 +- Classes/Controller/ConfigController.php | 73 +- Classes/Controller/ConsentController.php | 70 - Classes/DataProcessing/BootstrapProcessor.php | 2 +- Classes/DataProcessing/ConfigProcessor.php | 6 +- Classes/DataProcessing/GalleryProcessor.php | 10 +- .../DataProcessing/LastModifiedProcessor.php | 6 +- .../EventListener/AssetRenderer/IsInline.php | 1 + Classes/Helper/ClassHelper.php | 12 +- Classes/Helper/DefaultHelper.php | 5 +- Classes/Helper/FlexformHelper.php | 7 +- Classes/Helper/MediaElementHelper.php | 1 + Classes/Hooks/FlexFormHook.php | 45 - Classes/Hooks/NewsFlexFormHook.php | 34 - Classes/Parser/AbstractParser.php | 2 +- Classes/Updates/T3sbCardsUpdateWizard.php | 203 - Classes/Updates/T3sbMigrateUpdateWizard.php | 400 -- Classes/UserFunction/TagModifier.php | 32 + Classes/ViewHelpers/EmconfViewHelper.php | 27 + Classes/ViewHelpers/FlexformViewHelper.php | 51 + Classes/ViewHelpers/MediaViewHelper.php | 94 +- Classes/Wrapper/BackgroundWrapper.php | 19 +- Classes/Wrapper/CardWrapper.php | 2 +- Classes/Wrapper/CollapsibleAccordion.php | 10 +- Classes/Wrapper/CollapsibleContainer.php | 2 +- Classes/Wrapper/Modal.php | 6 +- Configuration/Backend/Modules.php | 24 + Configuration/FlexForms/AssetInline.xml | 34 +- Configuration/FlexForms/Bootstrap.xml | 1656 +++--- Configuration/FlexForms/Button.xml | 430 +- Configuration/FlexForms/CardContent.xml | 89 +- Configuration/FlexForms/CardSetting.xml | 2333 ++++---- Configuration/FlexForms/Carousel.xml | 176 +- Configuration/FlexForms/Consent.xml | 221 - .../FlexForms/Container/AutoLayoutRow.xml | 348 +- .../FlexForms/Container/BackgroundWrapper.xml | 1065 ++-- .../FlexForms/Container/Buttongroup.xml | 335 +- .../FlexForms/Container/CardWrapper.xml | 580 +- .../FlexForms/Container/CarouselContainer.xml | 405 +- .../FlexForms/Container/Collapse.xml | 203 +- .../FlexForms/Container/CollapseContainer.xml | 171 +- .../FlexForms/Container/Container.xml | 604 +- .../FlexForms/Container/FourColumns.xml | 3388 ++++++----- .../FlexForms/Container/MasonryWrapper.xml | 124 +- Configuration/FlexForms/Container/Modal.xml | 349 +- .../FlexForms/Container/ParallaxWrapper.xml | 175 +- .../FlexForms/Container/RowColumns.xml | 683 ++- .../FlexForms/Container/SixColumns.xml | 5046 ++++++++--------- .../FlexForms/Container/SwiperContainer.xml | 434 +- Configuration/FlexForms/Container/Tabs.xml | 287 +- Configuration/FlexForms/Container/TabsTab.xml | 145 +- .../FlexForms/Container/ThreeColumns.xml | 2611 +++++---- .../FlexForms/Container/ToastContainer.xml | 235 +- .../FlexForms/Container/TwoColumns.xml | 2111 ++++--- Configuration/FlexForms/Mediaobject.xml | 322 +- Configuration/FlexForms/Table.xml | 346 +- Configuration/FlexForms/ToastSetting.xml | 203 +- Configuration/Icons.php | 19 +- Configuration/JavaScriptModules.php | 13 + Configuration/RTE/Codesnippet.yaml | 6 - Configuration/RTE/CodesnippetFa.yaml | 9 - Configuration/RTE/CodesnippetFa6.yaml | 6 - Configuration/RTE/CodesnippetFa6Pro.yaml | 5 +- Configuration/RTE/CodesnippetFaPro.yaml | 13 - Configuration/RTE/Default.yaml | 306 +- Configuration/RTE/DefaultFa.yaml | 3 - Configuration/RTE/DefaultFaPro.yaml | 10 - Configuration/Services.yaml | 24 +- Configuration/TCA/Overrides/pages.php | 72 +- .../TCA/Overrides/sys_file_reference.php | 134 +- Configuration/TCA/Overrides/tt_content.php | 1669 ------ .../TCA/Overrides/tt_content_container.php | 896 +++ .../TCA/Overrides/tt_content_newCType.php | 1190 ++++ .../tx_t3sbootstrap_domain_model_config.php | 740 ++- .../TCA/tx_t3sbootstrap_list_item_inline.php | 7 +- Configuration/TSConfig/CKEditor.tsconfig | 45 +- Configuration/TSConfig/Content.tsconfig | 478 ++ Configuration/TSConfig/Page.tsconfig | 492 +- .../TypoScript/Page/BodyTag.typoscript | 13 +- .../TypoScript/Page/IncludeCdn.typoscript | 2 +- .../TypoScript/Page/IncludeDefault.typoscript | 12 +- Configuration/TypoScript/constants.typoscript | 37 +- Configuration/page.tsconfig | 5 + Contrib/scssphp/bin/pscss | 2 +- Contrib/scssphp/src/Cache.php | 2 +- Contrib/scssphp/src/Compiler.php | 2 +- .../src/SourceMap/SourceMapGenerator.php | 2 +- .../Private/Backend/Layouts/Default.html | 51 +- .../Backend/Partials/Config/Accordion.html | 142 +- .../Backend/Partials/Config/Check.html | 8 +- .../Backend/Partials/Config/Input.html | 4 +- .../Backend/Partials/Config/Select.html | 6 +- .../Private/Backend/Partials/FormErrors.html | 2 +- .../Partials/PageLayout/Grid/Column.html | 25 + .../PageLayout/Grid/ColumnHeader.html | 55 + .../Preview/Partials/PageLayout/Record.html | 27 + .../Backend/Preview/Templates/Container.html | 8 + .../Backend/Preview/Templates/Grid.html | 42 + .../Backend/Templates/Config/Constants.html | 7 +- .../Backend/Templates/Config/Create.html | 0 .../Backend/Templates/Config/Dashboard.html | 502 +- .../Backend/Templates/Config/Edit.html | 27 +- .../Backend/Templates/Config/List.html | 301 +- .../Private/Partials/T3SB/Assets.html | 130 - .../Private/Partials/T3SB/Filters.html | 5 +- .../Private/Partials/T3SB/Filters/Select.html | 13 - .../Private/Partials/T3SB/ResultRow.html | 79 +- .../Private/Partials/T3SB/ResultRows.html | 47 +- .../Private/Partials/T3SB/Sorting.html | 9 +- .../Private/Templates/ResultList.html | 104 +- .../Private/Templates/SearchForm.html | 130 +- .../Private/Templates/Widget/Pagination.html | 25 - .../news/Configuration/FlexForms/News.xml | 367 +- .../TSconfig/templateLayouts.tsconfig | 1 - .../Configuration/TypoScript/setup.typoscript | 1 - .../Private/Partials/Detail/Detail.html | 11 +- .../Partials/Detail/T3sbMediaContainer.html | 9 +- .../Private/Partials/List/List_8.html | 17 - .../Private/Partials/List/List_9.html | 269 - .../Private/Templates/News/List.html | 285 +- ...sh_tx_t3sbootstrap_domain_model_config.xlf | 113 - .../Partials/Content/Media/Carousel.html | 26 +- .../Content/Media/Rendering/Image.html | 2 - .../Partials/Content/Swiper/CustomOne.html | 2 +- .../Partials/Content/Swiper/CustomTwo.html | 5 +- .../Partials/Content/Swiper/Default.html | 5 +- Resources/Private/Templates/Consent/Ajax.html | 3 - .../Private/Templates/Consent/Index.html | 138 - .../Container/BackgroundWrapper.html | 50 +- .../Templates/Container/CardWrapper.html | 2 +- .../Templates/Container/Collapsible.html | 2 +- .../Templates/Container/TwoColumns.html | 3 +- .../Templates/Content/AssetsInline.html | 1 - .../Private/Templates/Content/Carousel.html | 4 +- .../Templates/Content/ImageGallery.html | 7 +- Resources/Private/Templates/Main.html | 4 - .../Templates/Preview/t3sbs_assets.html | 16 - Resources/Public/Backend/RTE/t3sbootstrap.css | 420 ++ Resources/Public/Backend/Style/bestyles.css | 18 + Resources/Public/Backend/bestyles.css | 412 -- .../Public/Contrib/Modernizr/modernizr.js | 14 - Resources/Public/Icons/Extension.svg | 2 +- Resources/Public/Icons/chevron.svg | 1 - Resources/Public/JavaScript/Bootstrap.js | 6 - .../CKEditor/Plugins/CodeBlock/LICENSE.md | 21 + .../CKEditor/Plugins/CodeBlock/README.md | 20 + .../Plugins/CodeBlock/lang/contexts.json | 4 + .../Plugins/CodeBlock/lang/translations/az.po | 25 + .../Plugins/CodeBlock/lang/translations/cs.po | 25 + .../Plugins/CodeBlock/lang/translations/da.po | 25 + .../Plugins/CodeBlock/lang/translations/de.po | 25 + .../CodeBlock/lang/translations/en-au.po | 25 + .../Plugins/CodeBlock/lang/translations/en.po | 25 + .../Plugins/CodeBlock/lang/translations/es.po | 25 + .../Plugins/CodeBlock/lang/translations/et.po | 25 + .../Plugins/CodeBlock/lang/translations/fr.po | 25 + .../Plugins/CodeBlock/lang/translations/gl.po | 25 + .../Plugins/CodeBlock/lang/translations/hu.po | 25 + .../Plugins/CodeBlock/lang/translations/id.po | 25 + .../Plugins/CodeBlock/lang/translations/it.po | 25 + .../Plugins/CodeBlock/lang/translations/ku.po | 25 + .../Plugins/CodeBlock/lang/translations/lv.po | 25 + .../Plugins/CodeBlock/lang/translations/nl.po | 25 + .../Plugins/CodeBlock/lang/translations/no.po | 25 + .../Plugins/CodeBlock/lang/translations/pl.po | 25 + .../CodeBlock/lang/translations/pt-br.po | 25 + .../Plugins/CodeBlock/lang/translations/ru.po | 25 + .../Plugins/CodeBlock/lang/translations/sk.po | 25 + .../CodeBlock/lang/translations/sr-latn.po | 25 + .../Plugins/CodeBlock/lang/translations/sr.po | 25 + .../Plugins/CodeBlock/lang/translations/th.po | 25 + .../Plugins/CodeBlock/lang/translations/tr.po | 25 + .../Plugins/CodeBlock/lang/translations/uk.po | 25 + .../CodeBlock/lang/translations/zh-cn.po | 25 + .../CKEditor/Plugins/CodeBlock/package.json | 74 + .../Plugins/CodeBlock/src/codeblock.js | 175 + .../Plugins/CodeBlock/src/codeblockcommand.js | 162 + .../Plugins/CodeBlock/src/codeblockediting.js | 410 ++ .../Plugins/CodeBlock/src/codeblockui.js | 110 + .../Plugins/CodeBlock/src/converters.js | 247 + .../CodeBlock/src/indentcodeblockcommand.js | 98 + .../CodeBlock/src/outdentcodeblockcommand.js | 187 + .../CKEditor/Plugins/CodeBlock/src/utils.js | 217 + .../Plugins/CodeBlock/theme/codeblock.css | 40 + .../CodeBlock/theme/icons/codeblock.svg | 1 + composer.json | 4 +- ext_conf_template.txt | 36 +- ext_emconf.php | 33 +- ext_localconf.php | 253 +- 202 files changed, 20312 insertions(+), 19733 deletions(-) create mode 100644 Classes/Backend/EventListener/FlexForm/FlexformEvent.php create mode 100644 Classes/Backend/EventListener/FlexForm/NewsFlexformEvent.php rename Classes/{ => Backend}/EventListener/TCA/TcaCompilation.php (98%) delete mode 100644 Classes/Backend/Preview/T3sbPreviewRenderer.php delete mode 100644 Classes/Controller/ConsentController.php delete mode 100644 Classes/Hooks/FlexFormHook.php delete mode 100644 Classes/Hooks/NewsFlexFormHook.php delete mode 100644 Classes/Updates/T3sbCardsUpdateWizard.php delete mode 100644 Classes/Updates/T3sbMigrateUpdateWizard.php create mode 100644 Classes/UserFunction/TagModifier.php create mode 100644 Classes/ViewHelpers/EmconfViewHelper.php create mode 100644 Classes/ViewHelpers/FlexformViewHelper.php create mode 100644 Configuration/Backend/Modules.php delete mode 100644 Configuration/FlexForms/Consent.xml create mode 100644 Configuration/JavaScriptModules.php delete mode 100644 Configuration/RTE/CodesnippetFa.yaml delete mode 100644 Configuration/RTE/CodesnippetFaPro.yaml delete mode 100644 Configuration/RTE/DefaultFa.yaml delete mode 100644 Configuration/RTE/DefaultFaPro.yaml create mode 100644 Configuration/TCA/Overrides/tt_content_container.php create mode 100644 Configuration/TCA/Overrides/tt_content_newCType.php create mode 100644 Configuration/TSConfig/Content.tsconfig create mode 100644 Configuration/page.tsconfig create mode 100644 Resources/Private/Backend/Preview/Partials/PageLayout/Grid/Column.html create mode 100644 Resources/Private/Backend/Preview/Partials/PageLayout/Grid/ColumnHeader.html create mode 100644 Resources/Private/Backend/Preview/Partials/PageLayout/Record.html create mode 100644 Resources/Private/Backend/Preview/Templates/Container.html create mode 100644 Resources/Private/Backend/Preview/Templates/Grid.html create mode 100644 Resources/Private/Backend/Templates/Config/Create.html delete mode 100644 Resources/Private/Extensions/ke_search/Resources/Private/Partials/T3SB/Assets.html delete mode 100644 Resources/Private/Extensions/ke_search/Resources/Private/Partials/T3SB/Filters/Select.html delete mode 100644 Resources/Private/Extensions/ke_search/Resources/Private/Templates/Widget/Pagination.html delete mode 100644 Resources/Private/Extensions/news/Resources/Private/Partials/List/List_8.html delete mode 100644 Resources/Private/Extensions/news/Resources/Private/Partials/List/List_9.html delete mode 100644 Resources/Private/Language/locallang_csh_tx_t3sbootstrap_domain_model_config.xlf delete mode 100644 Resources/Private/Templates/Consent/Ajax.html delete mode 100644 Resources/Private/Templates/Consent/Index.html delete mode 100644 Resources/Private/Templates/Preview/t3sbs_assets.html create mode 100644 Resources/Public/Backend/RTE/t3sbootstrap.css create mode 100644 Resources/Public/Backend/Style/bestyles.css delete mode 100644 Resources/Public/Backend/bestyles.css delete mode 100644 Resources/Public/Contrib/Modernizr/modernizr.js delete mode 100644 Resources/Public/Icons/chevron.svg delete mode 100644 Resources/Public/JavaScript/Bootstrap.js create mode 100644 Resources/Public/JavaScript/CKEditor/Plugins/CodeBlock/LICENSE.md create mode 100644 Resources/Public/JavaScript/CKEditor/Plugins/CodeBlock/README.md create mode 100644 Resources/Public/JavaScript/CKEditor/Plugins/CodeBlock/lang/contexts.json create mode 100644 Resources/Public/JavaScript/CKEditor/Plugins/CodeBlock/lang/translations/az.po create mode 100644 Resources/Public/JavaScript/CKEditor/Plugins/CodeBlock/lang/translations/cs.po create mode 100644 Resources/Public/JavaScript/CKEditor/Plugins/CodeBlock/lang/translations/da.po create mode 100644 Resources/Public/JavaScript/CKEditor/Plugins/CodeBlock/lang/translations/de.po create mode 100644 Resources/Public/JavaScript/CKEditor/Plugins/CodeBlock/lang/translations/en-au.po create mode 100644 Resources/Public/JavaScript/CKEditor/Plugins/CodeBlock/lang/translations/en.po create mode 100644 Resources/Public/JavaScript/CKEditor/Plugins/CodeBlock/lang/translations/es.po create mode 100644 Resources/Public/JavaScript/CKEditor/Plugins/CodeBlock/lang/translations/et.po create mode 100644 Resources/Public/JavaScript/CKEditor/Plugins/CodeBlock/lang/translations/fr.po create mode 100644 Resources/Public/JavaScript/CKEditor/Plugins/CodeBlock/lang/translations/gl.po create mode 100644 Resources/Public/JavaScript/CKEditor/Plugins/CodeBlock/lang/translations/hu.po create mode 100644 Resources/Public/JavaScript/CKEditor/Plugins/CodeBlock/lang/translations/id.po create mode 100644 Resources/Public/JavaScript/CKEditor/Plugins/CodeBlock/lang/translations/it.po create mode 100644 Resources/Public/JavaScript/CKEditor/Plugins/CodeBlock/lang/translations/ku.po create mode 100644 Resources/Public/JavaScript/CKEditor/Plugins/CodeBlock/lang/translations/lv.po create mode 100644 Resources/Public/JavaScript/CKEditor/Plugins/CodeBlock/lang/translations/nl.po create mode 100644 Resources/Public/JavaScript/CKEditor/Plugins/CodeBlock/lang/translations/no.po create mode 100644 Resources/Public/JavaScript/CKEditor/Plugins/CodeBlock/lang/translations/pl.po create mode 100644 Resources/Public/JavaScript/CKEditor/Plugins/CodeBlock/lang/translations/pt-br.po create mode 100644 Resources/Public/JavaScript/CKEditor/Plugins/CodeBlock/lang/translations/ru.po create mode 100644 Resources/Public/JavaScript/CKEditor/Plugins/CodeBlock/lang/translations/sk.po create mode 100644 Resources/Public/JavaScript/CKEditor/Plugins/CodeBlock/lang/translations/sr-latn.po create mode 100644 Resources/Public/JavaScript/CKEditor/Plugins/CodeBlock/lang/translations/sr.po create mode 100644 Resources/Public/JavaScript/CKEditor/Plugins/CodeBlock/lang/translations/th.po create mode 100644 Resources/Public/JavaScript/CKEditor/Plugins/CodeBlock/lang/translations/tr.po create mode 100644 Resources/Public/JavaScript/CKEditor/Plugins/CodeBlock/lang/translations/uk.po create mode 100644 Resources/Public/JavaScript/CKEditor/Plugins/CodeBlock/lang/translations/zh-cn.po create mode 100644 Resources/Public/JavaScript/CKEditor/Plugins/CodeBlock/package.json create mode 100644 Resources/Public/JavaScript/CKEditor/Plugins/CodeBlock/src/codeblock.js create mode 100644 Resources/Public/JavaScript/CKEditor/Plugins/CodeBlock/src/codeblockcommand.js create mode 100644 Resources/Public/JavaScript/CKEditor/Plugins/CodeBlock/src/codeblockediting.js create mode 100644 Resources/Public/JavaScript/CKEditor/Plugins/CodeBlock/src/codeblockui.js create mode 100644 Resources/Public/JavaScript/CKEditor/Plugins/CodeBlock/src/converters.js create mode 100644 Resources/Public/JavaScript/CKEditor/Plugins/CodeBlock/src/indentcodeblockcommand.js create mode 100644 Resources/Public/JavaScript/CKEditor/Plugins/CodeBlock/src/outdentcodeblockcommand.js create mode 100644 Resources/Public/JavaScript/CKEditor/Plugins/CodeBlock/src/utils.js create mode 100644 Resources/Public/JavaScript/CKEditor/Plugins/CodeBlock/theme/codeblock.css create mode 100644 Resources/Public/JavaScript/CKEditor/Plugins/CodeBlock/theme/icons/codeblock.svg diff --git a/Classes/Backend/EventListener/FlexForm/FlexformEvent.php b/Classes/Backend/EventListener/FlexForm/FlexformEvent.php new file mode 100644 index 00000000..d55a3b4d --- /dev/null +++ b/Classes/Backend/EventListener/FlexForm/FlexformEvent.php @@ -0,0 +1,57 @@ +get('t3sbootstrap'); + + if (array_key_exists('flexformExtend', $extconf) && $extconf['flexformExtend'] === '1') { + + $dataStructure = $event->getDataStructure(); + $identifier = $event->getIdentifier(); + + $ffPath = '/fileadmin/T3SB/FlexForms/'; + + foreach ( $GLOBALS['TCA']['tt_content']['columns']['tx_t3sbootstrap_flexform']['config']['ds'] as $key=>$flexForm ) { + + $flexForms[$key] = substr($flexForm, 46, -4); + } + + if ( array_key_exists($identifier['dataStructureKey'],$flexForms) ) { + + if ($identifier['type'] === 'tca' && $identifier['tableName'] === 'tt_content' + && $identifier['fieldName'] === 'tx_t3sbootstrap_flexform' && $identifier['dataStructureKey']) { + + $file = Environment::getPublicPath() . $ffPath.$flexForms[$identifier['dataStructureKey']].'.xml'; + if (file_exists($file)) { + $content = @file_get_contents($file); + if ($content) { + $dataStructure['sheets']['extraEntry'] = GeneralUtility::xml2array($content); + + $extraDataStructure['sheets']['extraEntry'] = GeneralUtility::xml2array($content); + ArrayUtility::mergeRecursiveWithOverrule($dataStructure, $extraDataStructure); + } + } + } + + $event->setDataStructure($dataStructure); + } + } + } +} diff --git a/Classes/Backend/EventListener/FlexForm/NewsFlexformEvent.php b/Classes/Backend/EventListener/FlexForm/NewsFlexformEvent.php new file mode 100644 index 00000000..974ad802 --- /dev/null +++ b/Classes/Backend/EventListener/FlexForm/NewsFlexformEvent.php @@ -0,0 +1,30 @@ +getDataStructure(); + $identifier = $event->getIdentifier(); + + if ($identifier['type'] === 'tca' && $identifier['tableName'] === 'tt_content' + && ($identifier['dataStructureKey'] === '*,news_pi1' || $identifier['dataStructureKey'] === '*,news_newsliststicky')) { + + $file = GeneralUtility::getFileAbsFileName('EXT:t3sbootstrap/Resources/Private/Extensions/news/Configuration/FlexForms/News.xml'); + $content = @file_get_contents($file); + if ($content) { + $extraDataStructure['sheets']['extraEntry'] = GeneralUtility::xml2array($content); + ArrayUtility::mergeRecursiveWithOverrule($dataStructure, $extraDataStructure); + } + } + + $event->setDataStructure($dataStructure); + } +} diff --git a/Classes/EventListener/TCA/TcaCompilation.php b/Classes/Backend/EventListener/TCA/TcaCompilation.php similarity index 98% rename from Classes/EventListener/TCA/TcaCompilation.php rename to Classes/Backend/EventListener/TCA/TcaCompilation.php index 411a0f5c..0d67314a 100644 --- a/Classes/EventListener/TCA/TcaCompilation.php +++ b/Classes/Backend/EventListener/TCA/TcaCompilation.php @@ -1,7 +1,7 @@ getDefaultBackendStoragePid(); $setup = $configurationManager->getTypoScriptSetup(); - $flexforms = $setup['plugin.']['tx_t3sbootstrap.']['flexform.']; # if FlexFormManipulation - if ( !empty($flexforms) ) { - - $cType = $result['databaseRow']['CType']; + if ( !empty($flexforms) && !empty($result['databaseRow']['CType']) ) { - switch ($cType) { + switch ($result['databaseRow']['CType']) { case 't3sbs_card': $flexformFile = 'cardSetting.'; break; @@ -101,23 +97,30 @@ public function addData(array $result): array $flexformFile = 'bootstrap.'; } - $dataStructure = $result['processedTca']['columns']['tx_t3sbootstrap_flexform']['config']['ds']; + $dataStructure = []; + + if (!empty($result['processedTca']['columns']['tx_t3sbootstrap_flexform'])) { - foreach ($flexforms as $file=>$fields) { - if ( $file == $flexformFile ) { - foreach ($fields as $field=>$mod) { - if ( !empty($mod['add']) ) { - foreach (explode(',',$mod['add']) as $add) { - if (!empty($dataStructure['sheets'])) { - foreach ($dataStructure['sheets'] as $sheetName=>$fieldsInSheet) { - foreach ($fieldsInSheet as $fieldArr) { - foreach ($fieldArr as $fieldName) { - if (!empty($fieldName) && is_array($fieldName)) { - foreach ($fieldName as $key=>$name) { - if ($name['config']['type'] == 'select') { - if (substr($field, 0, -1) == $key) { - array_push($dataStructure['sheets'][$sheetName]['ROOT']['el'][$key]['config']['items'], - [trim($add),lcfirst(GeneralUtility::underscoredToUpperCamelCase(trim($add)))]); + $dataStructure = $result['processedTca']['columns']['tx_t3sbootstrap_flexform']['config']['ds']; + + $addArr = []; + + foreach ($flexforms as $file=>$fields) { + if ( $file == $flexformFile ) { + foreach ($fields as $field=>$mod) { + if ( !empty($mod['add']) ) { + foreach (explode(',',$mod['add']) as $add) { + if (!empty($dataStructure['sheets'])) { + foreach ($dataStructure['sheets'] as $sheetName=>$fieldsInSheet) { + foreach ($fieldsInSheet as $fieldArr) { + foreach ($fieldArr as $fieldName) { + if (!empty($fieldName) && $fieldName !== 'array' && is_array($fieldName)) { + foreach ($fieldName as $key=>$name) { + if (!empty($name['config']['type']) && $name['config']['type'] == 'select') { + if (substr($field, 0, -1) == $key) { + $addArr = ['label' => trim($add), 'value' => lcfirst(GeneralUtility::underscoredToUpperCamelCase(trim($add)))]; + array_push($dataStructure['sheets'][$sheetName]['ROOT']['el'][$key]['config']['items'], $addArr); + } } } } @@ -127,20 +130,20 @@ public function addData(array $result): array } } } - } - if ($mod['reduce']) { - foreach( explode(',',$mod['reduce']) as $reduce ) { - if (!empty($dataStructure['sheets'])) { - foreach ($dataStructure['sheets'] as $sheetName=>$fieldsInSheet) { - foreach ($fieldsInSheet as $fieldArr) { - foreach ($fieldArr as $fieldName) { - if (!empty($fieldName) && is_array($fieldName)) { - foreach ($fieldName as $key=>$name) { - if ($name['config']['type'] == 'select') { - if (substr($field, 0, -1) == $key) { - foreach ($name['config']['items'] as $k=>$item ) { - if (trim($item[1]) == trim($reduce)) { - unset($dataStructure['sheets'][$sheetName]['ROOT']['el'][$key]['config']['items'][$k]); + if ($mod['reduce']) { + foreach( explode(',',$mod['reduce']) as $reduce ) { + if (!empty($dataStructure['sheets'])) { + foreach ($dataStructure['sheets'] as $sheetName=>$fieldsInSheet) { + foreach ($fieldsInSheet as $fieldArr) { + foreach ($fieldArr as $fieldName) { + if (!empty($fieldName) && $fieldName !== 'array' && is_array($fieldName)) { + foreach ($fieldName as $key=>$name) { + if (!empty($name['config']['type']) && $name['config']['type'] == 'select') { + if (substr($field, 0, -1) == $key) { + foreach ($name['config']['items'] as $k=>$item ) { + if (!empty($item['value']) && trim($item['value']) == trim($reduce)) { + unset($dataStructure['sheets'][$sheetName]['ROOT']['el'][$key]['config']['items'][$k]); + } } } } @@ -156,7 +159,6 @@ public function addData(array $result): array } } } - $result['processedTca']['columns']['tx_t3sbootstrap_flexform']['config']['ds'] = $dataStructure; } diff --git a/Classes/Backend/Preview/DefaultPreviewRenderer.php b/Classes/Backend/Preview/DefaultPreviewRenderer.php index 346030a9..6d9f9555 100644 --- a/Classes/Backend/Preview/DefaultPreviewRenderer.php +++ b/Classes/Backend/Preview/DefaultPreviewRenderer.php @@ -50,7 +50,6 @@ public function renderPageModulePreviewHeader(GridColumnItem $item): string $outHeader .= parent::linkEditContent(parent::renderText($record['tx_t3sbootstrap_cardheader']), $record) . '
'; } } - if (!empty($record['header'])) { $infoArr = []; parent::getProcessedValue($item, 'header_position,header_layout,header_link', $infoArr); @@ -67,12 +66,85 @@ public function renderPageModulePreviewHeader(GridColumnItem $item): string . $hiddenHeaderNote . '
'; } - $contentTypeLabels = $item->getContext()->getContentTypeLabels(); - $contentType = $contentTypeLabels[$record['CType']]; - $info = '
'.$contentType.'
'; - return $info.$outHeader; + $flexformService = GeneralUtility::makeInstance(FlexFormService::class); + $flexconf = $flexformService->convertFlexFormContentToArray($record['tx_t3sbootstrap_flexform']); + + $flexconfSettings = ''; + + if ($record['CType'] === 't3sbs_card') { + if (!empty($flexconf['effect'])) { + $flexconfSettings .= 'hover_effect=1, '; + } + if (!empty($flexconf['title']['onTop'])) { + $flexconfSettings .= 'title_onTop=1, '; + } + if (!empty($flexconf['button']['enable'])) { + $flexconfSettings .= 'button_link=1, '; + } + if (!empty($flexconf['cardborder'])) { + $flexconfSettings .= 'border=1, '; + } + } + + if ($record['CType'] === 't3sbs_button') { + + if ( !empty($flexconf['style']) ) { + $flexconfSettings .= 'style='.$flexconf['style'].', '; + } + if ( !empty($flexconf['size']) ) { + $flexconfSettings .= 'size='.$flexconf['size'].', '; + } + if ( !empty($flexconf['block']) ) { + $flexconfSettings .= 'block='.$flexconf['block'].', '; + } + if ( !empty($flexconf['outline']) ) { + $flexconfSettings .= 'outline=1, '; + } + } + + if ($record['CType'] == 't3sbs_gallery') { + $flexconfSettings .= 'columns='.$record['imagecols'].', '; + if ( !empty($record['tx_t3sbootstrap_image_ratio'])) { + $flexconfSettings .= 'ratio='.$record['tx_t3sbootstrap_image_ratio'].', '; + } + if ( !empty($record['file_collections'])) { + $flexconfSettings .= 'file_collection_uids='.$record['file_collections'].', '; + } + } + + if ($record['CType'] === 't3sbs_carousel') { + if ( !empty($flexconf['shift']) ) { + $flexconfOut .= 'shift='.$flexconf['shift'].', '; + } + if ( !empty($flexconf['bgOverlay']) ) { + $flexconfOut .= 'bgOverlay=1, '; + } + } + + if ($record['CType'] === 't3sbs_toast') { + if ( !empty($flexconf['animation']) ) { + $flexconfOut .= 'animation=1, '; + } + if ( !empty($flexconf['autohide']) ) { + $flexconfOut .= 'autohide=1'; + } + if ( !empty($flexconf['delay']) ) { + $flexconfOut .= 'delay='.$flexconf['delay'].', '; + } + if ( !empty($flexconf['placement']) ) { + $flexconfOut .= 'placement='.$flexconf['placement'].', '; + } + if ( !empty($flexconf['cookie']) ) { + $flexconfOut .= 'cookie ('.$flexconf['expires'].') days, '; + } + } + + if (!empty($flexconfSettings)) { + $flexconfSettings = '
Settings: ' . rtrim($flexconfSettings, ', ') . '
'; + } + return $flexconfSettings.$outHeader; } @@ -82,7 +154,8 @@ public function renderPageModulePreviewHeader(GridColumnItem $item): string */ public function renderPageModulePreviewContent(GridColumnItem $item): string { - $out = ''; + + $preview = ''; $record = $item->getRecord(); $content = parent::renderPageModulePreviewContent($item); @@ -100,125 +173,41 @@ public function renderPageModulePreviewContent(GridColumnItem $item): string } $contentTypeLabels = $item->getContext()->getContentTypeLabels(); - $languageService = parent::getLanguageService(); - $contentType = $contentTypeLabels[$record['CType']]; if (!empty($contentType)) { - - $extconf = GeneralUtility::makeInstance(ExtensionConfiguration::class)->get('t3sbootstrap'); - - $maxCharacters = $extconf['previewCropMaxCharacters']; - $append = ' ...'; - $flexconfOut = ''; - if (!empty($record['subheader'])) { - $out .= parent::linkEditContent(parent::renderText($record['subheader']), $record) . '
'; + $preview .= parent::linkEditContent(parent::renderText($record['subheader']), $record) . '
'; } if (!empty($record['bodytext'])) { + $extconf = GeneralUtility::makeInstance(ExtensionConfiguration::class)->get('t3sbootstrap'); + $maxCharacters = $extconf['previewCropMaxCharacters']; + $append = ' ...'; if (!empty($extconf['previewCrop'])) { $contentObject = GeneralUtility::makeInstance(ContentObjectRenderer::class); $text = $contentObject->cropHTML($record['bodytext'], $maxCharacters . '|' . $append . '|' . true); } else { $text = $record['bodytext']; } - $out .= parent::linkEditContent(parent::renderText($text), $record); - } - - if ($record['CType'] == 't3sbs_gallery') { - $out .= 'Columns: '.$record['imagecols']; - if ( !empty($record['tx_t3sbootstrap_image_ratio'])) { - $out .= '
Aspect ratio: '.$record['tx_t3sbootstrap_image_ratio']; - } - if ( !empty($record['file_collections'])) { - $out .= '
File collection UID(s): '.$record['file_collections']; - } - } - if ($record['CType'] === 't3sbs_card') { - if ( !empty($record['bodytext']) ) { - if ($extconf['previewCrop']) { - $contentObject = GeneralUtility::makeInstance(ContentObjectRenderer::class); - $text = $contentObject->cropHTML($record['bodytext'], $maxCharacters . '|' . $append . '|' . true); - } else { - $text = $record['bodytext']; - } - $out .= parent::linkEditContent(parent::renderText($text), $record) . '
'; - } - if ( !empty($record['tx_t3sbootstrap_bodytext']) ) { - if ($extconf['previewCrop']) { - $contentObject = GeneralUtility::makeInstance(ContentObjectRenderer::class); - $text = $contentObject->cropHTML($record['tx_t3sbootstrap_bodytext'], $maxCharacters . '|' . $append . '|' . true); - } else { - $text = $record['tx_t3sbootstrap_bodytext']; - } - $out .= parent::linkEditContent(parent::renderText($text), $record) . '
'; - } - } - if ($record['CType'] === 't3sbs_carousel') { - $flexformService = GeneralUtility::makeInstance(FlexFormService::class); - $flexconf = $flexformService->convertFlexFormContentToArray($record['tx_t3sbootstrap_flexform']); - if ( !empty($flexconf['shift']) ) { - $flexconfOut .= '
- Shift: '.$flexconf['shift']; - } - if ( !empty($flexconf['bgOverlay']) ) { - $flexconfOut .= '
- Background-Overlay'; - } - } - if ($record['CType'] === 't3sbs_button') { - $flexformService = GeneralUtility::makeInstance(FlexFormService::class); - $flexconf = $flexformService->convertFlexFormContentToArray($record['tx_t3sbootstrap_flexform']); - - if ( !empty($flexconf['style']) ) { - $flexconfOut .= '
- Style: '.$flexconf['style']; - } - if ( !empty($flexconf['size']) ) { - $flexconfOut .= '
- Size: '.$flexconf['size']; - } - if ( !empty($flexconf['block']) ) { - $flexconfOut .= '
- Block: '.$flexconf['block']; - } - if ( !empty($flexconf['outline']) ) { - $flexconfOut .= '
- Outline'; - } + $preview .= parent::linkEditContent(parent::renderText($text), $record); } - if ($record['CType'] === 't3sbs_toast') { - $flexformService = GeneralUtility::makeInstance(FlexFormService::class); - $flexconf = $flexformService->convertFlexFormContentToArray($record['tx_t3sbootstrap_flexform']); - - if ( !empty($flexconf['animation']) ) { - $flexconfOut .= '
- Animation'; - } - if ( !empty($flexconf['autohide']) ) { - $flexconfOut .= '
- Autohide'; - } - if ( !empty($flexconf['delay']) ) { - $flexconfOut .= '
- Delay: '.$flexconf['delay']; - } - if ( !empty($flexconf['placement']) ) { - $flexconfOut .= '
- Placement: '.$flexconf['placement']; - } - if ( !empty($flexconf['cookie']) ) { - $flexconfOut .= '
- Cookie is set ('.$flexconf['expires'].') days'; - } - } - - if (!empty($flexconfOut)) - $out = $out.substr($flexconfOut, 6); $media = !empty($record['assets']) ?: $record['image']; if ($media) { $field = !empty($record['assets']) ? 'assets' : 'image'; - $out .= '
'. parent::linkEditContent($this->getThumbCodeUnlinked($record, 'tt_content', $field), $record) . '
'; + $preview .= '
'. + parent::linkEditContent($this->getThumbCodeUnlinked($record, 'tt_content', $field), $record) . '
'; } } else { + $languageService = parent::getLanguageService(); $message = sprintf( - $languageService->sL('LLL:EXT:core/Resources/Private/Language/locallang_core.xlf:labels.noMatchingValue'), - $record['CType'] + $languageService->sL('LLL:EXT:core/Resources/Private/Language/locallang_core.xlf:labels.noMatchingValue'), + $record['CType'] ); - $out .= '' . htmlspecialchars($message) . ''; + $preview .= '' . htmlspecialchars($message) . ''; } - return $out; + return $preview; } diff --git a/Classes/Backend/Preview/T3sbPreviewRenderer.php b/Classes/Backend/Preview/T3sbPreviewRenderer.php deleted file mode 100644 index 97151962..00000000 --- a/Classes/Backend/Preview/T3sbPreviewRenderer.php +++ /dev/null @@ -1,420 +0,0 @@ -tcaRegistry = $tcaRegistry; - $this->containerFactory = $containerFactory; - $this->containerColumnConfigurationService = $containerColumnConfigurationService; - $this->containerService = $containerService; - } - - - /** - * Dedicated method for rendering preview header HTML for - * the page module only. Receives $item which is an instance of - * GridColumnItem which has a getter method to return the record. - */ - public function renderPageModulePreviewHeader(GridColumnItem $item): string - { - $record = $item->getRecord(); - $itemLabels = $item->getContext()->getItemLabels(); - $outHeader = ''; - - if ( !empty($record['header']) ) { - $infoArr = []; - parent::getProcessedValue($item, 'header_position,header_layout,header_link', $infoArr); - $hiddenHeaderNote = ''; - // If header layout is set to 'hidden', display an accordant note: - if ($record['header_layout'] == 100) { - $hiddenHeaderNote = ' [' . htmlspecialchars(parent::getLanguageService() - ->sL('LLL:EXT:frontend/Resources/Private/Language/locallang_ttc.xlf:header_layout.I.6')) . ']'; - } - $outHeader = $record['date'] - ? htmlspecialchars($itemLabels['date'] . ' ' . BackendUtility::date($record['date'])) . '
' - : ''; - $outHeader .= '' . $this->linkEditContent(parent::renderText($record['header']), $record) - . $hiddenHeaderNote . '
'; - } - - if ( !empty($record['subheader']) ) { - $outHeader .= parent::linkEditContent(parent::renderText($record['subheader']), $record) . '
'; - } - - $contentTypeLabels = $item->getContext()->getContentTypeLabels(); - $contentType = $contentTypeLabels[$record['CType']]; - - switch ($record['CType']) { - case 'tabs_tab': - $info = '
'.$contentType.'
'; - break; - case 'collapsible_accordion': - $info = '
'.$contentType.'
'; - break; - default: - $info = '
'.$contentType.'
'; - } - - return $info.$outHeader; - } - - - public function renderPageModulePreviewContent(GridColumnItem $item): string - { - $pageRenderer = GeneralUtility::makeInstance(PageRenderer::class); - $pageRenderer->loadRequireJsModule( - 'TYPO3/CMS/T3sbootstrap/Bootstrap', - 'function() { console.log("Loaded bootstrap.js by t3sbootstrap!"); }' - ); - $pageRenderer->addCssFile('EXT:t3sbootstrap/Resources/Public/Backend/bestyles.css'); - - $content = parent::renderPageModulePreviewContent($item); - $context = $item->getContext(); - $record = $item->getRecord(); - $grid = GeneralUtility::makeInstance(Grid::class, $context); - try { - $container = $this->containerFactory->buildContainer((int)$record['uid']); - } catch (Exception $e) { - // not a container - return $content; - } - - $out = ''; - $flexformService = GeneralUtility::makeInstance(FlexFormService::class); - $flexconf = $flexformService->convertFlexFormContentToArray($record['tx_t3sbootstrap_flexform']); - - if ($record['CType'] == 'two_columns' || $record['CType'] == 'three_columns' || $record['CType'] == 'four_columns' - || $record['CType'] == 'six_columns' || $record['CType'] == 'row_columns') { - - if ($record['CType'] == 'row_columns') { - if (!empty($flexconf['xs_rowclass'])) { - $out .= '
- row-cols-*: '.$flexconf['xs_rowclass']; - } - if (!empty($flexconf['sm_rowclass'])) { - $out .= '
- row-cols-sm: '.$flexconf['sm_rowclass']; - } - if (!empty($flexconf['md_rowclass'])) { - $out .= '
- row-cols-md: '.$flexconf['md_rowclass']; - } - if (!empty($flexconf['lg_rowclass'])) { - $out .= '
- row-cols-lg: '.$flexconf['lg_rowclass']; - } - if (!empty($flexconf['xl_rowclass'])) { - $out .= '
- row-cols-xl: '.$flexconf['xl_rowclass']; - } - if (!empty($flexconf['xxl_rowclass'])) { - $out .= '
- row-cols-xxl: '.$flexconf['xxl_rowclass']; - } - } else { - if ( !empty($flexconf['equalWidth']) ) { - $out .= '
- Equal Width'; - } - } - if ( !empty($flexconf['horizontalGutters'])) { - $out .= '
- Horizontal gutters: '.$flexconf['horizontalGutters']; - } - if ( !empty($flexconf['verticalGutters'])) { - $out .= '
- Vertical gutters: '.$flexconf['verticalGutters']; - } - - } - if ($record['CType'] == 'two_columns') { - if ( !empty($flexconf['bgimages']) ) { - $out .= '
- Has Background-image'; - } - if ( !empty($flexconf['colHeight']) ) { - $out .= '
- Min.-Height of the Element: '.$flexconf['colHeight'].'px'; - } - } - if ($record['CType'] == 'button_group') { - if ( !empty($flexconf['vertical']) ) { - $out .= '
- Vertical: '.$flexconf['vertical']; - } - if ( !empty($flexconf['size']) ) { - $out .= '
- Size: '.$flexconf['size']; - } - if ( !empty($flexconf['align']) ) { - $out .= '
- Align: '.$flexconf['align']; - } - if ( !empty($flexconf['fixedPosition']) ) { - $out .= '
- FixedPosition: '.$flexconf['fixedPosition']; - } - } - if ($record['CType'] == 'collapsible_accordion') { - $active = !empty($flexconf['active']) ? 'TRUE' : 'FALSE'; - $out .= '
- Active: '.$active; - } - if ($record['CType'] == 'collapsible_container' && is_string($flexconf['appearance'])) { - $out .= '
- Appearance: '.ucfirst($flexconf['appearance']); - } - if ($record['CType'] == 'carousel_container') { - if ( !empty($flexconf['width']) ) { - $out .= '
- Width: '.$flexconf['width'].'px'; - } - if ( !empty($flexconf['ratio']) ) { - $out .= '
- Aspect ratio: '.$flexconf['ratio']; - } - if ( !empty($flexconf['interval']) ) { - $out .= '
- Interval: '.$flexconf['interval']; - } - if ( !empty($flexconf['link']) ) { - $out .= '
- Link: '.$flexconf['link']; - } - if ( !empty($flexconf['zoom']) ) { - $out .= '
- Zoom'; - } - } - if ($record['CType'] == 'swiper_container') { - if ( !empty($flexconf['width']) ) { - $out .= '
- Width: '.$flexconf['width'].'px'; - } - if ( !empty($flexconf['ratio']) ) { - $out .= '
- Aspect ratio: '.$flexconf['ratio']; - } - if ( !empty($flexconf['slidesPerView']) ) { - $out .= '
- Slides per view: '.$flexconf['slidesPerView']; - } - if ( !empty($flexconf['delay']) ) { - $out .= '
- Delay between transitions (in ms): '.$flexconf['delay']; - } - } - if (!empty($flexconf['card_wrapper']) && $record['CType'] == 'card_wrapper') { - $out .= '
- Wrapper: Card '.$flexconf['card_wrapper']; - if ( !empty($flexconf['visibleCards']) ) { - if ($flexconf['card_wrapper'] !== 'flipper' && $flexconf['card_wrapper'] !== 'columns') { - $out .= '
- Visible Cards: '.$flexconf['visibleCards']; - } - } - if ( !empty($flexconf['interval']) ) { - $out .= '
- Interval: '.$flexconf['interval']; - } - } - if ($record['CType'] == 'background_wrapper') { - if ( !empty($flexconf['bgwlink']) ) { - $out .= '
- Link the entire Content Element'; - } - if ( !empty($flexconf['origImage']) ) { - $out .= '
- Image inside (no background-image but a real image)'; - } - if ( !empty($flexconf['bgAttachmentFixed']) ) { - $out .= '
- Background-attachment - fixed'; - } - if ( !empty($flexconf['enableAutoheight']) ) { - $out .= '
- Enable content overlay and autoheight for background-image'; - } - if ( !empty($flexconf['paddingTopBottom']) ) { - $out .= '
- Padding (top and bottom ): '.$flexconf['paddingTopBottom'].' rem'; - } - if ( !empty($flexconf['noMediaPaddingTopBottom']) ) { - $out .= '
- Padding (top and bottom ): '.$flexconf['noMediaPaddingTopBottom'].' rem'; - } - if ( !empty($flexconf['imgGrayscale']) ) { - $out .= '
- Grayscale: '.$flexconf['imgGrayscale']; - } - if ( !empty($flexconf['imgSepia']) ) { - $out .= '
- Sepia: '.$flexconf['imgSepia']; - } - if ( !empty($flexconf['imgOpacity']) ) { - $out .= '
- Opacity: '.$flexconf['imgOpacity']; - } - if ( !empty($flexconf['imageRaster']) ) { - $out .= '
- Raster over the image/color'; - } - } - if ($record['CType'] == 'parallax_wrapper') { - if ( !empty($flexconf['speedFactor']) ) { - $out .= '
- Speed Factor: '.$flexconf['speedFactor']; - } - if ( !empty($flexconf['addHeight']) ) { - $out .= '
- Surcharge height to parallax view: '.$flexconf['addHeight'].'px'; - } - if ( !empty($flexconf['mobile']) ) { - $out .= '
- Disable on mobile devices!'; - } - } - if ($record['CType'] === 'modal') { - - if ( !empty($flexconf['animation']) ) { - $out .= '
- Animation'; - } - if ( !empty($flexconf['size']) ) { - $out .= '
- Size: '.$flexconf['size']; - } - if ( !empty($flexconf['buttonText']) ) { - $out .= '
- Button Text: '.$flexconf['buttonText']; - } - if ( !empty($flexconf['button']) ) { - $out .= '
- Button: '.$flexconf['button']; - } - if ( !empty($flexconf['style']) ) { - $out .= '
- Style: '.$flexconf['style']; - } - if ( !empty($flexconf['fixedPosition']) ) { - $out .= '
- Fixed Position'; - } - } - if ($record['CType'] == 'tabs_container') { - if ( !empty($flexconf['display_type']) && is_string($flexconf['display_type']) ) { - $out .= '
- Appearance: '.ucfirst($flexconf['display_type']); - } - if ( !empty($flexconf['switch_effect']) ) { - $out .= '
- Fade effect: '.$flexconf['switch_effect']; - } - if ( !empty($flexconf['fill']) ) { - $out .= '
- Fill and justify: '.$flexconf['fill']; - } - } - if ($record['CType'] == 'masonry_wrapper') { - $colclass = !empty($flexconf['colclass']) ? $flexconf['colclass'] : 'col-sm-6 col-lg-4 mb-4'; - $out .= '
- Colclass: '.$colclass; - } - - if ($record['CType'] === 'toast_container') { - if ( !empty($flexconf['animation']) ) { - $out .= '
- Animation'; - } - if ( !empty($flexconf['autohide']) ) { - $out .= '
- Autohide'; - } - if ( !empty($flexconf['delay']) ) { - $out .= '
- Delay: '.$flexconf['delay']; - } - if ( !empty($flexconf['placement']) ) { - $out .= '
- Placement: '.$flexconf['placement']; - } - if ( !empty($flexconf['cookie']) ) { - $out .= '
- Cookie is set ('.$flexconf['expires'].') days'; - } - } - - $flexconfOut = ''; - if ($out) - $flexconfOut .= parent::linkEditContent('
'.substr($out, 6).'
', $record); - - $containerGrid = $this->tcaRegistry->getGrid($record['CType']); - - foreach ($containerGrid as $row => $cols) { - $rowObject = GeneralUtility::makeInstance(GridRow::class, $context); - foreach ($cols as $col) { - $newContentElementAtTopTarget = $this->containerService->getNewContentElementAtTopTargetInColumn($container, $col['colPos']); - if ($this->containerColumnConfigurationService->isMaxitemsReached($container, $col['colPos'])) { - $columnObject = GeneralUtility::makeInstance(ContainerGridColumn::class, $context, $col, $container, $newContentElementAtTopTarget, false); - } else { - $columnObject = GeneralUtility::makeInstance(ContainerGridColumn::class, $context, $col, $container, $newContentElementAtTopTarget); - } - $rowObject->addColumn($columnObject); - if (!empty($col['colPos'])) { - $records = $container->getChildrenByColPos($col['colPos']); - foreach ($records as $contentRecord) { - $columnItem = GeneralUtility::makeInstance(ContainerGridColumnItem::class, $context, $columnObject, $contentRecord, $container); - $columnObject->addItem($columnItem); - } - } - } - $grid->addRow($rowObject); - } - - $gridTemplate = $this->tcaRegistry->getGridTemplate($record['CType']); - - $view = GeneralUtility::makeInstance(StandaloneView::class); - $view->setPartialRootPaths(['EXT:backend/Resources/Private/Partials/', 'EXT:container/Resources/Private/Partials/']); - $view->setTemplatePathAndFilename($gridTemplate); - - $view->assign('hideRestrictedColumns', (bool)(BackendUtility::getPagesTSconfig($context->getPageId())['mod.']['web_layout.']['hideRestrictedCols'] ?? false)); - $view->assign('newContentTitle', parent::getLanguageService()->getLL('newContentElement')); - $view->assign('newContentTitleShort', parent::getLanguageService()->getLL('content')); - $view->assign('allowEditContent', parent::getBackendUser()->check('tables_modify', 'tt_content')); - $view->assign('containerGrid', $grid); - $view->assign('defaultRecordDirectory', 'Record'); - - $rendered = $view->render(); - - $media = !empty($record['assets']) ?: $record['image']; - if ($media) { - $field = !empty($record['assets']) ? 'assets' : 'image'; - $flexconfOut .= '
'. parent::linkEditContent(parent::getThumbCodeUnlinked($record, 'tt_content', $field), $record) . '
'; - } - - $extconf = GeneralUtility::makeInstance(ExtensionConfiguration::class)->get('t3sbootstrap'); - - if ($extconf['previewClosedCollapsible']) { - $newContent = '

-
'.$rendered.'
'; - } else { - $newContent = '

-
'.$rendered.'
'; - } - - return $flexconfOut.$newContent; - } - - - /** - * Dedicated method for wrapping a preview header and body HTML. - */ - public function wrapPageModulePreview(string $previewHeader, string $previewContent, GridColumnItem $item): string - { - $content = '' . $previewHeader . $previewContent . ''; - if ($item->isDisabled()) { - return '' . $content . ''; - } - - return $content; - } - -} diff --git a/Classes/Command/CdnToLocal.php b/Classes/Command/CdnToLocal.php index 3c0634a7..36f10817 100644 --- a/Classes/Command/CdnToLocal.php +++ b/Classes/Command/CdnToLocal.php @@ -61,15 +61,12 @@ protected function execute(InputInterface $input, OutputInterface $output) # check FA version & settings $extConf = GeneralUtility::makeInstance(ExtensionConfiguration::class)->get('t3sbootstrap'); if ( !empty($extConf['fontawesomeCss']) ) { - if ( (int)$extConf['fontawesomeCss'] < 3 ) { - # v5 - if ( (int)$settings['cdn']['fontawesome'] > 5 ) { - $settings['cdn']['fontawesome'] = $settings['cdn']['fontawesome5latest']; - } - } elseif ( (int)$extConf['fontawesomeCss'] > 2 ) { + if ( (int)$extConf['fontawesomeCss'] > 2 ) { # v6 if ( (int)$settings['cdn']['fontawesome'] < 6 ) { $settings['cdn']['fontawesome'] = $settings['cdn']['fontawesome6latest']; + } else { + $settings['cdn']['fontawesome'] = (int)$settings['cdn']['fontawesome']; } } } else { diff --git a/Classes/Command/CustomScss.php b/Classes/Command/CustomScss.php index 8ebc5568..578037ba 100644 --- a/Classes/Command/CustomScss.php +++ b/Classes/Command/CustomScss.php @@ -211,7 +211,7 @@ private function writeCustomFile($customPath, $customFileName, $settings, $name) } $customContent = $name == '_variables' ? '// Overrides Bootstrap variables'.PHP_EOL.'// $enable-shadows: true;'.PHP_EOL.'// $enable-gradients: true;'.PHP_EOL.'// $enable-negative-margins: true;' : '// Your own SCSS'; if ( $settings['bootswatch'] ) { - $customContent = file_get_contents($settings['bootswatchURL'].strtolower($settings['bootswatch']).'/'.$name.'.scss'); + $customContent = @file_get_contents($settings['bootswatchURL'].strtolower($settings['bootswatch']).'/'.$name.'.scss'); if ($name == '_variables') { $customContent = str_replace(' !default', '', $customContent); } diff --git a/Classes/Components/Button.php b/Classes/Components/Button.php index 17e5fdb7..920b3e34 100644 --- a/Classes/Components/Button.php +++ b/Classes/Components/Button.php @@ -62,13 +62,13 @@ public function getProcessedData(array $processedData, array $flexconf, array $p $processedData['headerPosition'] = $headerPosition; - if ( $flexconf['fixedPosition'] ) { + if ( !empty($flexconf['fixedPosition']) ) { $typolinkButtonClass .= ' d-none fixedPosition fixedPosition-'.$flexconf['fixedPosition']; $typolinkButtonClass .= !empty($flexconf['rotate']) ? ' rotateFixedPosition rotate-'.$flexconf['rotate'] : ''; $processedData['fixedButton'] = $flexconf['fixedPosition']; } - $processedData['linkTitle'] = $flexconf['linkTitle']; + $processedData['linkTitle'] = !empty($flexconf['linkTitle']) ? $flexconf['linkTitle'] : ''; $processedData['slideInButton'] = FALSE; $processedData['slideInButtonFaIcon'] = FALSE; diff --git a/Classes/Components/Carousel.php b/Classes/Components/Carousel.php index ed9f7c4d..4cabdc80 100644 --- a/Classes/Components/Carousel.php +++ b/Classes/Components/Carousel.php @@ -90,14 +90,15 @@ public function getProcessedData(array $processedData, array $flexconf, array $p $processedData['localVideoPath'] = '/'.$file->getStorage()->getConfiguration()['basePath'].substr($file->getIdentifier(), 1); } $processedData['autoplay'] = $file->getProperties()['autoplay']; - $processedData['loop'] = $flexconf['loop']; - $processedData['muted'] = $file->getProperties()['autoplay'] ? 1 : $flexconf['muted']; - $processedData['playsinline'] = $flexconf['playsinline']; + $processedData['loop'] = !empty($flexconf['loop']) ? $flexconf['loop'] : FALSE; + $muted = !empty($flexconf['muted']) ? $flexconf['muted'] : FALSE; + $processedData['muted'] = !empty($file->getProperties()['autoplay']) ? TRUE : $muted; + $processedData['playsinline'] = !empty($flexconf['playsinline']) ? TRUE : FALSE; if ($processedData['data']['header'] || $processedData['data']['bodytext'] || ( $processedData['data']['header_link'] && $parentflexconf['link'] == 'button') ) { $processedData['controls'] = 0; } else { - $processedData['controls'] = $flexconf['controls']; + $processedData['controls'] = !empty($flexconf['controls']) ? $flexconf['controls'] : 0; } } diff --git a/Classes/Components/Toast.php b/Classes/Components/Toast.php index 6730b9ff..aaa43ecc 100644 --- a/Classes/Components/Toast.php +++ b/Classes/Components/Toast.php @@ -23,12 +23,12 @@ public function getProcessedData(array $processedData, array $flexconf): array $processedData['autohide'] = $flexconf['autohide'] ? 'true' : 'false'; $processedData['delay'] = $flexconf['delay']; $processedData['style'] .= !empty($flexconf['toastwidth']) ? ' width:'.$flexconf['toastwidth'].'px;' : ''; - if ($flexconf['placement'] && str_starts_with($flexconf['placement'], 'top-0')) { + if (!empty($flexconf['placement']) && str_starts_with($flexconf['placement'], 'top-0')) { $processedData['placement'] = ' '.str_replace('top-0', 'top-70', $flexconf['placement']); } else { - $processedData['placement'] = ' '.$flexconf['placement']; + $processedData['placement'] = ' top-0 start-50 translate-middle-x'; } - $processedData['cookie'] = $flexconf['cookie']; + $processedData['cookie'] = !empty($flexconf['cookie']) ? TRUE : FALSE; $processedData['expires'] = !empty($flexconf['expires']) ? $flexconf['expires'] : ''; $processedData['style'] .= ' z-index:1;'; diff --git a/Classes/ContentElements/Menu.php b/Classes/ContentElements/Menu.php index 38a357f3..ad38d0a5 100644 --- a/Classes/ContentElements/Menu.php +++ b/Classes/ContentElements/Menu.php @@ -21,9 +21,11 @@ class Menu implements SingletonInterface public function getProcessedData(array $processedData, array $flexconf, string $cType): array { $processedData['menudirection'] = ' '.$flexconf['menudirection']; - $processedData['menupills'] = $flexconf['menupills'] ? ' nav-pills' :''; - $processedData['menuHorizontalAlignment'] = !empty($flexconf['menudirection']) && $flexconf['menudirection'] == 'flex-row' - ? ' '.$flexconf['menuHorizontalAlignment'] :''; + $processedData['menupills'] = !empty($flexconf['menupills']) ? ' nav-pills' :''; + if (!empty($flexconf['menudirection']) && $flexconf['menudirection'] == 'flex-row') { + $processedData['menuHorizontalAlignment'] = !empty($flexconf['menuHorizontalAlignment']) + ? ' '.$flexconf['menuHorizontalAlignment'] : ' justify-content-end'; + } if ( $cType == 'menu_section' ) { $processedData['pageLink'] = FALSE; # if more than 1 page for section-menu @@ -39,7 +41,7 @@ public function getProcessedData(array $processedData, array $flexconf, string $ } } } - if ($flexconf['menuHorizontalAlignment'] == 'nav-fill variant') { + if (!empty($flexconf['menuHorizontalAlignment']) && $flexconf['menuHorizontalAlignment'] == 'nav-fill variant') { $processedData['menupills'] = ''; } diff --git a/Classes/ContentElements/Table.php b/Classes/ContentElements/Table.php index 74eccb23..d35c37d0 100644 --- a/Classes/ContentElements/Table.php +++ b/Classes/ContentElements/Table.php @@ -36,7 +36,7 @@ public function getProcessedData(array $processedData, array $flexconf): array $processedData['tableclass'] = trim($tableclass); $processedData['theadclass'] = !empty($flexconf['theadClass']) ? $flexconf['theadClass'] : ''; $processedData['tableResponsive'] = $flexconf['tableResponsive'] ? TRUE : FALSE; - $processedData['tableResponsiveVariant'] = isset($flexconf['tableResponsiveVariant']) ? TRUE : FALSE; + $processedData['tableResponsiveVariant'] = !empty($flexconf['tableResponsiveVariant']) ? TRUE : FALSE; return $processedData; } diff --git a/Classes/Controller/AbstractController.php b/Classes/Controller/AbstractController.php index e177e0eb..880faf85 100644 --- a/Classes/Controller/AbstractController.php +++ b/Classes/Controller/AbstractController.php @@ -3,6 +3,9 @@ namespace T3SBS\T3sbootstrap\Controller; +use Psr\Http\Message\ResponseInterface; +use T3SBS\T3sbootstrap\Domain\Repository\ConfigRepository; +use T3SBS\T3sbootstrap\Domain\Model\Config; use TYPO3\CMS\Core\Utility\GeneralUtility; use TYPO3\CMS\Core\Database\ConnectionPool; use TYPO3\CMS\Extbase\Mvc\Controller\ActionController; @@ -14,9 +17,6 @@ use TYPO3\CMS\Core\Page\PageRenderer; use TYPO3\CMS\Core\Domain\Repository\PageRepository; use TYPO3\CMS\Extbase\Persistence\Generic\PersistenceManager; -use Psr\Http\Message\ResponseInterface; -use T3SBS\T3sbootstrap\Domain\Repository\ConfigRepository; -use T3SBS\T3sbootstrap\Domain\Model\Config; /* * This file is part of the TYPO3 extension t3sbootstrap. @@ -36,6 +36,7 @@ abstract class AbstractController extends ActionController protected $rootTemplates; protected $persistenceManager; + /** * init all actions */ @@ -43,11 +44,13 @@ public function initializeAction() { $site = self::getCurrentSite(); $this->rootPageId = $site->getRootPageId(); - $this->currentUid = (int) GeneralUtility::_GET('id'); + $this->currentUid = (int) $this->request->getQueryParams()['id']; $this->isSiteroot = $this->rootPageId === $this->currentUid ? TRUE : FALSE; $this->tcaColumns = $GLOBALS['TCA']['tx_t3sbootstrap_domain_model_config']['columns']; $this->isAdmin = $GLOBALS['BE_USER']->isAdmin(); + $this->configRepository = GeneralUtility::makeInstance(ConfigRepository::class); $this->rootConfig = $this->configRepository->findOneByPid($this->rootPageId); + $this->persistenceManager = GeneralUtility::makeInstance(PersistenceManager::class); $queryBuilder = GeneralUtility::makeInstance(ConnectionPool::class)->getQueryBuilderForTable('sys_template'); $this->rootTemplates = $queryBuilder @@ -59,11 +62,6 @@ public function initializeAction() ->executeQuery()->fetchAll(); $pageRenderer = GeneralUtility::makeInstance(PageRenderer::class); - $pageRenderer->addCssFile('EXT:t3sbootstrap/Resources/Public/Backend/bestyles.css'); - $pageRenderer->loadRequireJsModule( - 'TYPO3/CMS/T3sbootstrap/Bootstrap', - 'function() { console.log("Loaded bootstrap.js by t3sbootstrap!"); }' - ); } @@ -149,9 +147,9 @@ protected function getFieldsOptions(): array $var = GeneralUtility::underscoredToLowerCamelCase($field).'Options'; foreach ( $columns['config']['items'] as $key=>$entry ) { $option = new \stdClass(); - $option->key = $entry[1]; - $option->value = $entry[0]; - $fieldsOptions[$var][$entry[1]] = $option; + $option->key = $entry['value']; + $option->value = $entry['label']; + $fieldsOptions[$var][$entry['value']] = $option; } } } @@ -557,7 +555,7 @@ protected function setDefaults(Config $newConfig): Config protected function getCurrentSite(): SiteInterface { $matcher = GeneralUtility::makeInstance(SiteMatcher::class); - return $matcher->matchByPageId((int) GeneralUtility::_GET('id')); + return $matcher->matchByPageId((int) $this->request->getQueryParams()['id']); } @@ -590,7 +588,7 @@ protected function getTreeList($id, $depth, $begin = 0, $permsClause = ''): stri $theList .= ',' . $row['uid']; } if ($depth > 1) { - $theSubList = $this->getTreeList($row['uid'], $depth - 1, $begin - 1, $permsClause); + $theSubList = self::getTreeList($row['uid'], $depth - 1, $begin - 1, $permsClause); if (!empty($theList) && !empty($theSubList) && ($theSubList[0] !== ',')) { $theList .= ','; } diff --git a/Classes/Controller/ConfigController.php b/Classes/Controller/ConfigController.php index 385ed480..c95aa4c7 100644 --- a/Classes/Controller/ConfigController.php +++ b/Classes/Controller/ConfigController.php @@ -3,15 +3,20 @@ namespace T3SBS\T3sbootstrap\Controller; -use TYPO3\CMS\Core\Utility\GeneralUtility; -use TYPO3\CMS\Core\Utility\RootlineUtility; -use TYPO3\CMS\Backend\Utility\BackendUtility; -use TYPO3\CMS\Core\Configuration\ExtensionConfiguration; +use Psr\Http\Message\ResponseInterface; use T3SBS\T3sbootstrap\Domain\Repository\ConfigRepository; use T3SBS\T3sbootstrap\Domain\Model\Config; -use TYPO3\CMS\Extbase\Persistence\Generic\PersistenceManager; use TYPO3\CMS\Backend\Template\ModuleTemplateFactory; -use Psr\Http\Message\ResponseInterface; +use TYPO3\CMS\Backend\Utility\BackendUtility; +use TYPO3\CMS\Backend\Attribute\Controller; +use TYPO3\CMS\Core\Configuration\ExtensionConfiguration; +use TYPO3\CMS\Core\Messaging\FlashMessageService; +use TYPO3\CMS\Core\Messaging\FlashMessage; +use TYPO3\CMS\Core\Messaging\FlashMessageQueue; +use TYPO3\CMS\Core\Type\ContextualFeedbackSeverity; +use TYPO3\CMS\Core\Utility\GeneralUtility; +use TYPO3\CMS\Core\Utility\RootlineUtility; +use TYPO3\CMS\Core\Utility\ExtensionManagementUtility; /* * This file is part of the TYPO3 extension t3sbootstrap. @@ -19,20 +24,13 @@ * For the full copyright and license information, please read the * LICENSE file that was distributed with this source code. */ -class ConfigController extends AbstractController +final class ConfigController extends AbstractController { - protected ModuleTemplateFactory $moduleTemplateFactory; - public function __construct( - ConfigRepository $configRepository, - PersistenceManager $persistenceManager, - ModuleTemplateFactory $moduleTemplateFactory + private ModuleTemplateFactory $moduleTemplateFactory ) { - $this->configRepository = $configRepository ?? GeneralUtility::makeInstance(ConfigRepository::class); - $this->persistenceManager = $persistenceManager ?? GeneralUtility::makeInstance(PersistenceManager::class); - $this->moduleTemplateFactory = $moduleTemplateFactory; } /** @@ -49,7 +47,7 @@ public function initializeAction() public function listAction(bool $deleted = FALSE, bool $created = FALSE, bool $updateSss = FALSE): ResponseInterface { if ( $this->isSiteroot && $this->rootPageId ) { - $pidList = $this->getTreeList($this->rootPageId, 999999, 0, '1'); + $pidList = parent::getTreeList($this->rootPageId, 999999, 0, '1'); $allConfig = []; foreach ( $this->configRepository->findAll() as $config ) { if (GeneralUtility::inList($pidList, $config->getPid())) { @@ -60,7 +58,6 @@ public function listAction(bool $deleted = FALSE, bool $created = FALSE, bool $u $assignedOptions['compress'] = $config->getCompress(); } } - $assignedOptions['isSiteroot'] = TRUE; $assignedOptions['allConfig'] = $allConfig; } @@ -99,12 +96,11 @@ public function listAction(bool $deleted = FALSE, bool $created = FALSE, bool $u } $assignedOptions['webpIsLoaded'] = false; - if ( \TYPO3\CMS\Core\Utility\ExtensionManagementUtility::isLoaded('webp') ) { + if ( ExtensionManagementUtility::isLoaded('webp') ) { $assignedOptions['webpIsLoaded'] = true; } $this->view->assignMultiple($assignedOptions); - $moduleTemplate = $this->moduleTemplateFactory->create($this->request); $moduleTemplate->setContent($this->view->render()); return $this->htmlResponse($moduleTemplate->renderContent()); @@ -143,13 +139,10 @@ public function newAction(): ResponseInterface $newConfig = new Config(); // some defaults $newConfig = parent::setDefaults($newConfig); - - #$assignedOptions['pid'] = $this->getCurrentUid; $assignedOptions['newConfig'] = $newConfig; } $this->view->assignMultiple($assignedOptions); - $moduleTemplate = $this->moduleTemplateFactory->create($this->request); $moduleTemplate->setContent($this->view->render()); return $this->htmlResponse($moduleTemplate->renderContent()); @@ -165,10 +158,7 @@ public function createAction(Config $newConfig): ResponseInterface $newConfig->setPid($this->currentUid); $this->configRepository->add($newConfig); parent::writeConstants(); - parent::redirect('list',NULL,Null,array('created' => TRUE)); - $moduleTemplate = $this->moduleTemplateFactory->create($this->request); - $moduleTemplate->setContent($this->view->render()); - return $this->htmlResponse($moduleTemplate->renderContent()); + return $this->redirect('list',NULL,Null,array('created' => TRUE)); } @@ -190,8 +180,19 @@ public function editAction(Config $config, bool $updated = FALSE): ResponseInter $assignedOptions['compare'] = parent::compareConfig($config); } - $this->view->assignMultiple($assignedOptions); + if ($updated) { + $flashMessageService = GeneralUtility::makeInstance(FlashMessageService::class); + $notificationQueue = $flashMessageService->getMessageQueueByIdentifier(FlashMessageQueue::NOTIFICATION_QUEUE); + $flashMessage = GeneralUtility::makeInstance( + FlashMessage::class, + 'The configuration was successfully updated.', + 'Record saved', + ContextualFeedbackSeverity::OK, + ); + $notificationQueue->enqueue($flashMessage); + } + $this->view->assignMultiple($assignedOptions); $moduleTemplate = $this->moduleTemplateFactory->create($this->request); $moduleTemplate->setContent($this->view->render()); return $this->htmlResponse($moduleTemplate->renderContent()); @@ -206,12 +207,7 @@ public function updateAction(Config $config): ResponseInterface $config->setHomepageUid($this->rootPageId); $this->configRepository->update($config); parent::writeConstants(); - - parent::redirect('edit',NULL,Null,array('config' => $config, 'updated' => TRUE)); - - $moduleTemplate = $this->moduleTemplateFactory->create($this->request); - $moduleTemplate->setContent($this->view->render()); - return $this->htmlResponse($moduleTemplate->renderContent()); + return $this->redirect('edit',NULL,Null,array('config' => $config, 'updated' => TRUE)); } @@ -222,12 +218,7 @@ public function deleteAction(Config $config): ResponseInterface { $this->configRepository->remove($config); parent::writeConstants(); - - parent::redirect('list',NULL,Null,array('deleted' => TRUE)); - - $moduleTemplate = $this->moduleTemplateFactory->create($this->request); - $moduleTemplate->setContent($this->view->render()); - return $this->htmlResponse($moduleTemplate->renderContent()); + return $this->redirect('list',NULL,Null,array('deleted' => TRUE)); } @@ -245,7 +236,6 @@ public function dashboardAction(): ResponseInterface $assignedOptions['admin'] = $this->isAdmin; $this->view->assignMultiple($assignedOptions); - $moduleTemplate = $this->moduleTemplateFactory->create($this->request); $moduleTemplate->setContent($this->view->render()); return $this->htmlResponse($moduleTemplate->renderContent()); @@ -260,7 +250,7 @@ public function constantsAction(): ResponseInterface if ( $this->isSiteroot ) { $constantPath = GeneralUtility::getFileAbsFileName('fileadmin/T3SB/Configuration/TypoScript/t3sbconstants.typoscript'); if ( file_exists($constantPath) ) { - $fileGetContents = file_get_contents($constantPath); + $fileGetContents = @file_get_contents($constantPath); $outsourcedConstantsArr = explode('[END]', trim($fileGetContents)); $toEnd = count($outsourcedConstantsArr); $filecontent = ''; @@ -280,7 +270,6 @@ public function constantsAction(): ResponseInterface $assignedOptions['admin'] = $this->isAdmin; $this->view->assignMultiple($assignedOptions); - $moduleTemplate = $this->moduleTemplateFactory->create($this->request); $moduleTemplate->setContent($this->view->render()); return $this->htmlResponse($moduleTemplate->renderContent()); diff --git a/Classes/Controller/ConsentController.php b/Classes/Controller/ConsentController.php deleted file mode 100644 index 0bc7a9be..00000000 --- a/Classes/Controller/ConsentController.php +++ /dev/null @@ -1,70 +0,0 @@ -settings['consent']['contentByUid']; - $fileRepository = GeneralUtility::makeInstance(FileRepository::class); - $fileObjects = $fileRepository->findByRelation('tt_content', 'assets', $consentRecordUid); - $assignedValues = []; - - if ( !empty($fileObjects) ) { - if ( $fileObjects[0]->getProperties()['mime_type'] == 'video/youtube') { - if ( $this->settings['consent']['cookie'] && !empty($_COOKIE['contentconsent_'.$consentRecordUid]) - && $_COOKIE['contentconsent_'.$consentRecordUid] == 'allow' ) { - $contentConsent = TRUE; - } else { - $contentConsent = FALSE; - $lazyload = $this->settings['lazyLoad'] ? 'true': 'false'; - $thumbnailRecordUid = $this->configurationManager->getContentObject()->data['uid']; - $fileRepository = GeneralUtility::makeInstance(FileRepository::class); - $thumbnails = $fileRepository->findByRelation('tt_content', 'consentpreviewimage', $thumbnailRecordUid); - } - $autoplay = $fileObjects[0]->getProperties()['autoplay']; - $videoId = GeneralUtility::makeInstance(YouTubeRenderer::class)->render($fileObjects[0]); - $mute = $autoplay ? 1 : 0; - $ratioArr = explode('/',$this->settings['consent']['autoSize']); - $params = '?autoplay='.$autoplay.'&loop=0&playlist='.$videoId.'&mute='.$mute.'&rel=0&showinfo=0&controls=1&modestbranding=1'; - - $assignedValues = [ - 'contentConsent' => $contentConsent, - 'thumbnail' => !empty($thumbnails[0]) ? $thumbnails[0] : '', - 'ytuid' => $videoId, - 'params' => $params, - 'ratio' => trim($ratioArr[1]).'x'.trim($ratioArr[0]), - 'isYouTube' => TRUE, - ]; - } - } else { - $assignedValues = [ - 'isYouTube' => FALSE, - ]; - } - - $this->view->assignMultiple($assignedValues); - return $this->htmlResponse(); - } - -} diff --git a/Classes/DataProcessing/BootstrapProcessor.php b/Classes/DataProcessing/BootstrapProcessor.php index 28f6d84f..d273d280 100644 --- a/Classes/DataProcessing/BootstrapProcessor.php +++ b/Classes/DataProcessing/BootstrapProcessor.php @@ -159,7 +159,7 @@ public function process(ContentObjectRenderer $cObj, array $contentObjectConfigu } if ( $cType == 't3sbs_assets' ) { $pi_flexconf = $flexFormService->convertFlexFormContentToArray($processedData['data']['pi_flexform']); - if (!empty($pi_flexconf) && isset($pi_flexconf['settings'])) { + if (!empty($pi_flexconf)) { $processedData['assets']['jquery'] = $pi_flexconf['settings']['jquery']; $processedData['assets']['priority'] = $pi_flexconf['settings']['priority']; } diff --git a/Classes/DataProcessing/ConfigProcessor.php b/Classes/DataProcessing/ConfigProcessor.php index 612d8bb8..cddc2523 100644 --- a/Classes/DataProcessing/ConfigProcessor.php +++ b/Classes/DataProcessing/ConfigProcessor.php @@ -426,6 +426,7 @@ public function process(ContentObjectRenderer $cObj, array $contentObjectConfigu $fileObjects = []; $processedData['config']['jumbotron']['alignItem'] = 'd-flex align-items-'.$processedRecordVariables['jumbotronAlignitem']; $processedData['config']['jumbotron']['alignment'] = $processedRecordVariables['jumbotronAlignitem']; + if ( $processedRecordVariables['jumbotronBgimage'] == 'root' ) { // slide in rootline foreach ($frontendController->rootLine as $page) { @@ -458,6 +459,7 @@ public function process(ContentObjectRenderer $cObj, array $contentObjectConfigu } } } elseif ( $processedRecordVariables['jumbotronBgimage'] == 'page' ) { + $fileObjects = $fileRepository->findByRelation('pages', 'media', $frontendController->id); $hasBgImages = count($fileObjects); if ( count($fileObjects) > 1 ) { @@ -622,7 +624,7 @@ protected function getNavigationColor(int $languageUid): string ->select('uid','tx_t3sbootstrap_navigationcolor', 'tx_t3sbootstrap_navigationactivecolor', 'tx_t3sbootstrap_navigationhover','tx_t3sbootstrap_navigationbgcolor') ->from('pages') ->where( - $queryBuilder->expr()->orX( + $queryBuilder->expr()->or( $queryBuilder->expr()->neq('tx_t3sbootstrap_navigationcolor', $queryBuilder->createNamedParameter('')), $queryBuilder->expr()->neq('tx_t3sbootstrap_navigationactivecolor', $queryBuilder->createNamedParameter('')), $queryBuilder->expr()->neq('tx_t3sbootstrap_navigationhover', $queryBuilder->createNamedParameter('')), @@ -711,7 +713,7 @@ protected function getTreeList(int $id, int $depth, int $begin = 0, string $perm $theList .= ',' . $row['uid']; } if ($depth > 1) { - $theSubList = $this->getTreeList($row['uid'], $depth - 1, $begin - 1, $permsClause); + $theSubList = self::getTreeList($row['uid'], $depth - 1, $begin - 1, $permsClause); if (!empty($theList) && !empty($theSubList) && ($theSubList[0] !== ',')) { $theList .= ','; } diff --git a/Classes/DataProcessing/GalleryProcessor.php b/Classes/DataProcessing/GalleryProcessor.php index 236cf40c..3c1e7dba 100644 --- a/Classes/DataProcessing/GalleryProcessor.php +++ b/Classes/DataProcessing/GalleryProcessor.php @@ -525,10 +525,9 @@ protected function calculateMediaWidthsAndHeights() $fileObject = $fO; } } - if ($fileObject instanceof \TYPO3\CMS\Core\Resource\FileReference) { - $mediaHeight = $this->getCroppedDimensionalProperty($fileObject, 'height') - * ($mediaWidth / max($this->getCroppedDimensionalProperty($fileObject, 'width'), 1)); - } + $mediaHeight = $this->getCroppedDimensionalProperty($fileObject, 'height') + * ($mediaWidth / max($this->getCroppedDimensionalProperty($fileObject, 'width'), 1)); + $mediaHeight = !empty($mediaHeight) ? floor($mediaHeight) : ''; $this->mediaDimensions[$key] = [ 'width' => floor($mediaWidth), @@ -574,6 +573,7 @@ protected function calculateMediaWidthsAndHeights() } } + if ( $this->processedData['data']['CType'] === 't3sbs_gallery' ) { $galleryWidth = $galleryWidth - self::gridGutterWidth + $gutterWidth; @@ -621,9 +621,7 @@ protected function calculateMediaWidthsAndHeights() } } } - } else { - if ($this->galleryData['count']['columns'] === -1 && $this->parentflexconf['card_wrapper'] !== 'slider') { $mediaWidth = $galleryWidth; } elseif ($this->mediaOrientation === 17 || $this->mediaOrientation === 18) { diff --git a/Classes/DataProcessing/LastModifiedProcessor.php b/Classes/DataProcessing/LastModifiedProcessor.php index 0070cdb9..4d46f0dd 100644 --- a/Classes/DataProcessing/LastModifiedProcessor.php +++ b/Classes/DataProcessing/LastModifiedProcessor.php @@ -50,7 +50,7 @@ public function process(ContentObjectRenderer $cObj, array $contentObjectConfigu if (!empty($processorConfiguration['recentlyUpdatedContentElements'])) { - $setMaxResults = $processorConfiguration['setMaxResults'] ?: 10; + $setMaxResults = !empty($processorConfiguration['setMaxResults']) ? $processorConfiguration['setMaxResults'] : 10; if (self::isMenuRecentlyUpdatedOnPage()) { $processedData['recentlyUpdatedContentElements'] = self::getRecentlyUpdated((int) $setMaxResults); } @@ -78,7 +78,7 @@ protected function isMenuRecentlyUpdatedOnPage(): bool $queryBuilder->expr()->eq('pid', $queryBuilder->createNamedParameter(self::getCurrentUid(), \PDO::PARAM_INT)), $queryBuilder->expr()->eq('CType', $queryBuilder->createNamedParameter('menu_recently_updated')) ) - ->execute() + ->executeQuery() ->fetchAll(); return empty($result) ? FALSE : TRUE; @@ -145,7 +145,7 @@ protected function getPageTitle($uid): string ->executeQuery() ->fetch(); - $pageTitle = !empty($result['nav_title']) ? $result['nav_title'] : $result['title']; + $pageTitle = !empty($result['nav_title']) ? $result['nav_title'] : ''; } return (string)$pageTitle; diff --git a/Classes/EventListener/AssetRenderer/IsInline.php b/Classes/EventListener/AssetRenderer/IsInline.php index 343f776f..8b151d44 100644 --- a/Classes/EventListener/AssetRenderer/IsInline.php +++ b/Classes/EventListener/AssetRenderer/IsInline.php @@ -36,6 +36,7 @@ public function __invoke(BeforeJavaScriptsRenderingEvent $event): void 't3sbootstrap', 'm1' ); + $t3sbconcatenate = $settings['t3sbconcatenate']; if ( $event->isInline() == FALSE ) { diff --git a/Classes/Helper/ClassHelper.php b/Classes/Helper/ClassHelper.php index 57db2d30..4df2639c 100644 --- a/Classes/Helper/ClassHelper.php +++ b/Classes/Helper/ClassHelper.php @@ -65,7 +65,6 @@ public function getDefaultClass(array $data, array $flexconf, string $cTypeClass if ($data['layout']) { $pagesTSconfig = self::getFrontendController()->getPagesTSconfig(); $layout = $data['layout']; - $layoutAddItems = ''; $layoutClasses = ''; $layoutAltLabels = ''; @@ -83,7 +82,7 @@ public function getDefaultClass(array $data, array $flexconf, string $cTypeClass if (isset($layoutAddItems) && isset($layoutAddItems) === $layout) { $class .= ' layout-'.$layout; } elseif (isset($layoutAltLabels) && !empty($layoutAltLabels[$layout])) { - if (isset($layoutClasses) && !empty($layoutClasses[$layout])) { + if (isset($layoutClasses) && $layoutClasses[$layout]) { $class .= ' '.strtolower($layoutClasses[$layout]); } else { $class .= ' layout-'.str_replace(' ', '-', strtolower($layoutAltLabels[$layout])); @@ -175,14 +174,15 @@ public function getTxContainerClass(array $data, array $flexconf, bool $isVideo) */ if ( $data['CType'] == 'autoLayout_row' ) { - if ($flexconf['verticalGutters'] == 'gy-0') $flexconf['verticalGutters'] = 0; - - if ( is_string($flexconf['horizontalGutters']) && $flexconf['horizontalGutters'] != 'gx-4') { + if ( !empty($flexconf['horizontalGutters']) && $flexconf['horizontalGutters'] != 'gx-4') { $class .= $flexconf['horizontalGutters'] ? ' '.$flexconf['horizontalGutters'] : ''; } - if (!empty($flexconf['verticalGutters'])) { + + if ($flexconf['verticalGutters'] == 'gy-0') $flexconf['verticalGutters'] = 0; + + $class .= !empty($flexconf['verticalGutters']) ? ' '.$flexconf['verticalGutters'] : ''; } diff --git a/Classes/Helper/DefaultHelper.php b/Classes/Helper/DefaultHelper.php index 2ee7b091..e3d3ebf7 100644 --- a/Classes/Helper/DefaultHelper.php +++ b/Classes/Helper/DefaultHelper.php @@ -23,11 +23,13 @@ class DefaultHelper implements SingletonInterface */ public function getContainerClass(array $processedData, string $extConfContainer): array { + + $container = ''; if ($extConfContainer && $processedData['data']['tx_t3sbootstrap_container']) { if ( $processedData['data']['tx_container_parent'] === 0 ) { $t3sbconfig = self::getConfig(); - if ( $t3sbconfig['footer_pid'] === $processedData['data']['pid'] ) { + if ( (int)$t3sbconfig['footer_pid'] === $processedData['data']['pid'] ) { if ( $t3sbconfig['footer_container'] === 'none' && $processedData['data']['colPos'] === 0 ) { $container = $processedData['data']['tx_t3sbootstrap_container']; } @@ -51,6 +53,7 @@ public function getContainerClass(array $processedData, string $extConfContainer } } } + if ($container) { $processedData['containerPre'] = '
'; $processedData['containerPost'] = '
'; diff --git a/Classes/Helper/FlexformHelper.php b/Classes/Helper/FlexformHelper.php index 3b0dc8b5..7f1e2040 100644 --- a/Classes/Helper/FlexformHelper.php +++ b/Classes/Helper/FlexformHelper.php @@ -23,7 +23,7 @@ public function addMissingElements(array $flexconf, string $cType, bool $t3sbsEl $flexconfEl = []; $dataStructure = []; $file = ''; - $flexfomrsFolderPath = '/typo3conf/ext/t3sbootstrap/Configuration/FlexForms/'; + $flexfomrsFolderPath = 'EXT:t3sbootstrap/Configuration/FlexForms/'; if ( $t3sbsElement === FALSE ) { $file = Environment::getPublicPath().$flexfomrsFolderPath . 'Bootstrap.xml'; @@ -116,11 +116,12 @@ public function addMissingElements(array $flexconf, string $cType, bool $t3sbsEl } if ( !empty($file) ) { - $content = file_get_contents($file); + $content = @file_get_contents($file); if ($content) { $dataStructure = GeneralUtility::xml2array($content); } - if ( count($dataStructure['sheets']) ) { + + if ( !empty($dataStructure) && count($dataStructure['sheets']) ) { foreach ( $dataStructure['sheets'] as $tab=>$sheet ) { if ( is_array($dataStructure['sheets'][$tab]['ROOT']['el']) ) { foreach($dataStructure['sheets'][$tab]['ROOT']['el'] as $key=>$el) { diff --git a/Classes/Helper/MediaElementHelper.php b/Classes/Helper/MediaElementHelper.php index c258b6e5..45f3276c 100644 --- a/Classes/Helper/MediaElementHelper.php +++ b/Classes/Helper/MediaElementHelper.php @@ -62,6 +62,7 @@ public function getProcessedData(array $processedData, array $extConf, $breakpoi // Gallery row with 25, 33, 50, 66, 75 or 100% $processedData = $galleryUtility->getGalleryRowWidth( $processedData ); $processedData = $galleryUtility->getGalleryClasses( $processedData, $breakpoint ); + } else { $processedData['addmedia']['figureclass'] .= !empty($processedData['data']['image_zoom']) ? ' gallery' : ''; } diff --git a/Classes/Hooks/FlexFormHook.php b/Classes/Hooks/FlexFormHook.php deleted file mode 100644 index 3959f4fa..00000000 --- a/Classes/Hooks/FlexFormHook.php +++ /dev/null @@ -1,45 +0,0 @@ -get('t3sbootstrap'); - - $ffPath = '/fileadmin/T3SB/FlexForms/'; - - foreach ( $GLOBALS['TCA']['tt_content']['columns']['tx_t3sbootstrap_flexform']['config']['ds'] as $key=>$flexForm ) { - - $flexForms[$key] = substr($flexForm, 46, -4); - } - - if ( array_key_exists($identifier['dataStructureKey'],$flexForms) ) { - - if ($identifier['type'] === 'tca' && $identifier['tableName'] === 'tt_content' - && $identifier['fieldName'] === 'tx_t3sbootstrap_flexform' && $identifier['dataStructureKey']) { - - $file = Environment::getPublicPath() . $ffPath.$flexForms[$identifier['dataStructureKey']].'.xml'; - - $content = file_exists($file) ? file_get_contents($file) : ''; - - if ($content) { - $dataStructure['sheets']['extraEntry'] = GeneralUtility::xml2array($content); - } - } - } - - return $dataStructure; - } -} diff --git a/Classes/Hooks/NewsFlexFormHook.php b/Classes/Hooks/NewsFlexFormHook.php deleted file mode 100644 index 3433df0a..00000000 --- a/Classes/Hooks/NewsFlexFormHook.php +++ /dev/null @@ -1,34 +0,0 @@ - false]); + $metadata = unserialize((string) @file_get_contents($cacheFileMeta), ['allowed_classes' => false]); foreach ($metadata['files'] as $file) { if (filemtime($file) > $fileModificationTime) { diff --git a/Classes/Updates/T3sbCardsUpdateWizard.php b/Classes/Updates/T3sbCardsUpdateWizard.php deleted file mode 100644 index 6d44154c..00000000 --- a/Classes/Updates/T3sbCardsUpdateWizard.php +++ /dev/null @@ -1,203 +0,0 @@ -upgradeCards(); - - return true; - } - - /** - * Migrate... - */ - protected function upgradeCards(): void - { - $connectionPool = GeneralUtility::makeInstance(ConnectionPool::class); - $queryBuilder = $connectionPool->getQueryBuilderForTable('tt_content'); - $statements = $queryBuilder - ->select('uid', 'pi_flexform') - ->from('tt_content') - ->where( - $queryBuilder->expr()->eq('CType', $queryBuilder->createNamedParameter('t3sbs_card')) - ) - ->executeQuery() - ->fetchAll(); - - if (!empty($statements)) { - $flexFormService = GeneralUtility::makeInstance(FlexFormService::class); - foreach ($statements as $statement) { - $recordId = (int)$statement['uid']; - $flexconf = $flexFormService->convertFlexFormContentToArray($statement['pi_flexform']); - $count = 0; - // List Group inline - if (!empty($flexconf['list'])) { - $queryBuilder = $connectionPool->getQueryBuilderForTable('tx_t3sbootstrap_list_item_inline'); - $countBefore = $queryBuilder - ->count('parentid') - ->from('tx_t3sbootstrap_list_item_inline') - ->where( - $queryBuilder->expr()->eq('parentid', $queryBuilder->createNamedParameter($recordId, \PDO::PARAM_INT)) - ) - ->executeQuery() - ->fetchOne(); - - if ($countBefore === 0) { - // insert only once - if (!empty($flexconf['list']['container'])) { - foreach ( $flexconf['list']['container'] as $listItem) { - if (!empty($listItem['list']['group'])) { - $queryBuilder - ->insert('tx_t3sbootstrap_list_item_inline') - ->values([ - 'parentid' => $recordId, - 'parenttable' => 'tt_content', - 'listitem' => $listItem['list']['group'] - ]) - ->executeStatement(); - } - } - } - } - - $count = $queryBuilder - ->count('parentid') - ->from('tx_t3sbootstrap_list_item_inline') - ->where( - $queryBuilder->expr()->eq('parentid', $queryBuilder->createNamedParameter($recordId, \PDO::PARAM_INT)) - ) - ->executeQuery() - ->fetchOne(); - } - - if (!empty($flexconf)) { - // update/migrate - $queryBuilder = $connectionPool->getQueryBuilderForTable('tt_content'); - $queryBuilder - ->update('tt_content') - ->where( - $queryBuilder->expr()->eq('uid', $queryBuilder->createNamedParameter($recordId, \PDO::PARAM_INT)) - ) - ->set('tx_t3sbootstrap_cardheader', $flexconf['header']['text']) - ->set('bodytext', $flexconf['text']['top']) - ->set('tx_t3sbootstrap_bodytext', $flexconf['text']['bottom']) - ->set('tx_t3sbootstrap_cardfooter', $flexconf['footer']['text']) - ->set('tx_t3sbootstrap_list_item', $count) - ->executeStatement(); - } - - } - } - } - - /** - * Is an update necessary? - * - * Is used to determine whether a wizard needs to be run. - * Check if data for migration exists. - */ - public function updateNecessary(): bool - { - $updateNeeded = false; - // Check if the database table even exists - if ( $this->checkIfWizardIsRequired() ) { - $updateNeeded = true; - } - - return $updateNeeded; - } - - - /** - * Returns an array of class names of prerequisite classes - * - * This way a wizard can define dependencies like "database up-to-date" or - * "reference index updated" - * - * @return string[] - */ - public function getPrerequisites(): array - { - return ''; - } - - - /** - * Check for old Bootstrap Utility Classes - * - * @throws \InvalidArgumentException - */ - protected function checkIfWizardIsRequired(): bool - { - $require = false; - $connectionPool = GeneralUtility::makeInstance(ConnectionPool::class); - $queryBuilder = $connectionPool->getQueryBuilderForTable('tt_content'); - $statements = $queryBuilder - ->select('uid', 'pi_flexform') - ->from('tt_content') - ->where( - $queryBuilder->expr()->eq('CType', $queryBuilder->createNamedParameter('t3sbs_card')) - ) - ->executeQuery() - ->fetchAll(); - - if (!empty($statements)) { - $flexFormService = GeneralUtility::makeInstance(FlexFormService::class); - foreach ($statements as $statement) { - $recordId = (int)$statement['uid']; - $flexconf = $flexFormService->convertFlexFormContentToArray($statement['pi_flexform']); - if (!empty($flexconf)) { - $require = true; - } - } - } - - return $require; - } - -} diff --git a/Classes/Updates/T3sbMigrateUpdateWizard.php b/Classes/Updates/T3sbMigrateUpdateWizard.php deleted file mode 100644 index 8bba5fa2..00000000 --- a/Classes/Updates/T3sbMigrateUpdateWizard.php +++ /dev/null @@ -1,400 +0,0 @@ -upgradeColumns(); - - return true; - } - - /** - * Migrate Bootstrap Utility Classes from v4 to v5 - */ - protected function upgradeColumns(): void - { - /* tx_t3sbootstrap_domain_model_config */ - $toRename = ['left', 'right', 'ml-', 'mr-', 'pl-', 'pr-']; - $renameTo = ['start', 'end', 'ms-', 'me-', 'ps-', 'pe-']; - $fields = ['page_titleclass', 'meta_class', 'navbar_class', 'jumbotron_class', 'breadcrumb_class', 'footer_class', 'expandedcontent_classtop', 'expandedcontent_classbottom', 'page_content_extra_class', 'body_extra_class', 'aside_extra_class', 'main_extra_class']; - - foreach ($fields as $field) { - foreach ($toRename as $key=>$rename) { - $connectionPool = GeneralUtility::makeInstance(ConnectionPool::class); - $queryBuilder = $connectionPool->getQueryBuilderForTable('tx_t3sbootstrap_domain_model_config'); - $statements = $queryBuilder - ->select('uid', $field) - ->from('tx_t3sbootstrap_domain_model_config') - ->executeQuery() - ->fetchAll(); - foreach ($statements as $statement) { - $recordId = (int)$statement['uid']; - $pos = strpos((string)$statement[$field], $rename); - if ($pos === false) { - // do nothing - } else { - $queryBuilder - ->update('tx_t3sbootstrap_domain_model_config') - ->where( - $queryBuilder->expr()->eq('uid', $queryBuilder->createNamedParameter($recordId, \PDO::PARAM_INT)) - ) - ->set($field, str_replace($rename, $renameTo[$key], $statement[$field])) - ->executeQuery(); - } - } - } - } - - /* sys_file_reference */ - $fields = ['tx_t3sbootstrap_extra_class', 'tx_t3sbootstrap_extra_imgclass', 'tx_t3sbootstrap_description_align']; - foreach ($fields as $field) { - foreach ($toRename as $key=>$rename) { - $connectionPool = GeneralUtility::makeInstance(ConnectionPool::class); - $queryBuilder = $connectionPool->getQueryBuilderForTable('sys_file_reference'); - $statements = $queryBuilder - ->select('uid', $field) - ->from('sys_file_reference') - ->executeQuery() - ->fetchAll(); - foreach ($statements as $statement) { - $recordId = (int)$statement['uid']; - $pos = strpos((string)$statement[$field], $rename); - if ($pos === false) { - // do nothing - } else { - $queryBuilder - ->update('sys_file_reference') - ->where( - $queryBuilder->expr()->eq('uid', $queryBuilder->createNamedParameter($recordId, \PDO::PARAM_INT)) - ) - ->set($field, str_replace($rename, $renameTo[$key], $statement[$field])) - ->executeQuery(); - } - } - } - } - - /* tt_content */ - $fields = ['tx_t3sbootstrap_extra_class', 'tx_t3sbootstrap_header_class']; - foreach ($fields as $field) { - foreach ($toRename as $key=>$rename) { - $connectionPool = GeneralUtility::makeInstance(ConnectionPool::class); - $queryBuilder = $connectionPool->getQueryBuilderForTable('tt_content'); - $statements = $queryBuilder - ->select('uid', $field) - ->from('tt_content') - ->executeQuery() - ->fetchAll(); - foreach ($statements as $statement) { - $recordId = (int)$statement['uid']; - $pos = strpos((string)$statement[$field], $rename); - if ($pos === false) { - // do nothing - } else { - $queryBuilder - ->update('tt_content') - ->where( - $queryBuilder->expr()->eq('uid', $queryBuilder->createNamedParameter($recordId, \PDO::PARAM_INT)) - ) - ->set($field, str_replace($rename, $renameTo[$key], $statement[$field])) - ->executeQuery(); - } - } - } - } - - /* pages */ - $toRename = ['var(--']; - $renameTo = ['var(--bs-']; - $fields = ['tx_t3sbootstrap_titlecolor', 'tx_t3sbootstrap_subtitlecolor', 'tx_t3sbootstrap_navigationcolor', 'tx_t3sbootstrap_navigationactivecolor', 'tx_t3sbootstrap_navigationhover', 'tx_t3sbootstrap_navigationbgcolor']; - foreach ($fields as $field) { - foreach ($toRename as $key=>$rename) { - $connectionPool = GeneralUtility::makeInstance(ConnectionPool::class); - $queryBuilder = $connectionPool->getQueryBuilderForTable('pages'); - $statements = $queryBuilder - ->select('uid', $field) - ->from('pages') - ->executeQuery() - ->fetchAll(); - foreach ($statements as $statement) { - $recordId = (int)$statement['uid']; - $check = strpos((string)$statement[$field], 'var(--bs-'); - $pos = strpos((string)$statement[$field], $rename); - if ($pos === false || $check === 0) { - // do nothing - } else { - $queryBuilder - ->update('pages') - ->where( - $queryBuilder->expr()->eq('uid', $queryBuilder->createNamedParameter($recordId, \PDO::PARAM_INT)) - ) - ->set($field, str_replace($rename, $renameTo[$key], $statement[$field])) - ->executeQuery(); - } - } - } - } - - /* t3sbs_carousel - move all media from image to asstes */ - $connectionPool = GeneralUtility::makeInstance(ConnectionPool::class); - $queryBuilder = $connectionPool->getQueryBuilderForTable('tt_content'); - $statements = $queryBuilder - ->select('uid','image') - ->from('tt_content') - ->where( - $queryBuilder->expr()->eq('CType', $queryBuilder->createNamedParameter('t3sbs_carousel')) - ) - ->executeQuery() - ->fetchAll(); - - foreach ($statements as $statement) { - if ( $statement['image'] ) { - - $recordId = (int)$statement['uid']; - $imageAmount = (int)$statement['image']; - - $queryBuilder - ->update('tt_content') - ->where( - $queryBuilder->expr()->eq('uid', $queryBuilder->createNamedParameter($recordId, \PDO::PARAM_INT)) - ) - ->set('assets', $imageAmount) - ->set('image', 0) - ->executeQuery(); - - $queryBuilderSFR = $connectionPool->getQueryBuilderForTable('sys_file_reference'); - $fileStatements = $queryBuilderSFR - ->select('uid','fieldname') - ->from('sys_file_reference') - ->where( - $queryBuilderSFR->expr()->eq('uid_foreign', $queryBuilderSFR->createNamedParameter($recordId, \PDO::PARAM_INT)) - ) - ->executeQuery() - ->fetchAll(); - - foreach ($fileStatements as $fileStatement) { - $fileId = (int)$fileStatement['uid']; - $queryBuilderSFR - ->update('sys_file_reference') - ->where( - $queryBuilderSFR->expr()->eq('uid', $queryBuilderSFR->createNamedParameter($fileId, \PDO::PARAM_INT)) - ) - ->set('fieldname', 'assets') - ->executeQuery(); - } - } - } - - } - - /** - * Is an update necessary? - * - * Is used to determine whether a wizard needs to be run. - * Check if data for migration exists. - */ - public function updateNecessary(): bool - { - $updateNeeded = false; - // Check if the database table even exists - if ( $this->checkIfWizardIsRequired() ) { - $updateNeeded = true; - } - - return $updateNeeded; - } - - - /** - * Returns an array of class names of prerequisite classes - * - * This way a wizard can define dependencies like "database up-to-date" or - * "reference index updated" - * - * @return string[] - */ - public function getPrerequisites(): array - { - return ''; - } - - - /** - * Check for old Bootstrap Utility Classes - * - * @throws \InvalidArgumentException - */ - protected function checkIfWizardIsRequired(): bool - { - - $require = false; - - /* tx_t3sbootstrap_domain_model_config */ - $toRename = ['left', 'right', 'ml-', 'mr-', 'pl-', 'pr-']; - $renameTo = ['start', 'end', 'ms-', 'me-', 'ps-', 'pe-']; - $fields = ['page_titleclass', 'meta_class', 'navbar_class', 'jumbotron_class', 'breadcrumb_class', 'footer_class', 'expandedcontent_classtop', 'expandedcontent_classbottom', 'page_content_extra_class', 'body_extra_class', 'aside_extra_class', 'main_extra_class']; - - foreach ($fields as $field) { - foreach ($toRename as $key=>$rename) { - $connectionPool = GeneralUtility::makeInstance(ConnectionPool::class); - $queryBuilder = $connectionPool->getQueryBuilderForTable('tx_t3sbootstrap_domain_model_config'); - $statements = $queryBuilder - ->select('uid', $field) - ->from('tx_t3sbootstrap_domain_model_config') - ->executeQuery() - ->fetchAll(); - - foreach ($statements as $statement) { - $pos = strpos((string)$statement[$field], $rename); - if ($pos === false) { - // do nothing - } else { - $require = true; - } - } - } - } - - /* sys_file_reference */ - $toRename = ['left', 'right', 'ml-', 'mr-', 'pl-', 'pr-']; - $renameTo = ['start', 'end', 'ms-', 'me-', 'ps-', 'pe-']; - $fields = ['tx_t3sbootstrap_extra_class', 'tx_t3sbootstrap_extra_imgclass', 'tx_t3sbootstrap_description_align']; - - foreach ($fields as $field) { - foreach ($toRename as $key=>$rename) { - $connectionPool = GeneralUtility::makeInstance(ConnectionPool::class); - $queryBuilder = $connectionPool->getQueryBuilderForTable('sys_file_reference'); - $statements = $queryBuilder - ->select('uid', $field) - ->from('sys_file_reference') - ->executeQuery() - ->fetchAll(); - foreach ($statements as $statement) { - $pos = strpos((string)$statement[$field], $rename); - if ($pos === false) { - // do nothing - } else { - $require = true; - } - } - } - } - - /* pages */ - $toRename = ['var(--']; - $renameTo = ['var(--bs-']; - $fields = ['tx_t3sbootstrap_titlecolor', 'tx_t3sbootstrap_subtitlecolor', 'tx_t3sbootstrap_navigationcolor', 'tx_t3sbootstrap_navigationactivecolor', 'tx_t3sbootstrap_navigationhover', 'tx_t3sbootstrap_navigationbgcolor']; - - foreach ($fields as $field) { - foreach ($toRename as $key=>$rename) { - $connectionPool = GeneralUtility::makeInstance(ConnectionPool::class); - $queryBuilder = $connectionPool->getQueryBuilderForTable('pages'); - $statements = $queryBuilder - ->select('uid', $field) - ->from('pages') - ->executeQuery() - ->fetchAll(); - foreach ($statements as $statement) { - $check = strpos((string)$statement[$field], 'var(--bs-'); - $pos = strpos((string)$statement[$field], $rename); - if ($pos === false || $check === 0) { - // do nothing - } else { - $require = true; - } - } - } - } - - /* tt_content */ - $toRename = ['left', 'right', 'ml-', 'mr-', 'pl-', 'pr-']; - $renameTo = ['start', 'end', 'ms-', 'me-', 'ps-', 'pe-']; - $fields = ['tx_t3sbootstrap_extra_class', 'tx_t3sbootstrap_header_class']; - - foreach ($fields as $field) { - foreach ($toRename as $key=>$rename) { - $connectionPool = GeneralUtility::makeInstance(ConnectionPool::class); - $queryBuilder = $connectionPool->getQueryBuilderForTable('tt_content'); - $statements = $queryBuilder - ->select('uid', $field) - ->from('tt_content') - ->executeQuery() - ->fetchAll(); - foreach ($statements as $statement) { - $pos = strpos((string)$statement[$field], $rename); - if ($pos === false) { - // do nothing - } else { - $require = true; - } - } - } - } - - /* t3sbs_carousel - move all media from image to asstes */ - $connectionPool = GeneralUtility::makeInstance(ConnectionPool::class); - $queryBuilder = $connectionPool->getQueryBuilderForTable('tt_content'); - $statements = $queryBuilder - ->select('uid','image') - ->from('tt_content') - ->where( - $queryBuilder->expr()->eq('CType', $queryBuilder->createNamedParameter('t3sbs_carousel')) - ) - ->executeQuery() - ->fetchAll(); - - foreach ($statements as $statement) { - if ( $statement['image'] ) { - - $require = true; - } - } - - return $require; - } - -} diff --git a/Classes/UserFunction/TagModifier.php b/Classes/UserFunction/TagModifier.php new file mode 100644 index 00000000..e9546418 --- /dev/null +++ b/Classes/UserFunction/TagModifier.php @@ -0,0 +1,32 @@ + 0) { + $href = preg_replace('/###(@[^?]*)/', '###', $href) ?? $href; + } + return $href; + } +} \ No newline at end of file diff --git a/Classes/ViewHelpers/EmconfViewHelper.php b/Classes/ViewHelpers/EmconfViewHelper.php new file mode 100644 index 00000000..c4754afe --- /dev/null +++ b/Classes/ViewHelpers/EmconfViewHelper.php @@ -0,0 +1,27 @@ +get('t3sbootstrap'); + } +} diff --git a/Classes/ViewHelpers/FlexformViewHelper.php b/Classes/ViewHelpers/FlexformViewHelper.php new file mode 100644 index 00000000..55e72d32 --- /dev/null +++ b/Classes/ViewHelpers/FlexformViewHelper.php @@ -0,0 +1,51 @@ +registerArgument('data', 'string', 'xml data', true); + } + + public static function renderStatic(array $arguments, \Closure $renderChildrenClosure, RenderingContextInterface $renderingContext): string + { + $info = ''; + $flexFormService = GeneralUtility::makeInstance(FlexFormService::class); + $flexFormDataArr = $flexFormService->convertFlexFormContentToArray($arguments['data']); + + foreach ($flexFormDataArr as $key=>$flexFormData) { + if (str_starts_with($key, 'xxl')) {break;} + if ($key !== 'hidden') { + $value = !empty($flexFormData) ? $flexFormData : 0; + $info .= $key.'='.$value.', '; + } + } + + return rtrim($info, ', '); + } + +} diff --git a/Classes/ViewHelpers/MediaViewHelper.php b/Classes/ViewHelpers/MediaViewHelper.php index 3b2a4bbb..6de5a775 100644 --- a/Classes/ViewHelpers/MediaViewHelper.php +++ b/Classes/ViewHelpers/MediaViewHelper.php @@ -12,7 +12,9 @@ use TYPO3\CMS\Core\Utility\ExtensionManagementUtility; use TYPO3\CMS\Extbase\Configuration\ConfigurationManager; use TYPO3\CMS\Extbase\Configuration\ConfigurationManagerInterface; -use TYPO3\CMS\Fluid\ViewHelpers\MediaViewHelper as CmsMediaViewHelper; +use TYPO3\CMS\Core\Resource\Rendering\RendererRegistry; +use TYPO3\CMS\Extbase\Service\ImageService; +use TYPO3Fluid\Fluid\Core\ViewHelper\AbstractTagBasedViewHelper; #ConfigurationManagerInterface @@ -24,8 +26,14 @@ * * taken from https://extensions.typo3.org/extension/sms_responsive_images/ and modified */ -class MediaViewHelper extends CmsMediaViewHelper +class MediaViewHelper extends AbstractTagBasedViewHelper { + + /** + * @var string + */ + protected $tagName = 'img'; + /** * @var ResponsiveImagesUtility */ @@ -59,7 +67,25 @@ public function injectConfigurationManager(ConfigurationManager $configurationMa */ public function initializeArguments() { - parent::initializeArguments(); +/*# parent::initializeArguments(); + +Undeclared arguments passed to ViewHelper T3SBS\T3sbootstrap\ViewHelpers\MediaViewHelper: class, style. +Valid arguments are: file, additionalConfig, width, height, cropVariant, fileExtension, loading, decoding, srcset, sizes, breakpoints, imgtag, picturefill, lazyload, ratio, mobileNoRatio, shift, columns, placeholderSize, placeholderInline, ignoreFileExtensions +*/ +# new + $this->registerUniversalTagAttributes(); + $this->registerTagAttribute('alt', 'string', 'Specifies an alternate text for an image', false); + $this->registerArgument('file', 'object', 'File', true); + $this->registerArgument('additionalConfig', 'array', 'This array can hold additional configuration that is passed though to the Renderer object', false, []); + $this->registerArgument('width', 'string', 'This can be a numeric value representing the fixed width of in pixels. But you can also perform simple calculations by adding "m" or "c" to the value. See imgResource.width for possible options.'); + $this->registerArgument('height', 'string', 'This can be a numeric value representing the fixed height in pixels. But you can also perform simple calculations by adding "m" or "c" to the value. See imgResource.width for possible options.'); + $this->registerArgument('cropVariant', 'string', 'select a cropping variant, in case multiple croppings have been specified or stored in FileReference', false, 'default'); + $this->registerArgument('fileExtension', 'string', 'Custom file extension to use for images'); + $this->registerArgument('loading', 'string', 'Native lazy-loading for images property. Can be "lazy", "eager" or "auto". Used on image files only.'); + $this->registerArgument('decoding', 'string', 'Provides an image decoding hint to the browser. Can be "sync", "async" or "auto"', false); + +# end new + $this->registerArgument('srcset', 'mixed', 'Image sizes that should be rendered.', false); $this->registerArgument( 'sizes', @@ -74,11 +100,12 @@ public function initializeArguments() $this->registerArgument('lazyload', 'int', 'Generate markup that supports lazyloading', false, 0); $this->registerArgument('ratio', 'string', 'Image ratio', false, ''); $this->registerArgument('mobileNoRatio', 'bool', 'no aspect ratio for mobile', false, ''); - $this->registerArgument('shift', 'string', 'Image vertical shift', false, ''); + $this->registerArgument('shift', 'string', 'Image shift', false, ''); $this->registerArgument('hshift', 'string', 'Image horizontal shift', false, ''); $this->registerArgument('columns', 'int', 'Columns for Image Gallery', false, 0); $this->registerArgument('placeholderSize', 'int', 'Size of the placeholder image for lazyloading (0 = disabled)', false, 0); $this->registerArgument('placeholderInline', 'bool', 'Embed placeholder image for lazyloading inline as data uri', false, false); + $this->registerArgument('additionalAttributes', 'string', 'additional Attributes', false, false); $this->registerArgument( 'ignoreFileExtensions', 'mixed', @@ -88,6 +115,49 @@ public function initializeArguments() ); } + + /** + * Render a given media file. + * + * @throws \UnexpectedValueException + * @throws Exception + */ + public function render(): string + { + $file = $this->arguments['file']; + $additionalConfig = (array)$this->arguments['additionalConfig']; + $width = $this->arguments['width']; + $height = $this->arguments['height']; + + // get Resource Object (non ExtBase version) + if (is_callable([$file, 'getOriginalResource'])) { + // We have a domain model, so we need to fetch the FAL resource object from there + $file = $file->getOriginalResource(); + } + + if (!$file instanceof FileInterface) { + throw new \UnexpectedValueException('Supplied file object type ' . get_class($file) . ' must be FileInterface.', 1454252193); + } + + if ((string)$this->arguments['fileExtension'] && !GeneralUtility::inList($GLOBALS['TYPO3_CONF_VARS']['GFX']['imagefile_ext'], (string)$this->arguments['fileExtension'])) { + throw new Exception( + 'The extension ' . $this->arguments['fileExtension'] . ' is not specified in $GLOBALS[\'TYPO3_CONF_VARS\'][\'GFX\'][\'imagefile_ext\']' + . ' as a valid image file extension and can not be processed.', + 1619030957 + ); + } + + $fileRenderer = GeneralUtility::makeInstance(RendererRegistry::class)->getRenderer($file); + + // Fallback to image when no renderer is found + if ($fileRenderer === null) { + return $this->renderImage($file, $width, $height, $this->arguments['fileExtension'] ?? null); + } + $additionalConfig = array_merge_recursive($this->arguments, $additionalConfig); + return $fileRenderer->render($file, $width, $height, $additionalConfig); + } + + /** * Render img tag * @@ -131,7 +201,7 @@ protected function renderPicture(FileInterface $image, $width, $height) $cropString = '{"default":{"cropArea":{"x":0,"y":0,"width":1,"height":1},"selectedRatio":"NaN","focusArea":null},"tablet":{"cropArea":{"x":0,"y":0,"width":1,"height":1},"selectedRatio":"NaN","focusArea":null},"mobile":{"cropArea":{"x":0,"y":0,"width":1,"height":1},"selectedRatio":"NaN","focusArea":null}}'; } - if ( $this->arguments['ratio'] ) { + if ( $this->arguments['ratio'] && $image->getExtension() !== 'pdf') { $cropString = self::getCropString($image, $cropString); if ( $this->arguments['mobileNoRatio'] ) { $cropObject = json_decode($cropString); @@ -180,7 +250,7 @@ protected function renderPicture(FileInterface $image, $width, $height) $breakpointArr[$bpKey]['cropVariant'] = $breakpoint['cropVariant']; $breakpointArr[$bpKey]['media'] = $breakpoint['media']; $breakpointArr[$bpKey]['srcset'] = ''; - foreach( explode(',', (string) $breakpoint['srcset']) as $key=>$srcset ) { + foreach( explode(',', $breakpoint['srcset']) as $key=>$srcset ) { if ($width > (int)$srcset) { $breakpointArr[$bpKey]['srcset'] .= $srcset.','; } else { @@ -228,7 +298,7 @@ protected function generateFallbackImage(FileInterface $image, $width, Area $cro 'width' => $width, 'crop' => $cropArea->isEmpty() ? null : $cropArea->makeAbsoluteBasedOnFile($image), ]; - $imageService = $this->getImageService(); + $imageService = self::getImageService(); $fallbackImage = $imageService->applyProcessingInstructions($image, $processingInstructions); return $fallbackImage; @@ -277,7 +347,7 @@ protected function renderImageTag(FileInterface $image, $width, $height, $fileEx if (!empty($fileExtension)) { $processingInstructions['fileExtension'] = $fileExtension; } - $imageService = $this->getImageService(); + $imageService = self::getImageService(); $processedImage = $imageService->applyProcessingInstructions($image, $processingInstructions); $settings = $this->configurationManager->getConfiguration(ConfigurationManagerInterface::CONFIGURATION_TYPE_FULL_TYPOSCRIPT); @@ -335,6 +405,7 @@ protected function getCropString($image, $cropString) if ( $rArr[0] > $rArr[1] ) { // landscape $pxHeight = ($cropedWidth / $rArr[0]) * $rArr[1]; + $pxHeight = !empty($pxHeight) ? $pxHeight : 1; if ( $image->getProperties()['height'] > $pxHeight ) { $cHeight = $pxHeight / $image->getProperties()['height']; $cropObject->$cropVariant->cropArea->height = $cHeight; @@ -370,7 +441,6 @@ protected function getCropString($image, $cropString) } if ( $this->arguments['shift'] || $this->arguments['hshift'] ) { - if ( $cropedWidth > $cropedHeight ) { // landscape $shift = $cropObject->$cropVariant->cropArea->x + $this->arguments['hshift']/100; @@ -394,10 +464,14 @@ protected function getCropString($image, $cropString) $cropObject->$cropVariant->cropArea->x = $shift; } } - } } return json_encode($cropObject); } + + protected function getImageService(): ImageService + { + return GeneralUtility::makeInstance(ImageService::class); + } } diff --git a/Classes/Wrapper/BackgroundWrapper.php b/Classes/Wrapper/BackgroundWrapper.php index 386c30de..3ddf8055 100644 --- a/Classes/Wrapper/BackgroundWrapper.php +++ b/Classes/Wrapper/BackgroundWrapper.php @@ -35,7 +35,6 @@ public function getProcessedData(array $processedData, array $flexconf, bool $we $fileRepository = GeneralUtility::makeInstance(FileRepository::class); $files = $fileRepository->findByRelation('tt_content', 'assets', (int)$processedData['data']['uid']); $file = !empty($files) && is_array($files) ? $files[0] : ''; - // media if ( $file ) { // VIDEO type @@ -95,7 +94,7 @@ public function getProcessedData(array $processedData, array $flexconf, bool $we $ratio = end(explode('/', $flexconf['aspectRatio'])).'x9'; $ratioArr = explode('x', $ratio); $x = $ratio; - $y = $ratioArr[1].' / '.$ratioArr[0].' * 100%'; + $y = $ratioArr[1].' / '.$ratioArr[0].' * 100%'; $processedData['ratioCalcCss'] = '.ratio-'.$x.'{--bs-aspect-ratio:calc('.$y.');}'; $processedData['localVideo']['class'] = ' ratio ratio-'.$ratio; $processedData['localVideo']['overlayChild'] = $overlayChild; @@ -108,23 +107,25 @@ public function getProcessedData(array $processedData, array $flexconf, bool $we } elseif ( $file->getType() === 2 ) { // IMAGE + + // orig. image option in flexform - if ($flexconf['origImage']) { + if (!empty($flexconf['origImage'])) { $processedData['file'] = $file; $processedData['ingWidth'] = $flexconf['width'] ? $flexconf['width'] : 1296; } else { $bgImage = GeneralUtility::makeInstance(BackgroundImageUtility::class) ->getBgImage($processedData['data']['uid'], 'tt_content', FALSE, TRUE, $flexconf, FALSE, 0, $webp, $bgMediaQueries); $processedData['bgImage'] = $bgImage; - if ($flexconf['paddingTopBottom']) { + if (!empty($flexconf['paddingTopBottom'])) { $processedData['style'] .= ' padding: '.$flexconf['paddingTopBottom'].'rem 0;'; } } // align content items - $processedData['alignItem'] = $flexconf['alignItem'] ? ' '.$flexconf['alignItem'] :''; + $processedData['alignItem'] = !empty($flexconf['alignItem']) ? ' '.$flexconf['alignItem'] :''; // image raster - $processedData['imageRaster'] = $flexconf['imageRaster'] ? 'multiple-' : ''; + $processedData['imageRaster'] = !empty($flexconf['imageRaster']) ? 'multiple-' : ''; // Text color - overlay ( if ( $processedData['data']['tx_t3sbootstrap_textcolor'] ) { @@ -134,9 +135,9 @@ public function getProcessedData(array $processedData, array $flexconf, bool $we $styleHelper = GeneralUtility::makeInstance(StyleHelper::class); $processedData['bgColorOverlay'] = $styleHelper->getBgColor($processedData['data'], FALSE); - $filter = $flexconf['imgGrayscale'] ? ' grayscale('.$flexconf['imgGrayscale'].'%) ' : ''; - $filter .= $flexconf['imgSepia'] ? ' sepia('.$flexconf['imgSepia'].'%) ' : ''; - $filter .= $flexconf['imgOpacity'] && $flexconf['imgOpacity'] != 100 ? ' opacity('.$flexconf['imgOpacity'].'%) ' : ''; + $filter = !empty($flexconf['imgGrayscale']) ? ' grayscale('.$flexconf['imgGrayscale'].'%) ' : ''; + $filter .= !empty($flexconf['imgSepia']) ? ' sepia('.$flexconf['imgSepia'].'%) ' : ''; + $filter .= !empty($flexconf['imgOpacity']) && $flexconf['imgOpacity'] != 100 ? ' opacity('.$flexconf['imgOpacity'].'%) ' : ''; if ($filter) $processedData['style'] .= 'filter: '.trim($filter).';'; diff --git a/Classes/Wrapper/CardWrapper.php b/Classes/Wrapper/CardWrapper.php index 04f1c6a0..4e0ca039 100644 --- a/Classes/Wrapper/CardWrapper.php +++ b/Classes/Wrapper/CardWrapper.php @@ -42,7 +42,7 @@ public function getProcessedData(array $processedData, array $flexconf): array ->fetchAll(); $flexFormService = GeneralUtility::makeInstance(FlexFormService::class); - $processedData['colclass'] = $flexconf['colclass']; + $processedData['colclass'] = !empty($flexconf['colclass']) ? $flexconf['colclass'] : ''; $processedData['cropMaxCharacters'] = $flexconf['cropMaxCharacters']; if (count($children)) { diff --git a/Classes/Wrapper/CollapsibleAccordion.php b/Classes/Wrapper/CollapsibleAccordion.php index 5062f4d8..5f8a56a4 100644 --- a/Classes/Wrapper/CollapsibleAccordion.php +++ b/Classes/Wrapper/CollapsibleAccordion.php @@ -28,12 +28,12 @@ public function getProcessedData(array $processedData, array $flexconf, array $p $file = $fileRepository->findByRelation('tt_content', 'assets', (int)$processedData['data']['uid']); if (!empty($file)) {$file = $file[0];} $processedData['appearance'] = $parentflexconf['appearance']; - $processedData['show'] = $flexconf['active'] ? ' show' : ''; - $processedData['collapsed'] = $flexconf['active'] ? '' : ' collapsed'; - $processedData['expanded'] = $flexconf['active'] ? 'true' : 'false'; - $processedData['alwaysOpen'] = $parentflexconf['alwaysOpen'] ? 'true' : 'false'; + $processedData['show'] = !empty($flexconf['active']) ? ' show' : ''; + $processedData['collapsed'] = !empty($flexconf['active']) ? '' : ' collapsed'; + $processedData['expanded'] = !empty($flexconf['active']) ? 'true' : 'false'; + $processedData['alwaysOpen'] = !empty($parentflexconf['alwaysOpen']) ? 'true' : 'false'; $processedData['buttonstyle'] = !empty($flexconf['style']) ? $flexconf['style'] : 'primary'; - $processedData['collapsibleByPid'] = $flexconf['collapsibleByPid'] ?: ''; + $processedData['collapsibleByPid'] = !empty($flexconf['collapsibleByPid']) ? $flexconf['collapsibleByPid'] : ''; $processedData['media'] = $file ? $file : ''; $processedData['appearance'] = $parentflexconf['appearance']; diff --git a/Classes/Wrapper/CollapsibleContainer.php b/Classes/Wrapper/CollapsibleContainer.php index 5362160f..d4829f26 100644 --- a/Classes/Wrapper/CollapsibleContainer.php +++ b/Classes/Wrapper/CollapsibleContainer.php @@ -26,7 +26,7 @@ public function getProcessedData(array $processedData, array $flexconf): array $processedData['appearance'] = $flexconf['appearance']; if ($flexconf['appearance'] == 'accordion') { - $processedData['flush'] = $flexconf['flush'] ? ' accordion-flush' : ''; + $processedData['flush'] = !empty($flexconf['flush']) ? ' accordion-flush' : ''; } $connectionPool = GeneralUtility::makeInstance(ConnectionPool::class); $queryBuilder = $connectionPool->getQueryBuilderForTable('tt_content'); diff --git a/Classes/Wrapper/Modal.php b/Classes/Wrapper/Modal.php index 1a4aba26..877c0754 100644 --- a/Classes/Wrapper/Modal.php +++ b/Classes/Wrapper/Modal.php @@ -24,14 +24,14 @@ public function getProcessedData(array $processedData, array $flexconf): array $processedData['modal']['size'] = $flexconf['size']; $processedData['modal']['button'] = $flexconf['button']; $processedData['modal']['style'] = $flexconf['style']; - if ( $flexconf['buttonText'] ) { + if ( !empty($flexconf['buttonText']) ) { $processedData['modal']['buttonText'] = $flexconf['buttonText']; } elseif ( $processedData['data']['header'] ) { $processedData['modal']['buttonText'] = $processedData['data']['header']; } else { $processedData['modal']['buttonText'] = $processedData['modal']['button'] ? 'Modal-Button' :'Modal-Link'; } - if ( $flexconf['fixedPosition'] ) { + if ( !empty($flexconf['fixedPosition']) ) { $processedData['modal']['fixedClass'] = 'fixedModalButton fixedPosition fixedPosition-'.$flexconf['fixedPosition']; $processedData['class'] .= $flexconf['rotate'] ? ' rotateFixedPosition rotate-'.$flexconf['rotate'] : ''; $processedData['modal']['fixedButton'] = TRUE; @@ -42,7 +42,7 @@ public function getProcessedData(array $processedData, array $flexconf): array if ( $headerPosition == 'right' ) $headerPosition = 'end'; $processedData['class'] .= ' text-'.$headerPosition; } - if ($flexconf['whiteclosebutton']) { + if (!empty($flexconf['whiteclosebutton'])) { $processedData['modal']['whiteclosebutton'] = TRUE; } diff --git a/Configuration/Backend/Modules.php b/Configuration/Backend/Modules.php new file mode 100644 index 00000000..b21250b4 --- /dev/null +++ b/Configuration/Backend/Modules.php @@ -0,0 +1,24 @@ + [ + 'parent' => 'web', + 'position' => ['after' => 'web_list'], + 'access' => 'user,group', + 'workspaces' => 'live', + 'path' => '/module/web/t3sbootstrap', + 'labels' => 'LLL:EXT:t3sbootstrap/Resources/Private/Language/locallang_m1.xlf', + 'extensionName' => 'T3sbootstrap', + 'iconIdentifier' => 'bootstraplogo', + 'controllerActions' => [ + ConfigController::class => [ + 'list', 'new', 'create', 'edit', 'update', 'delete', 'dashboard', 'constants', + ], + ], + ], +]; diff --git a/Configuration/FlexForms/AssetInline.xml b/Configuration/FlexForms/AssetInline.xml index d5ada088..b323970f 100644 --- a/Configuration/FlexForms/AssetInline.xml +++ b/Configuration/FlexForms/AssetInline.xml @@ -1,30 +1,26 @@ + + 1 + + Inline JavaScript Settings array - - Inline JavaScript Settings - - array - + - - - Enable if you use jquery. - - check - - + + Enable if you use jquery. + + check + - - - Define whether the JavaScript should be put in the <head> tag above-the-fold or somewhere in the body part. - - check - - + + Define whether the JavaScript should be put in the <head> tag above-the-fold or somewhere in the body part. + + check + diff --git a/Configuration/FlexForms/Bootstrap.xml b/Configuration/FlexForms/Bootstrap.xml index 98740718..bdf1fc27 100644 --- a/Configuration/FlexForms/Bootstrap.xml +++ b/Configuration/FlexForms/Bootstrap.xml @@ -1,937 +1,887 @@ + + 1 + - array - - Utility Settings - + Utility Settings array - - - reload - USER:T3SBS\T3sbootstrap\UserFunction\TcaMatcher->autoLayoutParent - - select - selectSingle - - - no .col - none - - - Equal-width - equal - - - Column width - column - - - Variable width content - variable - - - equal - 1 - - + + reload + USER:T3SBS\T3sbootstrap\UserFunction\TcaMatcher->autoLayoutParent + + select + selectSingle + + + no .col + none + + + Equal-width + equal + + + Column width + column + + + Variable width content + variable + + + equal + 1 + - - - USER:T3SBS\T3sbootstrap\UserFunction\TcaMatcher->autoLayoutParent - - check - - + + USER:T3SBS\T3sbootstrap\UserFunction\TcaMatcher->autoLayoutParent + + check + - - + + + + USER:T3SBS\T3sbootstrap\UserFunction\TcaMatcher->autoLayoutParent + USER:T3SBS\T3sbootstrap\UserFunction\TcaMatcher->flexContainerParent + + + + select + selectSingle + + + none + + + + start + start + + + end + end + + + center + center + + + + + + + USER:T3SBS\T3sbootstrap\UserFunction\TcaMatcher->autoLayoutParent USER:T3SBS\T3sbootstrap\UserFunction\TcaMatcher->flexContainerParent - - select - selectSingle - - - none - - - - start - start - - - end - end - - - center - center - - - - - - - - - - - - USER:T3SBS\T3sbootstrap\UserFunction\TcaMatcher->autoLayoutParent - USER:T3SBS\T3sbootstrap\UserFunction\TcaMatcher->flexContainerParent - - - - select - selectSingle - - - none - - - - xs - xs - - - sm - sm - - - md - md - - - lg - lg - - - xl - xl - - - xxl - xxl - - - - 1 - - + + select + selectSingle + + + none + + + + xs + xs + + + sm + sm + + + md + md + + + lg + lg + + + xl + xl + + + xxl + xxl + + + + 1 + - - - USER:T3SBS\T3sbootstrap\UserFunction\TcaMatcher->flexContainerParent - - select - selectSingle - - - none - - - - right - mr - - - left - ml - - - top - mt - - - bottom - mb - - - - - + + USER:T3SBS\T3sbootstrap\UserFunction\TcaMatcher->flexContainerParent + + select + selectSingle + + + none + + + + right + mr + + + left + ml + + + top + mt + + + bottom + mb + + + + - - - USER:T3SBS\T3sbootstrap\UserFunction\TcaMatcher->flexContainerParent - - select - selectSingle - - - none - - - - 1 - 1 - - - 2 - 2 - - - 3 - 3 - - - 4 - 4 - - - 5 - 5 - - - 6 - 6 - - - 7 - 7 - - - 8 - 8 - - - 9 - 9 - - - 10 - 10 - - - 11 - 11 - - - 12 - 12 - - - - 1 - - + + USER:T3SBS\T3sbootstrap\UserFunction\TcaMatcher->flexContainerParent + + select + selectSingle + + + none + + + + 1 + 1 + + + 2 + 2 + + + 3 + 3 + + + 4 + 4 + + + 5 + 5 + + + 6 + 6 + + + 7 + 7 + + + 8 + 8 + + + 9 + 9 + + + 10 + 10 + + + 11 + 11 + + + 12 + 12 + + + + 1 + - - - - select - selectSingle - - - none - 0 - - - Hidden only on xs - d-none d-sm-block - - - Hidden on sm and down - d-none d-md-block - - - Hidden on md and down - d-none d-lg-block - - - Hidden on lg and down - d-none d-xl-block - - - Hidden only on xl - d-xl-none - - - Visible only on xs - d-block d-sm-none - - - Visible sm and down - d-block d-md-none - - - Visible md and down - d-block d-lg-none - - - Visible lg and down - d-block d-xl-none - - - 0 - - + + + select + selectSingle + + + none + 0 + + + Hidden only on xs + d-none d-sm-block + + + Hidden on sm and down + d-none d-md-block + + + Hidden on md and down + d-none d-lg-block + + + Hidden on lg and down + d-none d-xl-block + + + Hidden only on xl + d-xl-none + + + Visible only on xs + d-block d-sm-none + + + Visible sm and down + d-block d-md-none + + + Visible md and down + d-block d-lg-none + + + Visible lg and down + d-block d-xl-none + + + 0 + - - - reload - - select - selectSingle - - - none - 0 - - - border - border - - - border - remove top - border-top-0 - - - border - remove right - border-end-0 - - - border - remove bottom - border-bottom-0 - - - border - remove left - border-start-0 - - - 0 - - + + reload + + select + selectSingle + + + none + 0 + + + border + border + + + border - remove top + border-top-0 + + + border - remove right + border-end-0 + + + border - remove bottom + border-bottom-0 + + + border - remove left + border-start-0 + + + 0 + - - - FIELD:sDEF.border:!=:0 - - select - selectSingle - - - LLL:EXT:t3sbootstrap/Resources/Private/Language/locallang_be.xlf:secondary - secondary - - - LLL:EXT:t3sbootstrap/Resources/Private/Language/locallang_be.xlf:primary - primary - - - LLL:EXT:t3sbootstrap/Resources/Private/Language/locallang_be.xlf:success - success - - - LLL:EXT:t3sbootstrap/Resources/Private/Language/locallang_be.xlf:info - info - - - LLL:EXT:t3sbootstrap/Resources/Private/Language/locallang_be.xlf:warning - warning - - - LLL:EXT:t3sbootstrap/Resources/Private/Language/locallang_be.xlf:danger - danger - - - Light - light - - - Dark - dark - - - White - white - - - secondary - - + + FIELD:sDEF.border:!=:0 + + select + selectSingle + + + LLL:EXT:t3sbootstrap/Resources/Private/Language/locallang_be.xlf:secondary + secondary + + + LLL:EXT:t3sbootstrap/Resources/Private/Language/locallang_be.xlf:primary + primary + + + LLL:EXT:t3sbootstrap/Resources/Private/Language/locallang_be.xlf:success + success + + + LLL:EXT:t3sbootstrap/Resources/Private/Language/locallang_be.xlf:info + info + + + LLL:EXT:t3sbootstrap/Resources/Private/Language/locallang_be.xlf:warning + warning + + + LLL:EXT:t3sbootstrap/Resources/Private/Language/locallang_be.xlf:danger + danger + + + Light + light + + + Dark + dark + + + White + white + + + secondary + - - - FIELD:sDEF.border:!=:0 - - select - selectSingle - - - none - 0 - - - rounded - rounded - - - rounded-top - rounded-top - - - rounded-right - rounded-end - - - rounded-bottom - rounded-bottom - - - rounded-left - rounded-start - - - rounded-circle - rounded-circle - - - rounded-pill - rounded-pill - - - 0 - - + + FIELD:sDEF.border:!=:0 + + select + selectSingle + + + none + 0 + + + rounded + rounded + + + rounded-top + rounded-top + + + rounded-right + rounded-end + + + rounded-bottom + rounded-bottom + + + rounded-left + rounded-start + + + rounded-circle + rounded-circle + + + rounded-pill + rounded-pill + + + 0 + - - - reload - USER:T3SBS\T3sbootstrap\UserFunction\TcaMatcher->isMenu - - select - selectSingle - - - default (flex-row) - flex-row - - - column (flex-column) - flex-column - + + reload + USER:T3SBS\T3sbootstrap\UserFunction\TcaMatcher->isMenu + + select + selectSingle + + + default (flex-row) + flex-row + + + column (flex-column) + flex-column + - - flex-column - - + + flex-column + - - - - - USER:T3SBS\T3sbootstrap\UserFunction\TcaMatcher->isMenu - FIELD:sDEF.menudirection:=:flex-row - - - - select - selectSingle - - - Right - justify-content-end - - - Center - justify-content-center - - - Left - justify-content-start - - - Fill and justify - nav-fill - - - Fill and justify (variant w/ arrow) - nav-fill variant - - - justify-content-end - - + + + + USER:T3SBS\T3sbootstrap\UserFunction\TcaMatcher->isMenu + FIELD:sDEF.menudirection:=:flex-row + + + + select + selectSingle + + + Right + justify-content-end + + + Center + justify-content-center + + + Left + justify-content-start + + + Fill and justify + nav-fill + + + Fill and justify (variant w/ arrow) + nav-fill variant + + + justify-content-end + - - - USER:T3SBS\T3sbootstrap\UserFunction\TcaMatcher->isMenu - - check - - + + USER:T3SBS\T3sbootstrap\UserFunction\TcaMatcher->isMenu + + check + - array - - col-* - + col-* array - - - - - USER:T3SBS\T3sbootstrap\UserFunction\TcaMatcher->autoLayoutParent - - FIELD:sDEF.gridSystem:=:column - FIELD:sDEF.gridSystem:=:variable - - - - - select - selectSingle - - - none - 0 - - - 1 - 1 - - - 2 - 2 - - - 3 - 3 - - - 4 - 4 - - - 5 - 5 - - - 6 - 6 - - - 7 - 7 - - - 8 - 8 - - - 9 - 9 - - - 10 - 10 - - - 11 - 11 - - - 12 - 12 - - - auto - auto - - - equal - equal - - - 0 - 1 - - + + + + USER:T3SBS\T3sbootstrap\UserFunction\TcaMatcher->autoLayoutParent + + FIELD:sDEF.gridSystem:=:column + FIELD:sDEF.gridSystem:=:variable + + + + + select + selectSingle + + + none + 0 + + + 1 + 1 + + + 2 + 2 + + + 3 + 3 + + + 4 + 4 + + + 5 + 5 + + + 6 + 6 + + + 7 + 7 + + + 8 + 8 + + + 9 + 9 + + + 10 + 10 + + + 11 + 11 + + + 12 + 12 + + + auto + auto + + + equal + equal + + + 0 + 1 + - array - - col-sm-* - + col-sm-* array - - - - - USER:T3SBS\T3sbootstrap\UserFunction\TcaMatcher->autoLayoutParent - FIELD:sDEF.gridSystem:=:variable - - - - select - selectSingle - - - none - 0 - - - 1 - 1 - - - 2 - 2 - - - 3 - 3 - - - 4 - 4 - - - 5 - 5 - - - 6 - 6 - - - 7 - 7 - - - 8 - 8 - - - 9 - 9 - - - 10 - 10 - - - 11 - 11 - - - 12 - 12 - - - auto - auto - - - equal - equal - - - 0 - 1 - - + + + + USER:T3SBS\T3sbootstrap\UserFunction\TcaMatcher->autoLayoutParent + FIELD:sDEF.gridSystem:=:variable + + + + select + selectSingle + + + none + 0 + + + 1 + 1 + + + 2 + 2 + + + 3 + 3 + + + 4 + 4 + + + 5 + 5 + + + 6 + 6 + + + 7 + 7 + + + 8 + 8 + + + 9 + 9 + + + 10 + 10 + + + 11 + 11 + + + 12 + 12 + + + auto + auto + + + equal + equal + + + 0 + 1 + - - col-md-* - + col-md-* array - - - - - USER:T3SBS\T3sbootstrap\UserFunction\TcaMatcher->autoLayoutParent - FIELD:sDEF.gridSystem:=:variable - - - - select - selectSingle - - - none - 0 - - - 1 - 1 - - - 2 - 2 - - - 3 - 3 - - - 4 - 4 - - - 5 - 5 - - - 6 - 6 - - - 7 - 7 - - - 8 - 8 - - - 9 - 9 - - - 10 - 10 - - - 11 - 11 - - - 12 - 12 - - - auto - auto - - - equal - equal - - - 0 - 1 - - + + + + USER:T3SBS\T3sbootstrap\UserFunction\TcaMatcher->autoLayoutParent + FIELD:sDEF.gridSystem:=:variable + + + + select + selectSingle + + + none + 0 + + + 1 + 1 + + + 2 + 2 + + + 3 + 3 + + + 4 + 4 + + + 5 + 5 + + + 6 + 6 + + + 7 + 7 + + + 8 + 8 + + + 9 + 9 + + + 10 + 10 + + + 11 + 11 + + + 12 + 12 + + + auto + auto + + + equal + equal + + + 0 + 1 + - array - - col-lg-* - + col-lg-* array - - - - - USER:T3SBS\T3sbootstrap\UserFunction\TcaMatcher->autoLayoutParent - FIELD:sDEF.gridSystem:=:variable - - - - select - selectSingle - - - none - 0 - - - 1 - 1 - - - 2 - 2 - - - 3 - 3 - - - 4 - 4 - - - 5 - 5 - - - 6 - 6 - - - 7 - 7 - - - 8 - 8 - - - 9 - 9 - - - 10 - 10 - - - 11 - 11 - - - 12 - 12 - - - auto - auto - - - equal - equal - - - 0 - 1 - - + + + + USER:T3SBS\T3sbootstrap\UserFunction\TcaMatcher->autoLayoutParent + FIELD:sDEF.gridSystem:=:variable + + + + select + selectSingle + + + none + 0 + + + 1 + 1 + + + 2 + 2 + + + 3 + 3 + + + 4 + 4 + + + 5 + 5 + + + 6 + 6 + + + 7 + 7 + + + 8 + 8 + + + 9 + 9 + + + 10 + 10 + + + 11 + 11 + + + 12 + 12 + + + auto + auto + + + equal + equal + + + 0 + 1 + - array - - col-xl-* - + col-xl-* array - - - - - USER:T3SBS\T3sbootstrap\UserFunction\TcaMatcher->autoLayoutParent - FIELD:sDEF.gridSystem:=:variable - - - - select - selectSingle - - - none - 0 - - - 1 - 1 - - - 2 - 2 - - - 3 - 3 - - - 4 - 4 - - - 5 - 5 - - - 6 - 6 - - - 7 - 7 - - - 8 - 8 - - - 9 - 9 - - - 10 - 10 - - - 11 - 11 - - - 12 - 12 - - - auto - auto - - - equal - equal - - - 0 - 1 - - + + + + USER:T3SBS\T3sbootstrap\UserFunction\TcaMatcher->autoLayoutParent + FIELD:sDEF.gridSystem:=:variable + + + + select + selectSingle + + + none + 0 + + + 1 + 1 + + + 2 + 2 + + + 3 + 3 + + + 4 + 4 + + + 5 + 5 + + + 6 + 6 + + + 7 + 7 + + + 8 + 8 + + + 9 + 9 + + + 10 + 10 + + + 11 + 11 + + + 12 + 12 + + + auto + auto + + + equal + equal + + + 0 + 1 + diff --git a/Configuration/FlexForms/Button.xml b/Configuration/FlexForms/Button.xml index 7b219ed6..d3cc90ba 100644 --- a/Configuration/FlexForms/Button.xml +++ b/Configuration/FlexForms/Button.xml @@ -1,210 +1,198 @@ + + 1 + + array - - - - select - selectSingle - - - none - 0 - - - Hidden only on xs - d-none d-sm-block - - - Hidden on sm and down - d-none d-md-block - - - Hidden on md and down - d-none d-lg-block - - - Hidden on lg and down - d-none d-xl-block - - - Hidden only on xl - d-xl-none - - - Visible only on xs - d-block d-sm-none - - - Visible sm and down - d-block d-md-none - - - Visible md and down - d-block d-lg-none - - - Visible lg and down - d-block d-xl-none - - - 0 - - + + + select + selectSingle + + + none + 0 + + + Hidden only on xs + d-none d-sm-block + + + Hidden on sm and down + d-none d-md-block + + + Hidden on md and down + d-none d-lg-block + + + Hidden on lg and down + d-none d-xl-block + + + Hidden only on xl + d-xl-none + + + Visible only on xs + d-block d-sm-none + + + Visible sm and down + d-block d-md-none + + + Visible md and down + d-block d-lg-none + + + Visible lg and down + d-block d-xl-none + + + 0 + - - - USER:T3SBS\T3sbootstrap\UserFunction\TcaMatcher->buttonParent - - select - selectSingle - - - LLL:EXT:t3sbootstrap/Resources/Private/Language/locallang_be.xlf:default - default - - - LLL:EXT:t3sbootstrap/Resources/Private/Language/locallang_be.xlf:small - btn-sm - - - LLL:EXT:t3sbootstrap/Resources/Private/Language/locallang_be.xlf:large - btn-lg - - - default - - + + USER:T3SBS\T3sbootstrap\UserFunction\TcaMatcher->buttonParent + + select + selectSingle + + + LLL:EXT:t3sbootstrap/Resources/Private/Language/locallang_be.xlf:default + default + + + LLL:EXT:t3sbootstrap/Resources/Private/Language/locallang_be.xlf:small + btn-sm + + + LLL:EXT:t3sbootstrap/Resources/Private/Language/locallang_be.xlf:large + btn-lg + + + default + - - - USER:T3SBS\T3sbootstrap\UserFunction\TcaMatcher->buttonParent - - check - - + + USER:T3SBS\T3sbootstrap\UserFunction\TcaMatcher->buttonParent + + check + - - - - check - - + + + check + - - - reload - USER:T3SBS\T3sbootstrap\UserFunction\TcaMatcher->buttonParent - - select - selectSingle - - - none - 0 - - - Left browser edge - left - - - Right browser edge - right - - - 0 - - + + reload + USER:T3SBS\T3sbootstrap\UserFunction\TcaMatcher->buttonParent + + select + selectSingle + + + none + 0 + + + Left browser edge + left + + + Right browser edge + right + + + 0 + - - - FIELD:sDEF.fixedPosition:!=:0 - - select - selectSingle - - - 0 degree - 0 - - - + 90 degree - plus - - - - 90 degree - minus - - - 0 - - + + FIELD:sDEF.fixedPosition:!=:0 + + select + selectSingle + + + 0 degree + 0 + + + + 90 degree + plus + + + - 90 degree + minus + + + 0 + - - - - input - trim - 20 - - + + + input + trim + 20 +
1
@@ -215,48 +203,44 @@ array - - - - input - inputLink - 48 - - + + + input + inputLink + 48 +
- - - Trigger dropdown menus direction (if dropdown items) - USER:T3SBS\T3sbootstrap\UserFunction\TcaMatcher->buttonGroup - - select - selectSingle - - - dropdown - - - - Dropup - dropup - - - Dropright - dropend - - - Dropleft - dropstart - - - - - + + Trigger dropdown menus direction (if dropdown items) + USER:T3SBS\T3sbootstrap\UserFunction\TcaMatcher->buttonGroup + + select + selectSingle + + + dropdown + + + + Dropup + dropup + + + Dropright + dropend + + + Dropleft + dropstart + + + +
diff --git a/Configuration/FlexForms/CardContent.xml b/Configuration/FlexForms/CardContent.xml index b4af7167..d4b38843 100644 --- a/Configuration/FlexForms/CardContent.xml +++ b/Configuration/FlexForms/CardContent.xml @@ -1,34 +1,31 @@ + + 1 + - - Content - + Content array - - - - input - 48 - 99 - trim - 0 - - + + + input + 48 + 99 + trim + 0 + - - - - text - int,trim - 3 - true - - + + + text + int,trim + 3 + true +
1
@@ -39,43 +36,37 @@ array - - - - input - 48 - - + + + input + 48 +
- - - - text - int,trim - 3 - true - - + + + text + int,trim + 3 + true + - - - - input - 48 - 99 - trim - 0 - - + + + input + 48 + 99 + trim + 0 +
-
\ No newline at end of file +
diff --git a/Configuration/FlexForms/CardSetting.xml b/Configuration/FlexForms/CardSetting.xml index 3e61bd61..3cb2f699 100644 --- a/Configuration/FlexForms/CardSetting.xml +++ b/Configuration/FlexForms/CardSetting.xml @@ -1,1380 +1,1265 @@ + + 1 + - - Card Settings - + Card Settings array - - - - select - selectSingle - - - None - 0 - - - zoom and border - one - - - 0 - - + + + select + selectSingle + + + None + 0 + + + zoom and border + one + + + 0 + - - - USER:T3SBS\T3sbootstrap\UserFunction\TcaMatcher->cardWrapperParent - - check - - + + USER:T3SBS\T3sbootstrap\UserFunction\TcaMatcher->cardWrapperParent + + check + - - - - - USER:T3SBS\T3sbootstrap\UserFunction\TcaMatcher->cardWrapperParent - FIELD:sDEF.multiImage.enable:=:0 - - - - check - - + + + + USER:T3SBS\T3sbootstrap\UserFunction\TcaMatcher->cardWrapperParent + FIELD:sDEF.multiImage.enable:=:0 + + + + check + - - - - - USER:T3SBS\T3sbootstrap\UserFunction\TcaMatcher->cardWrapperParent - FIELD:sDEF.multiImage.enable:=:0 - - - - check - - + + + + USER:T3SBS\T3sbootstrap\UserFunction\TcaMatcher->cardWrapperParent + FIELD:sDEF.multiImage.enable:=:0 + + + + check + - - - Frontside with image - Backside with text (if "Text Top" available) or image (second image) - - - USER:T3SBS\T3sbootstrap\UserFunction\TcaMatcher->cardWrapperParent - FIELD:sDEF.multiImage.enable:=:0 - - - reload - - check - - + + Frontside with image - Backside with text (if "Text Top" available) or image (second image) + + + USER:T3SBS\T3sbootstrap\UserFunction\TcaMatcher->cardWrapperParent + FIELD:sDEF.multiImage.enable:=:0 + + + reload + + check + - - - FIELD:flipcard:=:1 - - select - selectSingle - - - 180deg - 180deg - - - 540deg - 540deg - - - 900deg - 900deg - - - 180deg - - + + FIELD:flipcard:=:1 + + select + selectSingle + + + 180deg + 180deg + + + 540deg + 540deg + + + 900deg + 900deg + + + 180deg + - - - - check - - + + + check + - - reload - - - check - - + reload + + + check + - - - FIELD:button.enable:=:1 - - check - - + + FIELD:button.enable:=:1 + + check + - - - FIELD:button.enable:=:1 - - select - selectSingle - - - Secondary - secondary - - - LLL:EXT:t3sbootstrap/Resources/Private/Language/locallang_be.xlf:primary - primary - - - LLL:EXT:t3sbootstrap/Resources/Private/Language/locallang_be.xlf:success - success - - - LLL:EXT:t3sbootstrap/Resources/Private/Language/locallang_be.xlf:info - info - - - LLL:EXT:t3sbootstrap/Resources/Private/Language/locallang_be.xlf:warning - warning - - - LLL:EXT:t3sbootstrap/Resources/Private/Language/locallang_be.xlf:danger - danger - - - Link - card-link - - - secondary - - + + FIELD:button.enable:=:1 + + select + selectSingle + + + Secondary + secondary + + + LLL:EXT:t3sbootstrap/Resources/Private/Language/locallang_be.xlf:primary + primary + + + LLL:EXT:t3sbootstrap/Resources/Private/Language/locallang_be.xlf:success + success + + + LLL:EXT:t3sbootstrap/Resources/Private/Language/locallang_be.xlf:info + info + + + LLL:EXT:t3sbootstrap/Resources/Private/Language/locallang_be.xlf:warning + warning + + + LLL:EXT:t3sbootstrap/Resources/Private/Language/locallang_be.xlf:danger + danger + + + Link + card-link + + + secondary + - - - FIELD:button.enable:=:1 - - input - - trim - 48 - 99 - - - + + FIELD:button.enable:=:1 + + input + + trim + 48 + 99 + + - - - FIELD:button.enable:=:1 - - check - - + + FIELD:button.enable:=:1 + + check + - - - FIELD:button.enable:=:1 - - check - - + + FIELD:button.enable:=:1 + + check + - - - FIELD:button.enable:=:1 - - check - - + + FIELD:button.enable:=:1 + + check + - - - reload - - check - - + + reload + + check + - - - FIELD:sDEF.cardborder:=:1 - - select - selectSingle - - - LLL:EXT:t3sbootstrap/Resources/Private/Language/locallang_be.xlf:secondary - secondary - - - LLL:EXT:t3sbootstrap/Resources/Private/Language/locallang_be.xlf:primary - primary - - - LLL:EXT:t3sbootstrap/Resources/Private/Language/locallang_be.xlf:success - success - - - LLL:EXT:t3sbootstrap/Resources/Private/Language/locallang_be.xlf:info - info - - - LLL:EXT:t3sbootstrap/Resources/Private/Language/locallang_be.xlf:warning - warning - - - LLL:EXT:t3sbootstrap/Resources/Private/Language/locallang_be.xlf:danger - danger - - - light - light - - - dark - dark - - - white - white - - - none - 0 - - - secondary - - + + FIELD:sDEF.cardborder:=:1 + + select + selectSingle + + + LLL:EXT:t3sbootstrap/Resources/Private/Language/locallang_be.xlf:secondary + secondary + + + LLL:EXT:t3sbootstrap/Resources/Private/Language/locallang_be.xlf:primary + primary + + + LLL:EXT:t3sbootstrap/Resources/Private/Language/locallang_be.xlf:success + success + + + LLL:EXT:t3sbootstrap/Resources/Private/Language/locallang_be.xlf:info + info + + + LLL:EXT:t3sbootstrap/Resources/Private/Language/locallang_be.xlf:warning + warning + + + LLL:EXT:t3sbootstrap/Resources/Private/Language/locallang_be.xlf:danger + danger + + + light + light + + + dark + dark + + + white + white + + + none + 0 + + + secondary + - - - - - USER:T3SBS\T3sbootstrap\UserFunction\TcaMatcher->cardWrapperParent - FIELD:sDEF.multiImage.enable:=:0 - - - - check - - + + + + USER:T3SBS\T3sbootstrap\UserFunction\TcaMatcher->cardWrapperParent + FIELD:sDEF.multiImage.enable:=:0 + + + + check + - - - You need at least two images for the profile card. The second is the circular, smaller image - reload - - check - - + + You need at least two images for the profile card. The second is the circular, smaller image + reload + + check + - - - FIELD:sDEF.multiImage.enable:=:1 - - input - 5 - 50 - trim,int - - 10 - 90 - - - 5 - 200 - - - + + FIELD:sDEF.multiImage.enable:=:1 + + input + 5 + 50 + trim,int + + 10 + 90 + + + 5 + 200 + + - - - FIELD:sDEF.multiImage.enable:=:1 - - select - selectSingle - - - none - none - - - 1 - border border-1 - - - 2 - border border-2 - - - 3 - border border-3 - - - 4 - border border-4 - - - 5 - border border-5 - - - border border-1 - 1 - - + + FIELD:sDEF.multiImage.enable:=:1 + + select + selectSingle + + + none + none + + + 1 + border border-1 + + + 2 + border border-2 + + + 3 + border border-3 + + + 4 + border border-4 + + + 5 + border border-5 + + + border border-1 + 1 + - - - FIELD:sDEF.multiImage.enable:=:1 - - select - selectSingle - - - LLL:EXT:t3sbootstrap/Resources/Private/Language/locallang_be.xlf:secondary - secondary - - - LLL:EXT:t3sbootstrap/Resources/Private/Language/locallang_be.xlf:primary - primary - - - LLL:EXT:t3sbootstrap/Resources/Private/Language/locallang_be.xlf:success - success - - - LLL:EXT:t3sbootstrap/Resources/Private/Language/locallang_be.xlf:info - info - - - LLL:EXT:t3sbootstrap/Resources/Private/Language/locallang_be.xlf:warning - warning - - - LLL:EXT:t3sbootstrap/Resources/Private/Language/locallang_be.xlf:danger - danger - - - light - light - - - dark - dark - - - white - white - - - none - 0 - - - white - - + + FIELD:sDEF.multiImage.enable:=:1 + + select + selectSingle + + + LLL:EXT:t3sbootstrap/Resources/Private/Language/locallang_be.xlf:secondary + secondary + + + LLL:EXT:t3sbootstrap/Resources/Private/Language/locallang_be.xlf:primary + primary + + + LLL:EXT:t3sbootstrap/Resources/Private/Language/locallang_be.xlf:success + success + + + LLL:EXT:t3sbootstrap/Resources/Private/Language/locallang_be.xlf:info + info + + + LLL:EXT:t3sbootstrap/Resources/Private/Language/locallang_be.xlf:warning + warning + + + LLL:EXT:t3sbootstrap/Resources/Private/Language/locallang_be.xlf:danger + danger + + + light + light + + + dark + dark + + + white + white + + + none + 0 + + + white + - - - FIELD:sDEF.multiImage.enable:=:1 - - check - 1 - - + + FIELD:sDEF.multiImage.enable:=:1 + + check + 1 + - - - FIELD:sDEF.multiImage.enable:=:1 - reload - - check - - + + FIELD:sDEF.multiImage.enable:=:1 + reload + + check + - - - - - FIELD:sDEF.multiImage.enable:=:1 - FIELD:sDEF.multiImage.diagonal:=:1 - - - - input - 5 - 50 - trim,int - - 10 - 90 - - - 5 - 200 - - - + + + + FIELD:sDEF.multiImage.enable:=:1 + FIELD:sDEF.multiImage.diagonal:=:1 + + + + input + 5 + 50 + trim,int + + 10 + 90 + + + 5 + 200 + + - - - FIELD:sDEF.multiImage.enable:=:1 - reload - - check - - + + FIELD:sDEF.multiImage.enable:=:1 + reload + + check + - - - - - FIELD:sDEF.multiImage.enable:=:1 - FIELD:sDEF.multiImage.socialmedia.enable:=:1 - - - - check - - + + + + FIELD:sDEF.multiImage.enable:=:1 + FIELD:sDEF.multiImage.socialmedia.enable:=:1 + + + + check + - - - - - FIELD:sDEF.multiImage.enable:=:1 - FIELD:sDEF.multiImage.socialmedia.enable:=:1 - - - - input - inputLink - - + + + + FIELD:sDEF.multiImage.enable:=:1 + FIELD:sDEF.multiImage.socialmedia.enable:=:1 + + + + input + inputLink + - - - - - FIELD:sDEF.multiImage.enable:=:1 - FIELD:sDEF.multiImage.socialmedia.enable:=:1 - - - - input - inputLink - - + + + + FIELD:sDEF.multiImage.enable:=:1 + FIELD:sDEF.multiImage.socialmedia.enable:=:1 + + + + input + inputLink + - - - - - FIELD:sDEF.multiImage.enable:=:1 - FIELD:sDEF.multiImage.socialmedia.enable:=:1 - - - - input - inputLink - - + + + + FIELD:sDEF.multiImage.enable:=:1 + FIELD:sDEF.multiImage.socialmedia.enable:=:1 + + + + input + inputLink + - - - - - FIELD:sDEF.multiImage.enable:=:1 - FIELD:sDEF.multiImage.socialmedia.enable:=:1 - - - - input - inputLink - - + + + + FIELD:sDEF.multiImage.enable:=:1 + FIELD:sDEF.multiImage.socialmedia.enable:=:1 + + + + input + inputLink + - - - - - FIELD:sDEF.multiImage.enable:=:1 - FIELD:sDEF.multiImage.socialmedia.enable:=:1 - - - - input - inputLink - - + + + + FIELD:sDEF.multiImage.enable:=:1 + FIELD:sDEF.multiImage.socialmedia.enable:=:1 + + + + input + inputLink + - - - - - FIELD:sDEF.multiImage.enable:=:1 - FIELD:sDEF.multiImage.socialmedia.enable:=:1 - - - - input - inputLink - - + + + + FIELD:sDEF.multiImage.enable:=:1 + FIELD:sDEF.multiImage.socialmedia.enable:=:1 + + + + input + inputLink + - - - - - FIELD:sDEF.multiImage.enable:=:1 - FIELD:sDEF.multiImage.socialmedia.enable:=:1 - - - - input - inputLink - - + + + + FIELD:sDEF.multiImage.enable:=:1 + FIELD:sDEF.multiImage.socialmedia.enable:=:1 + + + + input + inputLink + - - - - - FIELD:sDEF.multiImage.enable:=:1 - FIELD:sDEF.multiImage.socialmedia.enable:=:1 - - - - input - inputLink - - + + + + FIELD:sDEF.multiImage.enable:=:1 + FIELD:sDEF.multiImage.socialmedia.enable:=:1 + + + + input + inputLink + - array - - Auto-layout (if parent wrapper) - + Auto-layout (if parent wrapper) array - - - reload - USER:T3SBS\T3sbootstrap\UserFunction\TcaMatcher->autoLayoutParent - - select - selectSingle - - - no .col - none - - - Equal-width - equal - - - Column width - column - - - Variable width content - variable - - - equal - 1 - - + + reload + USER:T3SBS\T3sbootstrap\UserFunction\TcaMatcher->autoLayoutParent + + select + selectSingle + + + no .col + none + + + Equal-width + equal + + + Column width + column + + + Variable width content + variable + + + equal + 1 + - - - USER:T3SBS\T3sbootstrap\UserFunction\TcaMatcher->autoLayoutParent - - check - - + + USER:T3SBS\T3sbootstrap\UserFunction\TcaMatcher->autoLayoutParent + + check + - - + + + + USER:T3SBS\T3sbootstrap\UserFunction\TcaMatcher->autoLayoutParent + USER:T3SBS\T3sbootstrap\UserFunction\TcaMatcher->flexContainerParent + + + + select + selectSingle + + + none + + + + start + start + + + end + end + + + center + center + + + + + + + USER:T3SBS\T3sbootstrap\UserFunction\TcaMatcher->autoLayoutParent USER:T3SBS\T3sbootstrap\UserFunction\TcaMatcher->flexContainerParent - - select - selectSingle - - - none - - - - start - start - - - end - end - - - center - center - - - - - - - - - - - - USER:T3SBS\T3sbootstrap\UserFunction\TcaMatcher->autoLayoutParent - USER:T3SBS\T3sbootstrap\UserFunction\TcaMatcher->flexContainerParent - - - - select - selectSingle - - - none - - - - xs - xs - - - sm - sm - - - md - md - - - lg - lg - - - xl - xl - + + select + selectSingle + + + none + + + + xs + xs + + + sm + sm + + + md + md + + + lg + lg + + + xl + xl + - - - 1 - - + + + 1 + - - - USER:T3SBS\T3sbootstrap\UserFunction\TcaMatcher->flexContainerParent - - select - selectSingle - - - none - - - - right - mr - - - left - ml - - - top - mt - - - bottom - mb - - - - - + + USER:T3SBS\T3sbootstrap\UserFunction\TcaMatcher->flexContainerParent + + select + selectSingle + + + none + + + + right + mr + + + left + ml + + + top + mt + + + bottom + mb + + + + - - - USER:T3SBS\T3sbootstrap\UserFunction\TcaMatcher->flexContainerParent - - select - selectSingle - - - none - - - - 1 - 1 - - - 2 - 2 - - - 3 - 3 - - - 4 - 4 - - - 5 - 5 - - - 6 - 6 - - - 7 - 7 - - - 8 - 8 - - - 9 - 9 - - - 10 - 10 - - - 11 - 11 - - - 12 - 12 - - - - 1 - - + + USER:T3SBS\T3sbootstrap\UserFunction\TcaMatcher->flexContainerParent + + select + selectSingle + + + none + + + + 1 + 1 + + + 2 + 2 + + + 3 + 3 + + + 4 + 4 + + + 5 + 5 + + + 6 + 6 + + + 7 + 7 + + + 8 + 8 + + + 9 + 9 + + + 10 + 10 + + + 11 + 11 + + + 12 + 12 + + + + 1 + - - array - - col-* - + col-* array - - - - - USER:T3SBS\T3sbootstrap\UserFunction\TcaMatcher->autoLayoutParent - - FIELD:auto.gridSystem:=:column - FIELD:auto.gridSystem:=:variable - - - - - select - selectSingle - - - none - 0 - - - 1 - 1 - - - 2 - 2 - - - 3 - 3 - - - 4 - 4 - - - 5 - 5 - - - 6 - 6 - - - 7 - 7 - - - 8 - 8 - - - 9 - 9 - - - 10 - 10 - - - 11 - 11 - - - 12 - 12 - - - auto - auto - - - equal - equal - - - 0 - 1 - - + + + + USER:T3SBS\T3sbootstrap\UserFunction\TcaMatcher->autoLayoutParent + + FIELD:auto.gridSystem:=:column + FIELD:auto.gridSystem:=:variable + + + + + select + selectSingle + + + none + 0 + + + 1 + 1 + + + 2 + 2 + + + 3 + 3 + + + 4 + 4 + + + 5 + 5 + + + 6 + 6 + + + 7 + 7 + + + 8 + 8 + + + 9 + 9 + + + 10 + 10 + + + 11 + 11 + + + 12 + 12 + + + auto + auto + + + equal + equal + + + 0 + 1 + - array - - col-sm-* - + col-sm-* array - - - - - USER:T3SBS\T3sbootstrap\UserFunction\TcaMatcher->autoLayoutParent - FIELD:auto.gridSystem:=:variable - - - - select - selectSingle - - - none - 0 - - - 1 - 1 - - - 2 - 2 - - - 3 - 3 - - - 4 - 4 - - - 5 - 5 - - - 6 - 6 - - - 7 - 7 - - - 8 - 8 - - - 9 - 9 - - - 10 - 10 - - - 11 - 11 - - - 12 - 12 - - - auto - auto - - - equal - equal - - - 0 - 1 - - + + + + USER:T3SBS\T3sbootstrap\UserFunction\TcaMatcher->autoLayoutParent + FIELD:auto.gridSystem:=:variable + + + + select + selectSingle + + + none + 0 + + + 1 + 1 + + + 2 + 2 + + + 3 + 3 + + + 4 + 4 + + + 5 + 5 + + + 6 + 6 + + + 7 + 7 + + + 8 + 8 + + + 9 + 9 + + + 10 + 10 + + + 11 + 11 + + + 12 + 12 + + + auto + auto + + + equal + equal + + + 0 + 1 + - - col-md-* - + col-md-* array - - - - - USER:T3SBS\T3sbootstrap\UserFunction\TcaMatcher->autoLayoutParent - FIELD:auto.gridSystem:=:variable - - - - select - selectSingle - - - none - 0 - - - 1 - 1 - - - 2 - 2 - - - 3 - 3 - - - 4 - 4 - - - 5 - 5 - - - 6 - 6 - - - 7 - 7 - - - 8 - 8 - - - 9 - 9 - - - 10 - 10 - - - 11 - 11 - - - 12 - 12 - - - auto - auto - - - equal - equal - - - 0 - 1 - - + + + + USER:T3SBS\T3sbootstrap\UserFunction\TcaMatcher->autoLayoutParent + FIELD:auto.gridSystem:=:variable + + + + select + selectSingle + + + none + 0 + + + 1 + 1 + + + 2 + 2 + + + 3 + 3 + + + 4 + 4 + + + 5 + 5 + + + 6 + 6 + + + 7 + 7 + + + 8 + 8 + + + 9 + 9 + + + 10 + 10 + + + 11 + 11 + + + 12 + 12 + + + auto + auto + + + equal + equal + + + 0 + 1 + - - array - - col-lg-* - + col-lg-* array - - - - - USER:T3SBS\T3sbootstrap\UserFunction\TcaMatcher->autoLayoutParent - FIELD:auto.gridSystem:=:variable - - - - select - selectSingle - - - none - 0 - - - 1 - 1 - - - 2 - 2 - - - 3 - 3 - - - 4 - 4 - - - 5 - 5 - - - 6 - 6 - - - 7 - 7 - - - 8 - 8 - - - 9 - 9 - - - 10 - 10 - - - 11 - 11 - - - 12 - 12 - - - auto - auto - - - equal - equal - - - 0 - 1 - - + + + + USER:T3SBS\T3sbootstrap\UserFunction\TcaMatcher->autoLayoutParent + FIELD:auto.gridSystem:=:variable + + + + select + selectSingle + + + none + 0 + + + 1 + 1 + + + 2 + 2 + + + 3 + 3 + + + 4 + 4 + + + 5 + 5 + + + 6 + 6 + + + 7 + 7 + + + 8 + 8 + + + 9 + 9 + + + 10 + 10 + + + 11 + 11 + + + 12 + 12 + + + auto + auto + + + equal + equal + + + 0 + 1 + - - array - - col-xl-* - + col-xl-* array - - - - - - USER:T3SBS\T3sbootstrap\UserFunction\TcaMatcher->autoLayoutParent - FIELD:auto.gridSystem:=:variable - - - - select - selectSingle - - - none - 0 - - - 1 - 1 - - - 2 - 2 - - - 3 - 3 - - - 4 - 4 - - - 5 - 5 - - - 6 - 6 - - - 7 - 7 - - - 8 - 8 - - - 9 - 9 - - - 10 - 10 - - - 11 - 11 - - - 12 - 12 - - - auto - auto - - - equal - equal - - - 0 - 1 - - + + + + USER:T3SBS\T3sbootstrap\UserFunction\TcaMatcher->autoLayoutParent + FIELD:auto.gridSystem:=:variable + + + + select + selectSingle + + + none + 0 + + + 1 + 1 + + + 2 + 2 + + + 3 + 3 + + + 4 + 4 + + + 5 + 5 + + + 6 + 6 + + + 7 + 7 + + + 8 + 8 + + + 9 + 9 + + + 10 + 10 + + + 11 + 11 + + + 12 + 12 + + + auto + auto + + + equal + equal + + + 0 + 1 + - array - - col-xxl-* - + col-xxl-* array - - - - - USER:T3SBS\T3sbootstrap\UserFunction\TcaMatcher->autoLayoutParent - FIELD:auto.gridSystem:=:variable - - - - select - selectSingle - - - none - 0 - - - 1 - 1 - - - 2 - 2 - - - 3 - 3 - - - 4 - 4 - - - 5 - 5 - - - 6 - 6 - - - 7 - 7 - - - 8 - 8 - - - 9 - 9 - - - 10 - 10 - - - 11 - 11 - - - 12 - 12 - - - auto - auto - - - equal - equal - - - 0 - 1 - - + + + + USER:T3SBS\T3sbootstrap\UserFunction\TcaMatcher->autoLayoutParent + FIELD:auto.gridSystem:=:variable + + + + select + selectSingle + + + none + 0 + + + 1 + 1 + + + 2 + 2 + + + 3 + 3 + + + 4 + 4 + + + 5 + 5 + + + 6 + 6 + + + 7 + 7 + + + 8 + 8 + + + 9 + 9 + + + 10 + 10 + + + 11 + 11 + + + 12 + 12 + + + auto + auto + + + equal + equal + + + 0 + 1 + - \ No newline at end of file +
diff --git a/Configuration/FlexForms/Carousel.xml b/Configuration/FlexForms/Carousel.xml index 3864fb4e..6f39440a 100644 --- a/Configuration/FlexForms/Carousel.xml +++ b/Configuration/FlexForms/Carousel.xml @@ -1,118 +1,104 @@ + + 1 + - array - - General - + General - - - USER:T3SBS\T3sbootstrap\UserFunction\TcaMatcher->isLocalVideo - - input - 5 - 0 - int - - -60 - 60 - - - 1 - 200 - - - + + USER:T3SBS\T3sbootstrap\UserFunction\TcaMatcher->isLocalVideo + + input + 5 + 0 + int + + -60 + 60 + + + 1 + 200 + + - - - USER:T3SBS\T3sbootstrap\UserFunction\TcaMatcher->isLocalVideo - - check - - + + USER:T3SBS\T3sbootstrap\UserFunction\TcaMatcher->isLocalVideo + + check + - - - USER:T3SBS\T3sbootstrap\UserFunction\TcaMatcher->isLocalVideo - - check - - + + USER:T3SBS\T3sbootstrap\UserFunction\TcaMatcher->isLocalVideo + + check + - - - USER:T3SBS\T3sbootstrap\UserFunction\TcaMatcher->isLocalVideo - - check - - + + USER:T3SBS\T3sbootstrap\UserFunction\TcaMatcher->isLocalVideo + + check + - - - USER:T3SBS\T3sbootstrap\UserFunction\TcaMatcher->isLocalVideo - - check - - + + USER:T3SBS\T3sbootstrap\UserFunction\TcaMatcher->isLocalVideo + + check + - - - - select - selectSingle - - - none - 0 - - - Caption only - caption - - - Entire image (overlay) - image - - - 0 - - + + + select + selectSingle + + + none + 0 + + + Caption only + caption + + + Entire image (overlay) + image + + + 0 + - - - - select - selectSingle - - - Top - top - - - Center - center - - - Bottom - end - - - end - - + + + select + selectSingle + + + Top + top + + + Center + center + + + Bottom + end + + + end + - \ No newline at end of file +
diff --git a/Configuration/FlexForms/Consent.xml b/Configuration/FlexForms/Consent.xml deleted file mode 100644 index 6c3fc0a2..00000000 --- a/Configuration/FlexForms/Consent.xml +++ /dev/null @@ -1,221 +0,0 @@ - - - - - - Settings - - array - - - - - - group - db - tt_content - 1 - 1 - 0 - 1 - - - suggest - - 1 - - - - - - - - - - - - 0 - text - true - - - - - - - - - 0 - allow - input - 20 - - - - - - - - - - select - selectSingle - - - LLL:EXT:t3sbootstrap/Resources/Private/Language/locallang_be.xlf:secondary - secondary - - - LLL:EXT:t3sbootstrap/Resources/Private/Language/locallang_be.xlf:primary - primary - - - LLL:EXT:t3sbootstrap/Resources/Private/Language/locallang_be.xlf:success - success - - - LLL:EXT:t3sbootstrap/Resources/Private/Language/locallang_be.xlf:info - info - - - LLL:EXT:t3sbootstrap/Resources/Private/Language/locallang_be.xlf:warning - warning - - - LLL:EXT:t3sbootstrap/Resources/Private/Language/locallang_be.xlf:danger - danger - - - Dark - dark - - - light - light - - - LLL:EXT:t3sbootstrap/Resources/Private/Language/locallang_be.xlf:link - link - - - warning - - - - - - - - - 0 - bg-info - input - 20 - - - - - - - - - check - 1 - - - - - - - - - select - selectSingle - - - 4by3 - 3 / 4 - - - 16by9 - 9 / 16 - - - 21by9 - 9 / 21 - - - 9 / 16 - - - - - - - - - inline - sys_file_reference - uid_foreign - sorting_foreign - tablenames - - consentpreviewimage - - uid_local - uid_local - - - - - - file - gif,jpg,jpeg,png - - - - - - - TYPO3\CMS\Core\Resource\Filter\FileExtensionFilter->filterInlineChildren - - - - - - - 0 - - uid_local - 45 - 45c - - - 1 - 0 - 1 - 0 - 1 - 1 - - - - - - - - - - - - diff --git a/Configuration/FlexForms/Container/AutoLayoutRow.xml b/Configuration/FlexForms/Container/AutoLayoutRow.xml index c71845ce..c02771b0 100644 --- a/Configuration/FlexForms/Container/AutoLayoutRow.xml +++ b/Configuration/FlexForms/Container/AutoLayoutRow.xml @@ -1,197 +1,187 @@ + + 1 + - array - - Alignment - + Alignment array - - - - select - selectSingle - - - none - - - - start (default) - start - - - center - center - - - end - end - - - between - between - - - around - around - - - - - + + + select + selectSingle + + + none + + + + start (default) + start + + + center + center + + + end + end + + + between + between + + + around + around + + + + - - - - select - selectSingle - - - none - - - - start - start - - - end - end - - - center - center - - - baseline - baseline - - - stretch - stretch - - - - - + + + select + selectSingle + + + none + + + + start + start + + + end + end + + + center + center + + + baseline + baseline + + + stretch + stretch + + + + - - - - select - selectSingle - - - none - - - - xs - xs - - - sm - sm - - - md - md - - - lg - lg - - - xl - xl - - - xxl - xxl - - - - 1 - - + + + select + selectSingle + + + none + + + + xs + xs + + + sm + sm + + + md + md + + + lg + lg + + + xl + xl + + + xxl + xxl + + + + 1 + - - - - select - selectSingle - - - gx-0 (no gutters) - gx-0 - - - gx-1 - gx-1 - - - gx-2 - gx-2 - - - gx-3 - gx-3 - - - gx-4 (default) - - - - gx-5 - gx-5 - - - - - + + + select + selectSingle + + + gx-0 (no gutters) + gx-0 + + + gx-1 + gx-1 + + + gx-2 + gx-2 + + + gx-3 + gx-3 + + + gx-4 (default) + + + + gx-5 + gx-5 + + + + - - - - select - selectSingle - - - gy-0 (no gutters) - gy-0 - - - gy-1 - gy-1 - - - gy-2 - gy-2 - - - gy-3 - gy-3 - - - gy-4 (default) - - - - gy-5 - gy-5 - - - - - + + + select + selectSingle + + + gy-0 (no gutters) + gy-0 + + + gy-1 + gy-1 + + + gy-2 + gy-2 + + + gy-3 + gy-3 + + + gy-4 (default) + + + + gy-5 + gy-5 + + + + diff --git a/Configuration/FlexForms/Container/BackgroundWrapper.xml b/Configuration/FlexForms/Container/BackgroundWrapper.xml index 38b60611..5494bfce 100644 --- a/Configuration/FlexForms/Container/BackgroundWrapper.xml +++ b/Configuration/FlexForms/Container/BackgroundWrapper.xml @@ -1,72 +1,69 @@ + + 1 + + General array - - General - - - - - select - selectSingle - - - none - 0 - - - Hidden only on xs - d-none d-sm-block - - - Hidden on sm and down - d-none d-md-block - - - Hidden on md and down - d-none d-lg-block - - - Hidden on lg and down - d-none d-xl-block - - - Hidden only on xl - d-xl-none - - - Visible only on xs - d-block d-sm-none - - - Visible sm and down - d-block d-md-none - - - Visible md and down - d-block d-lg-none - - - Visible lg and down - d-block d-xl-none - - - 0 - - + + + select + selectSingle + + + none + 0 + + + Hidden only on xs + d-none d-sm-block + + + Hidden on sm and down + d-none d-md-block + + + Hidden on md and down + d-none d-lg-block + + + Hidden on lg and down + d-none d-xl-block + + + Hidden only on xl + d-xl-none + + + Visible only on xs + d-block d-sm-none + + + Visible sm and down + d-block d-md-none + + + Visible md and down + d-block d-lg-none + + + Visible lg and down + d-block d-xl-none + + + 0 + - - - - check - 0 - - + + + check + 0 + @@ -74,228 +71,204 @@ + Image array - - Image - - - - USER:T3SBS\T3sbootstrap\UserFunction\TcaMatcher->isImage - reload - - check - 0 - - + + USER:T3SBS\T3sbootstrap\UserFunction\TcaMatcher->isImage + reload + + check + 0 + - - - USER:T3SBS\T3sbootstrap\UserFunction\TcaMatcher->isImage - - input - 4 - 4 - 1296 - int - 0 - - + + USER:T3SBS\T3sbootstrap\UserFunction\TcaMatcher->isImage + + input + 4 + 4 + 1296 + int + 0 + - - - - - FIELD:images.origImage:=:0 - USER:T3SBS\T3sbootstrap\UserFunction\TcaMatcher->isImage - - - - check - - + + + + FIELD:images.origImage:=:0 + USER:T3SBS\T3sbootstrap\UserFunction\TcaMatcher->isImage + + + + check + - - - reload - - - FIELD:images.origImage:=:0 - USER:T3SBS\T3sbootstrap\UserFunction\TcaMatcher->isImage - - - - check - 0 - - + + reload + + + FIELD:images.origImage:=:0 + USER:T3SBS\T3sbootstrap\UserFunction\TcaMatcher->isImage + + + + check + 0 + - - - - + + + + FIELD:images.enableAutoheight:=:1 + FIELD:images.origImage:=:0 + USER:T3SBS\T3sbootstrap\UserFunction\TcaMatcher->isImage + FIELD:images.enableAutoheight:=:1 - FIELD:images.origImage:=:0 + FIELD:images.origImage:=:1 USER:T3SBS\T3sbootstrap\UserFunction\TcaMatcher->isImage - - FIELD:images.enableAutoheight:=:1 - FIELD:images.origImage:=:1 - USER:T3SBS\T3sbootstrap\UserFunction\TcaMatcher->isImage - - - - - input - - int - 6 - 60 - - + + + + + input + + int + 6 + 60 + - - - - - USER:T3SBS\T3sbootstrap\UserFunction\TcaMatcher->isImage - - FIELD:images.enableAutoheight:=:1 - FIELD:images.origImage:=:1 - - - - - select - selectSingle - - - none - 0 - - - start - align-self-start - - - end - align-self-end - - - center - align-self-center - - - baseline - align-self-baseline - - - stretch - align-self-stretch - - - align-self-center - - + + + + USER:T3SBS\T3sbootstrap\UserFunction\TcaMatcher->isImage + + FIELD:images.enableAutoheight:=:1 + FIELD:images.origImage:=:1 + + + + + select + selectSingle + + + none + 0 + + + start + align-self-start + + + end + align-self-end + + + center + align-self-center + + + baseline + align-self-baseline + + + stretch + align-self-stretch + + + align-self-center + - - - - - FIELD:images.enableAutoheight:=:0 + + + + FIELD:images.enableAutoheight:=:0 + FIELD:images.origImage:=:0 + USER:T3SBS\T3sbootstrap\UserFunction\TcaMatcher->isImage + + FIELD:images.enableAutoheight:=:1 FIELD:images.origImage:=:0 USER:T3SBS\T3sbootstrap\UserFunction\TcaMatcher->isImage - - FIELD:images.enableAutoheight:=:1 - FIELD:images.origImage:=:0 - USER:T3SBS\T3sbootstrap\UserFunction\TcaMatcher->isImage - - - - - input - - int - 6 - 1 - - + + + + + input + + int + 6 + 1 + - - - USER:T3SBS\T3sbootstrap\UserFunction\TcaMatcher->isImage - - input - 5 - 0 - num - - 0 - 100 - - - 1 - 200 - - - + + USER:T3SBS\T3sbootstrap\UserFunction\TcaMatcher->isImage + + input + 5 + 0 + num + + 0 + 100 + + + 1 + 200 + + - - - USER:T3SBS\T3sbootstrap\UserFunction\TcaMatcher->isImage - - input - 5 - 0 - num - - 0 - 100 - - - 1 - 200 - - - + + USER:T3SBS\T3sbootstrap\UserFunction\TcaMatcher->isImage + + input + 5 + 0 + num + + 0 + 100 + + + 1 + 200 + + - - - USER:T3SBS\T3sbootstrap\UserFunction\TcaMatcher->isImage - - input - 5 - 100 - num - - 0 - 100 - - - 1 - 200 - - - + + USER:T3SBS\T3sbootstrap\UserFunction\TcaMatcher->isImage + + input + 5 + 100 + num + + 0 + 100 + + + 1 + 200 + + - - - USER:T3SBS\T3sbootstrap\UserFunction\TcaMatcher->isImage - - check - 0 - - + + USER:T3SBS\T3sbootstrap\UserFunction\TcaMatcher->isImage + + check + 0 + @@ -303,23 +276,19 @@ + No Media array - - No Media - - - - USER:T3SBS\T3sbootstrap\UserFunction\TcaMatcher->isNoMedia - - input - - int - 6 - 10 - - + + USER:T3SBS\T3sbootstrap\UserFunction\TcaMatcher->isNoMedia + + input + + int + 6 + 10 + @@ -327,203 +296,183 @@ + Local Video array - - Local Video - - - - USER:T3SBS\T3sbootstrap\UserFunction\TcaMatcher->isLocalVideo - - check - 0 - - + + USER:T3SBS\T3sbootstrap\UserFunction\TcaMatcher->isLocalVideo + + check + 0 + - - - USER:T3SBS\T3sbootstrap\UserFunction\TcaMatcher->isLocalVideo - - check - 0 - - + + USER:T3SBS\T3sbootstrap\UserFunction\TcaMatcher->isLocalVideo + + check + 0 + - - - USER:T3SBS\T3sbootstrap\UserFunction\TcaMatcher->isLocalVideo - - check - 1 - - + + USER:T3SBS\T3sbootstrap\UserFunction\TcaMatcher->isLocalVideo + + check + 1 + - - - USER:T3SBS\T3sbootstrap\UserFunction\TcaMatcher->isLocalVideo - - select - selectSingle - - - 53by9 - 9/53 - - - 48by9 - 9/48 - - - 42by9 - 9/42 - - - 37by9 - 9/37 - - - 21by9 - 9/21 - - - 16by9 - 9/16 - - - 9/37 - 1 - - + + USER:T3SBS\T3sbootstrap\UserFunction\TcaMatcher->isLocalVideo + + select + selectSingle + + + 53by9 + 9/53 + + + 48by9 + 9/48 + + + 42by9 + 9/42 + + + 37by9 + 9/37 + + + 21by9 + 9/21 + + + 16by9 + 9/16 + + + 9/37 + 1 + - - - USER:T3SBS\T3sbootstrap\UserFunction\TcaMatcher->isLocalVideo - - select - selectSingle - - - none - none - - - start - align-self-start - - - end - align-self-end - - - center - align-self-center - - - baseline - align-self-baseline - - - stretch - align-self-stretch - - - align-self-center - - + + USER:T3SBS\T3sbootstrap\UserFunction\TcaMatcher->isLocalVideo + + select + selectSingle + + + none + none + + + start + align-self-start + + + end + align-self-end + + + center + align-self-center + + + baseline + align-self-baseline + + + stretch + align-self-stretch + + + align-self-center + - - - USER:T3SBS\T3sbootstrap\UserFunction\TcaMatcher->isLocalVideo - e.g.: 100 or -100 - - input - 5 - 0 - int - - -100 - 100 - - - slider - 5 - 200 - - - + + USER:T3SBS\T3sbootstrap\UserFunction\TcaMatcher->isLocalVideo + e.g.: 100 or -100 + + input + 5 + 0 + int + + -100 + 100 + + + slider + 5 + 200 + + - - - USER:T3SBS\T3sbootstrap\UserFunction\TcaMatcher->isLocalVideo - e.g.: 100 or -100 - - input - 5 - 0 - int - - -200 - 200 - - - slider - 5 - 200 - - - + + USER:T3SBS\T3sbootstrap\UserFunction\TcaMatcher->isLocalVideo + e.g.: 100 or -100 + + input + 5 + 0 + int + + -200 + 200 + + + slider + 5 + 200 + + - - - card-img-overlay min-height in px - USER:T3SBS\T3sbootstrap\UserFunction\TcaMatcher->isLocalVideo - - input - 5 - 200 - int - - 100 - 1000 - - - slider - 5 - 200 - - - + + card-img-overlay min-height in px + USER:T3SBS\T3sbootstrap\UserFunction\TcaMatcher->isLocalVideo + + input + 5 + 200 + int + + 100 + 1000 + + + slider + 5 + 200 + + - - - figure.video width in % - USER:T3SBS\T3sbootstrap\UserFunction\TcaMatcher->isLocalVideo - - input - 5 - 100 - int - - 100 - 500 - - - slider - 5 - 200 - - - + + figure.video width in % + USER:T3SBS\T3sbootstrap\UserFunction\TcaMatcher->isLocalVideo + + input + 5 + 100 + int + + 100 + 500 + + + slider + 5 + 200 + + @@ -531,137 +480,123 @@ + Youtube/Vimeo Video array - - Youtube/Vimeo Video - - - - - - USER:T3SBS\T3sbootstrap\UserFunction\TcaMatcher->isYoutube - USER:T3SBS\T3sbootstrap\UserFunction\TcaMatcher->isVimeo - - - - select - selectSingle - - - none - none - - - start - align-self-start - - - end - align-self-end - - - center - align-self-center - - - baseline - align-self-baseline - - - stretch - align-self-stretch - - - align-self-center - - + + + + USER:T3SBS\T3sbootstrap\UserFunction\TcaMatcher->isYoutube + USER:T3SBS\T3sbootstrap\UserFunction\TcaMatcher->isVimeo + + + + select + selectSingle + + + none + none + + + start + align-self-start + + + end + align-self-end + + + center + align-self-center + + + baseline + align-self-baseline + + + stretch + align-self-stretch + + + align-self-center + - - - - - USER:T3SBS\T3sbootstrap\UserFunction\TcaMatcher->isYoutube - USER:T3SBS\T3sbootstrap\UserFunction\TcaMatcher->isVimeo - - - - input - 5 - 300 - int+ - - + + + + USER:T3SBS\T3sbootstrap\UserFunction\TcaMatcher->isYoutube + USER:T3SBS\T3sbootstrap\UserFunction\TcaMatcher->isVimeo + + + + input + 5 + 300 + int+ + - - - - - USER:T3SBS\T3sbootstrap\UserFunction\TcaMatcher->isYoutube - USER:T3SBS\T3sbootstrap\UserFunction\TcaMatcher->isVimeo - - - e.g.: -100 or 100 (default = 50) - - input - 5 - 50 - int - - -50 - 150 - - - slider - 5 - 200 - - - + + + + USER:T3SBS\T3sbootstrap\UserFunction\TcaMatcher->isYoutube + USER:T3SBS\T3sbootstrap\UserFunction\TcaMatcher->isVimeo + + + e.g.: -100 or 100 (default = 50) + + input + 5 + 50 + int + + -50 + 150 + + + slider + 5 + 200 + + - - - - - USER:T3SBS\T3sbootstrap\UserFunction\TcaMatcher->isYoutube - USER:T3SBS\T3sbootstrap\UserFunction\TcaMatcher->isVimeo - - - automatically activated if autoplay - - check - 1 - - + + + + USER:T3SBS\T3sbootstrap\UserFunction\TcaMatcher->isYoutube + USER:T3SBS\T3sbootstrap\UserFunction\TcaMatcher->isVimeo + + + automatically activated if autoplay + + check + 1 + - - - USER:T3SBS\T3sbootstrap\UserFunction\TcaMatcher->isYoutube - - check - 0 - - + + USER:T3SBS\T3sbootstrap\UserFunction\TcaMatcher->isYoutube + + check + 0 + - - - - - USER:T3SBS\T3sbootstrap\UserFunction\TcaMatcher->isYoutube - USER:T3SBS\T3sbootstrap\UserFunction\TcaMatcher->isVimeo - - - - check - 1 - - + + + + USER:T3SBS\T3sbootstrap\UserFunction\TcaMatcher->isYoutube + USER:T3SBS\T3sbootstrap\UserFunction\TcaMatcher->isVimeo + + + + check + 1 + diff --git a/Configuration/FlexForms/Container/Buttongroup.xml b/Configuration/FlexForms/Container/Buttongroup.xml index 0a281adb..20b2fd3d 100644 --- a/Configuration/FlexForms/Container/Buttongroup.xml +++ b/Configuration/FlexForms/Container/Buttongroup.xml @@ -1,199 +1,184 @@ + + 1 + - - Content - + Content array - - - - select - selectSingle - - - none - 0 - - - Hidden only on xs - d-none d-sm-block - - - Hidden on sm and down - d-none d-md-block - - - Hidden on md and down - d-none d-lg-block - - - Hidden on lg and down - d-none d-xl-block - - - Hidden only on xl - d-xl-none - - - Visible only on xs - d-block d-sm-none - - - Visible sm and down - d-block d-md-none - - - Visible md and down - d-block d-lg-none - - - Visible lg and down - d-block d-xl-none - - - 0 - - + + + select + selectSingle + + + none + 0 + + + Hidden only on xs + d-none d-sm-block + + + Hidden on sm and down + d-none d-md-block + + + Hidden on md and down + d-none d-lg-block + + + Hidden on lg and down + d-none d-xl-block + + + Hidden only on xl + d-xl-none + + + Visible only on xs + d-block d-sm-none + + + Visible sm and down + d-block d-md-none + + + Visible md and down + d-block d-lg-none + + + Visible lg and down + d-block d-xl-none + + + 0 + - - - - check - - + + + check + - - - - select - selectSingle - - - LLL:EXT:t3sbootstrap/Resources/Private/Language/locallang_be.xlf:default - null - - - LLL:EXT:t3sbootstrap/Resources/Private/Language/locallang_be.xlf:small - btn-group-sm - - - LLL:EXT:t3sbootstrap/Resources/Private/Language/locallang_be.xlf:large - btn-group-lg - - - null - - + + + select + selectSingle + + + LLL:EXT:t3sbootstrap/Resources/Private/Language/locallang_be.xlf:default + null + + + LLL:EXT:t3sbootstrap/Resources/Private/Language/locallang_be.xlf:small + btn-group-sm + + + LLL:EXT:t3sbootstrap/Resources/Private/Language/locallang_be.xlf:large + btn-group-lg + + + null + - - - - select - selectSingle - - - LLL:EXT:t3sbootstrap/Resources/Private/Language/locallang_be.xlf:default - - - - Center - text-center - - - Right - text-end - - - Left - text-start - - - - - + + + select + selectSingle + + + LLL:EXT:t3sbootstrap/Resources/Private/Language/locallang_be.xlf:default + + + + Center + text-center + + + Right + text-end + + + Left + text-start + + + + - - - reload - - select - selectSingle - - - none - 0 - - - Left browser edge - left - - - Right browser edge - right - - - 0 - - + + reload + + select + selectSingle + + + none + 0 + + + Left browser edge + left + + + Right browser edge + right + + + 0 + - - - FIELD:sDEF.fixedPosition:!=:0 - - select - selectSingle - - - 0 degree - 0 - - - + 90 degree - plus - - - - 90 degree - minus - - - 0 - - + + FIELD:sDEF.fixedPosition:!=:0 + + select + selectSingle + + + 0 degree + 0 + + + + 90 degree + plus + + + - 90 degree + minus + + + 0 + - - - reload - With "Fixed position = Right browser edge", Vertical variation & FA icon in t3sbs_button - FIELD:sDEF.fixedPosition:!=:0 - - check - - + + reload + With "Fixed position = Right browser edge", Vertical variation & FA icon in t3sbs_button + FIELD:sDEF.fixedPosition:!=:0 + + check + - - - offset to the left specified in px - FIELD:sDEF.slideIn:=:1 - - input - 4 - 4 - 33 - 0 - required,int - - + + offset to the left specified in px + FIELD:sDEF.slideIn:=:1 + + input + 4 + 4 + 33 + 0 + required,int + diff --git a/Configuration/FlexForms/Container/CardWrapper.xml b/Configuration/FlexForms/Container/CardWrapper.xml index e10925ed..ae1061c8 100644 --- a/Configuration/FlexForms/Container/CardWrapper.xml +++ b/Configuration/FlexForms/Container/CardWrapper.xml @@ -1,374 +1,336 @@ + + 1 + - - Card Wrapper - + Card Wrapper array - - - - select - selectSingle - - - none - 0 - - - Hidden only on xs - d-none d-sm-block - - - Hidden on sm and down - d-none d-md-block - - - Hidden on md and down - d-none d-lg-block - - - Hidden on lg and down - d-none d-xl-block - - - Hidden only on xl - d-xl-none - - - Visible only on xs - d-block d-sm-none - - - Visible sm and down - d-block d-md-none - - - Visible md and down - d-block d-lg-none - - - Visible lg and down - d-block d-xl-none - - - 0 - - + + + select + selectSingle + + + none + 0 + + + Hidden only on xs + d-none d-sm-block + + + Hidden on sm and down + d-none d-md-block + + + Hidden on md and down + d-none d-lg-block + + + Hidden on lg and down + d-none d-xl-block + + + Hidden only on xl + d-xl-none + + + Visible only on xs + d-block d-sm-none + + + Visible sm and down + d-block d-md-none + + + Visible md and down + d-block d-lg-none + + + Visible lg and down + d-block d-xl-none + + + 0 + - - - reload - - select - selectSingle - - - Group - group - - - Grid Cards (Deck) - deck - - - Masonry (Columns) - columns - - - Slider (swiper) - slider - - - Flipper - flipper - - - group - - + + reload + + select + selectSingle + + + Group + group + + + Grid Cards (Deck) + deck + + + Masonry (Columns) + columns + + + Slider (swiper) + slider + + + Flipper + flipper + + + group + - - - FIELD:sDEF.card_wrapper:=:columns - default - 3 columns: "col-sm-6 col-lg-4 mb-4" - - input - 40 - col-sm-6 col-lg-4 mb-4 - trim - - + + FIELD:sDEF.card_wrapper:=:columns + default - 3 columns: "col-sm-6 col-lg-4 mb-4" + + input + 40 + col-sm-6 col-lg-4 mb-4 + trim + - - - - FIELD:sDEF.card_wrapper:=:deck - - select - selectSingle - - - 1 - 1 - - - 2 - 2 - - - 3 - 3 - - - 4 - 4 - - - 5 - 5 - - - 6 - 6 - - - 3 - - + + FIELD:sDEF.card_wrapper:=:deck + + select + selectSingle + + + 1 + 1 + + + 2 + 2 + + + 3 + 3 + + + 4 + 4 + + + 5 + 5 + + + 6 + 6 + + + 3 + - - - FIELD:sDEF.card_wrapper:=:deck - - select - selectSingle - - - 0 - 0 - - - 1 - 1 - - - 2 - 2 - - - 3 - 3 - - - 4 - 4 - - - 5 - 5 - - - 4 - - + + FIELD:sDEF.card_wrapper:=:deck + + select + selectSingle + + + 0 + 0 + + + 1 + 1 + + + 2 + 2 + + + 3 + 3 + + + 4 + 4 + + + 5 + 5 + + + 4 + - - - if "0" the cards width is used - or auto-width if the cards width is also empty (best practies) - FIELD:sDEF.card_wrapper:=:slider - - input - 4 - 4 - 576 - int - 0 - - + + if "0" the cards width is used - or auto-width if the cards width is also empty (best practies) + FIELD:sDEF.card_wrapper:=:slider + + input + 4 + 4 + 576 + int + 0 + - - - FIELD:sDEF.card_wrapper:=:slider - - input - 4 - 5 - 16:9 - 0 - - + + FIELD:sDEF.card_wrapper:=:slider + + input + 4 + 5 + 16:9 + 0 + - - - FIELD:sDEF.card_wrapper:=:slider - - input - 4 - 4 - 0 - - + + FIELD:sDEF.card_wrapper:=:slider + + input + 4 + 4 + 0 + - - - FIELD:sDEF.card_wrapper:=:slider - - input - 4 - 2 - 0 - - + + FIELD:sDEF.card_wrapper:=:slider + + input + 4 + 2 + 0 + - - - FIELD:sDEF.card_wrapper:=:slider - - input - 4 - 3 - 0 - - + + FIELD:sDEF.card_wrapper:=:slider + + input + 4 + 3 + 0 + - - - FIELD:sDEF.card_wrapper:=:slider - - input - 4 - 4 - 0 - - + + FIELD:sDEF.card_wrapper:=:slider + + input + 4 + 4 + 0 + - - - FIELD:sDEF.card_wrapper:=:slider - - input - 4 - 1 - 0 - - + + FIELD:sDEF.card_wrapper:=:slider + + input + 4 + 1 + 0 + - - - FIELD:sDEF.card_wrapper:=:slider - - input - 4 - 20 - 0 - - + + FIELD:sDEF.card_wrapper:=:slider + + input + 4 + 20 + 0 + - - - FIELD:sDEF.card_wrapper:=:slider - - check - - + + Amount of slides in loop mode should be at least 2x of "slidesPerView" value. + FIELD:sDEF.card_wrapper:=:slider + + check + - - - FIELD:sDEF.card_wrapper:=:slider - - check - - + + FIELD:sDEF.card_wrapper:=:slider + + check + + - - - FIELD:sDEF.card_wrapper:=:slider - - check - - + + FIELD:sDEF.card_wrapper:=:slider + + check + - - - FIELD:sDEF.card_wrapper:=:slider - reload - - check - - + + FIELD:sDEF.card_wrapper:=:slider + reload + + check + - - - - - FIELD:sDEF.card_wrapper:=:slider - FIELD:sDEF.autoplay:=:1 - - - - input - 4 - 5000 - 0 - - + + + + FIELD:sDEF.card_wrapper:=:slider + FIELD:sDEF.autoplay:=:1 + + + + input + 4 + 5000 + 0 + - - - - input - 5 - num - - + + + input + 5 + num + - - - FIELD:sDEF.card_wrapper:=:deck - - check - - + + FIELD:sDEF.card_wrapper:=:deck + + check + diff --git a/Configuration/FlexForms/Container/CarouselContainer.xml b/Configuration/FlexForms/Container/CarouselContainer.xml index c8741235..b8267600 100644 --- a/Configuration/FlexForms/Container/CarouselContainer.xml +++ b/Configuration/FlexForms/Container/CarouselContainer.xml @@ -1,254 +1,227 @@ + + 1 + + General array - - General - - - - - select - selectSingle - - - none - 0 - - - Hidden only on xs - d-none d-sm-block - - - Hidden on sm and down - d-none d-md-block - - - Hidden on md and down - d-none d-lg-block - - - Hidden on lg and down - d-none d-xl-block - - - Hidden only on xl - d-xl-none - - - Visible only on xs - d-block d-sm-none - - - Visible sm and down - d-block d-md-none - - - Visible md and down - d-block d-lg-none - - - Visible lg and down - d-block d-xl-none - - - 0 - - + + + select + selectSingle + + + none + 0 + + + Hidden only on xs + d-none d-sm-block + + + Hidden on sm and down + d-none d-md-block + + + Hidden on md and down + d-none d-lg-block + + + Hidden on lg and down + d-none d-xl-block + + + Hidden only on xl + d-xl-none + + + Visible only on xs + d-block d-sm-none + + + Visible sm and down + d-block d-md-none + + + Visible md and down + d-block d-lg-none + + + Visible lg and down + d-block d-xl-none + + + 0 + - - - - input - 4 - 4 - 1440 - int+,required - 0 - - + + + input + 4 + 4 + 1440 + int+,required + 0 + - - - Aspect ratio for "Mobile" is 16:9 by default or use next option (image manipulation for mobile view). - - input - 4 - 5 - - 0 - - + + Aspect ratio for "Mobile" is 16:9 by default or use next option (image manipulation for mobile view). + + input + 4 + 5 + + 0 + - - - In order to prevent slides that are too narrow (did not work with videos). - - check - - + + In order to prevent slides that are too narrow (did not work with videos). + + check + - - - - check - - + + + check + - - - - check - - + + + check + - - - - check - - + + + check + - - - - check - - + + + check + - - - - input - 5 - 5 - 5000 - int - 0 - - + + + input + 5 + 5 + 5000 + int + 0 + - - - reload - - select - selectSingle + + reload + + select + selectSingle + + + Header with link + header + + + Button with link + button + + + header + + + + + FIELD:general.link:=:button + + input + 69 + 99 + + 0 + + + + + You can overwrite this setting in the carousel items. + USER:T3SBS\T3sbootstrap\UserFunction\TcaMatcher->animateCss + + input + + trim + 20 + 99 + + - Header with link - header + fadeIn + fadeIn - Button with link - button + fadeInUpBig + fadeInUpBig + + + fadeInDownBig + fadeInDownBig + + + rotateIn + rotateIn + + + slideInUp + slideInUp + + + zoomIn + zoomIn + + + zoomInUp + zoomInUp + + + zoomInDown + zoomInDown - - header - - - - - - - FIELD:general.link:=:button - - input - 69 - 99 - - 0 - - - - - - - You can overwrite this setting in the carousel items. - USER:T3SBS\T3sbootstrap\UserFunction\TcaMatcher->animateCss - - input - - trim - 20 - 99 - - - - - fadeIn - fadeIn - - - fadeInUpBig - fadeInUpBig - - - fadeInDownBig - fadeInDownBig - - - rotateIn - rotateIn - - - slideInUp - slideInUp - - - zoomIn - zoomIn - - - zoomInUp - zoomInUp - - - zoomInDown - zoomInDown - - - rubberBand - rubberBand - - - rollIn - rollIn - - - - - + + rubberBand + rubberBand + + + rollIn + rollIn + + + + - - - Not working with a link inside the carousel content. - - check - - + + Not working with a link inside the carousel content. + + check + - - - - check - - + + + check + diff --git a/Configuration/FlexForms/Container/Collapse.xml b/Configuration/FlexForms/Container/Collapse.xml index e3d7265e..f9c6c60e 100644 --- a/Configuration/FlexForms/Container/Collapse.xml +++ b/Configuration/FlexForms/Container/Collapse.xml @@ -1,150 +1,91 @@ + + 1 + + Settings array - - Settings - - - - - - check - - + + + check + - - - - group - db - pages - 3 - 1 - 0 - 1 - - - suggest - - 1 - - - - - + + + group + db + pages + 3 + 1 + 0 + 1 + + + suggest + + 1 + + + + - \ No newline at end of file + diff --git a/Configuration/FlexForms/Container/CollapseContainer.xml b/Configuration/FlexForms/Container/CollapseContainer.xml index 05c9fca2..05721015 100644 --- a/Configuration/FlexForms/Container/CollapseContainer.xml +++ b/Configuration/FlexForms/Container/CollapseContainer.xml @@ -1,111 +1,104 @@ + + 1 + - - Settings - + Settings array - - - - select - selectSingle - - - none - 0 - - - Hidden only on xs - d-none d-sm-block - - - Hidden on sm and down - d-none d-md-block - - - Hidden on md and down - d-none d-lg-block - - - Hidden on lg and down - d-none d-xl-block - - - Hidden only on xl - d-xl-none - - - Visible only on xs - d-block d-sm-none - - - Visible sm and down - d-block d-md-none - - - Visible md and down - d-block d-lg-none - - - Visible lg and down - d-block d-xl-none - - - 0 - - + + + select + selectSingle + + + none + 0 + + + Hidden only on xs + d-none d-sm-block + + + Hidden on sm and down + d-none d-md-block + + + Hidden on md and down + d-none d-lg-block + + + Hidden on lg and down + d-none d-xl-block + + + Hidden only on xl + d-xl-none + + + Visible only on xs + d-block d-sm-none + + + Visible sm and down + d-block d-md-none + + + Visible md and down + d-block d-lg-none + + + Visible lg and down + d-block d-xl-none + + + 0 + - - - reload - - select - selectSingle - - - Accordion - accordion - - - Button - button - - - accordion - - + + reload + + select + selectSingle + + + Accordion + accordion + + + Button + button + + + accordion + - - - stay open when another item is opened - FIELD:sDEF.appearance:=:accordion - - check - - + + stay open when another item is opened + FIELD:sDEF.appearance:=:accordion + + check + - - - to remove default background-color, borders etc. - FIELD:sDEF.appearance:=:accordion - - check - - + + to remove default background-color, borders etc. + FIELD:sDEF.appearance:=:accordion + + check + - \ No newline at end of file + diff --git a/Configuration/FlexForms/Container/Container.xml b/Configuration/FlexForms/Container/Container.xml index c02ae4c9..e1a85adb 100644 --- a/Configuration/FlexForms/Container/Container.xml +++ b/Configuration/FlexForms/Container/Container.xml @@ -1,344 +1,328 @@ + + 1 + - array - - Container Settings - + Container Settings array - - - - select - selectSingle - - - none - 0 - - - Hidden only on xs - d-none d-sm-block - - - Hidden on sm and down - d-none d-md-block - - - Hidden on md and down - d-none d-lg-block - - - Hidden on lg and down - d-none d-xl-block - - - Hidden only on xl - d-xl-none - - - Visible only on xs - d-block d-sm-none - - - Visible sm and down - d-block d-md-none - - - Visible md and down - d-block d-lg-none - - - Visible lg and down - d-block d-xl-none - - - 0 - - + + + select + selectSingle + + + none + 0 + + + Hidden only on xs + d-none d-sm-block + + + Hidden on sm and down + d-none d-md-block + + + Hidden on md and down + d-none d-lg-block + + + Hidden on lg and down + d-none d-xl-block + + + Hidden only on xl + d-xl-none + + + Visible only on xs + d-block d-sm-none + + + Visible sm and down + d-block d-md-none + + + Visible md and down + d-block d-lg-none + + + Visible lg and down + d-block d-xl-none + + + 0 + - - - reload - - select - selectSingle - - - none - - - - flex - flex - - - inline-flex - inline-flex - - - - 1 - - + + reload + + select + selectSingle + + + none + + + + flex + flex + + + inline-flex + inline-flex + + + + 1 + - - - - - FIELD:sDEF.flexContainer:=:flex - FIELD:sDEF.flexContainer:=:inline-flex - - - - select - selectSingle - - - none - - - - xs - xs - - - sm - sm - - - md - md - - - lg - lg - - - xl - xl - - - - 1 - - + + + + FIELD:sDEF.flexContainer:=:flex + FIELD:sDEF.flexContainer:=:inline-flex + + + + select + selectSingle + + + none + + + + xs + xs + + + sm + sm + + + md + md + + + lg + lg + + + xl + xl + + + + 1 + - - - - - FIELD:sDEF.flexContainer:=:flex - FIELD:sDEF.flexContainer:=:inline-flex - - - - select - selectSingle - - - none - - - - horizontal direction (.flex-row) - row - - - horizontal direction from the opposite side (.flex-row-reverse) - row-reverse - - - vertical direction (.flex-column) - column - - - vertical direction from the opposite side (.flex-column-reverse) - column-reverse - - - - 1 - - + + + + FIELD:sDEF.flexContainer:=:flex + FIELD:sDEF.flexContainer:=:inline-flex + + + + select + selectSingle + + + none + + + + horizontal direction (.flex-row) + row + + + horizontal direction from the opposite side (.flex-row-reverse) + row-reverse + + + vertical direction (.flex-column) + column + + + vertical direction from the opposite side (.flex-column-reverse) + column-reverse + + + + 1 + - - - - - FIELD:sDEF.flexContainer:=:flex - FIELD:sDEF.flexContainer:=:inline-flex - - - - select - selectSingle - - - none - - - - start (default) - start - - - center - center - - - end - end - - - between - between - - - around - around - - - - - + + + + FIELD:sDEF.flexContainer:=:flex + FIELD:sDEF.flexContainer:=:inline-flex + + + + select + selectSingle + + + none + + + + start (default) + start + + + center + center + + + end + end + + + between + between + + + around + around + + + + - - - - - FIELD:sDEF.flexContainer:=:flex - FIELD:sDEF.flexContainer:=:inline-flex - - - - select - selectSingle - - - none - - - - start - start - - - end - end - - - center - center - - - baseline - baseline - - - stretch - stretch - - - - - + + + + FIELD:sDEF.flexContainer:=:flex + FIELD:sDEF.flexContainer:=:inline-flex + + + + select + selectSingle + + + none + + + + start + start + + + end + end + + + center + center + + + baseline + baseline + + + stretch + stretch + + + + - - - - - FIELD:sDEF.flexContainer:=:flex - FIELD:sDEF.flexContainer:=:inline-flex - - - - select - selectSingle - - - none - - - - nowrap (default) - nowrap - - - wrap - wrap - - - wrap-reverse - wrap-reverse - - - - 1 - - + + + + FIELD:sDEF.flexContainer:=:flex + FIELD:sDEF.flexContainer:=:inline-flex + + + + select + selectSingle + + + none + + + + nowrap (default) + nowrap + + + wrap + wrap + + + wrap-reverse + wrap-reverse + + + + 1 + - - - - - FIELD:sDEF.flexContainer:=:flex - FIELD:sDEF.flexContainer:=:inline-flex - - - - select - selectSingle - - - none - - - - start - start - - - end - end - - - center - center - - - around - around - - - stretch - stretch - - - - - + + + + FIELD:sDEF.flexContainer:=:flex + FIELD:sDEF.flexContainer:=:inline-flex + + + + select + selectSingle + + + none + + + + start + start + + + end + end + + + center + center + + + around + around + + + stretch + stretch + + + + - \ No newline at end of file + diff --git a/Configuration/FlexForms/Container/FourColumns.xml b/Configuration/FlexForms/Container/FourColumns.xml index c9987c7d..c4cde9cc 100644 --- a/Configuration/FlexForms/Container/FourColumns.xml +++ b/Configuration/FlexForms/Container/FourColumns.xml @@ -1,1855 +1,1761 @@ + + 1 + - - Settings - + Settings + array - - - reload - - check - 0 - - + + reload + + check + 0 + - - - - check - 0 - - + + + check + 0 + - - - INFO: https://getbootstrap.com/docs/5.1/layout/gutters/#horizontal-gutters - - select - selectSingle - - - gx-0 (no gutters) - gx-0 - - - gx-1 - gx-1 - - - gx-2 - gx-2 - - - gx-3 - gx-3 - - - gx-4 (default) - - - - gx-5 - gx-5 - - - - - + + INFO: https://getbootstrap.com/docs/5.1/layout/gutters/#horizontal-gutters + + select + selectSingle + + + gx-0 (no gutters) + gx-0 + + + gx-1 + gx-1 + + + gx-2 + gx-2 + + + gx-3 + gx-3 + + + gx-4 (default) + + + + gx-5 + gx-5 + + + + - - - INFO: https://getbootstrap.com/docs/5.1/layout/gutters/#vertical-gutters - - select - selectSingle - - - gy-0 (no gutters) - gy-0 - - - gy-1 - gy-1 - - - gy-2 - gy-2 - - - gy-3 - gy-3 - - - gy-4 (default) - - - - gy-5 - gy-5 - - - - - + + INFO: https://getbootstrap.com/docs/5.1/layout/gutters/#vertical-gutters + + select + selectSingle + + + gy-0 (no gutters) + gy-0 + + + gy-1 + gy-1 + + + gy-2 + gy-2 + + + gy-3 + gy-3 + + + gy-4 (default) + + + + gy-5 + gy-5 + + + + - - Extra Class - + Extra Class array - - - - input - - + + + input + - - - - input - - + + + input + - - - - input - - + + + input + - - - - input - - + + + input + - - Col-xxl-* - + Col-xxl-* + array - - - - select - selectSingle - - - 0 - - - - 1 - 1 - - - 2 - 2 - - - 3 - 3 - - - - 4 - 4 - - - 5 - 5 - - - 6 - 6 - - - 7 - 7 - - - 8 - 8 - - - 9 - 9 - - - 10 - 10 - - - 11 - 11 - - - 12 - 12 - - - auto (size columns based on the natural width of their content) - auto - - - - - + + + select + selectSingle + + + 0 + + + + 1 + 1 + + + 2 + 2 + + + 3 + 3 + + + 4 + 4 + + + 5 + 5 + + + 6 + 6 + + + 7 + 7 + + + 8 + 8 + + + 9 + 9 + + + 10 + 10 + + + 11 + 11 + + + 12 + 12 + + + auto (size columns based on the natural width of their content) + auto + + + + - - - - select - selectSingle - - - 0 - - - - 1 - 1 - - - 2 - 2 - - - 3 - 3 - - - - 4 - 4 - - - 5 - 5 - - - 6 - 6 - - - 7 - 7 - - - 8 - 8 - - - 9 - 9 - - - 10 - 10 - - - 11 - 11 - - - 12 - 12 - - - auto (size columns based on the natural width of their content) - auto - - - - - + + + select + selectSingle + + + 0 + + + + 1 + 1 + + + 2 + 2 + + + 3 + 3 + + + 4 + 4 + + + 5 + 5 + + + 6 + 6 + + + 7 + 7 + + + 8 + 8 + + + 9 + 9 + + + 10 + 10 + + + 11 + 11 + + + 12 + 12 + + + auto (size columns based on the natural width of their content) + auto + + + + - - - - select - selectSingle - - - 0 - - - - 1 - 1 - - - 2 - 2 - - - 3 - 3 - - - - 4 - 4 - - - 5 - 5 - - - 6 - 6 - - - 7 - 7 - - - 8 - 8 - - - 9 - 9 - - - 10 - 10 - - - 11 - 11 - - - 12 - 12 - - - auto (size columns based on the natural width of their content) - auto - - - - - + + + select + selectSingle + + + 0 + + + + 1 + 1 + + + 2 + 2 + + + 3 + 3 + + + 4 + 4 + + + 5 + 5 + + + 6 + 6 + + + 7 + 7 + + + 8 + 8 + + + 9 + 9 + + + 10 + 10 + + + 11 + 11 + + + 12 + 12 + + + auto (size columns based on the natural width of their content) + auto + + + + - - - - select - selectSingle - - - 0 - - - - 1 - 1 - - - 2 - 2 - - - 3 - 3 - - - - 4 - 4 - - - 5 - 5 - - - 6 - 6 - - - 7 - 7 - - - 8 - 8 - - - 9 - 9 - - - 10 - 10 - - - 11 - 11 - - - 12 - 12 - - - auto (size columns based on the natural width of their content) - auto - - - - - + + + select + selectSingle + + + 0 + + + + 1 + 1 + + + 2 + 2 + + + 3 + 3 + + + 4 + 4 + + + 5 + 5 + + + 6 + 6 + + + 7 + 7 + + + 8 + 8 + + + 9 + 9 + + + 10 + 10 + + + 11 + 11 + + + 12 + 12 + + + auto (size columns based on the natural width of their content) + auto + + + + - - Col-xl-* - + Col-xl-* + array - - - - select - selectSingle - - - 0 - - - - 1 - 1 - - - 2 - 2 - - - 3 - 3 - - - - 4 - 4 - - - 5 - 5 - - - 6 - 6 - - - 7 - 7 - - - 8 - 8 - - - 9 - 9 - - - 10 - 10 - - - 11 - 11 - - - 12 - 12 - - - auto (size columns based on the natural width of their content) - auto - - - - - + + + select + selectSingle + + + 0 + + + + 1 + 1 + + + 2 + 2 + + + 3 + 3 + + + 4 + 4 + + + 5 + 5 + + + 6 + 6 + + + 7 + 7 + + + 8 + 8 + + + 9 + 9 + + + 10 + 10 + + + 11 + 11 + + + 12 + 12 + + + auto (size columns based on the natural width of their content) + auto + + + + - - - - select - selectSingle - - - 0 - - - - 1 - 1 - - - 2 - 2 - - - 3 - 3 - - - - 4 - 4 - - - 5 - 5 - - - 6 - 6 - - - 7 - 7 - - - 8 - 8 - - - 9 - 9 - - - 10 - 10 - - - 11 - 11 - - - 12 - 12 - - - auto (size columns based on the natural width of their content) - auto - - - - - + + + select + selectSingle + + + 0 + + + + 1 + 1 + + + 2 + 2 + + + 3 + 3 + + + 4 + 4 + + + 5 + 5 + + + 6 + 6 + + + 7 + 7 + + + 8 + 8 + + + 9 + 9 + + + 10 + 10 + + + 11 + 11 + + + 12 + 12 + + + auto (size columns based on the natural width of their content) + auto + + + + - - - - select - selectSingle - - - 0 - - - - 1 - 1 - - - 2 - 2 - - - 3 - 3 - - - - 4 - 4 - - - 5 - 5 - - - 6 - 6 - - - 7 - 7 - - - 8 - 8 - - - 9 - 9 - - - 10 - 10 - - - 11 - 11 - - - 12 - 12 - - - auto (size columns based on the natural width of their content) - auto - - - - - + + + select + selectSingle + + + 0 + + + + 1 + 1 + + + 2 + 2 + + + 3 + 3 + + + 4 + 4 + + + 5 + 5 + + + 6 + 6 + + + 7 + 7 + + + 8 + 8 + + + 9 + 9 + + + 10 + 10 + + + 11 + 11 + + + 12 + 12 + + + auto (size columns based on the natural width of their content) + auto + + + + - - - - select - selectSingle - - - 0 - - - - 1 - 1 - - - 2 - 2 - - - 3 - 3 - - - - 4 - 4 - - - 5 - 5 - - - 6 - 6 - - - 7 - 7 - - - 8 - 8 - - - 9 - 9 - - - 10 - 10 - - - 11 - 11 - - - 12 - 12 - - - auto (size columns based on the natural width of their content) - auto - - - - - + + + select + selectSingle + + + 0 + + + + 1 + 1 + + + 2 + 2 + + + 3 + 3 + + + 4 + 4 + + + 5 + 5 + + + 6 + 6 + + + 7 + 7 + + + 8 + 8 + + + 9 + 9 + + + 10 + 10 + + + 11 + 11 + + + 12 + 12 + + + auto (size columns based on the natural width of their content) + auto + + + + - - Col-lg-* - + Col-lg-* + array - - - - select - selectSingle - - - 0 - - - - 1 - 1 - - - 2 - 2 - - - 3 - 3 - - - - 4 - 4 - - - 5 - 5 - - - 6 - 6 - - - 7 - 7 - - - 8 - 8 - - - 9 - 9 - - - 10 - 10 - - - 11 - 11 - - - 12 - 12 - - - auto (size columns based on the natural width of their content) - auto - - - - - + + + select + selectSingle + + + 0 + + + + 1 + 1 + + + 2 + 2 + + + 3 + 3 + + + 4 + 4 + + + 5 + 5 + + + 6 + 6 + + + 7 + 7 + + + 8 + 8 + + + 9 + 9 + + + 10 + 10 + + + 11 + 11 + + + 12 + 12 + + + auto (size columns based on the natural width of their content) + auto + + + + - - - - select - selectSingle - - - 0 - - - - 1 - 1 - - - 2 - 2 - - - 3 - 3 - - - - 4 - 4 - - - 5 - 5 - - - 6 - 6 - - - 7 - 7 - - - 8 - 8 - - - 9 - 9 - - - 10 - 10 - - - 11 - 11 - - - 12 - 12 - - - auto (size columns based on the natural width of their content) - auto - - - - - + + + select + selectSingle + + + 0 + + + + 1 + 1 + + + 2 + 2 + + + 3 + 3 + + + 4 + 4 + + + 5 + 5 + + + 6 + 6 + + + 7 + 7 + + + 8 + 8 + + + 9 + 9 + + + 10 + 10 + + + 11 + 11 + + + 12 + 12 + + + auto (size columns based on the natural width of their content) + auto + + + + - - - - select - selectSingle - - - 0 - - - - 1 - 1 - - - 2 - 2 - - - 3 - 3 - - - - 4 - 4 - - - 5 - 5 - - - 6 - 6 - - - 7 - 7 - - - 8 - 8 - - - 9 - 9 - - - 10 - 10 - - - 11 - 11 - - - 12 - 12 - - - auto (size columns based on the natural width of their content) - auto - - - - - + + + select + selectSingle + + + 0 + + + + 1 + 1 + + + 2 + 2 + + + 3 + 3 + + + 4 + 4 + + + 5 + 5 + + + 6 + 6 + + + 7 + 7 + + + 8 + 8 + + + 9 + 9 + + + 10 + 10 + + + 11 + 11 + + + 12 + 12 + + + auto (size columns based on the natural width of their content) + auto + + + + - - - - select - selectSingle - - - 0 - - - - 1 - 1 - - - 2 - 2 - - - 3 - 3 - - - - 4 - 4 - - - 5 - 5 - - - 6 - 6 - - - 7 - 7 - - - 8 - 8 - - - 9 - 9 - - - 10 - 10 - - - 11 - 11 - - - 12 - 12 - - - auto (size columns based on the natural width of their content) - auto - - - - - + + + select + selectSingle + + + 0 + + + + 1 + 1 + + + 2 + 2 + + + 3 + 3 + + + 4 + 4 + + + 5 + 5 + + + 6 + 6 + + + 7 + 7 + + + 8 + 8 + + + 9 + 9 + + + 10 + 10 + + + 11 + 11 + + + 12 + 12 + + + auto (size columns based on the natural width of their content) + auto + + + + - - Col-md-* - + Col-md-* + array - - - - select - selectSingle - - - 0 - - - - 1 - 1 - - - 2 - 2 - - - 3 - 3 - - - - 4 - 4 - - - 5 - 5 - - - 6 - 6 - - - 7 - 7 - - - 8 - 8 - - - 9 - 9 - - - 10 - 10 - - - 11 - 11 - - - 12 - 12 - - - auto (size columns based on the natural width of their content) - auto - - - 3 - - + + + select + selectSingle + + + 0 + + + + 1 + 1 + + + 2 + 2 + + + 3 + 3 + + + 4 + 4 + + + 5 + 5 + + + 6 + 6 + + + 7 + 7 + + + 8 + 8 + + + 9 + 9 + + + 10 + 10 + + + 11 + 11 + + + 12 + 12 + + + auto (size columns based on the natural width of their content) + auto + + + 3 + - - - - select - selectSingle - - - 0 - - - - 1 - 1 - - - 2 - 2 - - - 3 - 3 - - - - 4 - 4 - - - 5 - 5 - - - 6 - 6 - - - 7 - 7 - - - 8 - 8 - - - 9 - 9 - - - 10 - 10 - - - 11 - 11 - - - 12 - 12 - - - auto (size columns based on the natural width of their content) - auto - - - 3 - - + + + select + selectSingle + + + 0 + + + + 1 + 1 + + + 2 + 2 + + + 3 + 3 + + + 4 + 4 + + + 5 + 5 + + + 6 + 6 + + + 7 + 7 + + + 8 + 8 + + + 9 + 9 + + + 10 + 10 + + + 11 + 11 + + + 12 + 12 + + + auto (size columns based on the natural width of their content) + auto + + + 3 + - - - - select - selectSingle - - - 0 - - - - 1 - 1 - - - 2 - 2 - - - 3 - 3 - - - - 4 - 4 - - - 5 - 5 - - - 6 - 6 - - - 7 - 7 - - - 8 - 8 - - - 9 - 9 - - - 10 - 10 - - - 11 - 11 - - - 12 - 12 - - - auto (size columns based on the natural width of their content) - auto - - - 3 - - + + + select + selectSingle + + + 0 + + + + 1 + 1 + + + 2 + 2 + + + 3 + 3 + + + 4 + 4 + + + 5 + 5 + + + 6 + 6 + + + 7 + 7 + + + 8 + 8 + + + 9 + 9 + + + 10 + 10 + + + 11 + 11 + + + 12 + 12 + + + auto (size columns based on the natural width of their content) + auto + + + 3 + - - - - select - selectSingle - - - 0 - - - - 1 - 1 - - - 2 - 2 - - - 3 - 3 - - - - 4 - 4 - - - 5 - 5 - - - 6 - 6 - - - 7 - 7 - - - 8 - 8 - - - 9 - 9 - - - 10 - 10 - - - 11 - 11 - - - 12 - 12 - - - auto (size columns based on the natural width of their content) - auto - - - 3 - - + + + select + selectSingle + + + 0 + + + + 1 + 1 + + + 2 + 2 + + + 3 + 3 + + + 4 + 4 + + + 5 + 5 + + + 6 + 6 + + + 7 + 7 + + + 8 + 8 + + + 9 + 9 + + + 10 + 10 + + + 11 + 11 + + + 12 + 12 + + + auto (size columns based on the natural width of their content) + auto + + + 3 + - - Col-sm-* - + Col-sm-* + array - - - - select - selectSingle - - - 0 - - - - 1 - 1 - - - 2 - 2 - - - 3 - 3 - - - - 4 - 4 - - - 5 - 5 - - - 6 - 6 - - - 7 - 7 - - - 8 - 8 - - - 9 - 9 - - - 10 - 10 - - - 11 - 11 - - - 12 - 12 - - - auto (size columns based on the natural width of their content) - auto - - - - - + + + select + selectSingle + + + 0 + + + + 1 + 1 + + + 2 + 2 + + + 3 + 3 + + + 4 + 4 + + + 5 + 5 + + + 6 + 6 + + + 7 + 7 + + + 8 + 8 + + + 9 + 9 + + + 10 + 10 + + + 11 + 11 + + + 12 + 12 + + + auto (size columns based on the natural width of their content) + auto + + + + - - - - select - selectSingle - - - 0 - - - - 1 - 1 - - - 2 - 2 - - - 3 - 3 - - - - 4 - 4 - - - 5 - 5 - - - 6 - 6 - - - 7 - 7 - - - 8 - 8 - - - 9 - 9 - - - 10 - 10 - - - 11 - 11 - - - 12 - 12 - - - auto (size columns based on the natural width of their content) - auto - - - - - + + + select + selectSingle + + + 0 + + + + 1 + 1 + + + 2 + 2 + + + 3 + 3 + + + 4 + 4 + + + 5 + 5 + + + 6 + 6 + + + 7 + 7 + + + 8 + 8 + + + 9 + 9 + + + 10 + 10 + + + 11 + 11 + + + 12 + 12 + + + auto (size columns based on the natural width of their content) + auto + + + + - - - - select - selectSingle - - - 0 - - - - 1 - 1 - - - 2 - 2 - - - 3 - 3 - - - - 4 - 4 - - - 5 - 5 - - - 6 - 6 - - - 7 - 7 - - - 8 - 8 - - - 9 - 9 - - - 10 - 10 - - - 11 - 11 - - - 12 - 12 - - - auto (size columns based on the natural width of their content) - auto - - - - - + + + select + selectSingle + + + 0 + + + + 1 + 1 + + + 2 + 2 + + + 3 + 3 + + + 4 + 4 + + + 5 + 5 + + + 6 + 6 + + + 7 + 7 + + + 8 + 8 + + + 9 + 9 + + + 10 + 10 + + + 11 + 11 + + + 12 + 12 + + + auto (size columns based on the natural width of their content) + auto + + + + - - - - select - selectSingle - - - 0 - - - - 1 - 1 - - - 2 - 2 - - - 3 - 3 - - - - 4 - 4 - - - 5 - 5 - - - 6 - 6 - - - 7 - 7 - - - 8 - 8 - - - 9 - 9 - - - 10 - 10 - - - 11 - 11 - - - 12 - 12 - - - auto (size columns based on the natural width of their content) - auto - - - - - + + + select + selectSingle + + + 0 + + + + 1 + 1 + + + 2 + 2 + + + 3 + 3 + + + 4 + 4 + + + 5 + 5 + + + 6 + 6 + + + 7 + 7 + + + 8 + 8 + + + 9 + 9 + + + 10 + 10 + + + 11 + 11 + + + 12 + 12 + + + auto (size columns based on the natural width of their content) + auto + + + + - - Col-* - + Col-* + array - - - - select - selectSingle - - - 0 - - - - 1 - 1 - - - 2 - 2 - - - 3 - 3 - - - - 4 - 4 - - - 5 - 5 - - - 6 - 6 - - - 7 - 7 - - - 8 - 8 - - - 9 - 9 - - - 10 - 10 - - - 11 - 11 - - - 12 - 12 - - - auto (size columns based on the natural width of their content) - auto - - - 12 - - + + + select + selectSingle + + + 0 + + + + 1 + 1 + + + 2 + 2 + + + 3 + 3 + + + 4 + 4 + + + 5 + 5 + + + 6 + 6 + + + 7 + 7 + + + 8 + 8 + + + 9 + 9 + + + 10 + 10 + + + 11 + 11 + + + 12 + 12 + + + auto (size columns based on the natural width of their content) + auto + + + 12 + - - - - select - selectSingle - - - 0 - - - - 1 - 1 - - - 2 - 2 - - - 3 - 3 - - - - 4 - 4 - - - 5 - 5 - - - 6 - 6 - - - 7 - 7 - - - 8 - 8 - - - 9 - 9 - - - 10 - 10 - - - 11 - 11 - - - 12 - 12 - - - auto (size columns based on the natural width of their content) - auto - - - 12 - - + + + select + selectSingle + + + 0 + + + + 1 + 1 + + + 2 + 2 + + + 3 + 3 + + + 4 + 4 + + + 5 + 5 + + + 6 + 6 + + + 7 + 7 + + + 8 + 8 + + + 9 + 9 + + + 10 + 10 + + + 11 + 11 + + + 12 + 12 + + + auto (size columns based on the natural width of their content) + auto + + + 12 + - - - - select - selectSingle - - - 0 - - - - 1 - 1 - - - 2 - 2 - - - 3 - 3 - - - - 4 - 4 - - - 5 - 5 - - - 6 - 6 - - - 7 - 7 - - - 8 - 8 - - - 9 - 9 - - - 10 - 10 - - - 11 - 11 - - - 12 - 12 - - - auto (size columns based on the natural width of their content) - auto - - - 12 - - + + + select + selectSingle + + + 0 + + + + 1 + 1 + + + 2 + 2 + + + 3 + 3 + + + 4 + 4 + + + 5 + 5 + + + 6 + 6 + + + 7 + 7 + + + 8 + 8 + + + 9 + 9 + + + 10 + 10 + + + 11 + 11 + + + 12 + 12 + + + auto (size columns based on the natural width of their content) + auto + + + 12 + - - - - select - selectSingle - - - 0 - - - - 1 - 1 - - - 2 - 2 - - - 3 - 3 - - - - 4 - 4 - - - 5 - 5 - - - 6 - 6 - - - 7 - 7 - - - 8 - 8 - - - 9 - 9 - - - 10 - 10 - - - 11 - 11 - - - 12 - 12 - - - auto (size columns based on the natural width of their content) - auto - - - 12 - - + + + select + selectSingle + + + 0 + + + + 1 + 1 + + + 2 + 2 + + + 3 + 3 + + + 4 + 4 + + + 5 + 5 + + + 6 + 6 + + + 7 + 7 + + + 8 + 8 + + + 9 + 9 + + + 10 + 10 + + + 11 + 11 + + + 12 + 12 + + + auto (size columns based on the natural width of their content) + auto + + + 12 + diff --git a/Configuration/FlexForms/Container/MasonryWrapper.xml b/Configuration/FlexForms/Container/MasonryWrapper.xml index 6c20a4f0..bddbb4c7 100644 --- a/Configuration/FlexForms/Container/MasonryWrapper.xml +++ b/Configuration/FlexForms/Container/MasonryWrapper.xml @@ -1,76 +1,72 @@ + + 1 + - array - - Container Settings - + Container Settings array - - - - select - selectSingle - - - none - 0 - - - Hidden only on xs - d-none d-sm-block - - - Hidden on sm and down - d-none d-md-block - - - Hidden on md and down - d-none d-lg-block - - - Hidden on lg and down - d-none d-xl-block - - - Hidden only on xl - d-xl-none - - - Visible only on xs - d-block d-sm-none - - - Visible sm and down - d-block d-md-none - - - Visible md and down - d-block d-lg-none - - - Visible lg and down - d-block d-xl-none - - - 0 - - + + + select + selectSingle + + + none + 0 + + + Hidden only on xs + d-none d-sm-block + + + Hidden on sm and down + d-none d-md-block + + + Hidden on md and down + d-none d-lg-block + + + Hidden on lg and down + d-none d-xl-block + + + Hidden only on xl + d-xl-none + + + Visible only on xs + d-block d-sm-none + + + Visible sm and down + d-block d-md-none + + + Visible md and down + d-block d-lg-none + + + Visible lg and down + d-block d-xl-none + + + 0 + - - - default: "col-sm-6 col-lg-4 mb-4" - - input - 40 - col-sm-6 col-lg-4 mb-4 - trim - - + + default: "col-sm-6 col-lg-4 mb-4" + + input + 40 + col-sm-6 col-lg-4 mb-4 + trim + diff --git a/Configuration/FlexForms/Container/Modal.xml b/Configuration/FlexForms/Container/Modal.xml index 21aa750a..4cba6369 100644 --- a/Configuration/FlexForms/Container/Modal.xml +++ b/Configuration/FlexForms/Container/Modal.xml @@ -1,209 +1,192 @@ + + 1 + + LLL:EXT:t3sbootstrap/Resources/Private/Language/locallang_be.xlf:flexforms.settings array - - LLL:EXT:t3sbootstrap/Resources/Private/Language/locallang_be.xlf:flexforms.settings - - - - - select - selectSingle - - - none - 0 - - - Hidden only on xs - d-none d-sm-block - - - Hidden on sm and down - d-none d-md-block - - - Hidden on md and down - d-none d-lg-block - - - Hidden on lg and down - d-none d-xl-block - - - Hidden only on xl - d-xl-none - - - Visible only on xs - d-block d-sm-none - - - Visible sm and down - d-block d-md-none - - - Visible md and down - d-block d-lg-none - - - Visible lg and down - d-block d-xl-none - - - 0 - - + + + select + selectSingle + + + none + 0 + + + Hidden only on xs + d-none d-sm-block + + + Hidden on sm and down + d-none d-md-block + + + Hidden on md and down + d-none d-lg-block + + + Hidden on lg and down + d-none d-xl-block + + + Hidden only on xl + d-xl-none + + + Visible only on xs + d-block d-sm-none + + + Visible sm and down + d-block d-md-none + + + Visible md and down + d-block d-lg-none + + + Visible lg and down + d-block d-xl-none + + + 0 + - - - - check - 1 - - + + + check + 1 + - - - - select - selectSingle - - - LLL:EXT:t3sbootstrap/Resources/Private/Language/locallang_be.xlf:default - default - - LLL:EXT:t3sbootstrap/Resources/Private/Language/locallang_be.xlf:small - modal-sm - - LLL:EXT:t3sbootstrap/Resources/Private/Language/locallang_be.xlf:large - modal-lg - - Extra large - modal-xl - - Fullscreen - modal-fullscreen - - default - - + + + select + selectSingle + + + LLL:EXT:t3sbootstrap/Resources/Private/Language/locallang_be.xlf:default + default + + LLL:EXT:t3sbootstrap/Resources/Private/Language/locallang_be.xlf:small + modal-sm + + LLL:EXT:t3sbootstrap/Resources/Private/Language/locallang_be.xlf:large + modal-lg + + Extra large + modal-xl + + Fullscreen + modal-fullscreen + + default + - - - - input - 20 - - - + + + input + 20 + + - - - - check - 0 - - + + + check + 0 + - - - reload - FIELD:general.button:=:1 - - select - selectSingle - - - none - 0 - - - Left browser edge - left - - - Right browser edge - right - - - 0 - - + + reload + FIELD:general.button:=:1 + + select + selectSingle + + + none + 0 + + + Left browser edge + left + + + Right browser edge + right + + + 0 + - - - - - FIELD:general.button:=:1 - FIELD:general.fixedPosition:!=:0 - - - - select - selectSingle - - - 0 degree - 0 - - - + 90 degree - plus - - - - 90 degree - minus - - - 0 - - + + + + FIELD:general.button:=:1 + FIELD:general.fixedPosition:!=:0 + + + + select + selectSingle + + + 0 degree + 0 + + + + 90 degree + plus + + + - 90 degree + minus + + + 0 + diff --git a/Configuration/FlexForms/Container/ParallaxWrapper.xml b/Configuration/FlexForms/Container/ParallaxWrapper.xml index 6b577c7b..b403f006 100644 --- a/Configuration/FlexForms/Container/ParallaxWrapper.xml +++ b/Configuration/FlexForms/Container/ParallaxWrapper.xml @@ -1,115 +1,106 @@ + + 1 + + LLL:EXT:t3sbootstrap/Resources/Private/Language/locallang_be.xlf:flexforms.general array - - LLL:EXT:t3sbootstrap/Resources/Private/Language/locallang_be.xlf:flexforms.general - - - - - select - selectSingle - - - none - 0 - - - Hidden only on xs - d-none d-sm-block - - - Hidden on sm and down - d-none d-md-block - - - Hidden on md and down - d-none d-lg-block - - - Hidden on lg and down - d-none d-xl-block - - - Hidden only on xl - d-xl-none - - - Visible only on xs - d-block d-sm-none - - - Visible sm and down - d-block d-md-none - - - Visible md and down - d-block d-lg-none - - - Visible lg and down - d-block d-xl-none - - - 0 - - + + + select + selectSingle + + + none + 0 + + + Hidden only on xs + d-none d-sm-block + + + Hidden on sm and down + d-none d-md-block + + + Hidden on md and down + d-none d-lg-block + + + Hidden on lg and down + d-none d-xl-block + + + Hidden only on xl + d-xl-none + + + Visible only on xs + d-block d-sm-none + + + Visible sm and down + d-block d-md-none + + + Visible md and down + d-block d-lg-none + + + Visible lg and down + d-block d-xl-none + + + 0 + - - - - input - 4 - 4 - 576 - int - 0 - - + + + input + 4 + 4 + 576 + int + 0 + - + - - - - input - - 6 - 1 - - + + + input + + 6 + 1 + - - - - input - - int - 6 - 100 - - + + + input + + int + 6 + 100 + - - - - check - 0.5 - - + + + check + 0.5 + - \ No newline at end of file + diff --git a/Configuration/FlexForms/Container/RowColumns.xml b/Configuration/FlexForms/Container/RowColumns.xml index d413fe55..93f258a1 100644 --- a/Configuration/FlexForms/Container/RowColumns.xml +++ b/Configuration/FlexForms/Container/RowColumns.xml @@ -1,415 +1,392 @@ + + 1 + - - Settings - + Settings array - - - INFO: https://getbootstrap.com/docs/5.1/layout/gutters/#horizontal-gutters - - select - selectSingle - - - gx-0 (no gutters) - gx-0 - - - gx-1 - gx-1 - - - gx-2 - gx-2 - - - gx-3 - gx-3 - - - gx-4 (default) - - - - gx-5 - gx-5 - - - - - + + INFO: https://getbootstrap.com/docs/5.1/layout/gutters/#horizontal-gutters + + select + selectSingle + + + gx-0 (no gutters) + gx-0 + + + gx-1 + gx-1 + + + gx-2 + gx-2 + + + gx-3 + gx-3 + + + gx-4 (default) + + + + gx-5 + gx-5 + + + + - - - INFO: https://getbootstrap.com/docs/5.1/layout/gutters/#vertical-gutters - - select - selectSingle - - - gy-0 (no gutters) - gy-0 - - - gy-1 - gy-1 - - - gy-2 - gy-2 - - - gy-3 - gy-3 - - - gy-4 (default) - - - - gy-5 - gy-5 - - - - - + + INFO: https://getbootstrap.com/docs/5.1/layout/gutters/#vertical-gutters + + select + selectSingle + + + gy-0 (no gutters) + gy-0 + + + gy-1 + gy-1 + + + gy-2 + gy-2 + + + gy-3 + gy-3 + + + gy-4 (default) + + + + gy-5 + gy-5 + + + + - - - Comma separated list for each column - e.g.: bg-success p-5, bg-secondary text-white p-5 - - input - 50 - - + + Comma separated list for each column - e.g.: bg-success p-5, bg-secondary text-white p-5 + + input + 50 + - - row-cols-xxl-* - + row-cols-xxl-* + array - - - INFO: https://getbootstrap.com/docs/5.1/layout/grid/#row-columns - - select - selectSingle - - - none - - - - Row columns 1 - row-cols-xxl-1 - - - Row columns 2 - row-cols-xxl-2 - - - Row columns 3 - row-cols-xxl-3 - - - Row columns 4 - row-cols-xxl-4 - - - Row columns 5 - row-cols-xxl-5 - - - Row columns 6 - row-cols-xxl-6 - - - Row columns auto - row-cols-xxl-auto - - - - - + + INFO: https://getbootstrap.com/docs/5.1/layout/grid/#row-columns + + select + selectSingle + + + none + + + + Row columns 1 + row-cols-xxl-1 + + + Row columns 2 + row-cols-xxl-2 + + + Row columns 3 + row-cols-xxl-3 + + + Row columns 4 + row-cols-xxl-4 + + + Row columns 5 + row-cols-xxl-5 + + + Row columns 6 + row-cols-xxl-6 + + + Row columns auto + row-cols-xxl-auto + + + + - - row-cols-xl-* - + row-cols-xl-* + array - - - INFO: https://getbootstrap.com/docs/5.1/layout/grid/#row-columns - - select - selectSingle - - - none - - - - Row columns 1 - row-cols-xl-1 - - - Row columns 2 - row-cols-xl-2 - - - Row columns 3 - row-cols-xl-3 - - - Row columns 4 - row-cols-xl-4 - - - Row columns 5 - row-cols-xl-5 - - - Row columns 6 - row-cols-xl-6 - - - Row columns auto - row-cols-xl-auto - - - - - + + INFO: https://getbootstrap.com/docs/5.1/layout/grid/#row-columns + + select + selectSingle + + + none + + + + Row columns 1 + row-cols-xl-1 + + + Row columns 2 + row-cols-xl-2 + + + Row columns 3 + row-cols-xl-3 + + + Row columns 4 + row-cols-xl-4 + + + Row columns 5 + row-cols-xl-5 + + + Row columns 6 + row-cols-xl-6 + + + Row columns auto + row-cols-xl-auto + + + + - - row-cols-lg-* - + row-cols-lg-* + array - - - INFO: https://getbootstrap.com/docs/5.1/layout/grid/#row-columns - - select - selectSingle - - - none - - - - Row columns 1 - row-cols-lg-1 - - - Row columns 2 - row-cols-lg-2 - - - Row columns 3 - row-cols-lg-3 - - - Row columns 4 - row-cols-lg-4 - - - Row columns 5 - row-cols-lg-5 - - - Row columns 6 - row-cols-lg-6 - - - Row columns auto - row-cols-lg-auto - - - - - + + INFO: https://getbootstrap.com/docs/5.1/layout/grid/#row-columns + + select + selectSingle + + + none + + + + Row columns 1 + row-cols-lg-1 + + + Row columns 2 + row-cols-lg-2 + + + Row columns 3 + row-cols-lg-3 + + + Row columns 4 + row-cols-lg-4 + + + Row columns 5 + row-cols-lg-5 + + + Row columns 6 + row-cols-lg-6 + + + Row columns auto + row-cols-lg-auto + + + + - - row-cols-md-* - + row-cols-md-* + array - - - INFO: https://getbootstrap.com/docs/5.1/layout/grid/#row-columns - - select - selectSingle - - - none - - - - Row columns 1 - row-cols-md-1 - - - Row columns 2 - row-cols-md-2 - - - Row columns 3 - row-cols-md-3 - - - Row columns 4 - row-cols-md-4 - - - Row columns 5 - row-cols-md-5 - - - Row columns 6 - row-cols-md-6 - - - Row columns auto - row-cols-md-auto - - - row-cols-md-3 - - + + INFO: https://getbootstrap.com/docs/5.1/layout/grid/#row-columns + + select + selectSingle + + + none + + + + Row columns 1 + row-cols-md-1 + + + Row columns 2 + row-cols-md-2 + + + Row columns 3 + row-cols-md-3 + + + Row columns 4 + row-cols-md-4 + + + Row columns 5 + row-cols-md-5 + + + Row columns 6 + row-cols-md-6 + + + Row columns auto + row-cols-md-auto + + + row-cols-md-3 + - - row-cols-sm-* - + row-cols-sm-* + array - - - INFO: https://getbootstrap.com/docs/5.1/layout/grid/#row-columns - - select - selectSingle - - - none - - - - Row columns 1 - row-cols-sm-1 - - - Row columns 2 - row-cols-sm-2 - - - Row columns 3 - row-cols-sm-3 - - - Row columns 4 - row-cols-sm-4 - - - Row columns 5 - row-cols-sm-5 - - - Row columns 6 - row-cols-sm-6 - - - Row columns auto - row-cols-sm-auto - - - - - + + INFO: https://getbootstrap.com/docs/5.1/layout/grid/#row-columns + + select + selectSingle + + + none + + + + Row columns 1 + row-cols-sm-1 + + + Row columns 2 + row-cols-sm-2 + + + Row columns 3 + row-cols-sm-3 + + + Row columns 4 + row-cols-sm-4 + + + Row columns 5 + row-cols-sm-5 + + + Row columns 6 + row-cols-sm-6 + + + Row columns auto + row-cols-sm-auto + + + + - - row-cols-* - + row-cols-* + array - - - INFO: https://getbootstrap.com/docs/5.1/layout/grid/#row-columns - - select - selectSingle - - - Row columns 1 - row-cols-1 - - - Row columns 2 - row-cols-2 - - - Row columns 3 - row-cols-3 - - - Row columns 4 - row-cols-4 - - - Row columns 5 - row-cols-5 - - - Row columns 6 - row-cols-6 - - - Row columns auto - row-cols-auto - - - row-cols-1 - - + + INFO: https://getbootstrap.com/docs/5.1/layout/grid/#row-columns + + select + selectSingle + + + Row columns 1 + row-cols-1 + + + Row columns 2 + row-cols-2 + + + Row columns 3 + row-cols-3 + + + Row columns 4 + row-cols-4 + + + Row columns 5 + row-cols-5 + + + Row columns 6 + row-cols-6 + + + Row columns auto + row-cols-auto + + + row-cols-1 + diff --git a/Configuration/FlexForms/Container/SixColumns.xml b/Configuration/FlexForms/Container/SixColumns.xml index 31e9a3bb..64eb6e26 100644 --- a/Configuration/FlexForms/Container/SixColumns.xml +++ b/Configuration/FlexForms/Container/SixColumns.xml @@ -1,2741 +1,2603 @@ + + 1 + - - Settings - + Settings + array array - - - reload - - check - 0 - - + + reload + + check + 0 + - - - - check - 0 - - + + + check + 0 + - - - INFO: https://getbootstrap.com/docs/5.1/layout/gutters/#horizontal-gutters - - select - selectSingle - - - gx-0 (no gutters) - gx-0 - - - gx-1 - gx-1 - - - gx-2 - gx-2 - - - gx-3 - gx-3 - - - gx-4 (default) - - - - gx-5 - gx-5 - - - - - + + INFO: https://getbootstrap.com/docs/5.1/layout/gutters/#horizontal-gutters + + select + selectSingle + + + gx-0 (no gutters) + gx-0 + + + gx-1 + gx-1 + + + gx-2 + gx-2 + + + gx-3 + gx-3 + + + gx-4 (default) + + + + gx-5 + gx-5 + + + + - - - INFO: https://getbootstrap.com/docs/5.1/layout/gutters/#vertical-gutters - - select - selectSingle - - - gy-0 (no gutters) - gy-0 - - - gy-1 - gy-1 - - - gy-2 - gy-2 - - - gy-3 - gy-3 - - - gy-4 (default) - - - - gy-5 - gy-5 - - - - - + + INFO: https://getbootstrap.com/docs/5.1/layout/gutters/#vertical-gutters + + select + selectSingle + + + gy-0 (no gutters) + gy-0 + + + gy-1 + gy-1 + + + gy-2 + gy-2 + + + gy-3 + gy-3 + + + gy-4 (default) + + + + gy-5 + gy-5 + + + + - - Extra Class - + Extra Class + array - - - - input - - + + + input + - - - - input - - + + + input + - - - - input - - + + + input + - - - - input - - + + + input + - - - - input - - + + + input + - - - - input - - + + + input + + Col-xxl-* array - - Col-xxl-* - - - - FIELD:sDEF.equalWidth:=:0 - - select - selectSingle - - - 0 - - - - 1 - 1 - - - 2 - 2 - - - 3 - 3 - - - - 4 - 4 - - - 5 - 5 - - - 6 - 6 - - - 7 - 7 - - - 8 - 8 - - - 9 - 9 - - - 10 - 10 - - - 11 - 11 - - - 12 - 12 - - - auto (size columns based on the natural width of their content) - auto - - - - - + + FIELD:sDEF.equalWidth:=:0 + + select + selectSingle + + + 0 + + + + 1 + 1 + + + 2 + 2 + + + 3 + 3 + + + 4 + 4 + + + 5 + 5 + + + 6 + 6 + + + 7 + 7 + + + 8 + 8 + + + 9 + 9 + + + 10 + 10 + + + 11 + 11 + + + 12 + 12 + + + auto (size columns based on the natural width of their content) + auto + + + + - - - FIELD:sDEF.equalWidth:=:0 - - select - selectSingle - - - 0 - - - - 1 - 1 - - - 2 - 2 - - - 3 - 3 - - - - 4 - 4 - - - 5 - 5 - - - 6 - 6 - - - 7 - 7 - - - 8 - 8 - - - 9 - 9 - - - 10 - 10 - - - 11 - 11 - - - 12 - 12 - - - auto (size columns based on the natural width of their content) - auto - - - - - + + FIELD:sDEF.equalWidth:=:0 + + select + selectSingle + + + 0 + + + + 1 + 1 + + + 2 + 2 + + + 3 + 3 + + + 4 + 4 + + + 5 + 5 + + + 6 + 6 + + + 7 + 7 + + + 8 + 8 + + + 9 + 9 + + + 10 + 10 + + + 11 + 11 + + + 12 + 12 + + + auto (size columns based on the natural width of their content) + auto + + + + - - - FIELD:sDEF.equalWidth:=:0 - - select - selectSingle - - - 0 - - - - 1 - 1 - - - 2 - 2 - - - 3 - 3 - - - - 4 - 4 - - - 5 - 5 - - - 6 - 6 - - - 7 - 7 - - - 8 - 8 - - - 9 - 9 - - - 10 - 10 - - - 11 - 11 - - - 12 - 12 - - - auto (size columns based on the natural width of their content) - auto - - - - - + + FIELD:sDEF.equalWidth:=:0 + + select + selectSingle + + + 0 + + + + 1 + 1 + + + 2 + 2 + + + 3 + 3 + + + 4 + 4 + + + 5 + 5 + + + 6 + 6 + + + 7 + 7 + + + 8 + 8 + + + 9 + 9 + + + 10 + 10 + + + 11 + 11 + + + 12 + 12 + + + auto (size columns based on the natural width of their content) + auto + + + + - - - FIELD:sDEF.equalWidth:=:0 - - select - selectSingle - - - 0 - - - - 1 - 1 - - - 2 - 2 - - - 3 - 3 - - - - 4 - 4 - - - 5 - 5 - - - 6 - 6 - - - 7 - 7 - - - 8 - 8 - - - 9 - 9 - - - 10 - 10 - - - 11 - 11 - - - 12 - 12 - - - auto (size columns based on the natural width of their content) - auto - - - - - + + FIELD:sDEF.equalWidth:=:0 + + select + selectSingle + + + 0 + + + + 1 + 1 + + + 2 + 2 + + + 3 + 3 + + + 4 + 4 + + + 5 + 5 + + + 6 + 6 + + + 7 + 7 + + + 8 + 8 + + + 9 + 9 + + + 10 + 10 + + + 11 + 11 + + + 12 + 12 + + + auto (size columns based on the natural width of their content) + auto + + + + - - - FIELD:sDEF.equalWidth:=:0 - - select - selectSingle - - - 0 - - - - 1 - 1 - - - 2 - 2 - - - 3 - 3 - - - - 4 - 4 - - - 5 - 5 - - - 6 - 6 - - - 7 - 7 - - - 8 - 8 - - - 9 - 9 - - - 10 - 10 - - - 11 - 11 - - - 12 - 12 - - - auto (size columns based on the natural width of their content) - auto - - - - - + + FIELD:sDEF.equalWidth:=:0 + + select + selectSingle + + + 0 + + + + 1 + 1 + + + 2 + 2 + + + 3 + 3 + + + 4 + 4 + + + 5 + 5 + + + 6 + 6 + + + 7 + 7 + + + 8 + 8 + + + 9 + 9 + + + 10 + 10 + + + 11 + 11 + + + 12 + 12 + + + auto (size columns based on the natural width of their content) + auto + + + + - - - FIELD:sDEF.equalWidth:=:0 - - select - selectSingle - - - 0 - - - - 1 - 1 - - - 2 - 2 - - - 3 - 3 - - - - 4 - 4 - - - 5 - 5 - - - 6 - 6 - - - 7 - 7 - - - 8 - 8 - - - 9 - 9 - - - 10 - 10 - - - 11 - 11 - - - 12 - 12 - - - auto (size columns based on the natural width of their content) - auto - - - - - + + FIELD:sDEF.equalWidth:=:0 + + select + selectSingle + + + 0 + + + + 1 + 1 + + + 2 + 2 + + + 3 + 3 + + + 4 + 4 + + + 5 + 5 + + + 6 + 6 + + + 7 + 7 + + + 8 + 8 + + + 9 + 9 + + + 10 + 10 + + + 11 + 11 + + + 12 + 12 + + + auto (size columns based on the natural width of their content) + auto + + + + + Col-xl-* array - - Col-xl-* - - - - FIELD:sDEF.equalWidth:=:0 - - select - selectSingle - - - 0 - - - - 1 - 1 - - - 2 - 2 - - - 3 - 3 - - - - 4 - 4 - - - 5 - 5 - - - 6 - 6 - - - 7 - 7 - - - 8 - 8 - - - 9 - 9 - - - 10 - 10 - - - 11 - 11 - - - 12 - 12 - - - auto (size columns based on the natural width of their content) - auto - - - - - + + FIELD:sDEF.equalWidth:=:0 + + select + selectSingle + + + 0 + + + + 1 + 1 + + + 2 + 2 + + + 3 + 3 + + + 4 + 4 + + + 5 + 5 + + + 6 + 6 + + + 7 + 7 + + + 8 + 8 + + + 9 + 9 + + + 10 + 10 + + + 11 + 11 + + + 12 + 12 + + + auto (size columns based on the natural width of their content) + auto + + + + - - - FIELD:sDEF.equalWidth:=:0 - - select - selectSingle - - - 0 - - - - 1 - 1 - - - 2 - 2 - - - 3 - 3 - - - - 4 - 4 - - - 5 - 5 - - - 6 - 6 - - - 7 - 7 - - - 8 - 8 - - - 9 - 9 - - - 10 - 10 - - - 11 - 11 - - - 12 - 12 - - - auto (size columns based on the natural width of their content) - auto - - - - - + + FIELD:sDEF.equalWidth:=:0 + + select + selectSingle + + + 0 + + + + 1 + 1 + + + 2 + 2 + + + 3 + 3 + + + 4 + 4 + + + 5 + 5 + + + 6 + 6 + + + 7 + 7 + + + 8 + 8 + + + 9 + 9 + + + 10 + 10 + + + 11 + 11 + + + 12 + 12 + + + auto (size columns based on the natural width of their content) + auto + + + + - - - FIELD:sDEF.equalWidth:=:0 - - select - selectSingle - - - 0 - - - - 1 - 1 - - - 2 - 2 - - - 3 - 3 - - - - 4 - 4 - - - 5 - 5 - - - 6 - 6 - - - 7 - 7 - - - 8 - 8 - - - 9 - 9 - - - 10 - 10 - - - 11 - 11 - - - 12 - 12 - - - auto (size columns based on the natural width of their content) - auto - - - - - + + FIELD:sDEF.equalWidth:=:0 + + select + selectSingle + + + 0 + + + + 1 + 1 + + + 2 + 2 + + + 3 + 3 + + + 4 + 4 + + + 5 + 5 + + + 6 + 6 + + + 7 + 7 + + + 8 + 8 + + + 9 + 9 + + + 10 + 10 + + + 11 + 11 + + + 12 + 12 + + + auto (size columns based on the natural width of their content) + auto + + + + - - - FIELD:sDEF.equalWidth:=:0 - - select - selectSingle - - - 0 - - - - 1 - 1 - - - 2 - 2 - - - 3 - 3 - - - - 4 - 4 - - - 5 - 5 - - - 6 - 6 - - - 7 - 7 - - - 8 - 8 - - - 9 - 9 - - - 10 - 10 - - - 11 - 11 - - - 12 - 12 - - - auto (size columns based on the natural width of their content) - auto - - - - - + + FIELD:sDEF.equalWidth:=:0 + + select + selectSingle + + + 0 + + + + 1 + 1 + + + 2 + 2 + + + 3 + 3 + + + 4 + 4 + + + 5 + 5 + + + 6 + 6 + + + 7 + 7 + + + 8 + 8 + + + 9 + 9 + + + 10 + 10 + + + 11 + 11 + + + 12 + 12 + + + auto (size columns based on the natural width of their content) + auto + + + + - - - FIELD:sDEF.equalWidth:=:0 - - select - selectSingle - - - 0 - - - - 1 - 1 - - - 2 - 2 - - - 3 - 3 - - - - 4 - 4 - - - 5 - 5 - - - 6 - 6 - - - 7 - 7 - - - 8 - 8 - - - 9 - 9 - - - 10 - 10 - - - 11 - 11 - - - 12 - 12 - - - auto (size columns based on the natural width of their content) - auto - - - - - + + FIELD:sDEF.equalWidth:=:0 + + select + selectSingle + + + 0 + + + + 1 + 1 + + + 2 + 2 + + + 3 + 3 + + + 4 + 4 + + + 5 + 5 + + + 6 + 6 + + + 7 + 7 + + + 8 + 8 + + + 9 + 9 + + + 10 + 10 + + + 11 + 11 + + + 12 + 12 + + + auto (size columns based on the natural width of their content) + auto + + + + - - - FIELD:sDEF.equalWidth:=:0 - - select - selectSingle - - - 0 - - - - 1 - 1 - - - 2 - 2 - - - 3 - 3 - - - - 4 - 4 - - - 5 - 5 - - - 6 - 6 - - - 7 - 7 - - - 8 - 8 - - - 9 - 9 - - - 10 - 10 - - - 11 - 11 - - - 12 - 12 - - - auto (size columns based on the natural width of their content) - auto - - - - - + + FIELD:sDEF.equalWidth:=:0 + + select + selectSingle + + + 0 + + + + 1 + 1 + + + 2 + 2 + + + 3 + 3 + + + 4 + 4 + + + 5 + 5 + + + 6 + 6 + + + 7 + 7 + + + 8 + 8 + + + 9 + 9 + + + 10 + 10 + + + 11 + 11 + + + 12 + 12 + + + auto (size columns based on the natural width of their content) + auto + + + + + Col-lg-* array - - Col-lg-* - - - - FIELD:sDEF.equalWidth:=:0 - - select - selectSingle - - - 0 - - - - 1 - 1 - - - 2 - 2 - - - 3 - 3 - - - - 4 - 4 - - - 5 - 5 - - - 6 - 6 - - - 7 - 7 - - - 8 - 8 - - - 9 - 9 - - - 10 - 10 - - - 11 - 11 - - - 12 - 12 - - - auto (size columns based on the natural width of their content) - auto - - - - - + + FIELD:sDEF.equalWidth:=:0 + + select + selectSingle + + + 0 + + + + 1 + 1 + + + 2 + 2 + + + 3 + 3 + + + 4 + 4 + + + 5 + 5 + + + 6 + 6 + + + 7 + 7 + + + 8 + 8 + + + 9 + 9 + + + 10 + 10 + + + 11 + 11 + + + 12 + 12 + + + auto (size columns based on the natural width of their content) + auto + + + + - - - FIELD:sDEF.equalWidth:=:0 - - select - selectSingle - - - 0 - - - - 1 - 1 - - - 2 - 2 - - - 3 - 3 - - - - 4 - 4 - - - 5 - 5 - - - 6 - 6 - - - 7 - 7 - - - 8 - 8 - - - 9 - 9 - - - 10 - 10 - - - 11 - 11 - - - 12 - 12 - - - auto (size columns based on the natural width of their content) - auto - - - - - + + FIELD:sDEF.equalWidth:=:0 + + select + selectSingle + + + 0 + + + + 1 + 1 + + + 2 + 2 + + + 3 + 3 + + + 4 + 4 + + + 5 + 5 + + + 6 + 6 + + + 7 + 7 + + + 8 + 8 + + + 9 + 9 + + + 10 + 10 + + + 11 + 11 + + + 12 + 12 + + + auto (size columns based on the natural width of their content) + auto + + + + - - - FIELD:sDEF.equalWidth:=:0 - - select - selectSingle - - - 0 - - - - 1 - 1 - - - 2 - 2 - - - 3 - 3 - - - - 4 - 4 - - - 5 - 5 - - - 6 - 6 - - - 7 - 7 - - - 8 - 8 - - - 9 - 9 - - - 10 - 10 - - - 11 - 11 - - - 12 - 12 - - - auto (size columns based on the natural width of their content) - auto - - - - - + + FIELD:sDEF.equalWidth:=:0 + + select + selectSingle + + + 0 + + + + 1 + 1 + + + 2 + 2 + + + 3 + 3 + + + 4 + 4 + + + 5 + 5 + + + 6 + 6 + + + 7 + 7 + + + 8 + 8 + + + 9 + 9 + + + 10 + 10 + + + 11 + 11 + + + 12 + 12 + + + auto (size columns based on the natural width of their content) + auto + + + + - - - FIELD:sDEF.equalWidth:=:0 - - select - selectSingle - - - 0 - - - - 1 - 1 - - - 2 - 2 - - - 3 - 3 - - - - 4 - 4 - - - 5 - 5 - - - 6 - 6 - - - 7 - 7 - - - 8 - 8 - - - 9 - 9 - - - 10 - 10 - - - 11 - 11 - - - 12 - 12 - - - auto (size columns based on the natural width of their content) - auto - - - - - + + FIELD:sDEF.equalWidth:=:0 + + select + selectSingle + + + 0 + + + + 1 + 1 + + + 2 + 2 + + + 3 + 3 + + + 4 + 4 + + + 5 + 5 + + + 6 + 6 + + + 7 + 7 + + + 8 + 8 + + + 9 + 9 + + + 10 + 10 + + + 11 + 11 + + + 12 + 12 + + + auto (size columns based on the natural width of their content) + auto + + + + - - - FIELD:sDEF.equalWidth:=:0 - - select - selectSingle - - - 0 - - - - 1 - 1 - - - 2 - 2 - - - 3 - 3 - - - - 4 - 4 - - - 5 - 5 - - - 6 - 6 - - - 7 - 7 - - - 8 - 8 - - - 9 - 9 - - - 10 - 10 - - - 11 - 11 - - - 12 - 12 - - - auto (size columns based on the natural width of their content) - auto - - - - - + + FIELD:sDEF.equalWidth:=:0 + + select + selectSingle + + + 0 + + + + 1 + 1 + + + 2 + 2 + + + 3 + 3 + + + 4 + 4 + + + 5 + 5 + + + 6 + 6 + + + 7 + 7 + + + 8 + 8 + + + 9 + 9 + + + 10 + 10 + + + 11 + 11 + + + 12 + 12 + + + auto (size columns based on the natural width of their content) + auto + + + + - - - FIELD:sDEF.equalWidth:=:0 - - select - selectSingle - - - 0 - - - - 1 - 1 - - - 2 - 2 - - - 3 - 3 - - - - 4 - 4 - - - 5 - 5 - - - 6 - 6 - - - 7 - 7 - - - 8 - 8 - - - 9 - 9 - - - 10 - 10 - - - 11 - 11 - - - 12 - 12 - - - auto (size columns based on the natural width of their content) - auto - - - - - + + FIELD:sDEF.equalWidth:=:0 + + select + selectSingle + + + 0 + + + + 1 + 1 + + + 2 + 2 + + + 3 + 3 + + + 4 + 4 + + + 5 + 5 + + + 6 + 6 + + + 7 + 7 + + + 8 + 8 + + + 9 + 9 + + + 10 + 10 + + + 11 + 11 + + + 12 + 12 + + + auto (size columns based on the natural width of their content) + auto + + + + + Col-md-* array - - Col-md-* - - - - FIELD:sDEF.equalWidth:=:0 - - select - selectSingle - - - 0 - - - - 1 - 1 - - - 2 - 2 - - - 3 - 3 - + + FIELD:sDEF.equalWidth:=:0 + + select + selectSingle + + + 0 + + + + 1 + 1 + + + 2 + 2 + + + 3 + 3 + - - 4 - 4 - - - 5 - 5 - - - 6 - 6 - - - 7 - 7 - - - 8 - 8 - - - 9 - 9 - - - 10 - 10 - - - 11 - 11 - - - 12 - 12 - - - auto (size columns based on the natural width of their content) - auto - - - 2 - - + + 4 + 4 + + + 5 + 5 + + + 6 + 6 + + + 7 + 7 + + + 8 + 8 + + + 9 + 9 + + + 10 + 10 + + + 11 + 11 + + + 12 + 12 + + + auto (size columns based on the natural width of their content) + auto + + + 2 + - - - FIELD:sDEF.equalWidth:=:0 - - select - selectSingle - - - 0 - - - - 1 - 1 - - - 2 - 2 - - - 3 - 3 - - - - 4 - 4 - - - 5 - 5 - - - 6 - 6 - - - 7 - 7 - - - 8 - 8 - - - 9 - 9 - - - 10 - 10 - - - 11 - 11 - - - 12 - 12 - - - auto (size columns based on the natural width of their content) - auto - - - 2 - - + + FIELD:sDEF.equalWidth:=:0 + + select + selectSingle + + + 0 + + + + 1 + 1 + + + 2 + 2 + + + 3 + 3 + + + 4 + 4 + + + 5 + 5 + + + 6 + 6 + + + 7 + 7 + + + 8 + 8 + + + 9 + 9 + + + 10 + 10 + + + 11 + 11 + + + 12 + 12 + + + auto (size columns based on the natural width of their content) + auto + + + 2 + - - - FIELD:sDEF.equalWidth:=:0 - - select - selectSingle - - - 0 - - - - 1 - 1 - - - 2 - 2 - - - 3 - 3 - - - - 4 - 4 - - - 5 - 5 - - - 6 - 6 - - - 7 - 7 - - - 8 - 8 - - - 9 - 9 - - - 10 - 10 - - - 11 - 11 - - - 12 - 12 - - - auto (size columns based on the natural width of their content) - auto - - - 2 - - + + FIELD:sDEF.equalWidth:=:0 + + select + selectSingle + + + 0 + + + + 1 + 1 + + + 2 + 2 + + + 3 + 3 + + + 4 + 4 + + + 5 + 5 + + + 6 + 6 + + + 7 + 7 + + + 8 + 8 + + + 9 + 9 + + + 10 + 10 + + + 11 + 11 + + + 12 + 12 + + + auto (size columns based on the natural width of their content) + auto + + + 2 + - - - FIELD:sDEF.equalWidth:=:0 - - select - selectSingle - - - 0 - - - - 1 - 1 - - - 2 - 2 - - - 3 - 3 - - - - 4 - 4 - - - 5 - 5 - - - 6 - 6 - - - 7 - 7 - - - 8 - 8 - - - 9 - 9 - - - 10 - 10 - - - 11 - 11 - - - 12 - 12 - - - auto (size columns based on the natural width of their content) - auto - - - 2 - - + + FIELD:sDEF.equalWidth:=:0 + + select + selectSingle + + + 0 + + + + 1 + 1 + + + 2 + 2 + + + 3 + 3 + + + 4 + 4 + + + 5 + 5 + + + 6 + 6 + + + 7 + 7 + + + 8 + 8 + + + 9 + 9 + + + 10 + 10 + + + 11 + 11 + + + 12 + 12 + + + auto (size columns based on the natural width of their content) + auto + + + 2 + - - - FIELD:sDEF.equalWidth:=:0 - - select - selectSingle - - - 0 - - - - 1 - 1 - - - 2 - 2 - - - 3 - 3 - - - - 4 - 4 - - - 5 - 5 - - - 6 - 6 - - - 7 - 7 - - - 8 - 8 - - - 9 - 9 - - - 10 - 10 - - - 11 - 11 - - - 12 - 12 - - - auto (size columns based on the natural width of their content) - auto - - - 2 - - + + FIELD:sDEF.equalWidth:=:0 + + select + selectSingle + + + 0 + + + + 1 + 1 + + + 2 + 2 + + + 3 + 3 + + + 4 + 4 + + + 5 + 5 + + + 6 + 6 + + + 7 + 7 + + + 8 + 8 + + + 9 + 9 + + + 10 + 10 + + + 11 + 11 + + + 12 + 12 + + + auto (size columns based on the natural width of their content) + auto + + + 2 + - - - FIELD:sDEF.equalWidth:=:0 - - select - selectSingle - - - 0 - - - - 1 - 1 - - - 2 - 2 - - - 3 - 3 - - - - 4 - 4 - - - 5 - 5 - - - 6 - 6 - - - 7 - 7 - - - 8 - 8 - - - 9 - 9 - - - 10 - 10 - - - 11 - 11 - - - 12 - 12 - - - auto (size columns based on the natural width of their content) - auto - - - 2 - - + + FIELD:sDEF.equalWidth:=:0 + + select + selectSingle + + + 0 + + + + 1 + 1 + + + 2 + 2 + + + 3 + 3 + + + 4 + 4 + + + 5 + 5 + + + 6 + 6 + + + 7 + 7 + + + 8 + 8 + + + 9 + 9 + + + 10 + 10 + + + 11 + 11 + + + 12 + 12 + + + auto (size columns based on the natural width of their content) + auto + + + 2 + + Col-sm-* array - - Col-sm-* - - - - FIELD:sDEF.equalWidth:=:0 - - select - selectSingle - - - 0 - - - - 1 - 1 - - - 2 - 2 - - - 3 - 3 - - - - 4 - 4 - - - 5 - 5 - - - 6 - 6 - - - 7 - 7 - - - 8 - 8 - - - 9 - 9 - - - 10 - 10 - - - 11 - 11 - - - 12 - 12 - - - auto (size columns based on the natural width of their content) - auto - - - - - + + FIELD:sDEF.equalWidth:=:0 + + select + selectSingle + + + 0 + + + + 1 + 1 + + + 2 + 2 + + + 3 + 3 + + + 4 + 4 + + + 5 + 5 + + + 6 + 6 + + + 7 + 7 + + + 8 + 8 + + + 9 + 9 + + + 10 + 10 + + + 11 + 11 + + + 12 + 12 + + + auto (size columns based on the natural width of their content) + auto + + + + - - - FIELD:sDEF.equalWidth:=:0 - - select - selectSingle - - - 0 - - - - 1 - 1 - - - 2 - 2 - - - 3 - 3 - - - - 4 - 4 - - - 5 - 5 - - - 6 - 6 - - - 7 - 7 - - - 8 - 8 - - - 9 - 9 - - - 10 - 10 - - - 11 - 11 - - - 12 - 12 - - - auto (size columns based on the natural width of their content) - auto - - - - - + + FIELD:sDEF.equalWidth:=:0 + + select + selectSingle + + + 0 + + + + 1 + 1 + + + 2 + 2 + + + 3 + 3 + + + 4 + 4 + + + 5 + 5 + + + 6 + 6 + + + 7 + 7 + + + 8 + 8 + + + 9 + 9 + + + 10 + 10 + + + 11 + 11 + + + 12 + 12 + + + auto (size columns based on the natural width of their content) + auto + + + + - - - FIELD:sDEF.equalWidth:=:0 - - select - selectSingle - - - 0 - - - - 1 - 1 - - - 2 - 2 - - - 3 - 3 - - - - 4 - 4 - - - 5 - 5 - - - 6 - 6 - - - 7 - 7 - - - 8 - 8 - - - 9 - 9 - - - 10 - 10 - - - 11 - 11 - - - 12 - 12 - - - auto (size columns based on the natural width of their content) - auto - - - - - + + FIELD:sDEF.equalWidth:=:0 + + select + selectSingle + + + 0 + + + + 1 + 1 + + + 2 + 2 + + + 3 + 3 + + + 4 + 4 + + + 5 + 5 + + + 6 + 6 + + + 7 + 7 + + + 8 + 8 + + + 9 + 9 + + + 10 + 10 + + + 11 + 11 + + + 12 + 12 + + + auto (size columns based on the natural width of their content) + auto + + + + - - - FIELD:sDEF.equalWidth:=:0 - - select - selectSingle - - - 0 - - - - 1 - 1 - - - 2 - 2 - - - 3 - 3 - - - - 4 - 4 - - - 5 - 5 - - - 6 - 6 - - - 7 - 7 - - - 8 - 8 - - - 9 - 9 - - - 10 - 10 - - - 11 - 11 - - - 12 - 12 - - - auto (size columns based on the natural width of their content) - auto - - - - - + + FIELD:sDEF.equalWidth:=:0 + + select + selectSingle + + + 0 + + + + 1 + 1 + + + 2 + 2 + + + 3 + 3 + + + 4 + 4 + + + 5 + 5 + + + 6 + 6 + + + 7 + 7 + + + 8 + 8 + + + 9 + 9 + + + 10 + 10 + + + 11 + 11 + + + 12 + 12 + + + auto (size columns based on the natural width of their content) + auto + + + + - - - FIELD:sDEF.equalWidth:=:0 - - select - selectSingle - - - 0 - - - - 1 - 1 - - - 2 - 2 - - - 3 - 3 - - - - 4 - 4 - - - 5 - 5 - - - 6 - 6 - - - 7 - 7 - - - 8 - 8 - - - 9 - 9 - - - 10 - 10 - - - 11 - 11 - - - 12 - 12 - - - auto (size columns based on the natural width of their content) - auto - - - - - + + FIELD:sDEF.equalWidth:=:0 + + select + selectSingle + + + 0 + + + + 1 + 1 + + + 2 + 2 + + + 3 + 3 + + + 4 + 4 + + + 5 + 5 + + + 6 + 6 + + + 7 + 7 + + + 8 + 8 + + + 9 + 9 + + + 10 + 10 + + + 11 + 11 + + + 12 + 12 + + + auto (size columns based on the natural width of their content) + auto + + + + - - - FIELD:sDEF.equalWidth:=:0 - - select - selectSingle - - - 0 - - - - 1 - 1 - - - 2 - 2 - - - 3 - 3 - - - - 4 - 4 - - - 5 - 5 - - - 6 - 6 - - - 7 - 7 - - - 8 - 8 - - - 9 - 9 - - - 10 - 10 - - - 11 - 11 - - - 12 - 12 - - - auto (size columns based on the natural width of their content) - auto - - - - - + + FIELD:sDEF.equalWidth:=:0 + + select + selectSingle + + + 0 + + + + 1 + 1 + + + 2 + 2 + + + 3 + 3 + + + 4 + 4 + + + 5 + 5 + + + 6 + 6 + + + 7 + 7 + + + 8 + 8 + + + 9 + 9 + + + 10 + 10 + + + 11 + 11 + + + 12 + 12 + + + auto (size columns based on the natural width of their content) + auto + + + + + Col-* array - - Col-* - - - - FIELD:sDEF.equalWidth:=:0 - - select - selectSingle - - - 0 - - - - 1 - 1 - - - 2 - 2 - - - 3 - 3 - - - - 4 - 4 - - - 5 - 5 - - - 6 - 6 - - - 7 - 7 - - - 8 - 8 - - - 9 - 9 - - - 10 - 10 - - - 11 - 11 - - - 12 - 12 - - - auto (size columns based on the natural width of their content) - auto - - - 12 - - + + FIELD:sDEF.equalWidth:=:0 + + select + selectSingle + + + 0 + + + + 1 + 1 + + + 2 + 2 + + + 3 + 3 + + + 4 + 4 + + + 5 + 5 + + + 6 + 6 + + + 7 + 7 + + + 8 + 8 + + + 9 + 9 + + + 10 + 10 + + + 11 + 11 + + + 12 + 12 + + + auto (size columns based on the natural width of their content) + auto + + + 12 + - - - FIELD:sDEF.equalWidth:=:0 - - select - selectSingle - - - 0 - - - - 1 - 1 - - - 2 - 2 - - - 3 - 3 - - - - 4 - 4 - - - 5 - 5 - - - 6 - 6 - - - 7 - 7 - - - 8 - 8 - - - 9 - 9 - - - 10 - 10 - - - 11 - 11 - - - 12 - 12 - - - auto (size columns based on the natural width of their content) - auto - - - 12 - - + + FIELD:sDEF.equalWidth:=:0 + + select + selectSingle + + + 0 + + + + 1 + 1 + + + 2 + 2 + + + 3 + 3 + + + 4 + 4 + + + 5 + 5 + + + 6 + 6 + + + 7 + 7 + + + 8 + 8 + + + 9 + 9 + + + 10 + 10 + + + 11 + 11 + + + 12 + 12 + + + auto (size columns based on the natural width of their content) + auto + + + 12 + - - - FIELD:sDEF.equalWidth:=:0 - - select - selectSingle - - - 0 - - - - 1 - 1 - - - 2 - 2 - - - 3 - 3 - - - - 4 - 4 - - - 5 - 5 - - - 6 - 6 - - - 7 - 7 - - - 8 - 8 - - - 9 - 9 - - - 10 - 10 - - - 11 - 11 - - - 12 - 12 - - - auto (size columns based on the natural width of their content) - auto - - - 12 - - + + FIELD:sDEF.equalWidth:=:0 + + select + selectSingle + + + 0 + + + + 1 + 1 + + + 2 + 2 + + + 3 + 3 + + + 4 + 4 + + + 5 + 5 + + + 6 + 6 + + + 7 + 7 + + + 8 + 8 + + + 9 + 9 + + + 10 + 10 + + + 11 + 11 + + + 12 + 12 + + + auto (size columns based on the natural width of their content) + auto + + + 12 + - - - FIELD:sDEF.equalWidth:=:0 - - select - selectSingle - - - 0 - - - - 1 - 1 - - - 2 - 2 - - - 3 - 3 - - - - 4 - 4 - - - 5 - 5 - - - 6 - 6 - - - 7 - 7 - - - 8 - 8 - - - 9 - 9 - - - 10 - 10 - - - 11 - 11 - - - 12 - 12 - - - auto (size columns based on the natural width of their content) - auto - - - 12 - - + + FIELD:sDEF.equalWidth:=:0 + + select + selectSingle + + + 0 + + + + 1 + 1 + + + 2 + 2 + + + 3 + 3 + + + 4 + 4 + + + 5 + 5 + + + 6 + 6 + + + 7 + 7 + + + 8 + 8 + + + 9 + 9 + + + 10 + 10 + + + 11 + 11 + + + 12 + 12 + + + auto (size columns based on the natural width of their content) + auto + + + 12 + - - - FIELD:sDEF.equalWidth:=:0 - - select - selectSingle - - - 0 - - - - 1 - 1 - - - 2 - 2 - - - 3 - 3 - - - - 4 - 4 - - - 5 - 5 - - - 6 - 6 - - - 7 - 7 - - - 8 - 8 - - - 9 - 9 - - - 10 - 10 - - - 11 - 11 - - - 12 - 12 - - - auto (size columns based on the natural width of their content) - auto - - - 12 - - + + FIELD:sDEF.equalWidth:=:0 + + select + selectSingle + + + 0 + + + + 1 + 1 + + + 2 + 2 + + + 3 + 3 + + + 4 + 4 + + + 5 + 5 + + + 6 + 6 + + + 7 + 7 + + + 8 + 8 + + + 9 + 9 + + + 10 + 10 + + + 11 + 11 + + + 12 + 12 + + + auto (size columns based on the natural width of their content) + auto + + + 12 + - - - FIELD:sDEF.equalWidth:=:0 - - select - selectSingle - - - 0 - - - - 1 - 1 - - - 2 - 2 - - - 3 - 3 - - - - 4 - 4 - - - 5 - 5 - - - 6 - 6 - - - 7 - 7 - - - 8 - 8 - - - 9 - 9 - - - 10 - 10 - - - 11 - 11 - - - 12 - 12 - - - auto (size columns based on the natural width of their content) - auto - - - 12 - - + + FIELD:sDEF.equalWidth:=:0 + + select + selectSingle + + + 0 + + + + 1 + 1 + + + 2 + 2 + + + 3 + 3 + + + 4 + 4 + + + 5 + 5 + + + 6 + 6 + + + 7 + 7 + + + 8 + 8 + + + 9 + 9 + + + 10 + 10 + + + 11 + 11 + + + 12 + 12 + + + auto (size columns based on the natural width of their content) + auto + + + 12 + diff --git a/Configuration/FlexForms/Container/SwiperContainer.xml b/Configuration/FlexForms/Container/SwiperContainer.xml index 926de908..43b20e20 100644 --- a/Configuration/FlexForms/Container/SwiperContainer.xml +++ b/Configuration/FlexForms/Container/SwiperContainer.xml @@ -1,283 +1,247 @@ + + 1 + + General array - - General - - - - - select - selectSingle - - - none - 0 - - - Hidden only on xs - d-none d-sm-block - - - Hidden on sm and down - d-none d-md-block - - - Hidden on md and down - d-none d-lg-block - - - Hidden on lg and down - d-none d-xl-block - - - Hidden only on xl - d-xl-none - - - Visible only on xs - d-block d-sm-none - - - Visible sm and down - d-block d-md-none - - - Visible md and down - d-block d-lg-none - - - Visible lg and down - d-block d-xl-none - - - 0 - - + + + select + selectSingle + + + none + 0 + + + Hidden only on xs + d-none d-sm-block + + + Hidden on sm and down + d-none d-md-block + + + Hidden on md and down + d-none d-lg-block + + + Hidden on lg and down + d-none d-xl-block + + + Hidden only on xl + d-xl-none + + + Visible only on xs + d-block d-sm-none + + + Visible sm and down + d-block d-md-none + + + Visible md and down + d-block d-lg-none + + + Visible lg and down + d-block d-xl-none + + + 0 + - - - reload - - select - selectSingle - - - Default - Default - - - Custom one - CustomOne - - - Custom two - CustomTwo - - - Default - - + + reload + + select + selectSingle + + + Default + Default + + + Custom one + CustomOne + + + Custom two + CustomTwo + + + Default + - - - - input - 4 - 4 - 576 - int - 0 - - + + + input + 4 + 4 + 576 + int + 0 + - - - - check - - + + + check + - - - - input - 4 - 5 - 16:9 - 0 - - + + + input + 4 + 5 + 16:9 + 0 + - - - FIELD:general.sliderStyle:=:Default - - input - 4 - 4 - 0 - - + + FIELD:general.sliderStyle:=:Default + + input + 4 + 4 + 0 + - - - FIELD:general.sliderStyle:=:Default - - input - 4 - 2 - 0 - - + + FIELD:general.sliderStyle:=:Default + + input + 4 + 2 + 0 + - - - FIELD:general.sliderStyle:=:Default - - input - 4 - 3 - 0 - - + + FIELD:general.sliderStyle:=:Default + + input + 4 + 3 + 0 + - - - FIELD:general.sliderStyle:=:Default - - input - 4 - 4 - 0 - - + + FIELD:general.sliderStyle:=:Default + + input + 4 + 4 + 0 + - - - FIELD:general.sliderStyle:=:Default - - input - 4 - 1 - 0 - - + + FIELD:general.sliderStyle:=:Default + + input + 4 + 1 + 0 + - - - FIELD:general.sliderStyle:=:Default - - input - 4 - 20 - 0 - - + + FIELD:general.sliderStyle:=:Default + + input + 4 + 20 + 0 + - - - FIELD:general.sliderStyle:=:Default - - check - - + + Amount of slides in loop mode should be at least 2x of slidesPerView value. + FIELD:general.sliderStyle:=:Default + + check + - - - FIELD:general.sliderStyle:=:Default - - check - - + + FIELD:general.sliderStyle:=:Default + + check + - - - FIELD:general.sliderStyle:=:Default - - check - - + + FIELD:general.sliderStyle:=:Default + + check + - - - FIELD:general.sliderStyle:=:Default - reload - - check - - + + FIELD:general.sliderStyle:=:Default + reload + + check + - - - - - FIELD:general.sliderStyle:=:Default - FIELD:general.autoplay:=:1 - - - - input - 4 - 5000 - 0 - - + + + + FIELD:general.sliderStyle:=:Default + FIELD:general.autoplay:=:1 + + + + input + 4 + 5000 + 0 + - - - FIELD:general.sliderStyle:!=:Default - - text - 500 - 9999 - - - + + FIELD:general.sliderStyle:!=:Default + + text + 500 + 9999 + + - - - FIELD:general.sliderStyle:!=:Default - - text - 500 - 9999 - - - + + FIELD:general.sliderStyle:!=:Default + + text + 500 + 9999 + + - - - Not working with a link inside the carousel content. - - check - - + + Not working with a link inside the carousel content. + + check + - \ No newline at end of file + diff --git a/Configuration/FlexForms/Container/Tabs.xml b/Configuration/FlexForms/Container/Tabs.xml index 91f3bec7..ac57f944 100644 --- a/Configuration/FlexForms/Container/Tabs.xml +++ b/Configuration/FlexForms/Container/Tabs.xml @@ -1,169 +1,160 @@ + + 1 + + LLL:EXT:t3sbootstrap/Resources/Private/Language/locallang_be.xlf:flexforms.settings array - - LLL:EXT:t3sbootstrap/Resources/Private/Language/locallang_be.xlf:flexforms.settings - - - - - select - selectSingle - - - none - 0 - - - Hidden only on xs - d-none d-sm-block - - - Hidden on sm and down - d-none d-md-block - - - Hidden on md and down - d-none d-lg-block - - - Hidden on lg and down - d-none d-xl-block - - - Hidden only on xl - d-xl-none - - - Visible only on xs - d-block d-sm-none - - - Visible sm and down - d-block d-md-none - - - Visible md and down - d-block d-lg-none - - - Visible lg and down - d-block d-xl-none - - - 0 - - + + + select + selectSingle + + + none + 0 + + + Hidden only on xs + d-none d-sm-block + + + Hidden on sm and down + d-none d-md-block + + + Hidden on md and down + d-none d-lg-block + + + Hidden on lg and down + d-none d-xl-block + + + Hidden only on xl + d-xl-none + + + Visible only on xs + d-block d-sm-none + + + Visible sm and down + d-block d-md-none + + + Visible md and down + d-block d-lg-none + + + Visible lg and down + d-block d-xl-none + + + 0 + - - reload - - - select - selectSingle - - - Tabs - tabs - - - Pills - pills - - - Vertical Pills - verticalpills - - - tabs - - + reload + + + select + selectSingle + + + Tabs + tabs + + + Pills + pills + + + Vertical Pills + verticalpills + + + tabs + - - - FIELD:display_type:=:verticalpills - - select - selectSingle - - - 1 - 1 - - - 2 - 2 - - - 3 - 3 - - - 4 - 4 - - - 6 - 6 - - - 3 - - + + FIELD:display_type:=:verticalpills + + select + selectSingle + + + 1 + 1 + + + 2 + 2 + + + 3 + 3 + + + 4 + 4 + + + 6 + 6 + + + 3 + - - - - select - selectSingle - - - none - 0 - - - fade - fade - - - fade - - + + + select + selectSingle + + + none + 0 + + + fade + fade + + + fade + - - - - select - selectSingle - - - none - 0 - - - nav-fill - nav-fill - - - nav-justified - nav-justified - - - 0 - - + + + select + selectSingle + + + none + 0 + + + nav-fill + nav-fill + + + nav-justified + nav-justified + + + 0 + - \ No newline at end of file + diff --git a/Configuration/FlexForms/Container/TabsTab.xml b/Configuration/FlexForms/Container/TabsTab.xml index 735fcfef..0f5565a2 100644 --- a/Configuration/FlexForms/Container/TabsTab.xml +++ b/Configuration/FlexForms/Container/TabsTab.xml @@ -1,89 +1,86 @@ + + 1 + + LLL:EXT:t3sbootstrap/Resources/Private/Language/locallang_be.xlf:flexforms.settings array - - LLL:EXT:t3sbootstrap/Resources/Private/Language/locallang_be.xlf:flexforms.settings - - - - - select - selectSingle - - - none - 0 - - - Hidden only on xs - d-none d-sm-block - - - Hidden on sm and down - d-none d-md-block - - - Hidden on md and down - d-none d-lg-block - - - Hidden on lg and down - d-none d-xl-block - - - Hidden only on xl - d-xl-none - - - Visible only on xs - d-block d-sm-none - - - Visible sm and down - d-block d-md-none - - - Visible md and down - d-block d-lg-none - - - Visible lg and down - d-block d-xl-none - - - 0 - - + + + select + selectSingle + + + none + 0 + + + Hidden only on xs + d-none d-sm-block + + + Hidden on sm and down + d-none d-md-block + + + Hidden on md and down + d-none d-lg-block + + + Hidden on lg and down + d-none d-xl-block + + + Hidden only on xl + d-xl-none + + + Visible only on xs + d-block d-sm-none + + + Visible sm and down + d-block d-md-none + + + Visible md and down + d-block d-lg-none + + + Visible lg and down + d-block d-xl-none + + + 0 + - - - - group - db - pages - 3 - 1 - 0 - 1 - - - suggest - - 1 - - - - - + + + group + db + pages + 3 + 1 + 0 + 1 + + + suggest + + 1 + + + + - \ No newline at end of file + diff --git a/Configuration/FlexForms/Container/ThreeColumns.xml b/Configuration/FlexForms/Container/ThreeColumns.xml index 30a8decc..7e5fb575 100644 --- a/Configuration/FlexForms/Container/ThreeColumns.xml +++ b/Configuration/FlexForms/Container/ThreeColumns.xml @@ -1,1434 +1,1377 @@ + + 1 + - - Settings - + Settings + array - - - reload - - check - 0 - - + + reload + + check + 0 + - - - - check - 0 - - + + + check + 0 + - - - INFO: https://getbootstrap.com/docs/5.3/layout/gutters/#horizontal-gutters - - select - selectSingle - - - gx-0 (no gutters) - gx-0 - - - gx-1 - gx-1 - - - gx-2 - gx-2 - - - gx-3 - gx-3 - - - gx-4 (default) - - - - gx-5 - gx-5 - - - - - + + INFO: https://getbootstrap.com/docs/5.3/layout/gutters/#horizontal-gutters + + select + selectSingle + + + gx-0 (no gutters) + gx-0 + + + gx-1 + gx-1 + + + gx-2 + gx-2 + + + gx-3 + gx-3 + + + gx-4 (default) + + + + gx-5 + gx-5 + + + + - - - INFO: https://getbootstrap.com/docs/5.3/layout/gutters/#vertical-gutters - - select - selectSingle - - - gy-0 (no gutters) - gy-0 - - - gy-1 - gy-1 - - - gy-2 - gy-2 - - - gy-3 - gy-3 - - - gy-4 (default) - - - - gy-5 - gy-5 - - - - - + + INFO: https://getbootstrap.com/docs/5.3/layout/gutters/#vertical-gutters + + select + selectSingle + + + gy-0 (no gutters) + gy-0 + + + gy-1 + gy-1 + + + gy-2 + gy-2 + + + gy-3 + gy-3 + + + gy-4 (default) + + + + gy-5 + gy-5 + + + + - - Extra Class - + Extra Class array - - - - input - - + + + input + - - - - input - - + + + input + - - - - input - - + + + input + - - Col-xxl-* - + Col-xxl-* + array - - - FIELD:sDEF.equalWidth:=:0 - - select - selectSingle - - - 0 - - - - 1 - 1 - - - 2 - 2 - - - 3 - 3 - - - - 4 - 4 - - - 5 - 5 - - - 6 - 6 - - - 7 - 7 - - - 8 - 8 - - - 9 - 9 - - - 10 - 10 - - - 11 - 11 - - - 12 - 12 - - - auto (size columns based on the natural width of their content) - auto - - - - - + + FIELD:sDEF.equalWidth:=:0 + + select + selectSingle + + + 0 + + + + 1 + 1 + + + 2 + 2 + + + 3 + 3 + + + 4 + 4 + + + 5 + 5 + + + 6 + 6 + + + 7 + 7 + + + 8 + 8 + + + 9 + 9 + + + 10 + 10 + + + 11 + 11 + + + 12 + 12 + + + auto (size columns based on the natural width of their content) + auto + + + + - - - FIELD:sDEF.equalWidth:=:0 - - select - selectSingle - - - 0 - - - - 1 - 1 - - - 2 - 2 - - - 3 - 3 - - - 4 - 4 - - - 5 - 5 - - - 6 - 6 - - - 7 - 7 - - - 8 - 8 - - - 9 - 9 - - - 10 - 10 - - - 11 - 11 - - - 12 - 12 - - - auto (size columns based on the natural width of their content) - auto - - - - - + + FIELD:sDEF.equalWidth:=:0 + + select + selectSingle + + + 0 + + + + 1 + 1 + + + 2 + 2 + + + 3 + 3 + + + 4 + 4 + + + 5 + 5 + + + 6 + 6 + + + 7 + 7 + + + 8 + 8 + + + 9 + 9 + + + 10 + 10 + + + 11 + 11 + + + 12 + 12 + + + auto (size columns based on the natural width of their content) + auto + + + + - - - FIELD:sDEF.equalWidth:=:0 - - select - selectSingle - - - 0 - - - - 1 - 1 - - - 2 - 2 - - - 3 - 3 - - - 4 - 4 - - - 5 - 5 - - - 6 - 6 - - - 7 - 7 - - - 8 - 8 - - - 9 - 9 - - - 10 - 10 - - - 11 - 11 - - - 12 - 12 - - - auto (size columns based on the natural width of their content) - auto - - - - - + + FIELD:sDEF.equalWidth:=:0 + + select + selectSingle + + + 0 + + + + 1 + 1 + + + 2 + 2 + + + 3 + 3 + + + 4 + 4 + + + 5 + 5 + + + 6 + 6 + + + 7 + 7 + + + 8 + 8 + + + 9 + 9 + + + 10 + 10 + + + 11 + 11 + + + 12 + 12 + + + auto (size columns based on the natural width of their content) + auto + + + + - - Col-xl-* - + Col-xl-* + array - - - FIELD:sDEF.equalWidth:=:0 - - select - selectSingle - - - 0 - - - - 1 - 1 - - - 2 - 2 - - - 3 - 3 - - - 4 - 4 - - - 5 - 5 - - - 6 - 6 - - - 7 - 7 - - - 8 - 8 - - - 9 - 9 - - - 10 - 10 - - - 11 - 11 - - - 12 - 12 - - - auto (size columns based on the natural width of their content) - auto - - - - - + + FIELD:sDEF.equalWidth:=:0 + + select + selectSingle + + + 0 + + + + 1 + 1 + + + 2 + 2 + + + 3 + 3 + + + 4 + 4 + + + 5 + 5 + + + 6 + 6 + + + 7 + 7 + + + 8 + 8 + + + 9 + 9 + + + 10 + 10 + + + 11 + 11 + + + 12 + 12 + + + auto (size columns based on the natural width of their content) + auto + + + + - - - FIELD:sDEF.equalWidth:=:0 - - select - selectSingle - - - 0 - - - - 1 - 1 - - - 2 - 2 - - - 3 - 3 - - - 4 - 4 - - - 5 - 5 - - - 6 - 6 - - - 7 - 7 - - - 8 - 8 - - - 9 - 9 - - - 10 - 10 - - - 11 - 11 - - - 12 - 12 - - - auto (size columns based on the natural width of their content) - auto - - - - - + + FIELD:sDEF.equalWidth:=:0 + + select + selectSingle + + + 0 + + + + 1 + 1 + + + 2 + 2 + + + 3 + 3 + + + 4 + 4 + + + 5 + 5 + + + 6 + 6 + + + 7 + 7 + + + 8 + 8 + + + 9 + 9 + + + 10 + 10 + + + 11 + 11 + + + 12 + 12 + + + auto (size columns based on the natural width of their content) + auto + + + + - - - FIELD:sDEF.equalWidth:=:0 - - select - selectSingle - - - 0 - - - - 1 - 1 - - - 2 - 2 - - - 3 - 3 - - - 4 - 4 - - - 5 - 5 - - - 6 - 6 - - - 7 - 7 - - - 8 - 8 - - - 9 - 9 - - - 10 - 10 - - - 11 - 11 - - - 12 - 12 - - - auto (size columns based on the natural width of their content) - auto - - - - - + + FIELD:sDEF.equalWidth:=:0 + + select + selectSingle + + + 0 + + + + 1 + 1 + + + 2 + 2 + + + 3 + 3 + + + 4 + 4 + + + 5 + 5 + + + 6 + 6 + + + 7 + 7 + + + 8 + 8 + + + 9 + 9 + + + 10 + 10 + + + 11 + 11 + + + 12 + 12 + + + auto (size columns based on the natural width of their content) + auto + + + + - - Col-lg-* - + Col-lg-* + array - - - FIELD:sDEF.equalWidth:=:0 - - select - selectSingle - - - 0 - - - - 1 - 1 - - - 2 - 2 - - - 3 - 3 - - - 4 - 4 - - - 5 - 5 - - - 6 - 6 - - - 7 - 7 - - - 8 - 8 - - - 9 - 9 - - - 10 - 10 - - - 11 - 11 - - - 12 - 12 - - - auto (size columns based on the natural width of their content) - auto - - - - - + + FIELD:sDEF.equalWidth:=:0 + + select + selectSingle + + + 0 + + + + 1 + 1 + + + 2 + 2 + + + 3 + 3 + + + 4 + 4 + + + 5 + 5 + + + 6 + 6 + + + 7 + 7 + + + 8 + 8 + + + 9 + 9 + + + 10 + 10 + + + 11 + 11 + + + 12 + 12 + + + auto (size columns based on the natural width of their content) + auto + + + + - - - FIELD:sDEF.equalWidth:=:0 - - select - selectSingle - - - 0 - - - - 1 - 1 - - - 2 - 2 - - - 3 - 3 - - - 4 - 4 - - - 5 - 5 - - - 6 - 6 - - - 7 - 7 - - - 8 - 8 - - - 9 - 9 - - - 10 - 10 - - - 11 - 11 - - - 12 - 12 - - - auto (size columns based on the natural width of their content) - auto - - - - - + + FIELD:sDEF.equalWidth:=:0 + + select + selectSingle + + + 0 + + + + 1 + 1 + + + 2 + 2 + + + 3 + 3 + + + 4 + 4 + + + 5 + 5 + + + 6 + 6 + + + 7 + 7 + + + 8 + 8 + + + 9 + 9 + + + 10 + 10 + + + 11 + 11 + + + 12 + 12 + + + auto (size columns based on the natural width of their content) + auto + + + + - - - FIELD:sDEF.equalWidth:=:0 - - select - selectSingle - - - 0 - - - - 1 - 1 - - - 2 - 2 - - - 3 - 3 - - - 4 - 4 - - - 5 - 5 - - - 6 - 6 - - - 7 - 7 - - - 8 - 8 - - - 9 - 9 - - - 10 - 10 - - - 11 - 11 - - - 12 - 12 - - - auto (size columns based on the natural width of their content) - auto - - - - - + + FIELD:sDEF.equalWidth:=:0 + + select + selectSingle + + + 0 + + + + 1 + 1 + + + 2 + 2 + + + 3 + 3 + + + 4 + 4 + + + 5 + 5 + + + 6 + 6 + + + 7 + 7 + + + 8 + 8 + + + 9 + 9 + + + 10 + 10 + + + 11 + 11 + + + 12 + 12 + + + auto (size columns based on the natural width of their content) + auto + + + + - - Col-md-* - + Col-md-* + array - - - FIELD:sDEF.equalWidth:=:0 - - select - selectSingle - - - 0 - - - - 1 - 1 - - - 2 - 2 - - - 3 - 3 - - - 4 - 4 - - - 5 - 5 - - - 6 - 6 - - - 7 - 7 - - - 8 - 8 - - - 9 - 9 - - - 10 - 10 - - - 11 - 11 - - - 12 - 12 - - - auto (size columns based on the natural width of their content) - auto - - - 4 - - + + FIELD:sDEF.equalWidth:=:0 + + select + selectSingle + + + 0 + + + + 1 + 1 + + + 2 + 2 + + + 3 + 3 + + + 4 + 4 + + + 5 + 5 + + + 6 + 6 + + + 7 + 7 + + + 8 + 8 + + + 9 + 9 + + + 10 + 10 + + + 11 + 11 + + + 12 + 12 + + + auto (size columns based on the natural width of their content) + auto + + + 4 + - - - FIELD:sDEF.equalWidth:=:0 - - select - selectSingle - - - 0 - - - - 1 - 1 - - - 2 - 2 - - - 3 - 3 - - - 4 - 4 - - - 5 - 5 - - - 6 - 6 - - - 7 - 7 - - - 8 - 8 - - - 9 - 9 - - - 10 - 10 - - - 11 - 11 - - - 12 - 12 - - - auto (size columns based on the natural width of their content) - auto - - - 4 - - + + FIELD:sDEF.equalWidth:=:0 + + select + selectSingle + + + 0 + + + + 1 + 1 + + + 2 + 2 + + + 3 + 3 + + + 4 + 4 + + + 5 + 5 + + + 6 + 6 + + + 7 + 7 + + + 8 + 8 + + + 9 + 9 + + + 10 + 10 + + + 11 + 11 + + + 12 + 12 + + + auto (size columns based on the natural width of their content) + auto + + + 4 + - - - FIELD:sDEF.equalWidth:=:0 - - select - selectSingle - - - 0 - - - - 1 - 1 - - - 2 - 2 - - - 3 - 3 - - - 4 - 4 - - - 5 - 5 - - - 6 - 6 - - - 7 - 7 - - - 8 - 8 - - - 9 - 9 - - - 10 - 10 - - - 11 - 11 - - - 12 - 12 - - - auto (size columns based on the natural width of their content) - auto - - - 4 - - + + FIELD:sDEF.equalWidth:=:0 + + select + selectSingle + + + 0 + + + + 1 + 1 + + + 2 + 2 + + + 3 + 3 + + + 4 + 4 + + + 5 + 5 + + + 6 + 6 + + + 7 + 7 + + + 8 + 8 + + + 9 + 9 + + + 10 + 10 + + + 11 + 11 + + + 12 + 12 + + + auto (size columns based on the natural width of their content) + auto + + + 4 + - - Col-sm-* - + Col-sm-* + array - - - FIELD:sDEF.equalWidth:=:0 - - select - selectSingle - - - 0 - - - - 1 - 1 - - - 2 - 2 - - - 3 - 3 - - - 4 - 4 - - - 5 - 5 - - - 6 - 6 - - - 7 - 7 - - - 8 - 8 - - - 9 - 9 - - - 10 - 10 - - - 11 - 11 - - - 12 - 12 - - - auto (size columns based on the natural width of their content) - auto - - - - - + + FIELD:sDEF.equalWidth:=:0 + + select + selectSingle + + + 0 + + + + 1 + 1 + + + 2 + 2 + + + 3 + 3 + + + 4 + 4 + + + 5 + 5 + + + 6 + 6 + + + 7 + 7 + + + 8 + 8 + + + 9 + 9 + + + 10 + 10 + + + 11 + 11 + + + 12 + 12 + + + auto (size columns based on the natural width of their content) + auto + + + + - - - FIELD:sDEF.equalWidth:=:0 - - select - selectSingle - - - 0 - - - - 1 - 1 - - - 2 - 2 - - - 3 - 3 - - - 4 - 4 - - - 5 - 5 - - - 6 - 6 - - - 7 - 7 - - - 8 - 8 - - - 9 - 9 - - - 10 - 10 - - - 11 - 11 - - - 12 - 12 - - - auto (size columns based on the natural width of their content) - auto - - - - - + + FIELD:sDEF.equalWidth:=:0 + + select + selectSingle + + + 0 + + + + 1 + 1 + + + 2 + 2 + + + 3 + 3 + + + 4 + 4 + + + 5 + 5 + + + 6 + 6 + + + 7 + 7 + + + 8 + 8 + + + 9 + 9 + + + 10 + 10 + + + 11 + 11 + + + 12 + 12 + + + auto (size columns based on the natural width of their content) + auto + + + + - - - FIELD:sDEF.equalWidth:=:0 - - select - selectSingle - - - 0 - - - - 1 - 1 - - - 2 - 2 - - - 3 - 3 - - - 4 - 4 - - - 5 - 5 - - - 6 - 6 - - - 7 - 7 - - - 8 - 8 - - - 9 - 9 - - - 10 - 10 - - - 11 - 11 - - - 12 - 12 - - - auto (size columns based on the natural width of their content) - auto - - - - - + + FIELD:sDEF.equalWidth:=:0 + + select + selectSingle + + + 0 + + + + 1 + 1 + + + 2 + 2 + + + 3 + 3 + + + 4 + 4 + + + 5 + 5 + + + 6 + 6 + + + 7 + 7 + + + 8 + 8 + + + 9 + 9 + + + 10 + 10 + + + 11 + 11 + + + 12 + 12 + + + auto (size columns based on the natural width of their content) + auto + + + + - - Col-* - + Col-* + array - - - FIELD:sDEF.equalWidth:=:0 - - select - selectSingle - - - 0 - - - - 1 - 1 - - - 2 - 2 - - - 3 - 3 - - - 4 - 4 - - - 5 - 5 - - - 6 - 6 - - - 7 - 7 - - - 8 - 8 - - - 9 - 9 - - - 10 - 10 - - - 11 - 11 - - - 12 - 12 - - - auto (size columns based on the natural width of their content) - auto - - - 12 - - + + FIELD:sDEF.equalWidth:=:0 + + select + selectSingle + + + 0 + + + + 1 + 1 + + + 2 + 2 + + + 3 + 3 + + + 4 + 4 + + + 5 + 5 + + + 6 + 6 + + + 7 + 7 + + + 8 + 8 + + + 9 + 9 + + + 10 + 10 + + + 11 + 11 + + + 12 + 12 + + + auto (size columns based on the natural width of their content) + auto + + + 12 + - - - FIELD:sDEF.equalWidth:=:0 - - select - selectSingle - - - 0 - - - - 1 - 1 - - - 2 - 2 - - - 3 - 3 - - - 4 - 4 - - - 5 - 5 - - - 6 - 6 - - - 7 - 7 - - - 8 - 8 - - - 9 - 9 - - - 10 - 10 - - - 11 - 11 - - - 12 - 12 - - - auto (size columns based on the natural width of their content) - auto - - - 12 - - + + FIELD:sDEF.equalWidth:=:0 + + select + selectSingle + + + 0 + + + + 1 + 1 + + + 2 + 2 + + + 3 + 3 + + + 4 + 4 + + + 5 + 5 + + + 6 + 6 + + + 7 + 7 + + + 8 + 8 + + + 9 + 9 + + + 10 + 10 + + + 11 + 11 + + + 12 + 12 + + + auto (size columns based on the natural width of their content) + auto + + + 12 + - - - FIELD:sDEF.equalWidth:=:0 - - select - selectSingle - - - 0 - - - - 1 - 1 - - - 2 - 2 - - - 3 - 3 - - - 4 - 4 - - - 5 - 5 - - - 6 - 6 - - - 7 - 7 - - - 8 - 8 - - - 9 - 9 - - - 10 - 10 - - - 11 - 11 - - - 12 - 12 - - - auto (size columns based on the natural width of their content) - auto - - - 12 - - + + FIELD:sDEF.equalWidth:=:0 + + select + selectSingle + + + 0 + + + + 1 + 1 + + + 2 + 2 + + + 3 + 3 + + + 4 + 4 + + + 5 + 5 + + + 6 + 6 + + + 7 + 7 + + + 8 + 8 + + + 9 + 9 + + + 10 + 10 + + + 11 + 11 + + + 12 + 12 + + + auto (size columns based on the natural width of their content) + auto + + + 12 + diff --git a/Configuration/FlexForms/Container/ToastContainer.xml b/Configuration/FlexForms/Container/ToastContainer.xml index 01d4cea0..a218b95a 100644 --- a/Configuration/FlexForms/Container/ToastContainer.xml +++ b/Configuration/FlexForms/Container/ToastContainer.xml @@ -1,156 +1,141 @@ + + 1 + + General array - - General - - - - reload - Stack toasts by wrapping them in a toast container. INFO: https://getbootstrap.com/docs/5.1/components/toasts/#stacking - - check - 0 - - + + reload + Stack toasts by wrapping them in a toast container. INFO: https://getbootstrap.com/docs/5.1/components/toasts/#stacking + + check + 0 + - - - FIELD:general.multipleToast:=:0 - - check - 1 - - + + FIELD:general.multipleToast:=:0 + + check + 1 + - - - reload - FIELD:general.multipleToast:=:0 - - check - 1 - - + + reload + FIELD:general.multipleToast:=:0 + + check + 1 + - - - + + + + FIELD:general.multipleToast:=:0 - FIELD:general.multipleToast:=:0 - - FIELD:general.autohide:=:1 - + FIELD:general.autohide:=:1 - - - input - 5 - 5000 - int - - + + + + input + 5 + 5000 + int + - - - - select - selectSingle - - - default - top-0 start-50 translate-middle-x - - - Top left - top-0 start-0 - - - Top center - top-0 start-50 translate-middle-x - - - Top right - top-0 end-0 - + + + select + selectSingle + + + default + top-0 start-50 translate-middle-x + + + Top left + top-0 start-0 + + + Top center + top-0 start-50 translate-middle-x + + + Top right + top-0 end-0 + - - Middle left - top-50 start-0 translate-middle-y - - - Middle center - top-50 start-50 translate-middle - - - Middle right - top-50 end-0 translate-middle-y - + + Middle left + top-50 start-0 translate-middle-y + + + Middle center + top-50 start-50 translate-middle + + + Middle right + top-50 end-0 translate-middle-y + - - Bottom left - bottom-0 start-0 - - - Bottom center - bottom-0 start-50 translate-middle-x - - - Bottom right - bottom-0 end-0 - + + Bottom left + bottom-0 start-0 + + + Bottom center + bottom-0 start-50 translate-middle-x + + + Bottom right + bottom-0 end-0 + - - top-0 start-50 translate-middle-x - - + + top-0 start-50 translate-middle-x + - - - FIELD:general.multipleToast:=:0 - - input - 5 - 350 - int - - + + FIELD:general.multipleToast:=:0 + + input + 5 + 350 + int + - - - FIELD:general.multipleToast:=:0 - Option to do not display the toast again until the expiration date or the "toast-body" content is changed. - reload - - check - 0 - - + + FIELD:general.multipleToast:=:0 + Option to do not display the toast again until the expiration date or the "toast-body" content is changed. + reload + + check + 0 + - - - FIELD:general.cookie:=:1 - - input - 5 - 30 - int - - + + FIELD:general.cookie:=:1 + + input + 5 + 30 + int + - \ No newline at end of file + diff --git a/Configuration/FlexForms/Container/TwoColumns.xml b/Configuration/FlexForms/Container/TwoColumns.xml index f9785ab3..f41d337b 100644 --- a/Configuration/FlexForms/Container/TwoColumns.xml +++ b/Configuration/FlexForms/Container/TwoColumns.xml @@ -1,1189 +1,1126 @@ + + 1 + - - Settings - + Settings array - - - reload - - check - 0 - - + + reload + + check + 0 + - - - - check - 0 - - + + + check + 0 + - - - INFO: https://getbootstrap.com/docs/5.1/layout/gutters/#horizontal-gutters - - select - selectSingle - - - gx-0 (no gutters) - gx-0 - - - gx-1 - gx-1 - - - gx-2 - gx-2 - - - gx-3 - gx-3 - - - gx-4 (default) - - - - gx-5 - gx-5 - - - - - + + INFO: https://getbootstrap.com/docs/5.1/layout/gutters/#horizontal-gutters + + select + selectSingle + + + gx-0 (no gutters) + gx-0 + + + gx-1 + gx-1 + + + gx-2 + gx-2 + + + gx-3 + gx-3 + + + gx-4 (default) + + + + gx-5 + gx-5 + + + + - - - INFO: https://getbootstrap.com/docs/5.1/layout/gutters/#vertical-gutters - - select - selectSingle - - - gy-0 (no gutters) - gy-0 - - - gy-1 - gy-1 - - - gy-2 - gy-2 - - - gy-3 - gy-3 - - - gy-4 (default) - - - - gy-5 - gy-5 - - - - - + + INFO: https://getbootstrap.com/docs/5.1/layout/gutters/#vertical-gutters + + select + selectSingle + + + gy-0 (no gutters) + gy-0 + + + gy-1 + gy-1 + + + gy-2 + gy-2 + + + gy-3 + gy-3 + + + gy-4 (default) + + + + gy-5 + gy-5 + + + + - - - reload - FIELD:Bgimage.bgimages:>:0 - - input - - int - 3 - 0 - - + + reload + FIELD:Bgimage.bgimages:>:0 + + input + + int + 3 + 0 + - - - FIELD:Bgimage.bgimages:>:0 - - select - selectSingle - - - top - start - - - center - center - - - bottom - end - - - start - - + + FIELD:Bgimage.bgimages:>:0 + + select + selectSingle + + + top + start + + + center + center + + + bottom + end + + + start + + Background Images array - - Background Images - - - - reload - - inline - sys_file_reference - uid_foreign - sorting_foreign - tablenames - - assets - - uid_local - uid_local - - - - - --palette--;LLL:EXT:lang/Resources/Private/Language/locallang_tca.xlf:sys_file_reference.imageoverlayPalette;imageoverlayPalette, - --palette--;;filePalette - - - - - --palette--;LLL:EXT:lang/Resources/Private/Language/locallang_tca.xlf:sys_file_reference.imageoverlayPalette;imageoverlayPalette, - --palette--;;filePalette - - - - - --palette--;LLL:EXT:lang/Resources/Private/Language/locallang_tca.xlf:sys_file_reference.imageoverlayPalette;imageoverlayPalette, - --palette--;;filePalette - - - - - --palette--;LLL:EXT:lang/Resources/Private/Language/locallang_tca.xlf:sys_file_reference.audioOverlayPalette;audioOverlayPalette, - --palette--;;filePalette - - - - - --palette--;LLL:EXT:lang/Resources/Private/Language/locallang_tca.xlf:sys_file_reference.videoOverlayPalette;videoOverlayPalette, - --palette--;;filePalette - - - - - --palette--;LLL:EXT:lang/Resources/Private/Language/locallang_tca.xlf:sys_file_reference.imageoverlayPalette;imageoverlayPalette, - --palette--;;filePalette - - - - - - - - file - jpg,jpeg,png - - - - - - - TYPO3\CMS\Core\Resource\Filter\FileExtensionFilter->filterInlineChildren - - - - - - - 1 - - uid_local - 45 - 45c - - - 1 - 0 - 1 - 0 - 1 - 1 - - - 2 - - - - - - - FIELD:Bgimage.bgimages:>:0 + + reload - select - selectSingle - - - left - 1 - - - right - 2 - - - both - 3 - - - 1 + inline + sys_file_reference + uid_foreign + sorting_foreign + tablenames + + assets + + uid_local + uid_local + + + + + --palette--;LLL:EXT:lang/Resources/Private/Language/locallang_tca.xlf:sys_file_reference.imageoverlayPalette;imageoverlayPalette, + --palette--;;filePalette + + + + + --palette--;LLL:EXT:lang/Resources/Private/Language/locallang_tca.xlf:sys_file_reference.imageoverlayPalette;imageoverlayPalette, + --palette--;;filePalette + + + + + --palette--;LLL:EXT:lang/Resources/Private/Language/locallang_tca.xlf:sys_file_reference.imageoverlayPalette;imageoverlayPalette, + --palette--;;filePalette + + + + + --palette--;LLL:EXT:lang/Resources/Private/Language/locallang_tca.xlf:sys_file_reference.audioOverlayPalette;audioOverlayPalette, + --palette--;;filePalette + + + + + --palette--;LLL:EXT:lang/Resources/Private/Language/locallang_tca.xlf:sys_file_reference.videoOverlayPalette;videoOverlayPalette, + --palette--;;filePalette + + + + + --palette--;LLL:EXT:lang/Resources/Private/Language/locallang_tca.xlf:sys_file_reference.imageoverlayPalette;imageoverlayPalette, + --palette--;;filePalette + + + + + + + + file + jpg,jpeg,png + + + + + + + TYPO3\CMS\Core\Resource\Filter\FileExtensionFilter->filterInlineChildren + + + + + + + 1 + + uid_local + 45 + 45c + + + 1 + 0 + 1 + 0 + 1 + 1 + + + 2 - + + + + FIELD:Bgimage.bgimages:>:0 + + select + selectSingle + + + left + 1 + + + right + 2 + + + both + 3 + + + 1 + - - Extra Class - + Extra Class + array - - - - input - - + + + input + - - - - input - - + + + input + - - Col-xxl-* - + Col-xxl-* + array - - - FIELD:sDEF.equalWidth:=:0 - - select - selectSingle - - - 0 - - - - 1 - 1 - - - 2 - 2 - - - 3 - 3 - + + FIELD:sDEF.equalWidth:=:0 + + select + selectSingle + + + 0 + + + + 1 + 1 + + + 2 + 2 + + + 3 + 3 + - - 4 - 4 - - - 5 - 5 - - - 6 - 6 - - - 7 - 7 - - - 8 - 8 - - - 9 - 9 - - - 10 - 10 - - - 11 - 11 - - - 12 - 12 - - - auto (size columns based on the natural width of their content) - auto - - - - - + + 4 + 4 + + + 5 + 5 + + + 6 + 6 + + + 7 + 7 + + + 8 + 8 + + + 9 + 9 + + + 10 + 10 + + + 11 + 11 + + + 12 + 12 + + + auto (size columns based on the natural width of their content) + auto + + + + - - - FIELD:sDEF.equalWidth:=:0 - - select - selectSingle - - - 0 - - - - 1 - 1 - - - 2 - 2 - - - 3 - 3 - - - - 4 - 4 - - - 5 - 5 - - - 6 - 6 - - - 7 - 7 - - - 8 - 8 - - - 9 - 9 - - - 10 - 10 - - - 11 - 11 - - - 12 - 12 - - - auto (size columns based on the natural width of their content) - auto - - - - - + + FIELD:sDEF.equalWidth:=:0 + + select + selectSingle + + + 0 + + + + 1 + 1 + + + 2 + 2 + + + 3 + 3 + + + 4 + 4 + + + 5 + 5 + + + 6 + 6 + + + 7 + 7 + + + 8 + 8 + + + 9 + 9 + + + 10 + 10 + + + 11 + 11 + + + 12 + 12 + + + auto (size columns based on the natural width of their content) + auto + + + + - - Col-xl-* - + Col-xl-* + array - - - FIELD:sDEF.equalWidth:=:0 - - select - selectSingle - - - 0 - - - - 1 - 1 - - - 2 - 2 - - - 3 - 3 - - - - 4 - 4 - - - 5 - 5 - - - 6 - 6 - - - 7 - 7 - - - 8 - 8 - - - 9 - 9 - - - 10 - 10 - - - 11 - 11 - - - 12 - 12 - - - auto (size columns based on the natural width of their content) - auto - - - - - + + FIELD:sDEF.equalWidth:=:0 + + select + selectSingle + + + 0 + + + + 1 + 1 + + + 2 + 2 + + + 3 + 3 + + + 4 + 4 + + + 5 + 5 + + + 6 + 6 + + + 7 + 7 + + + 8 + 8 + + + 9 + 9 + + + 10 + 10 + + + 11 + 11 + + + 12 + 12 + + + auto (size columns based on the natural width of their content) + auto + + + + - - - FIELD:sDEF.equalWidth:=:0 - - select - selectSingle - - - 0 - - - - 1 - 1 - - - 2 - 2 - - - 3 - 3 - - - - 4 - 4 - - - 5 - 5 - - - 6 - 6 - - - 7 - 7 - - - 8 - 8 - - - 9 - 9 - - - 10 - 10 - - - 11 - 11 - - - 12 - 12 - - - auto (size columns based on the natural width of their content) - auto - - - - - + + FIELD:sDEF.equalWidth:=:0 + + select + selectSingle + + + 0 + + + + 1 + 1 + + + 2 + 2 + + + 3 + 3 + + + 4 + 4 + + + 5 + 5 + + + 6 + 6 + + + 7 + 7 + + + 8 + 8 + + + 9 + 9 + + + 10 + 10 + + + 11 + 11 + + + 12 + 12 + + + auto (size columns based on the natural width of their content) + auto + + + + - - Col-lg-* - + Col-lg-* + array - - - FIELD:sDEF.equalWidth:=:0 - - select - selectSingle - - - 0 - - - - 1 - 1 - - - 2 - 2 - - - 3 - 3 - - - - 4 - 4 - - - 5 - 5 - - - 6 - 6 - - - 7 - 7 - - - 8 - 8 - - - 9 - 9 - - - 10 - 10 - - - 11 - 11 - - - 12 - 12 - - - auto (size columns based on the natural width of their content) - auto - - - - - + + FIELD:sDEF.equalWidth:=:0 + + select + selectSingle + + + 0 + + + + 1 + 1 + + + 2 + 2 + + + 3 + 3 + + + 4 + 4 + + + 5 + 5 + + + 6 + 6 + + + 7 + 7 + + + 8 + 8 + + + 9 + 9 + + + 10 + 10 + + + 11 + 11 + + + 12 + 12 + + + auto (size columns based on the natural width of their content) + auto + + + + - - - FIELD:sDEF.equalWidth:=:0 - - select - selectSingle - - - 0 - - - - 1 - 1 - - - 2 - 2 - - - 3 - 3 - - - - 4 - 4 - - - 5 - 5 - - - 6 - 6 - - - 7 - 7 - - - 8 - 8 - - - 9 - 9 - - - 10 - 10 - - - 11 - 11 - - - 12 - 12 - - - auto (size columns based on the natural width of their content) - auto - - - - - + + FIELD:sDEF.equalWidth:=:0 + + select + selectSingle + + + 0 + + + + 1 + 1 + + + 2 + 2 + + + 3 + 3 + + + 4 + 4 + + + 5 + 5 + + + 6 + 6 + + + 7 + 7 + + + 8 + 8 + + + 9 + 9 + + + 10 + 10 + + + 11 + 11 + + + 12 + 12 + + + auto (size columns based on the natural width of their content) + auto + + + + - - Col-md-* - + Col-md-* + array - - - FIELD:sDEF.equalWidth:=:0 - - select - selectSingle - - - 0 - - - - 1 - 1 - - - 2 - 2 - - - 3 - 3 - - - - 4 - 4 - - - 5 - 5 - - - 6 - 6 - - - 7 - 7 - - - 8 - 8 - - - 9 - 9 - - - 10 - 10 - - - 11 - 11 - - - 12 - 12 - - - auto (size columns based on the natural width of their content) - auto - - - 6 - - + + FIELD:sDEF.equalWidth:=:0 + + select + selectSingle + + + 0 + + + + 1 + 1 + + + 2 + 2 + + + 3 + 3 + + + 4 + 4 + + + 5 + 5 + + + 6 + 6 + + + 7 + 7 + + + 8 + 8 + + + 9 + 9 + + + 10 + 10 + + + 11 + 11 + + + 12 + 12 + + + auto (size columns based on the natural width of their content) + auto + + + 6 + - - - FIELD:sDEF.equalWidth:=:0 - - select - selectSingle - - - 0 - - - - 1 - 1 - - - 2 - 2 - - - 3 - 3 - - - - 4 - 4 - - - 5 - 5 - - - 6 - 6 - - - 7 - 7 - - - 8 - 8 - - - 9 - 9 - - - 10 - 10 - - - 11 - 11 - - - 12 - 12 - - - auto (size columns based on the natural width of their content) - auto - - - 6 - - + + FIELD:sDEF.equalWidth:=:0 + + select + selectSingle + + + 0 + + + + 1 + 1 + + + 2 + 2 + + + 3 + 3 + + + 4 + 4 + + + 5 + 5 + + + 6 + 6 + + + 7 + 7 + + + 8 + 8 + + + 9 + 9 + + + 10 + 10 + + + 11 + 11 + + + 12 + 12 + + + auto (size columns based on the natural width of their content) + auto + + + 6 + - - Col-sm-* - + Col-sm-* + array - - - FIELD:sDEF.equalWidth:=:0 - - select - selectSingle - - - 0 - - - - 1 - 1 - - - 2 - 2 - - - 3 - 3 - - - - 4 - 4 - - - 5 - 5 - - - 6 - 6 - - - 7 - 7 - - - 8 - 8 - - - 9 - 9 - - - 10 - 10 - - - 11 - 11 - - - 12 - 12 - - - auto (size columns based on the natural width of their content) - auto - - - - - + + FIELD:sDEF.equalWidth:=:0 + + select + selectSingle + + + 0 + + + + 1 + 1 + + + 2 + 2 + + + 3 + 3 + + + 4 + 4 + + + 5 + 5 + + + 6 + 6 + + + 7 + 7 + + + 8 + 8 + + + 9 + 9 + + + 10 + 10 + + + 11 + 11 + + + 12 + 12 + + + auto (size columns based on the natural width of their content) + auto + + + + - - - FIELD:sDEF.equalWidth:=:0 - - select - selectSingle - - - 0 - - - - 1 - 1 - - - 2 - 2 - - - 3 - 3 - - - - 4 - 4 - - - 5 - 5 - - - 6 - 6 - - - 7 - 7 - - - 8 - 8 - - - 9 - 9 - - - 10 - 10 - - - 11 - 11 - - - 12 - 12 - - - auto (size columns based on the natural width of their content) - auto - - - - - + + FIELD:sDEF.equalWidth:=:0 + + select + selectSingle + + + 0 + + + + 1 + 1 + + + 2 + 2 + + + 3 + 3 + + + 4 + 4 + + + 5 + 5 + + + 6 + 6 + + + 7 + 7 + + + 8 + 8 + + + 9 + 9 + + + 10 + 10 + + + 11 + 11 + + + 12 + 12 + + + auto (size columns based on the natural width of their content) + auto + + + + - - Col-* - + Col-* + array - - - FIELD:sDEF.equalWidth:=:0 - - select - selectSingle - - - 0 - - - - 1 - 1 - - - 2 - 2 - - - 3 - 3 - - - - 4 - 4 - - - 5 - 5 - - - 6 - 6 - - - 7 - 7 - - - 8 - 8 - - - 9 - 9 - - - 10 - 10 - - - 11 - 11 - - - 12 - 12 - - - auto (size columns based on the natural width of their content) - auto - - - 12 - - + + FIELD:sDEF.equalWidth:=:0 + + select + selectSingle + + + 0 + + + + 1 + 1 + + + 2 + 2 + + + 3 + 3 + + + 4 + 4 + + + 5 + 5 + + + 6 + 6 + + + 7 + 7 + + + 8 + 8 + + + 9 + 9 + + + 10 + 10 + + + 11 + 11 + + + 12 + 12 + + + auto (size columns based on the natural width of their content) + auto + + + 12 + - - - FIELD:sDEF.equalWidth:=:0 - - select - selectSingle - - - 0 - - - - 1 - 1 - - - 2 - 2 - - - 3 - 3 - - - - 4 - 4 - - - 5 - 5 - - - 6 - 6 - - - 7 - 7 - - - 8 - 8 - - - 9 - 9 - - - 10 - 10 - - - 11 - 11 - - - 12 - 12 - - - auto (size columns based on the natural width of their content) - auto - - - 12 - - + + FIELD:sDEF.equalWidth:=:0 + + select + selectSingle + + + 0 + + + + 1 + 1 + + + 2 + 2 + + + 3 + 3 + + + 4 + 4 + + + 5 + 5 + + + 6 + 6 + + + 7 + 7 + + + 8 + 8 + + + 9 + 9 + + + 10 + 10 + + + 11 + 11 + + + 12 + 12 + + + auto (size columns based on the natural width of their content) + auto + + + 12 + diff --git a/Configuration/FlexForms/Mediaobject.xml b/Configuration/FlexForms/Mediaobject.xml index bc3f78aa..6dccea31 100644 --- a/Configuration/FlexForms/Mediaobject.xml +++ b/Configuration/FlexForms/Mediaobject.xml @@ -1,186 +1,176 @@ + + 1 + - array - - Settings - + Settings array - - - - select - selectSingle - - - none - 0 - - - Hidden only on xs - d-none d-sm-block - - - Hidden on sm and down - d-none d-md-block - - - Hidden on md and down - d-none d-lg-block - - - Hidden on lg and down - d-none d-xl-block - - - Hidden only on xl - d-xl-none - - - Visible only on xs - d-block d-sm-none - - - Visible sm and down - d-block d-md-none - - - Visible md and down - d-block d-lg-none - - - Visible lg and down - d-block d-xl-none - - - 0 - - + + + select + selectSingle + + + none + 0 + + + Hidden only on xs + d-none d-sm-block + + + Hidden on sm and down + d-none d-md-block + + + Hidden on md and down + d-none d-lg-block + + + Hidden on lg and down + d-none d-xl-block + + + Hidden only on xl + d-xl-none + + + Visible only on xs + d-block d-sm-none + + + Visible sm and down + d-block d-md-none + + + Visible md and down + d-block d-lg-none + + + Visible lg and down + d-block d-xl-none + + + 0 + - - - - select - selectSingle - - - left - left - - - right - right - - - left - - + + + select + selectSingle + + + left + left + + + right + right + + + left + - - - reload - - check - - + + reload + + check + - - - FIELD:sDEF.border:=:1 - - select - selectSingle - - - LLL:EXT:t3sbootstrap/Resources/Private/Language/locallang_be.xlf:secondary - secondary - - - LLL:EXT:t3sbootstrap/Resources/Private/Language/locallang_be.xlf:primary - primary - - - LLL:EXT:t3sbootstrap/Resources/Private/Language/locallang_be.xlf:success - success - - - LLL:EXT:t3sbootstrap/Resources/Private/Language/locallang_be.xlf:info - info - - - LLL:EXT:t3sbootstrap/Resources/Private/Language/locallang_be.xlf:warning - warning - - - LLL:EXT:t3sbootstrap/Resources/Private/Language/locallang_be.xlf:danger - danger - - - light - light - - - dark - dark - - - white - white - - - secondary - - + + FIELD:sDEF.border:=:1 + + select + selectSingle + + + LLL:EXT:t3sbootstrap/Resources/Private/Language/locallang_be.xlf:secondary + secondary + + + LLL:EXT:t3sbootstrap/Resources/Private/Language/locallang_be.xlf:primary + primary + + + LLL:EXT:t3sbootstrap/Resources/Private/Language/locallang_be.xlf:success + success + + + LLL:EXT:t3sbootstrap/Resources/Private/Language/locallang_be.xlf:info + info + + + LLL:EXT:t3sbootstrap/Resources/Private/Language/locallang_be.xlf:warning + warning + + + LLL:EXT:t3sbootstrap/Resources/Private/Language/locallang_be.xlf:danger + danger + + + light + light + + + dark + dark + + + white + white + + + secondary + - - - FIELD:sDEF.border:=:1 - - select - selectSingle - - - none - none - - - rounded - rounded - - - rounded-top - rounded-top - - - rounded-right - rounded-end - - - rounded-bottom - rounded-bottom - - - rounded-left - rounded-start - - - rounded-circle - rounded-circle - - - none - - + + FIELD:sDEF.border:=:1 + + select + selectSingle + + + none + none + + + rounded + rounded + + + rounded-top + rounded-top + + + rounded-right + rounded-end + + + rounded-bottom + rounded-bottom + + + rounded-left + rounded-start + + + rounded-circle + rounded-circle + + + none + @@ -188,4 +178,4 @@ - \ No newline at end of file + diff --git a/Configuration/FlexForms/Table.xml b/Configuration/FlexForms/Table.xml index 97c9094c..3e8fdc24 100644 --- a/Configuration/FlexForms/Table.xml +++ b/Configuration/FlexForms/Table.xml @@ -1,204 +1,192 @@ + + 1 + - array - - Bootstrap Settings - + Bootstrap Settings array - - - - select - selectSingle - - - none - 0 - - - Hidden only on xs - d-none d-sm-block - - - Hidden on sm and down - d-none d-md-block - - - Hidden on md and down - d-none d-lg-block - - - Hidden on lg and down - d-none d-xl-block - - - Hidden only on xl - d-xl-none - - - Visible only on xs - d-block d-sm-none - - - Visible sm and down - d-block d-md-none - - - Visible md and down - d-block d-lg-none - - - Visible lg and down - d-block d-xl-none - - - 0 - - + + + select + selectSingle + + + none + 0 + + + Hidden only on xs + d-none d-sm-block + + + Hidden on sm and down + d-none d-md-block + + + Hidden on md and down + d-none d-lg-block + + + Hidden on lg and down + d-none d-xl-block + + + Hidden only on xl + d-xl-none + + + Visible only on xs + d-block d-sm-none + + + Visible sm and down + d-block d-md-none + + + Visible md and down + d-block d-lg-none + + + Visible lg and down + d-block d-xl-none + + + 0 + - - - - select - selectMultipleSideBySide - - - LLL:EXT:t3sbootstrap/Resources/Private/Language/locallang_be.xlf:default - table - - - LLL:EXT:t3sbootstrap/Resources/Private/Language/locallang_be.xlf:flexforms.table.striped - table table-striped - - - LLL:EXT:t3sbootstrap/Resources/Private/Language/locallang_be.xlf:flexforms.table.bordered - table table-bordered - - - LLL:EXT:t3sbootstrap/Resources/Private/Language/locallang_be.xlf:flexforms.table.hover - table table-hover - - - LLL:EXT:t3sbootstrap/Resources/Private/Language/locallang_be.xlf:flexforms.table.small - table table-sm - - - Table dark - table table-dark - - - Table borderless - table table-borderless - - - Border primary - table border-primary - - - Border secondary - table border-secondary - - - Border success - table border-success - - - Border info - table border-info - - - Border warning - table border-warning - - - Border danger - table border-danger - - - Border light - table border-light - - - Border dark - table border-dark - - - Vertical align top - table align-top - - - Vertical align middle - table align-middle - - - Vertical align bottom - table align-bottom - - - 1 - table - - + + + select + selectMultipleSideBySide + + + LLL:EXT:t3sbootstrap/Resources/Private/Language/locallang_be.xlf:default + table + + + LLL:EXT:t3sbootstrap/Resources/Private/Language/locallang_be.xlf:flexforms.table.striped + table table-striped + + + LLL:EXT:t3sbootstrap/Resources/Private/Language/locallang_be.xlf:flexforms.table.bordered + table table-bordered + + + LLL:EXT:t3sbootstrap/Resources/Private/Language/locallang_be.xlf:flexforms.table.hover + table table-hover + + + LLL:EXT:t3sbootstrap/Resources/Private/Language/locallang_be.xlf:flexforms.table.small + table table-sm + + + Table dark + table table-dark + + + Table borderless + table table-borderless + + + Border primary + table border-primary + + + Border secondary + table border-secondary + + + Border success + table border-success + + + Border info + table border-info + + + Border warning + table border-warning + + + Border danger + table border-danger + + + Border light + table border-light + + + Border dark + table border-dark + + + Vertical align top + table align-top + + + Vertical align middle + table align-middle + + + Vertical align bottom + table align-bottom + + + 1 + table + - - - - select - selectSingle - - - None - - - - Light - table-light - - - Dark - table-dark - - - table-dark - - + + + select + selectSingle + + + None + + + + Light + table-light + + + Dark + table-dark + + + table-dark + - - - - check - - + + + check + - - - - check - - + + + check + - - - INFO: https://www.t3sbootstrap.de/demo/tabellen - FIELD:sDEF.tableResponsive:=:1 - - check - - + + INFO: https://www.t3sbootstrap.de/demo/tabellen + FIELD:sDEF.tableResponsive:=:1 + + check + diff --git a/Configuration/FlexForms/ToastSetting.xml b/Configuration/FlexForms/ToastSetting.xml index 2b898d61..7a56569d 100644 --- a/Configuration/FlexForms/ToastSetting.xml +++ b/Configuration/FlexForms/ToastSetting.xml @@ -1,135 +1,122 @@ + + 1 + + General array - - General - - - - - check - 1 - - + + + check + 1 + - - - reload - - check - 1 - - + + reload + + check + 1 + - - - FIELD:general.autohide:=:1 - - input - 5 - 5000 - int - - + + FIELD:general.autohide:=:1 + + input + 5 + 5000 + int + - - - USER:T3SBS\T3sbootstrap\UserFunction\TcaMatcher->toastContainerParent - - select - selectSingle - - - default - top-0 start-50 translate-middle-x - - - Top left - top-0 start-0 - - - Top center - top-0 start-50 translate-middle-x - - - Top right - top-0 end-0 - + + USER:T3SBS\T3sbootstrap\UserFunction\TcaMatcher->toastContainerParent + + select + selectSingle + + + default + top-0 start-50 translate-middle-x + + + Top left + top-0 start-0 + + + Top center + top-0 start-50 translate-middle-x + + + Top right + top-0 end-0 + - - Middle left - top-50 start-0 translate-middle-y - - - Middle center - top-50 start-50 translate-middle - - - Middle right - top-50 end-0 translate-middle-y - + + Middle left + top-50 start-0 translate-middle-y + + + Middle center + top-50 start-50 translate-middle + + + Middle right + top-50 end-0 translate-middle-y + - - Bottom left - bottom-0 start-0 - - - Bottom center - bottom-0 start-50 translate-middle-x - - - Bottom right - bottom-0 end-0 - + + Bottom left + bottom-0 start-0 + + + Bottom center + bottom-0 start-50 translate-middle-x + + + Bottom right + bottom-0 end-0 + - - top-0 start-50 translate-middle-x - - + + top-0 start-50 translate-middle-x + - - - - input - 5 - 350 - int - - + + + input + 5 + 350 + int + - - - Option to do not display the toast again until the expiration date or the "toast-body" content is changed. - reload - - check - 0 - - + + Option to do not display the toast again until the expiration date or the "toast-body" content is changed. + reload + + check + 0 + - - - FIELD:general.cookie:=:1 - - input - 5 - 30 - int - - + + FIELD:general.cookie:=:1 + + input + 5 + 30 + int + - \ No newline at end of file + diff --git a/Configuration/Icons.php b/Configuration/Icons.php index e806bb70..995e05b2 100644 --- a/Configuration/Icons.php +++ b/Configuration/Icons.php @@ -1,15 +1,14 @@ [ - 'provider' => \TYPO3\CMS\Core\Imaging\IconProvider\FontawesomeIconProvider::class, - 'name' => 'bars', - 'additionalClasses' => 'fa-solid fa-bars', - ], + 'cssJsIcon' => [ + 'provider' => \TYPO3\CMS\Core\Imaging\IconProvider\BitmapIconProvider::class, + 'source' => 'EXT:t3sbootstrap/Resources/Public/Icons/Register/css-javascript.png', + ], - 'cssJsIcon' => [ - 'provider' => \TYPO3\CMS\Core\Imaging\IconProvider\BitmapIconProvider::class, - 'source' => 'EXT:t3sbootstrap/Resources/Public/Icons/Register/css-javascript.png', - ], + 'bootstraplogo' => [ + 'provider' => \TYPO3\CMS\Core\Imaging\IconProvider\SvgIconProvider::class, + 'source' => 'EXT:t3sbootstrap/Resources/Public/Icons/Extension.svg', + ], ]; diff --git a/Configuration/JavaScriptModules.php b/Configuration/JavaScriptModules.php new file mode 100644 index 00000000..f5cd21fd --- /dev/null +++ b/Configuration/JavaScriptModules.php @@ -0,0 +1,13 @@ + [ + 'backend', + ], + 'tags' => [ + 'backend.form', + ], + 'imports' => [ + '@t3sbs/t3sbootstrap/' => 'EXT:t3sbootstrap/Resources/Public/JavaScript/', + ], +]; diff --git a/Configuration/RTE/Codesnippet.yaml b/Configuration/RTE/Codesnippet.yaml index a17a8b7e..0a0006c5 100644 --- a/Configuration/RTE/Codesnippet.yaml +++ b/Configuration/RTE/Codesnippet.yaml @@ -1,8 +1,2 @@ imports: - { resource: "EXT:t3sbootstrap/Configuration/RTE/Default.yaml" } - -editor: - - config: - extraPlugins: - - codesnippet diff --git a/Configuration/RTE/CodesnippetFa.yaml b/Configuration/RTE/CodesnippetFa.yaml deleted file mode 100644 index 5a363d49..00000000 --- a/Configuration/RTE/CodesnippetFa.yaml +++ /dev/null @@ -1,9 +0,0 @@ -imports: - - { resource: "EXT:t3sbootstrap/Configuration/RTE/Default.yaml" } - - { resource: "EXT:rte_ckeditor_fontawesome/Configuration/RTE/PluginFA5.yaml" } - -editor: - - config: - extraPlugins: - - codesnippet diff --git a/Configuration/RTE/CodesnippetFa6.yaml b/Configuration/RTE/CodesnippetFa6.yaml index 9b69d8c2..9fd35a85 100644 --- a/Configuration/RTE/CodesnippetFa6.yaml +++ b/Configuration/RTE/CodesnippetFa6.yaml @@ -1,9 +1,3 @@ imports: - { resource: "EXT:t3sbootstrap/Configuration/RTE/Default.yaml" } - { resource: "EXT:rte_ckeditor_fontawesome/Configuration/RTE/PluginFA6.yaml" } - -editor: - - config: - extraPlugins: - - codesnippet diff --git a/Configuration/RTE/CodesnippetFa6Pro.yaml b/Configuration/RTE/CodesnippetFa6Pro.yaml index a690d77e..511d1827 100644 --- a/Configuration/RTE/CodesnippetFa6Pro.yaml +++ b/Configuration/RTE/CodesnippetFa6Pro.yaml @@ -7,7 +7,4 @@ editor: config: contentsCss: - "EXT:t3sbootstrap/Resources/Public/Backend/t3sbootstrap.css" - - "../../../../../../fileadmin/T3SB/FA5Pro/css/all.min.css" - - extraPlugins: - - codesnippet + - "../../../../../../fileadmin/T3SB/FA6Pro/css/all.min.css" diff --git a/Configuration/RTE/CodesnippetFaPro.yaml b/Configuration/RTE/CodesnippetFaPro.yaml deleted file mode 100644 index 27ad7825..00000000 --- a/Configuration/RTE/CodesnippetFaPro.yaml +++ /dev/null @@ -1,13 +0,0 @@ -imports: - - { resource: "EXT:t3sbootstrap/Configuration/RTE/Default.yaml" } - - { resource: "EXT:rte_ckeditor_fontawesome/Configuration/RTE/PluginFA5Pro.yaml" } - -editor: - - config: - contentsCss: - - "EXT:t3sbootstrap/Resources/Public/Backend/t3sbootstrap.css" - - "../../../../../../fileadmin/T3SB/FA5Pro/css/all.min.css" - - extraPlugins: - - codesnippet diff --git a/Configuration/RTE/Default.yaml b/Configuration/RTE/Default.yaml index 98e08a27..cef9ae7b 100644 --- a/Configuration/RTE/Default.yaml +++ b/Configuration/RTE/Default.yaml @@ -1,211 +1,115 @@ +# Load default processing options imports: - - { resource: "EXT:rte_ckeditor/Configuration/RTE/Processing.yaml" } - - { resource: "EXT:rte_ckeditor/Configuration/RTE/Editor/Base.yaml" } - - { resource: "EXT:rte_ckeditor/Configuration/RTE/Editor/Plugins.yaml" } + - { resource: 'EXT:rte_ckeditor/Configuration/RTE/Processing.yaml' } + - { resource: 'EXT:rte_ckeditor/Configuration/RTE/Editor/Base.yaml' } + - { resource: 'EXT:rte_ckeditor/Configuration/RTE/Editor/Plugins.yaml' } + + + +# Add configuration for the editor +# For complete documentation see https://ckeditor.com/docs/ckeditor5/latest/features/index.html editor: config: - contentsCss: "EXT:t3sbootstrap/Resources/Public/Backend/t3sbootstrap.css" - - allowedContent: true - - extraAllowedContent: - - dd - - dl - - dt - - stylesSet: - # Blockstile - - { name: "Size: Lead", element: "p", attributes: { 'class': 'lead' } } - - { name: "Size: Small", element: "p", attributes: { 'class': 'small' } } - - { name: "Nowrap", element: "p", attributes: { 'class': 'text-nowrap' } } - - - { name: "h2-style", element: "p", attributes: { 'class': 'h2' } } - - { name: "h3-style", element: "p", attributes: { 'class': 'h3' } } - - { name: "h4-style", element: "p", attributes: { 'class': 'h4' } } - - { name: "h5-style", element: "p", attributes: { 'class': 'h5' } } - - { name: "h6-style", element: "p", attributes: { 'class': 'h6' } } - - # Textstile - - { name: "Text: small", element: "span", attributes: { 'class': 'small' } } - - { name: "Text: Mark", element: "mark" } - - { name: "Text: Del", element: "del" } - - { name: "Text: Ins", element: "ins" } - - { name: "Text: Code", element: "code" } - - { name: "Text: Primary", element: "span", attributes: { 'class': 'text-primary' } } - - { name: "Text: Secondary", element: "span", attributes: { 'class': 'text-secondary' } } - - { name: "Text: Success", element: "span", attributes: { 'class': 'text-success' } } - - { name: "Text: Danger", element: "span", attributes: { 'class': 'text-danger' } } - - { name: "Text: Warning", element: "span", attributes: { 'class': 'text-warning' } } - - { name: "Text: Info", element: "span", attributes: { 'class': 'text-info' } } - - { name: "Text: Light", element: "span", attributes: { 'class': 'text-light' } } - - { name: "Text: Dark", element: "span", attributes: { 'class': 'text-dark' } } - - { name: "Address", element: "address" } - - { name: "Text: Zitat", element: "blockquote" ,attributes: { 'class': 'blockquote' }} - - { name: "Text: Zitat center", element: "blockquote" ,attributes: { 'class': 'blockquote text-center' }} - - { name: "Text: Zitat right", element: "blockquote" ,attributes: { 'class': 'blockquote text-end' }} - - - { name: "Text: fw-bold", element: "span", attributes: { 'class': 'fw-bold' } } - - { name: "Text: fw-bolder", element: "span", attributes: { 'class': 'fw-bolder' } } - - { name: "Text: fw-semibold", element: "span", attributes: { 'class': 'fw-semibold' } } - - { name: "Text: fw-normal", element: "span", attributes: { 'class': 'fw-normal' } } - - { name: "Text: fw-light", element: "span", attributes: { 'class': 'fw-light' } } - - { name: "Text: fw-lighter", element: "span", attributes: { 'class': 'fw-lighter' } } - - { name: "Text: fst-italic", element: "span", attributes: { 'class': 'fst-italic' } } - - { name: "Text: fst-normal", element: "span", attributes: { 'class': 'fst-normal' } } - - - { name: "Text: h2-style", element: "span", attributes: { 'class': 'h2' } } - - { name: "Text: h3-style", element: "span", attributes: { 'class': 'h3' } } - - { name: "Text: h4-style", element: "span", attributes: { 'class': 'h4' } } - - { name: "Text: h5-style", element: "span", attributes: { 'class': 'h5' } } - - { name: "Text: h6-style", element: "span", attributes: { 'class': 'h6' } } - - - { name: "Lowercase", element: "p", attributes: { 'class': 'text-lowercase' } } - - { name: "Uppercase", element: "p", attributes: { 'class': 'text-uppercase' } } - - { name: "Capitalize", element: "p", attributes: { 'class': 'text-capitalize' } } - - - { name: "Lowercase", element: "p", attributes: { 'class': 'text-lowercase' } } - - { name: "Uppercase", element: "p", attributes: { 'class': 'text-uppercase' } } - - { name: "Capitalize", element: "p", attributes: { 'class': 'text-capitalize' } } - - - { name: "Color: Primary", element: ['h2', 'h3', 'h4', 'h5', 'p', 'td', 'th', 'div'], attributes: { 'class': 'text-primary' } } - - { name: "Color: Secondary", element: ['h2', 'h3', 'h4', 'h5', 'p', 'td', 'th', 'div'], attributes: { 'class': 'text-secondary' } } - - { name: "Color: Success", element: ['h2', 'h3', 'h4', 'h5', 'p', 'td', 'th', 'div'], attributes: { 'class': 'text-success' } } - - { name: "Color: Danger", element: ['h2', 'h3', 'h4', 'h5', 'p', 'td', 'th', 'div'], attributes: { 'class': 'text-danger' } } - - { name: "Color: Warning", element: ['h2', 'h3', 'h4', 'h5', 'p', 'td', 'th', 'div'], attributes: { 'class': 'text-warning' } } - - { name: "Color: Info", element: ['h2', 'h3', 'h4', 'h5', 'p', 'td', 'th', 'div'], attributes: { 'class': 'text-info' } } - - { name: "Color: Light", element: ['h2', 'h3', 'h4', 'h5', 'p', 'td', 'th', 'div'], attributes: { 'class': 'text-light' } } - - { name: "Color: Dark", element: ['h2', 'h3', 'h4', 'h5', 'p', 'td', 'th', 'div'], attributes: { 'class': 'text-dark' } } - - - { name: "Line height: lh-1", element: ['h2', 'h3', 'h4', 'h5', 'p', 'td', 'th', 'div'], attributes: { 'class': 'lh-1' } } - - { name: "Line height: lh-sm", element: ['h2', 'h3', 'h4', 'h5', 'p', 'td', 'th', 'div'], attributes: { 'class': 'lh-sm' } } - - { name: "Line height: lh-base", element: ['h2', 'h3', 'h4', 'h5', 'p', 'td', 'th', 'div'], attributes: { 'class': 'lh-base' } } - - { name: "Line height: lh-lg", element: ['h2', 'h3', 'h4', 'h5', 'p', 'td', 'th', 'div'], attributes: { 'class': 'lh-lg' } } - - #Tabellen - - { name: "Table: Hover", element: "table", attributes: { 'class': 'table table-hover' } } - - { name: "Table: Striped", element: "table", attributes: { 'class': 'table table-striped' } } - - { name: "Table: Bordered", element: "table", attributes: { 'class': 'table table-bordered' } } - - { name: "Table: Small", element: "table", attributes: { 'class': 'table table-sm' } } - - { name: "Table: Inverse", element: "table", attributes: { 'class': 'table table-inverse' } } - - # Tabellen-Zeilen - - { name: "Row: Active", element: "tr", attributes: { 'class': 'table-active' } } - - { name: "Row: Primary", element: "tr", attributes: { 'class': 'table-primary' } } - - { name: "Row: Secondary", element: "tr", attributes: { 'class': 'table-secondary' } } - - { name: "Row: Success", element: "tr", attributes: { 'class': 'table-success' } } - - { name: "Row: Danger", element: "tr", attributes: { 'class': 'table-danger' } } - - { name: "Row: Warning", element: "tr", attributes: { 'class': 'table-warning' } } - - { name: "Row: Info", element: "tr", attributes: { 'class': 'table-info' } } - - { name: "Row: Light", element: "tr", attributes: { 'class': 'table-light' } } - - { name: "Row: Dark", element: "tr", attributes: { 'class': 'table-dark' } } - - # Alerts - - { name: "Alert: Primary", element: "div", attributes: { 'class': 'alert alert-primary' } } - - { name: "Alert: Secondary", element: "div", attributes: { 'class': 'alert alert-secondary' } } - - { name: "Alert: Success", element: "div", attributes: { 'class': 'alert alert-success' } } - - { name: "Alert: Danger", element: "div", attributes: { 'class': 'alert alert-danger' } } - - { name: "Alert: Warning", element: "div", attributes: { 'class': 'alert alert-warning' } } - - { name: "Alert: Info", element: "div", attributes: { 'class': 'alert alert-info' } } - - { name: "Alert: Light", element: "div", attributes: { 'class': 'alert alert-light' } } - - { name: "Alert: Dark", element: "div", attributes: { 'class': 'alert alert-dark' } } - - # Buttons - - { name: "Button: Primary", element: "a", attributes: { 'class': 'btn btn-primary' } } - - { name: "Button: Secondary", element: "a", attributes: { 'class': 'btn btn-secondary' } } - - { name: "Button: Success", element: "a", attributes: { 'class': 'btn btn-success' } } - - { name: "Button: Danger", element: "a", attributes: { 'class': 'btn btn-danger' } } - - { name: "Button: Warning", element: "a", attributes: { 'class': 'btn btn-warning' } } - - { name: "Button: Info", element: "a", attributes: { 'class': 'btn btn-info' } } - - { name: "Button: Light", element: "a", attributes: { 'class': 'btn btn-light' } } - - { name: "Button: Dark", element: "a", attributes: { 'class': 'btn btn-dark' } } - - # Badges - - { name: "Badge: Primary", element: "span", attributes: { 'class': 'badge bg-primary' } } - - { name: "Badge: Secondary", element: "span", attributes: { 'class': 'badge bg-secondary' } } - - { name: "Badge: Success", element: "span", attributes: { 'class': 'badge bg-success' } } - - { name: "Badge: Danger", element: "span", attributes: { 'class': 'badge bg-danger' } } - - { name: "Badge: Warning", element: "span", attributes: { 'class': 'badge bg-warning' } } - - { name: "Badge: Info", element: "span", attributes: { 'class': 'badge bg-info' } } - - { name: "Badge: Light", element: "span", attributes: { 'class': 'badge bg-light' } } - - { name: "Badge: Dark", element: "span", attributes: { 'class': 'badge bg-dark' } } - - # Pill badges - - { name: "Pill badge: Primary", element: "span", attributes: { 'class': 'badge rounded-pill bg-primary' } } - - { name: "Pill badge: Secondary", element: "span", attributes: { 'class': 'badge rounded-pill bg-secondary' } } - - { name: "Pill badge: Success", element: "span", attributes: { 'class': 'badge rounded-pill bg-success' } } - - { name: "Pill badge: Danger", element: "span", attributes: { 'class': 'badge rounded-pill bg-danger' } } - - { name: "Pill badge: Warning", element: "span", attributes: { 'class': 'badge rounded-pill bg-warning' } } - - { name: "Pill badge: Info", element: "span", attributes: { 'class': 'badge rounded-pill bg-info' } } - - { name: "Pill badge: Light", element: "span", attributes: { 'class': 'badge rounded-pill bg-light' } } - - { name: "Pill badge: Dark", element: "span", attributes: { 'class': 'badge rounded-pill bg-dark' } } - - # Listen - - { name: 'List: Unstyled', element: "ul", attributes: { 'class': 'list-unstyled' } } - - { name: 'List: Inline', element: "ul", attributes: { 'class': 'list-inline' } } - - { name: 'List: Disc', element: "ul", attributes: { 'style': 'list-style-type:disc' } } - - { name: 'List: Circle', element: "ul", attributes: { 'style': 'list-style-type:circle' } } - - { name: 'List: Square', element: "ul", attributes: { 'style': 'list-style-type:square' } } - - - { name: 'List: Decimal', element: "ol", attributes: { 'style': 'list-style-type:decimal' } } - - { name: 'List: Decimal leading zero', element: "ol", attributes: { 'style': 'list-style-type:decimal-leading-zero' } } - - { name: 'List: Latin lower', element: "ol", attributes: { 'style': 'list-style-type:lower-latin' } } - - { name: 'List: Latin upper', element: "ol", attributes: { 'style': 'list-style-type:upper-latin' } } - - { name: 'List: Roman lower', element: "ol", attributes: { 'style': 'list-style-type:lower-roman' } } - - { name: 'List: Roman upper', element: "ol", attributes: { 'style': 'list-style-type:upper-roman' } } - - { name: 'List: Greek lower', element: "ol", attributes: { 'style': 'list-style-type:lower-greek' } } - - - { name: 'List: Definition', element: "dl", attributes: { 'class': 'row' } } - - { name: 'List: Definition Terms', element: "dt", attributes: { 'class': 'col-sm-3' } } - - { name: 'List: Definition Descriptons', element: "dd", attributes: { 'class': 'col-sm-9' } } - - - format_tags: "p;h2;h3;h4;h5;h6;pre;div" - - toolbarGroups: - - { name: clipboard, groups: [clipboard, undo] } - - { name: editing, groups: [find, selection, spellchecker] } - - { name: links } - - { name: insert } - - { name: tools } - - { name: table } - - { name: tabletools } - - { name: document, groups: [ mode, document, doctools ] } - - { name: others } - - "/" - - { name: basicstyles, groups: [ basicstyles, cleanup ] } - - { name: paragraph, groups: [ list, indent, blocks, align, showborders ] } - - "/" - - { name: styles } - - justifyClasses: - - text-start - - text-center - - text-end - - text-justify - - extraPlugins: - - justify - - find - - copyformatting - - specialchar - - showblocks - removePlugins: - - image + contentsCss: 'EXT:t3sbootstrap/Resources/Public/Backend/RTE/t3sbootstrap.css' + + toolbar: + items: + - selectAll + - '|' + - undo + - redo + - '|' + - bold + - italic + - subscript + - superscript + - softhyphen + - '|' + - bulletedList + - numberedList + - blockQuote + - '|' + - link + - '|' + - removeFormat + - undo + - redo + - '|' + - horizontalLine + - sourceEditing + - '-' + - style + - heading + - '|' + - alignment + - findAndReplace + - insertTable + - specialCharacters + - fontFamily + - essentials + - autoformat + + heading: + options: + - { model: 'paragraph', title: 'Paragraph' } + - { model: 'heading2', view: 'h2', title: 'Heading 2' } + - { model: 'heading3', view: 'h3', title: 'Heading 3' } + - { model: 'heading4', view: 'h4', title: 'Heading 4' } + - { model: 'heading5', view: 'h5', title: 'Heading 5' } + - { model: 'heading6', view: 'h6', title: 'Heading 6' } + - { model: 'formatted', view: 'pre', title: 'Pre-Formatted Text' } + - { model: 'div', view: 'div', title: 'Div' } + + + style: + definitions: + - { name: 'Small', element: 'small', classes: [] } + - { name: 'Color primary', element: 'span', classes: ['text-primary'] } + - { name: 'Color secondary', element: 'span', classes: ['text-secondary'] } + - { name: 'Color success', element: 'span', classes: ['text-success'] } + - { name: 'Color info', element: 'span', classes: ['text-info'] } + - { name: 'Color danger', element: 'span', classes: ['text-danger'] } + - { name: 'Color warning', element: 'span', classes: ['text-warning'] } + + - { name: 'Lead', element: 'p', classes: ['lead'] } + + - { name: 'Color primary', element: 'p', classes: ['text-primary'] } + - { name: 'Color secondary', element: 'p', classes: ['text-secondary'] } + - { name: 'Color success', element: 'p', classes: ['text-success'] } + - { name: 'Color info', element: 'p', classes: ['text-info'] } + - { name: 'Color danger', element: 'p', classes: ['text-danger'] } + - { name: 'Color warning', element: 'p', classes: ['text-warning'] } + + alignment: + options: + - { name: 'left', className: 'text-left' } + - { name: 'center', className: 'text-center' } + - { name: 'right', className: 'text-right' } + - { name: 'justify', className: 'text-justify' } + + table: + defaultHeadings: { rows: 1 } + contentToolbar: + - tableColumn + - tableRow + - mergeTableCells + - tableProperties + - tableCellProperties + + fontfamily: + options: + - 'default' + - 'Arial, Helvetica, sans-serif' + supportAllValues: true removeButtons: - Anchor + - Underline + - Strike - forcePasteAsPlainText: true - - processing: - allowTags: - - s - - u - - mark - - HTMLparser_db: - noAttrib: - + removePlugins: + - image + \ No newline at end of file diff --git a/Configuration/RTE/DefaultFa.yaml b/Configuration/RTE/DefaultFa.yaml deleted file mode 100644 index 37bf59c4..00000000 --- a/Configuration/RTE/DefaultFa.yaml +++ /dev/null @@ -1,3 +0,0 @@ -imports: - - { resource: "EXT:t3sbootstrap/Configuration/RTE/Default.yaml" } - - { resource: "EXT:rte_ckeditor_fontawesome/Configuration/RTE/PluginFA5.yaml" } diff --git a/Configuration/RTE/DefaultFaPro.yaml b/Configuration/RTE/DefaultFaPro.yaml deleted file mode 100644 index be38352f..00000000 --- a/Configuration/RTE/DefaultFaPro.yaml +++ /dev/null @@ -1,10 +0,0 @@ -imports: - - { resource: "EXT:t3sbootstrap/Configuration/RTE/Default.yaml" } - - { resource: "EXT:rte_ckeditor_fontawesome/Configuration/RTE/PluginFA5Pro.yaml" } - -editor: - - config: - contentsCss: - - "EXT:t3sbootstrap/Resources/Public/Backend/t3sbootstrap.css" - - "../../../../../../fileadmin/T3SB/FA5Pro/css/all.min.css" diff --git a/Configuration/Services.yaml b/Configuration/Services.yaml index 3a85e440..105bedf8 100644 --- a/Configuration/Services.yaml +++ b/Configuration/Services.yaml @@ -6,9 +6,7 @@ services: T3SBS\T3sbootstrap\: resource: '../Classes/*' - - T3SBS\T3sbootstrap\Backend\Preview\T3sbPreviewRenderer: - public: true + exclude: '../Classes/Domain/Model/*' T3SBS\T3sbootstrap\Command\CdnToLocal: tags: @@ -25,13 +23,21 @@ services: T3SBS\T3sbootstrap\EventListener\AssetRenderer\IsInline: tags: - name: event.listener - identifier: 't3sbootstrap/AssetPostProcessing' - event: TYPO3\CMS\Core\Page\Event\BeforeJavaScriptsRenderingEvent - + identifier: 't3sbootstrap/AssetPreProcessing' - T3SBS\T3sbootstrap\EventListener\TCA\TcaCompilation: + T3SBS\T3sbootstrap\Backend\EventListener\TCA\TcaCompilation: tags: - name: event.listener identifier: 't3sbootstrap/TcaPostProcessing' - event: TYPO3\CMS\Core\Configuration\Event\AfterTcaCompilationEvent - \ No newline at end of file + + T3SBS\T3sbootstrap\Backend\EventListener\FlexForm\NewsFlexformEvent: + tags: + - name: event.listener + identifier: 't3sbootstrap/newsFlexParsing' + event: TYPO3\CMS\Core\Configuration\Event\AfterFlexFormDataStructureParsedEvent + + T3SBS\T3sbootstrap\Backend\EventListener\FlexForm\FlexformEvent: + tags: + - name: event.listener + identifier: 't3sbootstrap/flexParsing' + event: TYPO3\CMS\Core\Configuration\Event\AfterFlexFormDataStructureParsedEvent diff --git a/Configuration/TCA/Overrides/pages.php b/Configuration/TCA/Overrides/pages.php index b6cb66aa..f2c03ef8 100644 --- a/Configuration/TCA/Overrides/pages.php +++ b/Configuration/TCA/Overrides/pages.php @@ -14,11 +14,12 @@ 'type' => 'select', 'renderType' => 'selectSingle', 'items' => [ - ['1',1], - ['2',2], - ['3',3], - ['4',4], - ['6',6] + ['label' => '1', 'value' => 1,], + ['label' => '2', 'value' => 2,], + ['label' => '3', 'value' => 3,], + ['label' => '4', 'value' => 4,], + ['label' => '5', 'value' => 5,], + ['label' => '6', 'value' => 6,], ], 'default' => 3 ] @@ -30,14 +31,14 @@ 'type' => 'select', 'renderType' => 'selectSingle', 'items' => [ - ['no container','0'], - ['container','container'], - ['container-sm (< 576px)','container-sm'], - ['container-md (≥ 576px)','container-md'], - ['container-lg (≥ 768px)','container-lg'], - ['container-xl (≥ 992px)','container-xl'], - ['container-xxl (≥ 1200px)','container-xxl'], - ['container-fluid (≥ 1400px)','container-fluid'] + ['label' => 'no container', 'value' => '0',], + ['label' => 'container','value' => 'container',], + ['label' => 'container-sm (< 576px)', 'value' => 'container-sm',], + ['label' => 'container-md (≥ 576px)', 'value' => 'container-md',], + ['label' => 'container-lg (≥ 768px)', 'value' => 'container-lg',], + ['label' => 'container-xl (≥ 992px)', 'value' => 'container-xl',], + ['label' => 'container-xxl (≥ 1200px)', 'value' => 'container-xxl',], + ['label' => 'container-fluid (≥ 1400px)', 'value' => 'container-fluid',], ], 'default' => 'container' ] @@ -72,13 +73,13 @@ 'type' => 'select', 'renderType' => 'selectSingle', 'items' => [ - ['Default','default'], - ['Top (both)','top'], - ['Bottom (both)','bottom'], - ['Left Aside Top','leftTop'], - ['Left Aside Bottom','leftBottom'], - ['Right Aside Top','rightTop'], - ['Right Aside Bottom','rightBottom'] + ['label' => 'Default', 'value' => 'default',], + ['label' => 'Top (both)', 'value' => 'top',], + ['label' => 'Bottom (both)', 'value' => 'bottom',], + ['label' => 'Left Aside Top', 'value' => 'leftTop',], + ['label' => 'Left Aside Bottom', 'value' => 'leftBottom',], + ['label' => 'Right Aside Top', 'value' => 'rightTop',], + ['label' => 'Right Aside Bottom', 'value' => 'rightBottom',], ], 'default' => 'default' ] @@ -90,12 +91,12 @@ 'type' => 'select', 'renderType' => 'selectSingle', 'items' => [ - ['Default','md'], - ['sm','sm'], - ['md','md'], - ['lg','lg'], - ['xl','xl'], - ['xxl','xxl'] + ['label' => 'Default', 'value' => 'md',], + ['label' => 'sm', 'value' => 'sm',], + ['label' => 'md', 'value' => 'md',], + ['label' => 'lg', 'value' => 'lg',], + ['label' => 'xl', 'value' => 'xl',], + ['label' => 'xxl', 'value' => 'xxl',], ], 'default' => 'md' ] @@ -128,7 +129,7 @@ 'label' => 'Icon only', 'description' => 'for nav-item not for page title', 'config' => [ - 'type' => 'check', + 'type' => 'check', ] ], 'tx_t3sbootstrap_titlecolor' => [ @@ -358,14 +359,9 @@ ); } - + $menuheader = 198; -// Add new page type: -$GLOBALS['PAGES_TYPES'][$menuheader] = [ - 'allowedTables' => '*', -]; - // Add new page type as possible select item: \TYPO3\CMS\Core\Utility\ExtensionManagementUtility::addTcaSelectItem( 'pages', @@ -388,9 +384,17 @@ $menuheader => 'content-header', ], ], + + // add all page standard fields and tabs to your new page type + 'types' => [ + $menuheader => [ + 'showitem' => $GLOBALS['TCA']['pages']['types'][\TYPO3\CMS\Core\Domain\Repository\PageRepository::DOKTYPE_DEFAULT]['showitem'] + ] + ] ] ); - + + /*************** * Register PageTSConfig Files diff --git a/Configuration/TCA/Overrides/sys_file_reference.php b/Configuration/TCA/Overrides/sys_file_reference.php index c15a4d07..adf72358 100644 --- a/Configuration/TCA/Overrides/sys_file_reference.php +++ b/Configuration/TCA/Overrides/sys_file_reference.php @@ -68,17 +68,50 @@ 'type' => 'select', 'renderType' => 'selectSingle', 'items' => [ - ['none',''], - ['Effect 1','snip1273'], - ['Effect 2','snip1321'], - ['Effect 3','snip1577'], - ['Effect 4','snip0015'], - ['Effect 5 (title only)','snip1573'], - ['Effect 6','snip1477'], - ['Effect 7','snip1361'], - ['Effect 8','snip1206'], - ['Effect 9','snip1190'], - ['Effect 10','snip0016'] + [ + 'label' => 'none', + 'value' => '', + ], + [ + 'label' => 'Effect 1', + 'value' => 'snip1273', + ], + [ + 'label' => 'Effect 2', + 'value' => 'snip1321', + ], + [ + 'label' => 'Effect 3', + 'value' => 'snip1577', + ], + [ + 'label' => 'Effect 4', + 'value' => 'snip0015', + ], + [ + 'label' => 'Effect 5 (title only)', + 'value' => 'snip1573', + ], + [ + 'label' => 'Effect 6', + 'value' => 'snip1477', + ], + [ + 'label' => 'Effect 7', + 'value' => 'snip1361', + ], + [ + 'label' => 'Effect 8', + 'value' => 'snip1206', + ], + [ + 'label' => 'Effect 9', + 'value' => 'snip1190', + ], + [ + 'label' => 'Effect 10', + 'value' => 'snip0016', + ], ], 'default' => '' ] @@ -105,9 +138,18 @@ 'type' => 'select', 'renderType' => 'selectSingle', 'items' => [ - ['left','start'], - ['center','center'], - ['right','end'] + [ + 'label' => 'left', + 'value' => 'start', + ], + [ + 'label' => 'center', + 'value' => 'center', + ], + [ + 'label' => 'right', + 'value' => 'end', + ], ], 'default' => 'start' ] @@ -128,15 +170,42 @@ 'type' => 'select', 'renderType' => 'selectSingle', 'items' => [ - ['light', 'text-light'], - ['dark', 'text-dark'], - ['primary', 'text-primary'], - ['secondary', 'text-secondary'], - ['success', 'text-success'], - ['danger', 'text-danger'], - ['warning', 'text-warning'], - ['info', 'text-info'], - ['white', 'text-white'], + [ + 'label' => 'light', + 'value' => 'text-light', + ], + [ + 'label' => 'dark', + 'value' => 'text-dark', + ], + [ + 'label' => 'primary', + 'value' => 'text-primary', + ], + [ + 'label' => 'secondary', + 'value' => 'text-secondary', + ], + [ + 'label' => 'success', + 'value' => 'text-success', + ], + [ + 'label' => 'danger', + 'value' => 'text-danger', + ], + [ + 'label' => 'warning', + 'value' => 'text-warning', + ], + [ + 'label' => 'info', + 'value' => 'text-info', + ], + [ + 'label' => 'white', + 'value' => 'text-white', + ], ], 'default' => 'text-dark', 'size' => 1, @@ -169,8 +238,14 @@ 'tx_t3sbootstrap_shift_vertical' => [ 'label' => 'Vertical shift - if the original image is higher than wide', 'description' => 'only useful if aspect ratio (tx_t3sbootstrap_image_ratio) is used - otherwise the input is rejected', + 'displayCond' => [ + 'AND' => [ + 'FIELD:tablenames:=:tt_content', + 'FIELD:fieldname:=:assets', + ] + ], 'config' => [ - 'type' => 'input', + 'type' => 'number', 'size' => 5, 'eval' => 'trim,int', 'range' => [ @@ -187,8 +262,14 @@ 'tx_t3sbootstrap_shift_horizontal' => [ 'label' => 'Horizontal shift - if the original is wider than high', 'description' => 'only useful if aspect ratio (tx_t3sbootstrap_image_ratio) is used - otherwise the input is rejected', + 'displayCond' => [ + 'AND' => [ + 'FIELD:tablenames:=:tt_content', + 'FIELD:fieldname:=:assets', + ] + ], 'config' => [ - 'type' => 'input', + 'type' => 'number', 'size' => 5, 'eval' => 'trim,int', 'range' => [ @@ -202,6 +283,7 @@ ] ], ], + ]; @@ -240,4 +322,4 @@ if (array_key_exists('ratio', $extconf) && $extconf['ratio']) { \TYPO3\CMS\Core\Utility\ExtensionManagementUtility::addFieldsToPalette('sys_file_reference', 'imageoverlayPalette','--linebreak--,tx_t3sbootstrap_shift_vertical','after:tx_t3sbootstrap_description_align'); \TYPO3\CMS\Core\Utility\ExtensionManagementUtility::addFieldsToPalette('sys_file_reference', 'imageoverlayPalette','--linebreak--,tx_t3sbootstrap_shift_horizontal','after:tx_t3sbootstrap_shift_vertical'); -} +} \ No newline at end of file diff --git a/Configuration/TCA/Overrides/tt_content.php b/Configuration/TCA/Overrides/tt_content.php index c5230655..19159ed1 100644 --- a/Configuration/TCA/Overrides/tt_content.php +++ b/Configuration/TCA/Overrides/tt_content.php @@ -1,1674 +1,5 @@ get('t3sbootstrap'); - -if (array_key_exists('contentconsent', $extconf) && $extconf['contentconsent'] === '1') { - - \TYPO3\CMS\Extbase\Utility\ExtensionUtility::registerPlugin( - 'T3sbootstrap', - 'Pi1', - 'Content Consent for YouTube' - ); - - $extensionName = \TYPO3\CMS\Core\Utility\GeneralUtility::underscoredToUpperCamelCase('t3sbootstrap'); - $pluginSignature = strtolower($extensionName) . '_pi1'; - $GLOBALS['TCA']['tt_content']['types']['list']['subtypes_addlist'][$pluginSignature] = 'pi_flexform'; - \TYPO3\CMS\Core\Utility\ExtensionManagementUtility::addPiFlexFormValue($pluginSignature, 'FILE:EXT:t3sbootstrap/Configuration/FlexForms/Consent.xml'); - -} - -/*************** - * Add new EXT:container CTypes - */ - -# GRID COLUMNS -\TYPO3\CMS\Core\Utility\GeneralUtility::makeInstance(\B13\Container\Tca\Registry::class)->configureContainer( - ( - new \B13\Container\Tca\ContainerConfiguration( - 'two_columns', - 'LLL:EXT:t3sbootstrap/Resources/Private/Language/locallang_be.xlf:tx_container.twoColumns.title', - 'LLL:EXT:t3sbootstrap/Resources/Private/Language/locallang_be.xlf:tx_container.twoColumns.description', - [ - [ - ['name' => 'LLL:EXT:t3sbootstrap/Resources/Private/Language/locallang_be.xlf:tx_container.anyColumns.colPos.0', 'colPos' => 221], - ['name' => 'LLL:EXT:t3sbootstrap/Resources/Private/Language/locallang_be.xlf:tx_container.anyColumns.colPos.1', 'colPos' => 222] - ] - ] - ) - ) - ->setIcon('EXT:t3sbootstrap/Resources/Public/Icons/Register/ge-2_col.svg') - ->setSaveAndCloseInNewContentElementWizard(false) -); -$GLOBALS['TCA']['tt_content']['types']['two_columns']['showitem'] = ' - --div--;LLL:EXT:core/Resources/Private/Language/Form/locallang_tabs.xlf:general, - --palette--;LLL:EXT:frontend/Resources/Private/Language/locallang_ttc.xlf:palette.general;general, - --palette--;LLL:EXT:frontend/Resources/Private/Language/locallang_ttc.xlf:palette.headers;headers, - --div--;LLL:EXT:frontend/Resources/Private/Language/locallang_ttc.xlf:tabs.appearance, - --palette--;LLL:EXT:frontend/Resources/Private/Language/locallang_ttc.xlf:palette.frames;frames,T3SFlex;tx_t3sbootstrap_flexform, - --palette--;LLL:EXT:frontend/Resources/Private/Language/locallang_ttc.xlf:palette.appearanceLinks;appearanceLinks, - --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--;LLL:EXT:frontend/Resources/Private/Language/locallang_ttc.xlf:palette.access;access, - --div--;LLL:EXT:core/Resources/Private/Language/Form/locallang_tabs.xlf:categories, - categories, - --div--;LLL:EXT:core/Resources/Private/Language/Form/locallang_tabs.xlf:notes, - rowDescription, - --div--;LLL:EXT:core/Resources/Private/Language/Form/locallang_tabs.xlf:extended -'; - -\TYPO3\CMS\Core\Utility\GeneralUtility::makeInstance(\B13\Container\Tca\Registry::class)->configureContainer( - ( - new \B13\Container\Tca\ContainerConfiguration( - 'three_columns', - 'LLL:EXT:t3sbootstrap/Resources/Private/Language/locallang_be.xlf:tx_container.threeColumns.title', - 'description', - [ - [ - ['name' => 'col 1', 'colPos' => 231], - ['name' => 'col 2', 'colPos' => 232], - ['name' => 'col 3', 'colPos' => 233] - ] - ] - ) - ) - ->setIcon('EXT:t3sbootstrap/Resources/Public/Icons/Register/ge-3_col.svg') - ->setSaveAndCloseInNewContentElementWizard(false) -); -$GLOBALS['TCA']['tt_content']['types']['three_columns']['showitem'] = $GLOBALS['TCA']['tt_content']['types']['two_columns']['showitem']; - -\TYPO3\CMS\Core\Utility\GeneralUtility::makeInstance(\B13\Container\Tca\Registry::class)->configureContainer( - ( - new \B13\Container\Tca\ContainerConfiguration( - 'four_columns', - 'LLL:EXT:t3sbootstrap/Resources/Private/Language/locallang_be.xlf:tx_container.fourColumns.title', - 'LLL:EXT:t3sbootstrap/Resources/Private/Language/locallang_be.xlf:tx_container.fourColumns.description', - [ - [ - ['name' => 'LLL:EXT:t3sbootstrap/Resources/Private/Language/locallang_be.xlf:tx_container.anyColumns.colPos.0', 'colPos' => 241], - ['name' => 'LLL:EXT:t3sbootstrap/Resources/Private/Language/locallang_be.xlf:tx_container.anyColumns.colPos.1', 'colPos' => 242], - ['name' => 'LLL:EXT:t3sbootstrap/Resources/Private/Language/locallang_be.xlf:tx_container.anyColumns.colPos.2', 'colPos' => 243], - ['name' => 'LLL:EXT:t3sbootstrap/Resources/Private/Language/locallang_be.xlf:tx_container.anyColumns.colPos.3', 'colPos' => 244] - ] - ] - ) - ) - ->setIcon('EXT:t3sbootstrap/Resources/Public/Icons/Register/ge-4_col.svg') - ->setSaveAndCloseInNewContentElementWizard(false) -); -$GLOBALS['TCA']['tt_content']['types']['four_columns']['showitem'] = $GLOBALS['TCA']['tt_content']['types']['two_columns']['showitem']; - -\TYPO3\CMS\Core\Utility\GeneralUtility::makeInstance(\B13\Container\Tca\Registry::class)->configureContainer( - ( - new \B13\Container\Tca\ContainerConfiguration( - 'six_columns', - 'LLL:EXT:t3sbootstrap/Resources/Private/Language/locallang_be.xlf:tx_container.sixColumns.title', - 'LLL:EXT:t3sbootstrap/Resources/Private/Language/locallang_be.xlf:tx_container.sixColumns.description', - [ - [ - ['name' => 'LLL:EXT:t3sbootstrap/Resources/Private/Language/locallang_be.xlf:tx_container.anyColumns.colPos.0', 'colPos' => 261], - ['name' => 'LLL:EXT:t3sbootstrap/Resources/Private/Language/locallang_be.xlf:tx_container.anyColumns.colPos.1', 'colPos' => 262], - ['name' => 'LLL:EXT:t3sbootstrap/Resources/Private/Language/locallang_be.xlf:tx_container.anyColumns.colPos.2', 'colPos' => 263], - ['name' => 'LLL:EXT:t3sbootstrap/Resources/Private/Language/locallang_be.xlf:tx_container.anyColumns.colPos.3', 'colPos' => 264], - ['name' => 'LLL:EXT:t3sbootstrap/Resources/Private/Language/locallang_be.xlf:tx_container.anyColumns.colPos.4', 'colPos' => 265], - ['name' => 'LLL:EXT:t3sbootstrap/Resources/Private/Language/locallang_be.xlf:tx_container.anyColumns.colPos.5', 'colPos' => 266] - ] - ] - ) - ) - ->setIcon('EXT:t3sbootstrap/Resources/Public/Icons/Register/ge-4_col.svg') - ->setSaveAndCloseInNewContentElementWizard(false) -); -$GLOBALS['TCA']['tt_content']['types']['six_columns']['showitem'] = $GLOBALS['TCA']['tt_content']['types']['two_columns']['showitem']; - - -# ROW CONTAINER -\TYPO3\CMS\Core\Utility\GeneralUtility::makeInstance(\B13\Container\Tca\Registry::class)->configureContainer( - ( - new \B13\Container\Tca\ContainerConfiguration( - 'row_columns', - 'Row Columns', - 'Use these row columns classes to quickly create basic grid layouts.', - [ - [ - ['name' => 'Row Column', 'colPos' => 290] - ] - ] - ) - ) - ->setIcon('EXT:container/Resources/Public/Icons/container-4col.svg') - ->setSaveAndCloseInNewContentElementWizard(false) -); -$GLOBALS['TCA']['tt_content']['types']['row_columns']['showitem'] = $GLOBALS['TCA']['tt_content']['types']['two_columns']['showitem']; - - -# CARD WRAPPER -\TYPO3\CMS\Core\Utility\GeneralUtility::makeInstance(\B13\Container\Tca\Registry::class)->configureContainer( - ( - new \B13\Container\Tca\ContainerConfiguration( - 'card_wrapper', - 'Card Wrapper', - 'In addition to styling the content within cards, Bootstrap includes a few options for laying out series of cards.', - [ - [ - ['name' => 'Card Wrapper', 'colPos' => 270, 'allowed' => ['CType' => 't3sbs_card']] - ] - ] - ) - ) - ->setIcon('EXT:t3sbootstrap/Resources/Public/Icons/Register/ge-card-container.svg') - ->setSaveAndCloseInNewContentElementWizard(false) -); -$GLOBALS['TCA']['tt_content']['types']['card_wrapper']['showitem'] = $GLOBALS['TCA']['tt_content']['types']['two_columns']['showitem']; - - -# BUTTON GROUP -\TYPO3\CMS\Core\Utility\GeneralUtility::makeInstance(\B13\Container\Tca\Registry::class)->configureContainer( - ( - new \B13\Container\Tca\ContainerConfiguration( - 'button_group', - 'Button Group', - 'Group a series of buttons together on a single line with the button group.', - [ - [ - ['name' => 'Button Group', 'colPos' => 271, 'allowed' => ['CType' => 't3sbs_button']] - ] - ] - ) - ) - ->setIcon('EXT:t3sbootstrap/Resources/Public/Icons/Register/bars.svg') - ->setSaveAndCloseInNewContentElementWizard(false) -); -$GLOBALS['TCA']['tt_content']['types']['button_group']['showitem'] = $GLOBALS['TCA']['tt_content']['types']['two_columns']['showitem']; - -# AUTO LAYOUT -\TYPO3\CMS\Core\Utility\GeneralUtility::makeInstance(\B13\Container\Tca\Registry::class)->configureContainer( - ( - new \B13\Container\Tca\ContainerConfiguration( - 'autoLayout_row', - 'Auto-layout', - 'Options: "Equal-width", "Setting one column width" or "Variable width content".', - [ - [ - ['name' => 'Auto-layout', 'colPos' => 272] - ] - ] - ) - ) - ->setIcon('EXT:t3sbootstrap/Resources/Public/Icons/Register/ge-card-container.svg') - ->setSaveAndCloseInNewContentElementWizard(false) -); -$GLOBALS['TCA']['tt_content']['types']['autoLayout_row']['showitem'] = $GLOBALS['TCA']['tt_content']['types']['two_columns']['showitem']; - -# BACKGROUND WRAPPER -\TYPO3\CMS\Core\Utility\GeneralUtility::makeInstance(\B13\Container\Tca\Registry::class)->configureContainer( - ( - new \B13\Container\Tca\ContainerConfiguration( - 'background_wrapper', - 'Background Wrapper', - 'Options: "Full width container with background color -image or -Youtube vido.', - [ - [ - ['name' => 'Background Wrapper', 'colPos' => 273] - ] - ] - ) - ) - ->setIcon('EXT:t3sbootstrap/Resources/Public/Icons/Register/ge-background_wrapper.svg') - ->setSaveAndCloseInNewContentElementWizard(false) -); -$GLOBALS['TCA']['tt_content']['types']['background_wrapper']['showitem'] = ' - --div--;LLL:EXT:core/Resources/Private/Language/Form/locallang_tabs.xlf:general, - --palette--;LLL:EXT:frontend/Resources/Private/Language/locallang_ttc.xlf:palette.general;general, - --palette--;LLL:EXT:frontend/Resources/Private/Language/locallang_ttc.xlf:palette.headers;headers, - --div--;LLL:EXT:frontend/Resources/Private/Language/locallang_ttc.xlf:tabs.images, - assets, - --div--;LLL:EXT:frontend/Resources/Private/Language/locallang_ttc.xlf:tabs.appearance, - --palette--;LLL:EXT:frontend/Resources/Private/Language/locallang_ttc.xlf:palette.frames;frames,T3SFlex;tx_t3sbootstrap_flexform, - --palette--;LLL:EXT:frontend/Resources/Private/Language/locallang_ttc.xlf:palette.appearanceLinks;appearanceLinks, - --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--;LLL:EXT:frontend/Resources/Private/Language/locallang_ttc.xlf:palette.access;access, - --div--;LLL:EXT:core/Resources/Private/Language/Form/locallang_tabs.xlf:categories, - categories, - --div--;LLL:EXT:core/Resources/Private/Language/Form/locallang_tabs.xlf:notes, - rowDescription, - --div--;LLL:EXT:core/Resources/Private/Language/Form/locallang_tabs.xlf:extended -'; - -$GLOBALS['TCA']['tt_content']['types']['background_wrapper']['columnsOverrides'] = [ - 'assets' => [ - 'config' => [ - 'maxitems' => 1 - ], - ] -]; - -# PARALLAX WRAPPER -\TYPO3\CMS\Core\Utility\GeneralUtility::makeInstance(\B13\Container\Tca\Registry::class)->configureContainer( - ( - new \B13\Container\Tca\ContainerConfiguration( - 'parallax_wrapper', - 'Parallax Wrapper', - 'LLL:EXT:t3sbootstrap/Resources/Private/Language/locallang_be.xlf:tx_container.parallaxWrapper.description', - [ - [ - ['name' => 'Parallax Wrapper', 'colPos' => 274] - ] - ] - ) - ) - ->setIcon('EXT:t3sbootstrap/Resources/Public/Icons/Register/ge-parallax_wrapper.svg') - ->setSaveAndCloseInNewContentElementWizard(false) -); -$GLOBALS['TCA']['tt_content']['types']['parallax_wrapper']['showitem'] = $GLOBALS['TCA']['tt_content']['types']['background_wrapper']['showitem']; - -# CONTAINER -\TYPO3\CMS\Core\Utility\GeneralUtility::makeInstance(\B13\Container\Tca\Registry::class)->configureContainer( - ( - new \B13\Container\Tca\ContainerConfiguration( - 'container', - 'Container', - 'Bootstrap .container', - [ - [ - ['name' => 'Container', 'colPos' => 275] - ] - ] - ) - ) - ->setIcon('EXT:t3sbootstrap/Resources/Public/Icons/Register/ge-card-container.svg') - ->setSaveAndCloseInNewContentElementWizard(false) -); -$GLOBALS['TCA']['tt_content']['types']['container']['showitem'] = $GLOBALS['TCA']['tt_content']['types']['two_columns']['showitem']; - -# CAROUSEL CONTAINER -\TYPO3\CMS\Core\Utility\GeneralUtility::makeInstance(\B13\Container\Tca\Registry::class)->configureContainer( - ( - new \B13\Container\Tca\ContainerConfiguration( - 'carousel_container', - 'Carousel Container', - 'A container for several Carousel slides (CE:t3sbs_carousel)', - [ - [ - ['name' => 'Carousel Container', 'colPos' => 276, 'allowed' => ['CType' => 't3sbs_carousel']] - ] - ] - ) - ) - ->setIcon('EXT:t3sbootstrap/Resources/Public/Icons/Register/ge-carousel-container.svg') - ->setSaveAndCloseInNewContentElementWizard(false) -); -$GLOBALS['TCA']['tt_content']['types']['carousel_container']['showitem'] = $GLOBALS['TCA']['tt_content']['types']['two_columns']['showitem']; - -# COLLAPSIBLE CONTAINER -\TYPO3\CMS\Core\Utility\GeneralUtility::makeInstance(\B13\Container\Tca\Registry::class)->configureContainer( - ( - new \B13\Container\Tca\ContainerConfiguration( - 'collapsible_container', - 'LLL:EXT:t3sbootstrap/Resources/Private/Language/locallang_be.xlf:tx_container.collapsibleContainer.title', - 'LLL:EXT:t3sbootstrap/Resources/Private/Language/locallang_be.xlf:tx_container.collapsibleContainer.description', - [ - [ - ['name' => 'Collapsible Container', 'colPos' => 277, 'allowed' => ['CType' => 'collapsible_accordion']] - ] - ] - ) - ) - ->setIcon('EXT:t3sbootstrap/Resources/Public/Icons/Register/ge-accordion-container.svg') - ->setSaveAndCloseInNewContentElementWizard(false) -); -$GLOBALS['TCA']['tt_content']['types']['collapsible_container']['showitem'] = $GLOBALS['TCA']['tt_content']['types']['two_columns']['showitem']; - -# COLLAPSIBLE ELEMENT -\TYPO3\CMS\Core\Utility\GeneralUtility::makeInstance(\B13\Container\Tca\Registry::class)->configureContainer( - ( - new \B13\Container\Tca\ContainerConfiguration( - 'collapsible_accordion', - 'LLL:EXT:t3sbootstrap/Resources/Private/Language/locallang_be.xlf:tx_container.collapsibleElement.title', - 'LLL:EXT:t3sbootstrap/Resources/Private/Language/locallang_be.xlf:tx_container.collapsibleElement.description', - [ - [ - ['name' => 'Collapsible Element', 'colPos' => 278] - ] - ] - ) - ) - ->setIcon('EXT:t3sbootstrap/Resources/Public/Icons/Register/ge-accordion-element.svg') - ->setSaveAndCloseInNewContentElementWizard(false) -); -$GLOBALS['TCA']['tt_content']['types']['collapsible_accordion']['showitem'] = $GLOBALS['TCA']['tt_content']['types']['background_wrapper']['showitem']; - -# MODAL CONTAINER -\TYPO3\CMS\Core\Utility\GeneralUtility::makeInstance(\B13\Container\Tca\Registry::class)->configureContainer( - ( - new \B13\Container\Tca\ContainerConfiguration( - 'modal', - 'LLL:EXT:t3sbootstrap/Resources/Private/Language/locallang_be.xlf:tx_container.modal.title', - 'LLL:EXT:t3sbootstrap/Resources/Private/Language/locallang_be.xlf:tx_container.modal.description', - [ - [ - ['name' => 'Modal Container', 'colPos' => 279] - ] - ] - ) - ) - ->setIcon('EXT:t3sbootstrap/Resources/Public/Icons/Register/ge-modal.svg') - ->setSaveAndCloseInNewContentElementWizard(false) -); -$GLOBALS['TCA']['tt_content']['types']['modal']['showitem'] = $GLOBALS['TCA']['tt_content']['types']['two_columns']['showitem']; - -# TAB CONTAINER -\TYPO3\CMS\Core\Utility\GeneralUtility::makeInstance(\B13\Container\Tca\Registry::class)->configureContainer( - ( - new \B13\Container\Tca\ContainerConfiguration( - 'tabs_container', - 'LLL:EXT:t3sbootstrap/Resources/Private/Language/locallang_be.xlf:tx_container.tabContainer.title', - 'LLL:EXT:t3sbootstrap/Resources/Private/Language/locallang_be.xlf:tx_container.tabContainer.description', - [ - [ - ['name' => 'Tabs Container', 'colPos' => 280, 'allowed' => ['CType' => 'tabs_tab']] - ] - ] - ) - ) - ->setIcon('EXT:t3sbootstrap/Resources/Public/Icons/Register/ge-tab-container.svg') - ->setSaveAndCloseInNewContentElementWizard(false) -); -$GLOBALS['TCA']['tt_content']['types']['tabs_container']['showitem'] = $GLOBALS['TCA']['tt_content']['types']['two_columns']['showitem']; - -# TAB -\TYPO3\CMS\Core\Utility\GeneralUtility::makeInstance(\B13\Container\Tca\Registry::class)->configureContainer( - ( - new \B13\Container\Tca\ContainerConfiguration( - 'tabs_tab', - 'LLL:EXT:t3sbootstrap/Resources/Private/Language/locallang_be.xlf:tx_container.tabElement.title', - 'LLL:EXT:t3sbootstrap/Resources/Private/Language/locallang_be.xlf:tx_container.tabElement.description', - [ - [ - ['name' => 'Tab', 'colPos' => 281] - ] - ] - ) - ) - ->setIcon('EXT:t3sbootstrap/Resources/Public/Icons/Register/ge-tab-container.svg') - ->setSaveAndCloseInNewContentElementWizard(false) -); -$GLOBALS['TCA']['tt_content']['types']['tabs_tab']['showitem'] = $GLOBALS['TCA']['tt_content']['types']['two_columns']['showitem']; - -# LIST GROUP WRAPPER -\TYPO3\CMS\Core\Utility\GeneralUtility::makeInstance(\B13\Container\Tca\Registry::class)->configureContainer( - ( - new \B13\Container\Tca\ContainerConfiguration( - 'listGroup_wrapper', - 'List Group Wrapper', - 'Shows other CEs in a bootstrap list group. Nice with "Link the entire Content Element"', - [ - [ - ['name' => 'List Group Wrapper', 'colPos' => 282] - ] - ] - ) - ) - ->setIcon('EXT:t3sbootstrap/Resources/Public/Icons/Register/ge-accordion-container.svg') - ->setSaveAndCloseInNewContentElementWizard(false) -); -$GLOBALS['TCA']['tt_content']['types']['listGroup_wrapper']['showitem'] = $GLOBALS['TCA']['tt_content']['types']['two_columns']['showitem']; - -# MASONRY -\TYPO3\CMS\Core\Utility\GeneralUtility::makeInstance(\B13\Container\Tca\Registry::class)->configureContainer( - ( - new \B13\Container\Tca\ContainerConfiguration( - 'masonry_wrapper', - 'Masonry Wrapper', - 'Masonry with the Bootstrap grid system', - [ - [ - ['name' => 'Masonry', 'colPos' => 283] - ] - ] - ) - ) - ->setIcon('EXT:t3sbootstrap/Resources/Public/Icons/Register/ge-card-container.svg') - ->setSaveAndCloseInNewContentElementWizard(false) -); -$GLOBALS['TCA']['tt_content']['types']['masonry_wrapper']['showitem'] = $GLOBALS['TCA']['tt_content']['types']['two_columns']['showitem']; - -# SWIPE CONTAINER -\TYPO3\CMS\Core\Utility\GeneralUtility::makeInstance(\B13\Container\Tca\Registry::class)->configureContainer( - ( - new \B13\Container\Tca\ContainerConfiguration( - 'swiper_container', - 'Swiper Container', - 'A container for several Swipe slides (CE:t3sbs_carousel)', - [ - [ - ['name' => 'Swipe Container', 'colPos' => 300, 'allowed' => ['CType' => 't3sbs_carousel']] - ] - ] - ) - ) - ->setIcon('EXT:t3sbootstrap/Resources/Public/Icons/Register/ge-carousel-container.svg') - ->setSaveAndCloseInNewContentElementWizard(false) -); -$GLOBALS['TCA']['tt_content']['types']['swiper_container']['showitem'] = $GLOBALS['TCA']['tt_content']['types']['two_columns']['showitem']; - -# TOAST CONTAINER -\TYPO3\CMS\Core\Utility\GeneralUtility::makeInstance(\B13\Container\Tca\Registry::class)->configureContainer( - ( - new \B13\Container\Tca\ContainerConfiguration( - 'toast_container', - 'Toast Container', - 'A container for several Toast content', - [ - [ - ['name' => 'Toast Container', 'colPos' => 310] - ] - ] - ) - ) - ->setIcon('EXT:t3sbootstrap/Resources/Public/Icons/Register/ge-modal.svg') - ->setSaveAndCloseInNewContentElementWizard(false) -); -$GLOBALS['TCA']['tt_content']['types']['toast_container']['showitem'] = $GLOBALS['TCA']['tt_content']['types']['two_columns']['showitem']; - - -/*************** - * Add new CTypes - */ - \TYPO3\CMS\Core\Utility\ExtensionManagementUtility::addTcaSelectItem( - 'tt_content', - 'CType', - [ - 'Plain CSS or JavaScript inline', - 't3sbs_assets', - 'cssJsIcon', - ], - 'textmedia', - 'after' -); -\TYPO3\CMS\Core\Utility\ExtensionManagementUtility::addTcaSelectItem( - 'tt_content', - 'CType', - [ - 'Bootstrap Media object', - 't3sbs_mediaobject', - 'content-beside-text-img-left' - ], - 'textmedia', - 'after' -); -\TYPO3\CMS\Core\Utility\ExtensionManagementUtility::addTcaSelectItem( - 'tt_content', - 'CType', - [ - 'Bootstrap Card', - 't3sbs_card', - 'content-card' - ], - 't3sbs_mediaobject', - 'after' -); -\TYPO3\CMS\Core\Utility\ExtensionManagementUtility::addTcaSelectItem( - 'tt_content', - 'CType', - [ - 'Bootstrap Toasts', - 't3sbs_toast', - 'content-widget-calltoaction' - ], - 't3sbs_card', - 'after' -); -\TYPO3\CMS\Core\Utility\ExtensionManagementUtility::addTcaSelectItem( - 'tt_content', - 'CType', - [ - 'Bootstrap Carousel Item (in carousel- or swiper-container)', - 't3sbs_carousel', - 'content-carousel-item-textandimage' - ], - 't3sbs_toast', - 'after' -); -\TYPO3\CMS\Core\Utility\ExtensionManagementUtility::addTcaSelectItem( - 'tt_content', - 'CType', - [ - 'Bootstrap Button', - 't3sbs_button', - 'form-radio-button' - ], - 't3sbs_carousel', - 'after' -); -\TYPO3\CMS\Core\Utility\ExtensionManagementUtility::addTcaSelectItem( - 'tt_content', - 'CType', - [ - 'Fluidtemplate', - 't3sbs_fluidtemplate', - 'actions-template-new' - ], - 't3sbs_button', - 'after' -); -\TYPO3\CMS\Core\Utility\ExtensionManagementUtility::addTcaSelectItem( - 'tt_content', - 'CType', - [ - 'Bootstrap Image Gallery', - 't3sbs_gallery', - 'apps-filetree-folder-media' - ], - 't3sbs_fluidtemplate', - 'after' -); - -/*************** - * New fields in table:tt_content -*/ -$tempContentColumns = [ - 'tx_t3sbootstrap_header_display' => [ - 'label' => 'Display headings', - 'exclude' => 1, - 'config' => [ - 'type' => 'select', - 'renderType' => 'selectSingle', - 'items' => [ - ['none',''], - ['display-1','display-1'], - ['display-2','display-2'], - ['display-3','display-3'], - ['display-4','display-4'], - ['display-5','display-5'], - ['display-6','display-6'] - ], - 'default' => '' - ] - ], - 'tx_t3sbootstrap_header_class' => [ - 'label' => 'Header Extra Class', - 'exclude' => 1, - 'config' => [ - 'type' => 'input', - 'size' => 40, - 'eval' => 'trim', - 'valuePicker' => [ - 'items' => [ - ['m-3 (margin)', 'm-3'], - ['mt-3 (margin-top)', 'mt-3'], - ['mb-3 (margin-bottom)', 'mb-3'], - ['ms-3 (margin-left)', 'ms-3'], - ['me-3 (margin-right)', 'me-3'], - ['mx-3 (margin-left and -right)', 'mx-3'], - ['my-3 (margin-top and -bottom)', 'my-3'], - ['text-primary', 'text-primary'], - ['text-secondary', 'text-secondary'], - ['text-danger', 'text-danger'], - ['text-success', 'text-success'], - ['text-warning', 'text-warning'], - ['text-info', 'text-info'], - ['text-black', 'text-black'], - ['text-white', 'text-white'], - ['text-uppercase', 'text-uppercase'], - ['One line left and right', 'h-line-1'], - ['Two lines left and right', 'h-line-2'] - ], - ], - ], - ], - 'tx_t3sbootstrap_header_fontawesome' => [ - 'label' => 'Font Awesome Icon', - 'exclude' => 1, - 'config' => [ - 'type' => 'input', - 'size' => 40, - 'eval' => 'trim', - 'valuePicker' => [ - 'items' => [ - ['typo3', 'fab fa-typo3'], - ['envelope', 'far fa-envelope'], - ['info-circle', 'fas fa-info-circle'], - ['exclamation-circle', 'fas fa-exclamation-circle'], - ['question-circle', 'fas fa-question-circle'], - ['check-circle', 'fas fa-check-circle'], - ['chevron-circle-left', 'fas fa-chevron-circle-left'], - ['chevron-circle-right', 'fas fa-chevron-circle-right'], - ['youtube', 'fab fa-youtube'], - ['vimeo', 'fab fa-vimeo-square'], - ], - ], - ], - ], - 'tx_t3sbootstrap_header_celink' => [ - 'exclude' => 1, - 'label' => 'Link the entire Content Element', - 'config' => [ - 'type' => 'check' - ] - ], - 'tx_t3sbootstrap_header_position' => [ - 'label' => 'Header Position', - 'exclude' => 1, - 'displayCond' => [ - 'OR' => [ - 'FIELD:CType:=:textmedia', - 'FIELD:CType:=:textpic', - ], - ], - 'config' => [ - 'type' => 'select', - 'renderType' => 'selectSingle', - 'items' => [ - ['Above the image (default)','above'], - ['Beside or under the image','beside'] - ], - 'default' => 'above' - ] - ], - 'tx_t3sbootstrap_header_sectionMenu' => [ - 'label' => 'Section Menu Text', - 'exclude' => 1, - 'config' => [ - 'type' => 'input', - 'size' => 40, - 'eval' => 'trim', - ], - ], - 'tx_t3sbootstrap_padding_sides' => [ - 'label' => 'Padding spacing side', - 'exclude' => 1, - 'displayCond' => 'USER:T3SBS\T3sbootstrap\UserFunction\TcaMatcher->spacing_'.$extconf['spacing'], - 'config' => [ - 'type' => 'select', - 'renderType' => 'selectSingle', - 'items' => [ - ['no padding',''], - ['padding on all 4 sides','blank'], - ['padding-top','t'], - ['padding-bottom','b'], - ['padding-left','s'], - ['padding-right','e'], - ['padding-left and -right','x'], - ['padding-top and -bottom','y'] - ], - 'default' => '' - ] - ], - 'tx_t3sbootstrap_padding_size' => [ - 'label' => 'Padding spacing size', - 'exclude' => 1, - 'displayCond' => 'USER:T3SBS\T3sbootstrap\UserFunction\TcaMatcher->spacing_'.$extconf['spacing'], - 'config' => [ - 'type' => 'select', - 'renderType' => 'selectSingle', - 'items' => [ - ['0','0'], - ['1 (.25 rem)','1'], - ['2 (.5 rem)','2'], - ['3 (1 rem)','3'], - ['4 (1.5 rem)','4'], - ['5 (3 rem)','5'] - ], - 'default' => '' - ] - ], - 'tx_t3sbootstrap_margin_sides' => [ - 'label' => 'Margin spacing side', - 'exclude' => 1, - 'displayCond' => 'USER:T3SBS\T3sbootstrap\UserFunction\TcaMatcher->spacing_'.$extconf['spacing'], - 'config' => [ - 'type' => 'select', - 'renderType' => 'selectSingle', - 'items' => [ - ['no margin',''], - ['margin on all 4 sides','blank'], - ['margin-top','t'], - ['margin-bottom','b'], - ['margin-left','s'], - ['margin-right','e'], - ['margin-left and -right','x'], - ['margin-top and -bottom','y'] - ], - 'default' => '' - ] - ], - 'tx_t3sbootstrap_margin_size' => [ - 'label' => 'Margin spacing size', - 'exclude' => 1, - 'displayCond' => 'USER:T3SBS\T3sbootstrap\UserFunction\TcaMatcher->spacing_'.$extconf['spacing'], - 'config' => [ - 'type' => 'select', - 'renderType' => 'selectSingle', - 'items' => [ - ['0','0'], - ['1 (.25 rem)','1'], - ['2 (.5 rem)','2'], - ['3 (1 rem)','3'], - ['4 (1.5 rem)','4'], - ['5 (3 rem)','5'] - ], - 'default' => '' - ] - ], - 'tx_t3sbootstrap_container' => [ - 'label' => 'Container', - 'exclude' => 1, - 'displayCond' => 'USER:T3SBS\T3sbootstrap\UserFunction\TcaMatcher->container_'.$extconf['container'], - 'config' => [ - 'type' => 'select', - 'renderType' => 'selectSingle', - 'items' => [ - ['no container','0'], - ['container','container'], - ['container-fluid','container-fluid'], - ['container-fluid px-0','container-fluid px-0'], - ['container-sm','container-sm'], - ['container-md','container-md'], - ['container-lg','container-lg'], - ['container-xl','container-xl'], - ['container-xxl','container-xxl'] - ], - 'default' => '' - ] - ], - 'tx_t3sbootstrap_flexform' => [ - 'exclude' => 1, - 'l10n_display' => 'hideDiff', - 'label' => ' ', - 'config' => [ - 'type' => 'flex', - 'ds_pointerField' => 'CType', - 'ds' => [ - 'default' => 'FILE:EXT:t3sbootstrap/Configuration/FlexForms/Bootstrap.xml', - 't3sbs_card' => 'FILE:EXT:t3sbootstrap/Configuration/FlexForms/CardSetting.xml', - 't3sbs_toast' => 'FILE:EXT:t3sbootstrap/Configuration/FlexForms/ToastSetting.xml', - 't3sbs_carousel' => 'FILE:EXT:t3sbootstrap/Configuration/FlexForms/Carousel.xml', - 't3sbs_button' => 'FILE:EXT:t3sbootstrap/Configuration/FlexForms/Button.xml', - 't3sbs_mediaobject' => 'FILE:EXT:t3sbootstrap/Configuration/FlexForms/Mediaobject.xml', - 'table' => 'FILE:EXT:t3sbootstrap/Configuration/FlexForms/Table.xml', - 'two_columns' => 'FILE:EXT:t3sbootstrap/Configuration/FlexForms/Container/TwoColumns.xml', - 'three_columns' => 'FILE:EXT:t3sbootstrap/Configuration/FlexForms/Container/ThreeColumns.xml', - 'four_columns' => 'FILE:EXT:t3sbootstrap/Configuration/FlexForms/Container/FourColumns.xml', - 'six_columns' => 'FILE:EXT:t3sbootstrap/Configuration/FlexForms/Container/SixColumns.xml', - 'card_wrapper' => 'FILE:EXT:t3sbootstrap/Configuration/FlexForms/Container/CardWrapper.xml', - 'button_group' => 'FILE:EXT:t3sbootstrap/Configuration/FlexForms/Container/Buttongroup.xml', - 'autoLayout_row' => 'FILE:EXT:t3sbootstrap/Configuration/FlexForms/Container/AutoLayoutRow.xml', - 'background_wrapper' => 'FILE:EXT:t3sbootstrap/Configuration/FlexForms/Container/BackgroundWrapper.xml', - 'parallax_wrapper' => 'FILE:EXT:t3sbootstrap/Configuration/FlexForms/Container/ParallaxWrapper.xml', - 'container' => 'FILE:EXT:t3sbootstrap/Configuration/FlexForms/Container/Container.xml', - 'carousel_container' => 'FILE:EXT:t3sbootstrap/Configuration/FlexForms/Container/CarouselContainer.xml', - 'collapsible_container' => 'FILE:EXT:t3sbootstrap/Configuration/FlexForms/Container/CollapseContainer.xml', - 'collapsible_accordion' => 'FILE:EXT:t3sbootstrap/Configuration/FlexForms/Container/Collapse.xml', - 'modal' => 'FILE:EXT:t3sbootstrap/Configuration/FlexForms/Container/Modal.xml', - 'tabs_container' => 'FILE:EXT:t3sbootstrap/Configuration/FlexForms/Container/Tabs.xml', - 'tabs_tab' => 'FILE:EXT:t3sbootstrap/Configuration/FlexForms/Container/TabsTab.xml', - 'masonry_wrapper' => 'FILE:EXT:t3sbootstrap/Configuration/FlexForms/Container/MasonryWrapper.xml', - 'swiper_container' => 'FILE:EXT:t3sbootstrap/Configuration/FlexForms/Container/SwiperContainer.xml', - 'toast_container' => 'FILE:EXT:t3sbootstrap/Configuration/FlexForms/Container/ToastContainer.xml', - 'row_columns' => 'FILE:EXT:t3sbootstrap/Configuration/FlexForms/Container/RowColumns.xml', - ] - ] - ], - 'tx_t3sbootstrap_extra_class' => [ - 'label' => 'Extra Class', - 'exclude' => 1, - 'config' => [ - 'type' => 'input', - 'size' => 35 - ] - ], - 'tx_t3sbootstrap_extra_style' => [ - 'label' => 'Extra Style', - 'exclude' => 1, - 'config' => [ - 'type' => 'input', - 'size' => 35 - ] - ], - 'tx_t3sbootstrap_bgcolor' => [ - 'label' => 'Background color', - 'exclude' => 1, - 'displayCond' => 'USER:T3SBS\T3sbootstrap\UserFunction\TcaMatcher->color_'.$extconf['color'], - 'config' => [ - 'type' => 'input', - 'renderType' => 'colorpicker', - 'size' => 20 - ], - ], - 'tx_t3sbootstrap_inTextImgColumns' => [ - 'label' => 'Gallery columns', - 'exclude' => 1, - 'config' => [ - 'type' => 'select', - 'renderType' => 'selectSingle', - 'items' => [ - [1,1], - [2,2], - [3,3], - [4,4], - [5,5], - [6,6], - [7,7], - [8,8], - [9,9], - [10,10], - [11,11], - [12,12] - ], - 'default' => 4 - ] - ], - 'tx_t3sbootstrap_bgopacity' => [ - 'label' => 'Opacity for Background color only', - 'exclude' => 1, - 'displayCond' => 'USER:T3SBS\T3sbootstrap\UserFunction\TcaMatcher->color_'.$extconf['color'], - 'config' => [ - 'type' => 'input', - 'size' => 10, - 'eval' => 'trim,int', - 'range' => [ - 'lower' => 0, - 'upper' => 100, - ], - 'default' => 100, - 'slider' => [ - 'step' => 1, - 'width' => 200, - ], - ], - ], - 'tx_t3sbootstrap_contextcolor' => [ - 'label' => 'Context color', - 'exclude' => 1, - 'displayCond' => 'USER:T3SBS\T3sbootstrap\UserFunction\TcaMatcher->color_'.$extconf['color'], - 'config' => [ - 'type' => 'select', - 'renderType' => 'selectSingle', - 'items' => [ - ['none',''], - ['primary','primary'], - ['secondary', 'secondary'], - ['success','success'], - ['info','info'], - ['warning','warning'], - ['danger','danger'], - ['light','light'], - ['dark','dark'], - ['body','body'], - ['transparent','transparent'], - ['custom 1','customOne'], - ['custom 2','customTwo'] - ], - 'default' => '' - ] - ], - 'tx_t3sbootstrap_textcolor' => [ - 'label' => 'Text color', - 'exclude' => 1, - 'displayCond' => 'USER:T3SBS\T3sbootstrap\UserFunction\TcaMatcher->color_'.$extconf['color'], - 'config' => [ - 'type' => 'select', - 'renderType' => 'selectSingle', - 'items' => [ - ['default',''], - ['white','white'], - ['muted','muted'], - ['secondary', 'secondary'], - ['primary','primary'], - ['success','success'], - ['info','info'], - ['warning','warning'], - ['danger','danger'], - ['light','light'], - ['dark','dark'], - ['body','body'], - ['custom 1','customOne'], - ['custom 2','customTwo'] - ], - 'default' => '' - ] - ], - 'tx_t3sbootstrap_inTextImgRowWidth' => [ - 'label' => 'Gallery row width in %', - 'exclude' => 1, - 'displayCond' => [ - 'OR' => [ - 'FIELD:CType:=:textpic', - 'FIELD:CType:=:textmedia', - 'FIELD:CType:=:t3sbs_mediaobject', - 'FIELD:CType:=:t3sbs_card', - 'FIELD:CType:=:t3sbs_toast', - 'FIELD:CType:=:t3sbs_gallery', - ], - ], - 'config' => [ - 'type' => 'select', - 'renderType' => 'selectSingle', - 'items' => [ - ['auto','auto'], - [25,'w-25'], - [33,'w-33'], - [50,'w-50'], - [66,'w-66'], - [75,'w-75'], - [100,'w-100'], - ['none','none'] - ], - 'default' => 'auto' - ] - ], - 'tx_t3sbootstrap_gutters' => [ - 'label' => 'Horizontal gutters', - 'exclude' => 1, - 'description' => 'INFO: https://getbootstrap.com/docs/5.3/layout/gutters/#horizontal-gutters', - 'displayCond' => [ - 'OR' => [ - 'FIELD:CType:=:image', - 'FIELD:CType:=:textpic', - 'FIELD:CType:=:textmedia', - 'FIELD:CType:=:t3sbs_gallery', - ], - ], - 'config' => [ - 'type' => 'select', - 'renderType' => 'selectSingle', - 'items' => [ - ['gx-0 (no gutters)','gx-0'], - ['gx-1','gx-1'], - ['gx-2','gx-2'], - ['gx-3','gx-3'], - ['gx-4 (default)','gx-4'], - ['gx-5','gx-5'], - ], - 'default' => 'gx-4' - ] - ], - 'tx_t3sbootstrap_verticalgutters' => [ - 'label' => 'Vertical gutters', - 'exclude' => 1, - 'description' => 'INFO: https://getbootstrap.com/docs/5.3/layout/gutters/#vertical-gutters', - 'displayCond' => [ - 'OR' => [ - 'FIELD:CType:=:image', - 'FIELD:CType:=:textpic', - 'FIELD:CType:=:textmedia', - 'FIELD:CType:=:t3sbs_gallery', - ], - ], - 'config' => [ - 'type' => 'select', - 'renderType' => 'selectSingle', - 'items' => [ - ['gy-0 (no gutters)','mb-0'], - ['gy-1','mb-1'], - ['gy-2','mb-2'], - ['gy-3','mb-3'], - ['gy-4 (default)','mb-4'], - ['gy-5','mb-5'], - ], - 'default' => 'mb-4' - ] - ], - 'tx_t3sbootstrap_bordercolor' => [ - 'label' => 'Border color', - 'exclude' => 1, - 'config' => [ - 'type' => 'select', - 'renderType' => 'selectSingle', - 'items' => [ - ['default',''], - ['white','white'], - ['muted','muted'], - ['secondary', 'secondary'], - ['primary','primary'], - ['success','success'], - ['info','info'], - ['warning','warning'], - ['danger','danger'], - ['light','light'], - ['dark','dark'] - ], - 'default' => '' - ] - ], - 'tx_t3sbootstrap_image_ratio' => [ - 'label' => 'Image Ratio', - 'exclude' => 1, - 'displayCond' => [ - 'AND' => [ - 'USER:T3SBS\T3sbootstrap\UserFunction\TcaMatcher->ratio_'.$extconf['ratio'], - 'OR' => [ - 'FIELD:CType:=:textpic', - 'FIELD:CType:=:textmedia', - 'FIELD:CType:=:t3sbs_mediaobject', - 'FIELD:CType:=:t3sbs_card', - 'FIELD:CType:=:t3sbs_toast', - 'FIELD:CType:=:t3sbs_gallery', - ] - ] - ], - 'config' => [ - 'type' => 'select', - 'renderType' => 'selectSingle', - 'items' => [ - ['none',''], - ['1:1','1:1'], - ['2:1','2:1'], - ['4:3','4:3'], - ['3:2','3:2'], - ['16:9','16:9'], - ['21:9','21:9'] - ], - 'default' => '' - ] - ], - 'tx_t3sbootstrap_image_orig' => [ - 'exclude' => 1, - 'label' => 'Use Original Image', - 'displayCond' => [ - 'AND' => [ - 'USER:T3SBS\T3sbootstrap\UserFunction\TcaMatcher->ratio_'.$extconf['ratio'], - 'OR' => [ - 'FIELD:CType:=:textpic', - 'FIELD:CType:=:textmedia', - 'FIELD:CType:=:t3sbs_mediaobject', - 'FIELD:CType:=:t3sbs_card', - 'FIELD:CType:=:t3sbs_toast', - 'FIELD:CType:=:t3sbs_gallery', - ] - ] - ], - 'config' => [ - 'type' => 'check' - ] - ], - 'tx_t3sbootstrap_animateCss' => [ - 'exclude' => 1, - 'l10n_display' => 'hideDiff', - 'label' => 'Animate.css', - 'config' => [ - 'type' => 'select', - 'items' => [ - ['None', '0'], - ['bounce', 'bounce'], - ['flash', 'flash'], - ['pulse', 'pulse'], - ['rubberBand', 'rubberBand'], - ['shake', 'shake'], - ['headShake', 'headShake'], - ['swing', 'swing'], - ['tada', 'tada'], - ['wobble', 'wobble'], - ['jello', 'jello'], - ['bounceIn', 'bounceIn'], - ['bounceInDown', 'bounceInDown'], - ['bounceInLeft', 'bounceInLeft'], - ['bounceInRight', 'bounceInRight'], - ['bounceInUp', 'bounceInUp'], - ['bounceOut', 'bounceOut'], - ['bounceOutDown', 'bounceOutDown'], - ['bounceOutLeft', 'bounceOutLeft'], - ['bounceOutRight', 'bounceOutRight'], - ['bounceOutUp', 'bounceOutUp'], - ['fadeIn', 'fadeIn'], - ['fadeInDown', 'fadeInDown'], - ['fadeInDownBig', 'fadeInDownBig'], - ['fadeInLeft', 'fadeInLeft'], - ['fadeInLeftBig', 'fadeInLeftBig'], - ['fadeInRight', 'fadeInRight'], - ['fadeInRightBig', 'fadeInRightBig'], - ['fadeInUp', 'fadeInUp'], - ['fadeInUpBig', 'fadeInUpBig'], - ['fadeOut', 'fadeOut'], - ['fadeOutDown', 'fadeOutDown'], - ['fadeOutDownBig', 'fadeOutDownBig'], - ['fadeOutLeft', 'fadeOutLeft'], - ['fadeOutLeftBig', 'fadeOutLeftBig'], - ['fadeOutRight', 'fadeOutRight'], - ['fadeOutRightBig', 'fadeOutRightBig'], - ['fadeOutUp', 'fadeOutUp'], - ['fadeOutUpBig', 'fadeOutUpBig'], - ['flipInX', 'flipInX'], - ['flipInY', 'flipInY'], - ['flipOutX', 'flipOutX'], - ['flipOutY', 'flipOutY'], - ['lightSpeedIn', 'lightSpeedIn'], - ['lightSpeedOut', 'lightSpeedOut'], - ['rotateIn', 'rotateIn'], - ['rotateInDownLeft', 'rotateInDownLeft'], - ['rotateInDownRight', 'rotateInDownRight'], - ['rotateInUpLeft', 'rotateInUpLeft'], - ['rotateInUpRight', 'rotateInUpRight'], - ['rotateOut', 'rotateOut'], - ['rotateOutDownLeft', 'rotateOutDownLeft'], - ['rotateOutDownRight', 'rotateOutDownRight'], - ['rotateOutUpLeft', 'rotateOutUpLeft'], - ['rotateOutUpRight', 'rotateOutUpRight'], - ['hinge', 'hinge'], - ['rollIn', 'rollIn'], - ['rollOut', 'rollOut'], - ['zoomIn', 'zoomIn'], - ['zoomInDown', 'zoomInDown'], - ['zoomInLeft', 'zoomInLeft'], - ['zoomInRight', 'zoomInRight'], - ['zoomInUp', 'zoomInUp'], - ['zoomOut', 'zoomOut'], - ['zoomOutDown', 'zoomOutDown'], - ['zoomOutLeft', 'zoomOutLeft'], - ['zoomOutRight', 'zoomOutRight'], - ['zoomOutUp', 'zoomOutUp'], - ['slideInDown', 'slideInDown'], - ['slideInLeft', 'slideInLeft'], - ['slideInRight', 'slideInRight'], - ['slideInUp', 'slideInUp'], - ['slideOutDown', 'slideOutDown'], - ['slideOutLeft', 'slideOutLeft'], - ['slideOutRight', 'slideOutRight'], - ['slideOutUp', 'slideOutUp'], - ], - 'renderType' => 'selectSingle' - ] - ], - 'tx_t3sbootstrap_animateCssRepeat' => [ - 'exclude' => 1, - 'label' => 'Repeat', - 'config' => [ - 'type' => 'check' - ] - ], - 'tx_t3sbootstrap_animateCssDuration' => [ - 'label' => 'Duration in seconds', - 'exclude' => 1, - 'config' => [ - 'type' => 'input', - 'eval' => 'int', - 'size' => 3 - ] - ], - 'tx_t3sbootstrap_animateCssDelay' => [ - 'label' => 'Delay in seconds', - 'exclude' => 1, - 'config' => [ - 'type' => 'input', - 'eval' => 'int', - 'size' => 3 - ] - ], - 'tx_t3sbootstrap_sectionOrder' => [ - 'label' => 'Custom order in section Menu', - 'exclude' => 1, - 'config' => [ - 'type' => 'input', - 'eval' => 'int', - 'size' => 3 - ] - ], - 'tx_t3sbootstrap_bodytext' => [ - 'label' => 'Text bottom ', - 'config' => [ - 'type' => 'text', - 'cols' => 80, - 'rows' => 15, - 'softref' => 'typolink_tag,email[subst],url', - 'search' => [ - 'andWhere' => '{#CType}=\'t3sbs_card\'', - ], - ], - ], - 'tx_t3sbootstrap_cardheader' => [ - 'label' => 'Card Header', - 'config' => [ - 'type' => 'input', - 'size' => 50, - 'max' => 255, - ], - ], - 'tx_t3sbootstrap_cardfooter' => [ - 'label' => 'Card Header', - 'config' => [ - 'type' => 'input', - 'size' => 50, - 'max' => 255, - ], - ], - 'tx_t3sbootstrap_list_item' => [ - 'label' => 'List Group', - 'config' => [ - 'type' => 'inline', - 'foreign_table' => 'tx_t3sbootstrap_list_item_inline', - 'foreign_field' => 'parentid', - 'foreign_table_field' => 'parenttable', - ], - ], - 'tx_t3sbootstrap_upgrade_card' => [ - 'label' => 'Upgrade wizard', - 'config' => [ - 'type' => 'check', - ] - ], -]; - - -\TYPO3\CMS\Core\Utility\ExtensionManagementUtility::addTCAcolumns('tt_content',$tempContentColumns); -unset($tempContentColumns); - - -/*************** - * Assets Inline - */ -$GLOBALS['TCA']['tt_content']['types']['t3sbs_assets'] = [ - 'showitem' => ' - --div--;LLL:EXT:core/Resources/Private/Language/Form/locallang_tabs.xlf:general, - --palette--;;general, - header; Internal title (not displayed), - --div--;Java Script, - bodytext;JavaScript, - pi_flexform; Inline JavaScript Settings, - --div--;CSS, - tx_t3sbootstrap_bodytext;CSS, - --div--;LLL:EXT:core/Resources/Private/Language/Form/locallang_tabs.xlf:access, - --palette--;;hidden - ', - 'columnsOverrides' => [ - 'bodytext' => [ - 'config' => [ - 'format' => 'javascript', - 'renderType' => 't3editor', - 'wrap' => 'off', - ], - ], - 'tx_t3sbootstrap_bodytext' => [ - 'config' => [ - 'format' => 'css', - 'renderType' => 't3editor', - 'wrap' => 'off', - ], - ], - ], -]; - -\TYPO3\CMS\Core\Utility\ExtensionManagementUtility::addPiFlexFormValue( - '*', - 'FILE:EXT:t3sbootstrap/Configuration/FlexForms/AssetInline.xml', - 't3sbs_assets' -); - - -/*************** - * Button - t3sbs_button - */ -$GLOBALS['TCA']['tt_content']['types']['t3sbs_button'] = [ - 'showitem' => ' - --div--;LLL:EXT:core/Resources/Private/Language/Form/locallang_tabs.xlf:general, - --palette--;LLL:EXT:frontend/Resources/Private/Language/locallang_ttc.xlf:palette.general;general, - --palette--;LLL:EXT:frontend/Resources/Private/Language/locallang_ttc.xlf:palette.headers;headers, - --div--;LLL:EXT:frontend/Resources/Private/Language/locallang_ttc.xlf:tabs.appearance, - --palette--;LLL:EXT:frontend/Resources/Private/Language/locallang_ttc.xlf:palette.frames;frames, - --palette--;LLL:EXT:frontend/Resources/Private/Language/locallang_ttc.xlf:palette.appearanceLinks;appearanceLinks, - --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--;LLL:EXT:frontend/Resources/Private/Language/locallang_ttc.xlf:palette.access;access, - --div--;LLL:EXT:core/Resources/Private/Language/Form/locallang_tabs.xlf:categories,categories, - --div--;LLL:EXT:core/Resources/Private/Language/Form/locallang_tabs.xlf:notes,rowDescription, - --div--;LLL:EXT:core/Resources/Private/Language/Form/locallang_tabs.xlf:extended - ' -]; -$GLOBALS['TCA']['tt_content']['types']['t3sbs_button']['columnsOverrides'] = [ - 'header_link' => [ - 'config' => [ - 'eval' => 'trim,required' - ] - ], - 'header' => [ - 'config' => [ - 'eval' => 'trim,required' - ] - ], -]; - - -/*************** - * Carousel item - t3sbs_carousel - */ -$GLOBALS['TCA']['tt_content']['types']['t3sbs_carousel'] = [ - 'showitem' => ' - --div--;LLL:EXT:core/Resources/Private/Language/Form/locallang_tabs.xlf:general, - --palette--;LLL:EXT:frontend/Resources/Private/Language/locallang_ttc.xlf:palette.general;general, - --palette--;LLL:EXT:frontend/Resources/Private/Language/locallang_ttc.xlf:palette.headers;headers, - bodytext;LLL:EXT:frontend/Resources/Private/Language/locallang_ttc.xlf:bodytext_formlabel, - --div--;LLL:EXT:frontend/Resources/Private/Language/locallang_ttc.xlf:tabs.images, - assets, - --div--;LLL:EXT:frontend/Resources/Private/Language/locallang_ttc.xlf:tabs.appearance, - --palette--;LLL:EXT:frontend/Resources/Private/Language/locallang_ttc.xlf:palette.frames;frames,T3SFlex;tx_t3sbootstrap_flexform, - --palette--;LLL:EXT:frontend/Resources/Private/Language/locallang_ttc.xlf:palette.appearanceLinks;appearanceLinks, - --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--;LLL:EXT:frontend/Resources/Private/Language/locallang_ttc.xlf:palette.access;access, - --div--;LLL:EXT:core/Resources/Private/Language/Form/locallang_tabs.xlf:categories, - categories, - --div--;LLL:EXT:core/Resources/Private/Language/Form/locallang_tabs.xlf:notes, - rowDescription, - --div--;LLL:EXT:core/Resources/Private/Language/Form/locallang_tabs.xlf:extended - ', - 'columnsOverrides' => [ - 'bodytext' => [ - 'config' => [ - 'enableRichtext' => true - ] - ], - 'assets' => [ - 'config' => [ - 'maxitems' => 1 - ] - ] - ] -]; - -/*************** - * Media object - t3sbs_mediaobject - */ -$GLOBALS['TCA']['tt_content']['types']['t3sbs_mediaobject'] = $GLOBALS['TCA']['tt_content']['types']['textmedia']; -$GLOBALS['TCA']['tt_content']['types']['t3sbs_mediaobject']['columnsOverrides'] = [ - 'bodytext' => [ - 'config' => [ - 'enableRichtext' => true - ] - ], - 'assets' => [ - 'config' => [ - 'maxitems' => 1 - ] - ] -]; - - -/*************** - * Card - t3sbs_card - */ -$GLOBALS['TCA']['tt_content']['types']['t3sbs_card'] = [ - 'showitem' => ' - --div--;LLL:EXT:core/Resources/Private/Language/Form/locallang_tabs.xlf:general, - --palette--;LLL:EXT:frontend/Resources/Private/Language/locallang_ttc.xlf:palette.general;general, - --palette--;LLL:EXT:frontend/Resources/Private/Language/locallang_ttc.xlf:palette.headers;headers, - --div--;Content,pi_flexform;Card Content, - tx_t3sbootstrap_cardheader;Card Header, - bodytext;Text top, - tx_t3sbootstrap_list_item;List Group, - tx_t3sbootstrap_bodytext;Text bottom, - tx_t3sbootstrap_cardfooter;Card Footer, - --div--;LLL:EXT:frontend/Resources/Private/Language/locallang_ttc.xlf:tabs.media, - assets, - --palette--;LLL:EXT:frontend/Resources/Private/Language/Database.xlf:tt_content.palette.mediaAdjustments;mediaAdjustments, - --palette--;LLL:EXT:frontend/Resources/Private/Language/Database.xlf:tt_content.palette.gallerySettings;gallerySettings, - --palette--;LLL:EXT:frontend/Resources/Private/Language/locallang_ttc.xlf:palette.imagelinks;imagelinks, - --div--;LLL:EXT:frontend/Resources/Private/Language/locallang_ttc.xlf:tabs.appearance, - --palette--;LLL:EXT:frontend/Resources/Private/Language/locallang_ttc.xlf:palette.frames;frames, - --palette--;LLL:EXT:frontend/Resources/Private/Language/locallang_ttc.xlf:palette.appearanceLinks;appearanceLinks, - --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--;LLL:EXT:frontend/Resources/Private/Language/locallang_ttc.xlf:palette.access;access, - --div--;LLL:EXT:core/Resources/Private/Language/Form/locallang_tabs.xlf:categories,categories, - --div--;LLL:EXT:core/Resources/Private/Language/Form/locallang_tabs.xlf:notes,rowDescription, - --div--;LLL:EXT:core/Resources/Private/Language/Form/locallang_tabs.xlf:extended - ', - 'columnsOverrides' => [ - 'bodytext' => [ - 'config' => [ - 'enableRichtext' => true - ] - ], - 'tx_t3sbootstrap_bodytext' => [ - 'config' => [ - 'enableRichtext' => true - ] - ], - 'assets' => [ - 'config' => [ - 'maxitems' => 2 - ] - ] - ] -]; - - -/*************** - * Toasts - t3sbs_toast - */ -$GLOBALS['TCA']['tt_content']['types']['t3sbs_toast'] = $GLOBALS['TCA']['tt_content']['types']['t3sbs_mediaobject']; - - -/*************** - * Bullets - */ -// add extra column -$GLOBALS['TCA']['tt_content']['columns']['bullets_type']['config']['items'][2] = ['BS Inline list', 2]; -$GLOBALS['TCA']['tt_content']['columns']['bullets_type']['config']['items'][3] = ['BS Unstyled list',3]; -$GLOBALS['TCA']['tt_content']['columns']['bullets_type']['config']['items'][4] = ['BS Listengruppen',4]; -$GLOBALS['TCA']['tt_content']['columns']['bullets_type']['config']['items'][5] = ['BS Definition list (use pipe "|")',5]; - - -/*************** - * FluidTemplate - */ -$GLOBALS['TCA']['tt_content']['types']['t3sbs_fluidtemplate']['showitem'] = ' - --palette--;LLL:EXT:frontend/Resources/Private/Language/locallang_ttc.xlf:palette.general;general, - header;Data Variable (optional), - subheader;Path to your Fluid-Template, - --palette--;LLL:EXT:frontend/Resources/Private/Language/locallang_ttc.xlf:palette.appearanceLinks;appearanceLinks, - --div--;LLL:EXT:frontend/Resources/Private/Language/locallang_ttc.xlf:tabs.access, - hidden;LLL:EXT:frontend/Resources/Private/Language/locallang_ttc.xlf:field.default.hidden, - --palette--;LLL:EXT:frontend/Resources/Private/Language/locallang_ttc.xlf:palette.access;access -'; - - -/*************** - * BS Image Gallery - */ -$GLOBALS['TCA']['tt_content']['types']['t3sbs_gallery'] = [ - 'showitem' => ' - --palette--;LLL:EXT:frontend/Resources/Private/Language/locallang_ttc.xlf:palette.general;general, - --palette--;LLL:EXT:frontend/Resources/Private/Language/locallang_ttc.xlf:palette.header;header,rowDescription, - --div--;LLL:EXT:frontend/Resources/Private/Language/locallang_ttc.xlf:tabs.media,assets, - LLL:EXT:frontend/Resources/Private/Language/locallang_ttc.xlf:media.ALT.uploads_formlabel, - --linebreak--, file_collections;LLL:EXT:frontend/Resources/Private/Language/locallang_ttc.xlf:file_collections.ALT.uploads_formlabel, - --linebreak--, filelink_sorting, - --palette--;;mediaAdjustments,imagecols, - --div--;LLL:EXT:frontend/Resources/Private/Language/locallang_ttc.xlf:tabs.appearance, - --palette--;LLL:EXT:frontend/Resources/Private/Language/locallang_ttc.xlf:palette.frames;frames, - --palette--;LLL:EXT:frontend/Resources/Private/Language/locallang_ttc.xlf:palette.appearanceLinks;appearanceLinks, - --div--;LLL:EXT:frontend/Resources/Private/Language/locallang_ttc.xlf:tabs.access, - hidden;LLL:EXT:frontend/Resources/Private/Language/locallang_ttc.xlf:field.default.hidden, - --palette--;LLL:EXT:frontend/Resources/Private/Language/locallang_ttc.xlf:palette.access;access, - --div--;LLL:EXT:frontend/Resources/Private/Language/locallang_ttc.xlf:tabs.extended - ' -]; - - -\TYPO3\CMS\Core\Utility\ExtensionManagementUtility::addFieldsToPalette( - 'tt_content', - 'appearanceLinks', - 'tx_t3sbootstrap_header_sectionMenu', - 'after:sectionIndex' -); - -\TYPO3\CMS\Core\Utility\ExtensionManagementUtility::addFieldsToPalette( - 'tt_content', - 'header', - 'tx_t3sbootstrap_header_celink', - 'after:header_link' -); -\TYPO3\CMS\Core\Utility\ExtensionManagementUtility::addFieldsToPalette( - 'tt_content', - 'headers', - 'tx_t3sbootstrap_header_celink', - 'after:header_link' -); -\TYPO3\CMS\Core\Utility\ExtensionManagementUtility::addFieldsToPalette( - 'tt_content', - 'mediaAdjustments', - '--linebreak--, tx_t3sbootstrap_bordercolor', - 'after:imageborder' -); -\TYPO3\CMS\Core\Utility\ExtensionManagementUtility::addFieldsToPalette( - 'tt_content', - 'imageSettings', - 'tx_t3sbootstrap_image_ratio', - 'after:tx_t3sbootstrap_bordercolor' -); - -\TYPO3\CMS\Core\Utility\ExtensionManagementUtility::addFieldsToPalette( - 'tt_content', - 'imageSettings', - 'tx_t3sbootstrap_image_orig', - 'before:tx_t3sbootstrap_image_ratio' -); -\TYPO3\CMS\Core\Utility\ExtensionManagementUtility::addFieldsToPalette( - 'tt_content', - 'imageSettings', - 'tx_t3sbootstrap_inTextImgRowWidth', - 'after:tx_t3sbootstrap_bordercolor' -); -\TYPO3\CMS\Core\Utility\ExtensionManagementUtility::addFieldsToPalette( - 'tt_content', - 'imageGutters', - 'tx_t3sbootstrap_gutters', - 'after:tx_t3sbootstrap_image_ratio' -); -\TYPO3\CMS\Core\Utility\ExtensionManagementUtility::addFieldsToPalette( - 'tt_content', - 'imageGutters', - 'tx_t3sbootstrap_verticalgutters', - 'after:tx_t3sbootstrap_gutters' -); - -# add palette bootstrap etc -\TYPO3\CMS\Core\Utility\ExtensionManagementUtility::addToAllTCAtypes( - 'tt_content', - '--palette--; ;bsHeaderExtra', - '', - 'after:header' -); -\TYPO3\CMS\Core\Utility\ExtensionManagementUtility::addToAllTCAtypes( - 'tt_content', - '--palette--;Bootstrap Color;bootstrapColor', - '', - 'after:layout' -); -\TYPO3\CMS\Core\Utility\ExtensionManagementUtility::addToAllTCAtypes( - 'tt_content', - '--palette--;Bootstrap Utilities;bootstrap', - '', - 'after:layout' -); -\TYPO3\CMS\Core\Utility\ExtensionManagementUtility::addToAllTCAtypes( - 'tt_content', - '--palette--;Bootstrap Spacing;bootstrapSpacing', - '', - 'after:layout' -); - -\TYPO3\CMS\Core\Utility\ExtensionManagementUtility::addToAllTCAtypes( - 'tt_content', - '--palette--;T3SB Image Settings;imageSettings', - '', - 'after:mediaAdjustments' -); -\TYPO3\CMS\Core\Utility\ExtensionManagementUtility::addToAllTCAtypes( - 'tt_content', - '--palette--;T3SB Image Gutters;imageGutters', - '', - 'after:mediaAdjustments' -); - - -# add palette animate if EXT:content_animations is not loaded -if ( !\TYPO3\CMS\Core\Utility\ExtensionManagementUtility::isLoaded('content_animations') ) { - \TYPO3\CMS\Core\Utility\ExtensionManagementUtility::addToAllTCAtypes( - 'tt_content', - '--palette--;Animation;animate', - '', - 'after:layout' - ); -} - -$GLOBALS['TCA']['tt_content']['palettes']['bsHeaderExtra'] = [ - 'showitem' => 'tx_t3sbootstrap_header_display, tx_t3sbootstrap_header_position, --linebreak--, - tx_t3sbootstrap_header_class, tx_t3sbootstrap_header_fontawesome' -]; - -$GLOBALS['TCA']['tt_content']['palettes']['bootstrapSpacing'] = [ - 'showitem' => 'tx_t3sbootstrap_padding_sides, tx_t3sbootstrap_padding_size, --linebreak--, - tx_t3sbootstrap_margin_sides, tx_t3sbootstrap_margin_size' -]; - -if ($extconf['extraStyle']) { -$GLOBALS['TCA']['tt_content']['palettes']['bootstrap'] = [ - 'showitem' => 'tx_t3sbootstrap_extra_class, - --linebreak--, tx_t3sbootstrap_extra_style, - --linebreak--, tx_t3sbootstrap_container, - --linebreak--, tx_t3sbootstrap_flexform' -]; -} else { -$GLOBALS['TCA']['tt_content']['palettes']['bootstrap'] = [ - 'showitem' => 'tx_t3sbootstrap_extra_class, - --linebreak--, tx_t3sbootstrap_container, - --linebreak--, tx_t3sbootstrap_flexform' -]; -} - -$GLOBALS['TCA']['tt_content']['palettes']['bootstrapColor'] = [ - 'showitem' => 'tx_t3sbootstrap_contextcolor, tx_t3sbootstrap_bgcolor, --linebreak--, tx_t3sbootstrap_bgopacity, tx_t3sbootstrap_textcolor' -]; - -if ($extconf['animateCss']) { - $GLOBALS['TCA']['tt_content']['palettes']['animate'] = [ - 'showitem' => 'tx_t3sbootstrap_animateCss, - tx_t3sbootstrap_animateCssDuration, --linebreak--, - tx_t3sbootstrap_animateCssDelay, - tx_t3sbootstrap_animateCssRepeat' - ]; -} - -if ($extconf['sectionOrder']) { - \TYPO3\CMS\Core\Utility\ExtensionManagementUtility::addFieldsToPalette( - 'tt_content', - 'appearanceLinks', - 'tx_t3sbootstrap_sectionOrder', - 'after:sectionIndex' - ); -} - - -if ( $extconf['preview'] ) { - /* - * Show preview of tt_content elements in page module - */ - $t3sbsContent = ['t3sbs_button', 't3sbs_card', 't3sbs_carousel', 't3sbs_fluidtemplate', 't3sbs_gallery', 't3sbs_mediaobject', 't3sbs_toast']; - foreach ($t3sbsContent as $t3sb) { - $GLOBALS['TCA']['tt_content']['types'][trim($t3sb)]['previewRenderer'] = \T3SBS\T3sbootstrap\Backend\Preview\DefaultPreviewRenderer::class; - } - - $containers = ['two_columns', 'three_columns', 'four_columns', 'six_columns', 'row_columns', 'card_wrapper', 'button_group', 'autoLayout_row', - 'background_wrapper','parallax_wrapper',' container', 'carousel_container', 'collapsible_container', 'collapsible_accordion', - 'modal', 'tabs_container', 'tabs_tab', 'listGroup_wrapper', 'masonry_wrapper', 'swiper_container', 'toast_container']; - foreach ($containers as $container) { - $GLOBALS['TCA']['tt_content']['types'][trim($container)]['previewRenderer'] = \T3SBS\T3sbootstrap\Backend\Preview\T3sbPreviewRenderer::class; - } -} - $GLOBALS['TCA']['tt_content']['types']['list']['subtypes_excludelist']['t3sbootstrap_pi1'] = 'recursive,select_key,pages'; - diff --git a/Configuration/TCA/Overrides/tt_content_container.php b/Configuration/TCA/Overrides/tt_content_container.php new file mode 100644 index 00000000..29f1c70d --- /dev/null +++ b/Configuration/TCA/Overrides/tt_content_container.php @@ -0,0 +1,896 @@ +get('t3sbootstrap'); + +/*************** + * Add new EXT:container CTypes + */ + +# GRID COLUMNS +if (array_key_exists('preview', $extconf) && $extconf['preview'] === '1') { + + \TYPO3\CMS\Core\Utility\GeneralUtility::makeInstance(\B13\Container\Tca\Registry::class)->configureContainer( + ( + new \B13\Container\Tca\ContainerConfiguration( + 'two_columns', + 'LLL:EXT:t3sbootstrap/Resources/Private/Language/locallang_be.xlf:tx_container.twoColumns.title', + 'LLL:EXT:t3sbootstrap/Resources/Private/Language/locallang_be.xlf:tx_container.twoColumns.description', + [ + [ + ['name' => 'LLL:EXT:t3sbootstrap/Resources/Private/Language/locallang_be.xlf:tx_container.anyColumns.colPos.0', 'colPos' => 221], + ['name' => 'LLL:EXT:t3sbootstrap/Resources/Private/Language/locallang_be.xlf:tx_container.anyColumns.colPos.1', 'colPos' => 222] + ] + ] + ) + ) + ->setIcon('EXT:t3sbootstrap/Resources/Public/Icons/Register/ge-2_col.svg') + ->setSaveAndCloseInNewContentElementWizard(false) + ->setBackendTemplate('EXT:t3sbootstrap/Resources/Private/Backend/Preview/Templates/Grid.html') + ->setGridTemplate('EXT:t3sbootstrap/Resources/Private/Backend/Preview/Templates/Grid.html') + ->setGridPartialPaths(['EXT:backend/Resources/Private/Partials/', 'EXT:t3sbootstrap/Resources/Private/Backend/Preview/Partials/']) + ->addGridPartialPath('EXT:t3sbootstrap/Resources/Private/Backend/Preview/Partials/') + ); + \TYPO3\CMS\Core\Utility\GeneralUtility::makeInstance(\B13\Container\Tca\Registry::class)->configureContainer( + ( + new \B13\Container\Tca\ContainerConfiguration( + 'three_columns', + 'LLL:EXT:t3sbootstrap/Resources/Private/Language/locallang_be.xlf:tx_container.threeColumns.title', + 'description', + [ + [ + ['name' => 'LLL:EXT:t3sbootstrap/Resources/Private/Language/locallang_be.xlf:tx_container.anyColumns.colPos.0', 'colPos' => 231], + ['name' => 'LLL:EXT:t3sbootstrap/Resources/Private/Language/locallang_be.xlf:tx_container.anyColumns.colPos.1', 'colPos' => 232], + ['name' => 'LLL:EXT:t3sbootstrap/Resources/Private/Language/locallang_be.xlf:tx_container.anyColumns.colPos.2', 'colPos' => 233] + ] + ] + ) + ) + ->setIcon('EXT:t3sbootstrap/Resources/Public/Icons/Register/ge-3_col.svg') + ->setSaveAndCloseInNewContentElementWizard(false) + ->setBackendTemplate('EXT:t3sbootstrap/Resources/Private/Backend/Preview/Templates/Grid.html') + ->setGridTemplate('EXT:t3sbootstrap/Resources/Private/Backend/Preview/Templates/Grid.html') + ->setGridPartialPaths(['EXT:backend/Resources/Private/Partials/', 'EXT:t3sbootstrap/Resources/Private/Backend/Preview/Partials/']) + ->addGridPartialPath('EXT:t3sbootstrap/Resources/Private/Backend/Preview/Partials/') + ); + \TYPO3\CMS\Core\Utility\GeneralUtility::makeInstance(\B13\Container\Tca\Registry::class)->configureContainer( + ( + new \B13\Container\Tca\ContainerConfiguration( + 'four_columns', + 'LLL:EXT:t3sbootstrap/Resources/Private/Language/locallang_be.xlf:tx_container.fourColumns.title', + 'LLL:EXT:t3sbootstrap/Resources/Private/Language/locallang_be.xlf:tx_container.fourColumns.description', + [ + [ + ['name' => 'LLL:EXT:t3sbootstrap/Resources/Private/Language/locallang_be.xlf:tx_container.anyColumns.colPos.0', 'colPos' => 241], + ['name' => 'LLL:EXT:t3sbootstrap/Resources/Private/Language/locallang_be.xlf:tx_container.anyColumns.colPos.1', 'colPos' => 242], + ['name' => 'LLL:EXT:t3sbootstrap/Resources/Private/Language/locallang_be.xlf:tx_container.anyColumns.colPos.2', 'colPos' => 243], + ['name' => 'LLL:EXT:t3sbootstrap/Resources/Private/Language/locallang_be.xlf:tx_container.anyColumns.colPos.3', 'colPos' => 244] + ] + ] + ) + ) + ->setIcon('EXT:t3sbootstrap/Resources/Public/Icons/Register/ge-4_col.svg') + ->setSaveAndCloseInNewContentElementWizard(false) + ->setBackendTemplate('EXT:t3sbootstrap/Resources/Private/Backend/Preview/Templates/Grid.html') + ->setGridTemplate('EXT:t3sbootstrap/Resources/Private/Backend/Preview/Templates/Grid.html') + ->setGridPartialPaths(['EXT:backend/Resources/Private/Partials/', 'EXT:t3sbootstrap/Resources/Private/Backend/Preview/Partials/']) + ->addGridPartialPath('EXT:t3sbootstrap/Resources/Private/Backend/Preview/Partials/') + ); + \TYPO3\CMS\Core\Utility\GeneralUtility::makeInstance(\B13\Container\Tca\Registry::class)->configureContainer( + ( + new \B13\Container\Tca\ContainerConfiguration( + 'six_columns', + 'LLL:EXT:t3sbootstrap/Resources/Private/Language/locallang_be.xlf:tx_container.sixColumns.title', + 'LLL:EXT:t3sbootstrap/Resources/Private/Language/locallang_be.xlf:tx_container.sixColumns.description', + [ + [ + ['name' => 'LLL:EXT:t3sbootstrap/Resources/Private/Language/locallang_be.xlf:tx_container.anyColumns.colPos.0', 'colPos' => 261], + ['name' => 'LLL:EXT:t3sbootstrap/Resources/Private/Language/locallang_be.xlf:tx_container.anyColumns.colPos.1', 'colPos' => 262], + ['name' => 'LLL:EXT:t3sbootstrap/Resources/Private/Language/locallang_be.xlf:tx_container.anyColumns.colPos.2', 'colPos' => 263], + ['name' => 'LLL:EXT:t3sbootstrap/Resources/Private/Language/locallang_be.xlf:tx_container.anyColumns.colPos.3', 'colPos' => 264], + ['name' => 'LLL:EXT:t3sbootstrap/Resources/Private/Language/locallang_be.xlf:tx_container.anyColumns.colPos.4', 'colPos' => 265], + ['name' => 'LLL:EXT:t3sbootstrap/Resources/Private/Language/locallang_be.xlf:tx_container.anyColumns.colPos.5', 'colPos' => 266] + ] + ] + ) + ) + ->setIcon('EXT:t3sbootstrap/Resources/Public/Icons/Register/ge-4_col.svg') + ->setSaveAndCloseInNewContentElementWizard(false) + ->setBackendTemplate('EXT:t3sbootstrap/Resources/Private/Backend/Preview/Templates/Grid.html') + ->setGridTemplate('EXT:t3sbootstrap/Resources/Private/Backend/Preview/Templates/Grid.html') + ->setGridPartialPaths(['EXT:backend/Resources/Private/Partials/', 'EXT:t3sbootstrap/Resources/Private/Backend/Preview/Partials/']) + ->addGridPartialPath('EXT:t3sbootstrap/Resources/Private/Backend/Preview/Partials/') + ); + # ROW CONTAINER + \TYPO3\CMS\Core\Utility\GeneralUtility::makeInstance(\B13\Container\Tca\Registry::class)->configureContainer( + ( + new \B13\Container\Tca\ContainerConfiguration( + 'row_columns', + 'Row Columns', + 'Use these row columns classes to quickly create basic grid layouts.', + [ + [ + ['name' => 'Row Column', 'colPos' => 290] + ] + ] + ) + ) + ->setIcon('EXT:container/Resources/Public/Icons/container-4col.svg') + ->setSaveAndCloseInNewContentElementWizard(false) + ->setBackendTemplate('EXT:t3sbootstrap/Resources/Private/Backend/Preview/Templates/Grid.html') + ->setGridTemplate('EXT:t3sbootstrap/Resources/Private/Backend/Preview/Templates/Grid.html') + ->setGridPartialPaths(['EXT:backend/Resources/Private/Partials/', 'EXT:t3sbootstrap/Resources/Private/Backend/Preview/Partials/']) + ->addGridPartialPath('EXT:t3sbootstrap/Resources/Private/Backend/Preview/Partials/') + ); + + # CARD WRAPPER + \TYPO3\CMS\Core\Utility\GeneralUtility::makeInstance(\B13\Container\Tca\Registry::class)->configureContainer( + ( + new \B13\Container\Tca\ContainerConfiguration( + 'card_wrapper', + 'Card Wrapper', + 'In addition to styling the content within cards, Bootstrap includes a few options for laying out series of cards.', + [ + [ + ['name' => 'Card Wrapper', 'colPos' => 270, 'allowed' => ['CType' => 't3sbs_card']] + ] + ] + ) + ) + ->setIcon('EXT:t3sbootstrap/Resources/Public/Icons/Register/ge-card-container.svg') + ->setSaveAndCloseInNewContentElementWizard(false) + ->setBackendTemplate('EXT:t3sbootstrap/Resources/Private/Backend/Preview/Templates/Grid.html') + ->setGridTemplate('EXT:t3sbootstrap/Resources/Private/Backend/Preview/Templates/Grid.html') + ->setGridPartialPaths(['EXT:backend/Resources/Private/Partials/', 'EXT:t3sbootstrap/Resources/Private/Backend/Preview/Partials/']) + ->addGridPartialPath('EXT:t3sbootstrap/Resources/Private/Backend/Preview/Partials/') + ); + # BUTTON GROUP + \TYPO3\CMS\Core\Utility\GeneralUtility::makeInstance(\B13\Container\Tca\Registry::class)->configureContainer( + ( + new \B13\Container\Tca\ContainerConfiguration( + 'button_group', + 'Button Group', + 'Group a series of buttons together on a single line with the button group.', + [ + [ + ['name' => 'Button Group', 'colPos' => 271, 'allowed' => ['CType' => 't3sbs_button']] + ] + ] + ) + ) + ->setIcon('EXT:t3sbootstrap/Resources/Public/Icons/Register/bars.svg') + ->setSaveAndCloseInNewContentElementWizard(false) + ->setBackendTemplate('EXT:t3sbootstrap/Resources/Private/Backend/Preview/Templates/Grid.html') + ->setGridTemplate('EXT:t3sbootstrap/Resources/Private/Backend/Preview/Templates/Grid.html') + ->setGridPartialPaths(['EXT:backend/Resources/Private/Partials/', 'EXT:t3sbootstrap/Resources/Private/Backend/Preview/Partials/']) + ->addGridPartialPath('EXT:t3sbootstrap/Resources/Private/Backend/Preview/Partials/') + ); + # AUTO LAYOUT + \TYPO3\CMS\Core\Utility\GeneralUtility::makeInstance(\B13\Container\Tca\Registry::class)->configureContainer( + ( + new \B13\Container\Tca\ContainerConfiguration( + 'autoLayout_row', + 'Auto-layout', + 'Options: "Equal-width", "Setting one column width" or "Variable width content".', + [ + [ + ['name' => 'Auto-layout', 'colPos' => 272] + ] + ] + ) + ) + ->setIcon('EXT:t3sbootstrap/Resources/Public/Icons/Register/ge-card-container.svg') + ->setSaveAndCloseInNewContentElementWizard(false) + ->setBackendTemplate('EXT:t3sbootstrap/Resources/Private/Backend/Preview/Templates/Grid.html') + ->setGridTemplate('EXT:t3sbootstrap/Resources/Private/Backend/Preview/Templates/Grid.html') + ->setGridPartialPaths(['EXT:backend/Resources/Private/Partials/', 'EXT:t3sbootstrap/Resources/Private/Backend/Preview/Partials/']) + ->addGridPartialPath('EXT:t3sbootstrap/Resources/Private/Backend/Preview/Partials/') + ); + # BACKGROUND WRAPPER + \TYPO3\CMS\Core\Utility\GeneralUtility::makeInstance(\B13\Container\Tca\Registry::class)->configureContainer( + ( + new \B13\Container\Tca\ContainerConfiguration( + 'background_wrapper', + 'Background Wrapper', + 'Options: "Full width container with background color -image or -Youtube vido.', + [ + [ + ['name' => 'Background Wrapper', 'colPos' => 273] + ] + ] + ) + ) + ->setIcon('EXT:t3sbootstrap/Resources/Public/Icons/Register/ge-background_wrapper.svg') + ->setSaveAndCloseInNewContentElementWizard(false) + ->setBackendTemplate('EXT:t3sbootstrap/Resources/Private/Backend/Preview/Templates/Grid.html') + ->setGridTemplate('EXT:t3sbootstrap/Resources/Private/Backend/Preview/Templates/Grid.html') + ->setGridPartialPaths(['EXT:backend/Resources/Private/Partials/', 'EXT:t3sbootstrap/Resources/Private/Backend/Preview/Partials/']) + ->addGridPartialPath('EXT:t3sbootstrap/Resources/Private/Backend/Preview/Partials/') + ); + # PARALLAX WRAPPER + \TYPO3\CMS\Core\Utility\GeneralUtility::makeInstance(\B13\Container\Tca\Registry::class)->configureContainer( + ( + new \B13\Container\Tca\ContainerConfiguration( + 'parallax_wrapper', + 'Parallax Wrapper', + 'LLL:EXT:t3sbootstrap/Resources/Private/Language/locallang_be.xlf:tx_container.parallaxWrapper.description', + [ + [ + ['name' => 'Parallax Wrapper', 'colPos' => 274] + ] + ] + ) + ) + ->setIcon('EXT:t3sbootstrap/Resources/Public/Icons/Register/ge-parallax_wrapper.svg') + ->setSaveAndCloseInNewContentElementWizard(false) + ->setBackendTemplate('EXT:t3sbootstrap/Resources/Private/Backend/Preview/Templates/Grid.html') + ->setGridTemplate('EXT:t3sbootstrap/Resources/Private/Backend/Preview/Templates/Grid.html') + ->setGridPartialPaths(['EXT:backend/Resources/Private/Partials/', 'EXT:t3sbootstrap/Resources/Private/Backend/Preview/Partials/']) + ->addGridPartialPath('EXT:t3sbootstrap/Resources/Private/Backend/Preview/Partials/') + ); + # CONTAINER + \TYPO3\CMS\Core\Utility\GeneralUtility::makeInstance(\B13\Container\Tca\Registry::class)->configureContainer( + ( + new \B13\Container\Tca\ContainerConfiguration( + 'container', + 'Container', + 'Bootstrap .container', + [ + [ + ['name' => 'Container', 'colPos' => 275] + ] + ] + ) + ) + ->setIcon('EXT:t3sbootstrap/Resources/Public/Icons/Register/ge-card-container.svg') + ->setSaveAndCloseInNewContentElementWizard(false) + ->setBackendTemplate('EXT:t3sbootstrap/Resources/Private/Backend/Preview/Templates/Grid.html') + ->setGridTemplate('EXT:t3sbootstrap/Resources/Private/Backend/Preview/Templates/Grid.html') + ->setGridPartialPaths(['EXT:backend/Resources/Private/Partials/', 'EXT:t3sbootstrap/Resources/Private/Backend/Preview/Partials/']) + ->addGridPartialPath('EXT:t3sbootstrap/Resources/Private/Backend/Preview/Partials/') + ); + # CAROUSEL CONTAINER + \TYPO3\CMS\Core\Utility\GeneralUtility::makeInstance(\B13\Container\Tca\Registry::class)->configureContainer( + ( + new \B13\Container\Tca\ContainerConfiguration( + 'carousel_container', + 'Carousel Container', + 'A container for several Carousel slides (CE:t3sbs_carousel)', + [ + [ + ['name' => 'Carousel Container', 'colPos' => 276, 'allowed' => ['CType' => 't3sbs_carousel']] + ] + ] + ) + ) + ->setIcon('EXT:t3sbootstrap/Resources/Public/Icons/Register/ge-carousel-container.svg') + ->setSaveAndCloseInNewContentElementWizard(false) + ->setBackendTemplate('EXT:t3sbootstrap/Resources/Private/Backend/Preview/Templates/Grid.html') + ->setGridTemplate('EXT:t3sbootstrap/Resources/Private/Backend/Preview/Templates/Grid.html') + ->setGridPartialPaths(['EXT:backend/Resources/Private/Partials/', 'EXT:t3sbootstrap/Resources/Private/Backend/Preview/Partials/']) + ->addGridPartialPath('EXT:t3sbootstrap/Resources/Private/Backend/Preview/Partials/') + ); + # COLLAPSIBLE CONTAINER + \TYPO3\CMS\Core\Utility\GeneralUtility::makeInstance(\B13\Container\Tca\Registry::class)->configureContainer( + ( + new \B13\Container\Tca\ContainerConfiguration( + 'collapsible_container', + 'LLL:EXT:t3sbootstrap/Resources/Private/Language/locallang_be.xlf:tx_container.collapsibleContainer.title', + 'LLL:EXT:t3sbootstrap/Resources/Private/Language/locallang_be.xlf:tx_container.collapsibleContainer.description', + [ + [ + ['name' => 'Collapsible Container', 'colPos' => 277, 'allowed' => ['CType' => 'collapsible_accordion']] + ] + ] + ) + ) + ->setIcon('EXT:t3sbootstrap/Resources/Public/Icons/Register/ge-accordion-container.svg') + ->setSaveAndCloseInNewContentElementWizard(false) + ->setBackendTemplate('EXT:t3sbootstrap/Resources/Private/Backend/Preview/Templates/Grid.html') + ->setGridTemplate('EXT:t3sbootstrap/Resources/Private/Backend/Preview/Templates/Grid.html') + ->setGridPartialPaths(['EXT:backend/Resources/Private/Partials/', 'EXT:t3sbootstrap/Resources/Private/Backend/Preview/Partials/']) + ->addGridPartialPath('EXT:t3sbootstrap/Resources/Private/Backend/Preview/Partials/') + ); + # COLLAPSIBLE ELEMENT + \TYPO3\CMS\Core\Utility\GeneralUtility::makeInstance(\B13\Container\Tca\Registry::class)->configureContainer( + ( + new \B13\Container\Tca\ContainerConfiguration( + 'collapsible_accordion', + 'LLL:EXT:t3sbootstrap/Resources/Private/Language/locallang_be.xlf:tx_container.collapsibleElement.title', + 'LLL:EXT:t3sbootstrap/Resources/Private/Language/locallang_be.xlf:tx_container.collapsibleElement.description', + [ + [ + ['name' => 'Collapsible Element', 'colPos' => 278] + ] + ] + ) + ) + ->setIcon('EXT:t3sbootstrap/Resources/Public/Icons/Register/ge-accordion-element.svg') + ->setSaveAndCloseInNewContentElementWizard(false) + ->setBackendTemplate('EXT:t3sbootstrap/Resources/Private/Backend/Preview/Templates/Grid.html') + ->setGridTemplate('EXT:t3sbootstrap/Resources/Private/Backend/Preview/Templates/Grid.html') + ->setGridPartialPaths(['EXT:backend/Resources/Private/Partials/', 'EXT:t3sbootstrap/Resources/Private/Backend/Preview/Partials/']) + ->addGridPartialPath('EXT:t3sbootstrap/Resources/Private/Backend/Preview/Partials/') + ); + # MODAL CONTAINER + \TYPO3\CMS\Core\Utility\GeneralUtility::makeInstance(\B13\Container\Tca\Registry::class)->configureContainer( + ( + new \B13\Container\Tca\ContainerConfiguration( + 'modal', + 'LLL:EXT:t3sbootstrap/Resources/Private/Language/locallang_be.xlf:tx_container.modal.title', + 'LLL:EXT:t3sbootstrap/Resources/Private/Language/locallang_be.xlf:tx_container.modal.description', + [ + [ + ['name' => 'Modal Container', 'colPos' => 279] + ] + ] + ) + ) + ->setIcon('EXT:t3sbootstrap/Resources/Public/Icons/Register/ge-modal.svg') + ->setSaveAndCloseInNewContentElementWizard(false) + ->setBackendTemplate('EXT:t3sbootstrap/Resources/Private/Backend/Preview/Templates/Grid.html') + ->setGridTemplate('EXT:t3sbootstrap/Resources/Private/Backend/Preview/Templates/Grid.html') + ->setGridPartialPaths(['EXT:backend/Resources/Private/Partials/', 'EXT:t3sbootstrap/Resources/Private/Backend/Preview/Partials/']) + ->addGridPartialPath('EXT:t3sbootstrap/Resources/Private/Backend/Preview/Partials/') + ); + # TAB CONTAINER + \TYPO3\CMS\Core\Utility\GeneralUtility::makeInstance(\B13\Container\Tca\Registry::class)->configureContainer( + ( + new \B13\Container\Tca\ContainerConfiguration( + 'tabs_container', + 'LLL:EXT:t3sbootstrap/Resources/Private/Language/locallang_be.xlf:tx_container.tabContainer.title', + 'LLL:EXT:t3sbootstrap/Resources/Private/Language/locallang_be.xlf:tx_container.tabContainer.description', + [ + [ + ['name' => 'Tabs Container', 'colPos' => 280, 'allowed' => ['CType' => 'tabs_tab']] + ] + ] + ) + ) + ->setIcon('EXT:t3sbootstrap/Resources/Public/Icons/Register/ge-tab-container.svg') + ->setSaveAndCloseInNewContentElementWizard(false) + ->setBackendTemplate('EXT:t3sbootstrap/Resources/Private/Backend/Preview/Templates/Grid.html') + ->setGridTemplate('EXT:t3sbootstrap/Resources/Private/Backend/Preview/Templates/Grid.html') + ->setGridPartialPaths(['EXT:backend/Resources/Private/Partials/', 'EXT:t3sbootstrap/Resources/Private/Backend/Preview/Partials/']) + ->addGridPartialPath('EXT:t3sbootstrap/Resources/Private/Backend/Preview/Partials/') + ); + # TAB + \TYPO3\CMS\Core\Utility\GeneralUtility::makeInstance(\B13\Container\Tca\Registry::class)->configureContainer( + ( + new \B13\Container\Tca\ContainerConfiguration( + 'tabs_tab', + 'LLL:EXT:t3sbootstrap/Resources/Private/Language/locallang_be.xlf:tx_container.tabElement.title', + 'LLL:EXT:t3sbootstrap/Resources/Private/Language/locallang_be.xlf:tx_container.tabElement.description', + [ + [ + ['name' => 'Tab', 'colPos' => 281] + ] + ] + ) + ) + ->setIcon('EXT:t3sbootstrap/Resources/Public/Icons/Register/ge-tab-container.svg') + ->setSaveAndCloseInNewContentElementWizard(false) + ->setBackendTemplate('EXT:t3sbootstrap/Resources/Private/Backend/Preview/Templates/Grid.html') + ->setGridTemplate('EXT:t3sbootstrap/Resources/Private/Backend/Preview/Templates/Grid.html') + ->setGridPartialPaths(['EXT:backend/Resources/Private/Partials/', 'EXT:t3sbootstrap/Resources/Private/Backend/Preview/Partials/']) + ->addGridPartialPath('EXT:t3sbootstrap/Resources/Private/Backend/Preview/Partials/') + ); + # LIST GROUP WRAPPER + \TYPO3\CMS\Core\Utility\GeneralUtility::makeInstance(\B13\Container\Tca\Registry::class)->configureContainer( + ( + new \B13\Container\Tca\ContainerConfiguration( + 'listGroup_wrapper', + 'List Group Wrapper', + 'Shows other CEs in a bootstrap list group. Nice with "Link the entire Content Element"', + [ + [ + ['name' => 'List Group Wrapper', 'colPos' => 282] + ] + ] + ) + ) + ->setIcon('EXT:t3sbootstrap/Resources/Public/Icons/Register/ge-accordion-container.svg') + ->setSaveAndCloseInNewContentElementWizard(false) + ->setBackendTemplate('EXT:t3sbootstrap/Resources/Private/Backend/Preview/Templates/Grid.html') + ->setGridTemplate('EXT:t3sbootstrap/Resources/Private/Backend/Preview/Templates/Grid.html') + ->setGridPartialPaths(['EXT:backend/Resources/Private/Partials/', 'EXT:t3sbootstrap/Resources/Private/Backend/Preview/Partials/']) + ->addGridPartialPath('EXT:t3sbootstrap/Resources/Private/Backend/Preview/Partials/') + ); + # MASONRY + \TYPO3\CMS\Core\Utility\GeneralUtility::makeInstance(\B13\Container\Tca\Registry::class)->configureContainer( + ( + new \B13\Container\Tca\ContainerConfiguration( + 'masonry_wrapper', + 'Masonry Wrapper', + 'Masonry with the Bootstrap grid system', + [ + [ + ['name' => 'Masonry', 'colPos' => 283] + ] + ] + ) + ) + ->setIcon('EXT:t3sbootstrap/Resources/Public/Icons/Register/ge-card-container.svg') + ->setSaveAndCloseInNewContentElementWizard(false) + ->setBackendTemplate('EXT:t3sbootstrap/Resources/Private/Backend/Preview/Templates/Grid.html') + ->setGridTemplate('EXT:t3sbootstrap/Resources/Private/Backend/Preview/Templates/Grid.html') + ->setGridPartialPaths(['EXT:backend/Resources/Private/Partials/', 'EXT:t3sbootstrap/Resources/Private/Backend/Preview/Partials/']) + ->addGridPartialPath('EXT:t3sbootstrap/Resources/Private/Backend/Preview/Partials/') + ); + # SWIPE CONTAINER + \TYPO3\CMS\Core\Utility\GeneralUtility::makeInstance(\B13\Container\Tca\Registry::class)->configureContainer( + ( + new \B13\Container\Tca\ContainerConfiguration( + 'swiper_container', + 'Swiper Container', + 'A container for several Swipe slides (CE:t3sbs_carousel)', + [ + [ + ['name' => 'Swipe Container', 'colPos' => 300, 'allowed' => ['CType' => 't3sbs_carousel']] + ] + ] + ) + ) + ->setIcon('EXT:t3sbootstrap/Resources/Public/Icons/Register/ge-carousel-container.svg') + ->setSaveAndCloseInNewContentElementWizard(false) + ->setBackendTemplate('EXT:t3sbootstrap/Resources/Private/Backend/Preview/Templates/Grid.html') + ->setGridTemplate('EXT:t3sbootstrap/Resources/Private/Backend/Preview/Templates/Grid.html') + ->setGridPartialPaths(['EXT:backend/Resources/Private/Partials/', 'EXT:t3sbootstrap/Resources/Private/Backend/Preview/Partials/']) + ->addGridPartialPath('EXT:t3sbootstrap/Resources/Private/Backend/Preview/Partials/') + ); + # TOAST CONTAINER + \TYPO3\CMS\Core\Utility\GeneralUtility::makeInstance(\B13\Container\Tca\Registry::class)->configureContainer( + ( + new \B13\Container\Tca\ContainerConfiguration( + 'toast_container', + 'Toast Container', + 'A container for several Toast content', + [ + [ + ['name' => 'Toast Container', 'colPos' => 310] + ] + ] + ) + ) + ->setIcon('EXT:t3sbootstrap/Resources/Public/Icons/Register/ge-modal.svg') + ->setSaveAndCloseInNewContentElementWizard(false) + ->setBackendTemplate('EXT:t3sbootstrap/Resources/Private/Backend/Preview/Templates/Grid.html') + ->setGridTemplate('EXT:t3sbootstrap/Resources/Private/Backend/Preview/Templates/Grid.html') + ->setGridPartialPaths(['EXT:backend/Resources/Private/Partials/', 'EXT:t3sbootstrap/Resources/Private/Backend/Preview/Partials/']) + ->addGridPartialPath('EXT:t3sbootstrap/Resources/Private/Backend/Preview/Partials/') + ); + +} else { + + \TYPO3\CMS\Core\Utility\GeneralUtility::makeInstance(\B13\Container\Tca\Registry::class)->configureContainer( + ( + new \B13\Container\Tca\ContainerConfiguration( + 'two_columns', + 'LLL:EXT:t3sbootstrap/Resources/Private/Language/locallang_be.xlf:tx_container.twoColumns.title', + 'LLL:EXT:t3sbootstrap/Resources/Private/Language/locallang_be.xlf:tx_container.twoColumns.description', + [ + [ + ['name' => 'LLL:EXT:t3sbootstrap/Resources/Private/Language/locallang_be.xlf:tx_container.anyColumns.colPos.0', 'colPos' => 221], + ['name' => 'LLL:EXT:t3sbootstrap/Resources/Private/Language/locallang_be.xlf:tx_container.anyColumns.colPos.1', 'colPos' => 222] + ] + ] + ) + ) + ->setIcon('EXT:t3sbootstrap/Resources/Public/Icons/Register/ge-2_col.svg') + ->setSaveAndCloseInNewContentElementWizard(false) + ); + \TYPO3\CMS\Core\Utility\GeneralUtility::makeInstance(\B13\Container\Tca\Registry::class)->configureContainer( + ( + new \B13\Container\Tca\ContainerConfiguration( + 'three_columns', + 'LLL:EXT:t3sbootstrap/Resources/Private/Language/locallang_be.xlf:tx_container.threeColumns.title', + 'description', + [ + [ + ['name' => 'LLL:EXT:t3sbootstrap/Resources/Private/Language/locallang_be.xlf:tx_container.anyColumns.colPos.0', 'colPos' => 231], + ['name' => 'LLL:EXT:t3sbootstrap/Resources/Private/Language/locallang_be.xlf:tx_container.anyColumns.colPos.1', 'colPos' => 232], + ['name' => 'LLL:EXT:t3sbootstrap/Resources/Private/Language/locallang_be.xlf:tx_container.anyColumns.colPos.2', 'colPos' => 233] + ] + ] + ) + ) + ->setIcon('EXT:t3sbootstrap/Resources/Public/Icons/Register/ge-3_col.svg') + ->setSaveAndCloseInNewContentElementWizard(false) + ); + \TYPO3\CMS\Core\Utility\GeneralUtility::makeInstance(\B13\Container\Tca\Registry::class)->configureContainer( + ( + new \B13\Container\Tca\ContainerConfiguration( + 'four_columns', + 'LLL:EXT:t3sbootstrap/Resources/Private/Language/locallang_be.xlf:tx_container.fourColumns.title', + 'LLL:EXT:t3sbootstrap/Resources/Private/Language/locallang_be.xlf:tx_container.fourColumns.description', + [ + [ + ['name' => 'LLL:EXT:t3sbootstrap/Resources/Private/Language/locallang_be.xlf:tx_container.anyColumns.colPos.0', 'colPos' => 241], + ['name' => 'LLL:EXT:t3sbootstrap/Resources/Private/Language/locallang_be.xlf:tx_container.anyColumns.colPos.1', 'colPos' => 242], + ['name' => 'LLL:EXT:t3sbootstrap/Resources/Private/Language/locallang_be.xlf:tx_container.anyColumns.colPos.2', 'colPos' => 243], + ['name' => 'LLL:EXT:t3sbootstrap/Resources/Private/Language/locallang_be.xlf:tx_container.anyColumns.colPos.3', 'colPos' => 244] + ] + ] + ) + ) + ->setIcon('EXT:t3sbootstrap/Resources/Public/Icons/Register/ge-4_col.svg') + ->setSaveAndCloseInNewContentElementWizard(false) + ); + \TYPO3\CMS\Core\Utility\GeneralUtility::makeInstance(\B13\Container\Tca\Registry::class)->configureContainer( + ( + new \B13\Container\Tca\ContainerConfiguration( + 'six_columns', + 'LLL:EXT:t3sbootstrap/Resources/Private/Language/locallang_be.xlf:tx_container.sixColumns.title', + 'LLL:EXT:t3sbootstrap/Resources/Private/Language/locallang_be.xlf:tx_container.sixColumns.description', + [ + [ + ['name' => 'LLL:EXT:t3sbootstrap/Resources/Private/Language/locallang_be.xlf:tx_container.anyColumns.colPos.0', 'colPos' => 261], + ['name' => 'LLL:EXT:t3sbootstrap/Resources/Private/Language/locallang_be.xlf:tx_container.anyColumns.colPos.1', 'colPos' => 262], + ['name' => 'LLL:EXT:t3sbootstrap/Resources/Private/Language/locallang_be.xlf:tx_container.anyColumns.colPos.2', 'colPos' => 263], + ['name' => 'LLL:EXT:t3sbootstrap/Resources/Private/Language/locallang_be.xlf:tx_container.anyColumns.colPos.3', 'colPos' => 264], + ['name' => 'LLL:EXT:t3sbootstrap/Resources/Private/Language/locallang_be.xlf:tx_container.anyColumns.colPos.4', 'colPos' => 265], + ['name' => 'LLL:EXT:t3sbootstrap/Resources/Private/Language/locallang_be.xlf:tx_container.anyColumns.colPos.5', 'colPos' => 266] + ] + ] + ) + ) + ->setIcon('EXT:t3sbootstrap/Resources/Public/Icons/Register/ge-4_col.svg') + ->setSaveAndCloseInNewContentElementWizard(false) + ); + # ROW CONTAINER + \TYPO3\CMS\Core\Utility\GeneralUtility::makeInstance(\B13\Container\Tca\Registry::class)->configureContainer( + ( + new \B13\Container\Tca\ContainerConfiguration( + 'row_columns', + 'Row Columns', + 'Use these row columns classes to quickly create basic grid layouts.', + [ + [ + ['name' => 'Row Column', 'colPos' => 290] + ] + ] + ) + ) + ->setIcon('EXT:container/Resources/Public/Icons/container-4col.svg') + ->setSaveAndCloseInNewContentElementWizard(false) + ); + # CARD WRAPPER + \TYPO3\CMS\Core\Utility\GeneralUtility::makeInstance(\B13\Container\Tca\Registry::class)->configureContainer( + ( + new \B13\Container\Tca\ContainerConfiguration( + 'card_wrapper', + 'Card Wrapper', + 'In addition to styling the content within cards, Bootstrap includes a few options for laying out series of cards.', + [ + [ + ['name' => 'Card Wrapper', 'colPos' => 270, 'allowed' => ['CType' => 't3sbs_card']] + ] + ] + ) + ) + ->setIcon('EXT:t3sbootstrap/Resources/Public/Icons/Register/ge-card-container.svg') + ->setSaveAndCloseInNewContentElementWizard(false) + ); + # BUTTON GROUP + \TYPO3\CMS\Core\Utility\GeneralUtility::makeInstance(\B13\Container\Tca\Registry::class)->configureContainer( + ( + new \B13\Container\Tca\ContainerConfiguration( + 'button_group', + 'Button Group', + 'Group a series of buttons together on a single line with the button group.', + [ + [ + ['name' => 'Button Group', 'colPos' => 271, 'allowed' => ['CType' => 't3sbs_button']] + ] + ] + ) + ) + ->setIcon('EXT:t3sbootstrap/Resources/Public/Icons/Register/bars.svg') + ->setSaveAndCloseInNewContentElementWizard(false) + ); + # AUTO LAYOUT + \TYPO3\CMS\Core\Utility\GeneralUtility::makeInstance(\B13\Container\Tca\Registry::class)->configureContainer( + ( + new \B13\Container\Tca\ContainerConfiguration( + 'autoLayout_row', + 'Auto-layout', + 'Options: "Equal-width", "Setting one column width" or "Variable width content".', + [ + [ + ['name' => 'Auto-layout', 'colPos' => 272] + ] + ] + ) + ) + ->setIcon('EXT:t3sbootstrap/Resources/Public/Icons/Register/ge-card-container.svg') + ->setSaveAndCloseInNewContentElementWizard(false) + ); + # BACKGROUND WRAPPER + \TYPO3\CMS\Core\Utility\GeneralUtility::makeInstance(\B13\Container\Tca\Registry::class)->configureContainer( + ( + new \B13\Container\Tca\ContainerConfiguration( + 'background_wrapper', + 'Background Wrapper', + 'Options: "Full width container with background color -image or -Youtube vido.', + [ + [ + ['name' => 'Background Wrapper', 'colPos' => 273] + ] + ] + ) + ) + ->setIcon('EXT:t3sbootstrap/Resources/Public/Icons/Register/ge-background_wrapper.svg') + ->setSaveAndCloseInNewContentElementWizard(false) + ); + # PARALLAX WRAPPER + \TYPO3\CMS\Core\Utility\GeneralUtility::makeInstance(\B13\Container\Tca\Registry::class)->configureContainer( + ( + new \B13\Container\Tca\ContainerConfiguration( + 'parallax_wrapper', + 'Parallax Wrapper', + 'LLL:EXT:t3sbootstrap/Resources/Private/Language/locallang_be.xlf:tx_container.parallaxWrapper.description', + [ + [ + ['name' => 'Parallax Wrapper', 'colPos' => 274] + ] + ] + ) + ) + ->setIcon('EXT:t3sbootstrap/Resources/Public/Icons/Register/ge-parallax_wrapper.svg') + ->setSaveAndCloseInNewContentElementWizard(false) + ); + # CONTAINER + \TYPO3\CMS\Core\Utility\GeneralUtility::makeInstance(\B13\Container\Tca\Registry::class)->configureContainer( + ( + new \B13\Container\Tca\ContainerConfiguration( + 'container', + 'Container', + 'Bootstrap .container', + [ + [ + ['name' => 'Container', 'colPos' => 275] + ] + ] + ) + ) + ->setIcon('EXT:t3sbootstrap/Resources/Public/Icons/Register/ge-card-container.svg') + ->setSaveAndCloseInNewContentElementWizard(false) + ); + # CAROUSEL CONTAINER + \TYPO3\CMS\Core\Utility\GeneralUtility::makeInstance(\B13\Container\Tca\Registry::class)->configureContainer( + ( + new \B13\Container\Tca\ContainerConfiguration( + 'carousel_container', + 'Carousel Container', + 'A container for several Carousel slides (CE:t3sbs_carousel)', + [ + [ + ['name' => 'Carousel Container', 'colPos' => 276, 'allowed' => ['CType' => 't3sbs_carousel']] + ] + ] + ) + ) + ->setIcon('EXT:t3sbootstrap/Resources/Public/Icons/Register/ge-carousel-container.svg') + ->setSaveAndCloseInNewContentElementWizard(false) + ); + # COLLAPSIBLE CONTAINER + \TYPO3\CMS\Core\Utility\GeneralUtility::makeInstance(\B13\Container\Tca\Registry::class)->configureContainer( + ( + new \B13\Container\Tca\ContainerConfiguration( + 'collapsible_container', + 'LLL:EXT:t3sbootstrap/Resources/Private/Language/locallang_be.xlf:tx_container.collapsibleContainer.title', + 'LLL:EXT:t3sbootstrap/Resources/Private/Language/locallang_be.xlf:tx_container.collapsibleContainer.description', + [ + [ + ['name' => 'Collapsible Container', 'colPos' => 277, 'allowed' => ['CType' => 'collapsible_accordion']] + ] + ] + ) + ) + ->setIcon('EXT:t3sbootstrap/Resources/Public/Icons/Register/ge-accordion-container.svg') + ->setSaveAndCloseInNewContentElementWizard(false) + ); + # COLLAPSIBLE ELEMENT + \TYPO3\CMS\Core\Utility\GeneralUtility::makeInstance(\B13\Container\Tca\Registry::class)->configureContainer( + ( + new \B13\Container\Tca\ContainerConfiguration( + 'collapsible_accordion', + 'LLL:EXT:t3sbootstrap/Resources/Private/Language/locallang_be.xlf:tx_container.collapsibleElement.title', + 'LLL:EXT:t3sbootstrap/Resources/Private/Language/locallang_be.xlf:tx_container.collapsibleElement.description', + [ + [ + ['name' => 'Collapsible Element', 'colPos' => 278] + ] + ] + ) + ) + ->setIcon('EXT:t3sbootstrap/Resources/Public/Icons/Register/ge-accordion-element.svg') + ->setSaveAndCloseInNewContentElementWizard(false) + ); + # MODAL CONTAINER + \TYPO3\CMS\Core\Utility\GeneralUtility::makeInstance(\B13\Container\Tca\Registry::class)->configureContainer( + ( + new \B13\Container\Tca\ContainerConfiguration( + 'modal', + 'LLL:EXT:t3sbootstrap/Resources/Private/Language/locallang_be.xlf:tx_container.modal.title', + 'LLL:EXT:t3sbootstrap/Resources/Private/Language/locallang_be.xlf:tx_container.modal.description', + [ + [ + ['name' => 'Modal Container', 'colPos' => 279] + ] + ] + ) + ) + ->setIcon('EXT:t3sbootstrap/Resources/Public/Icons/Register/ge-modal.svg') + ->setSaveAndCloseInNewContentElementWizard(false) + ); + # TAB CONTAINER + \TYPO3\CMS\Core\Utility\GeneralUtility::makeInstance(\B13\Container\Tca\Registry::class)->configureContainer( + ( + new \B13\Container\Tca\ContainerConfiguration( + 'tabs_container', + 'LLL:EXT:t3sbootstrap/Resources/Private/Language/locallang_be.xlf:tx_container.tabContainer.title', + 'LLL:EXT:t3sbootstrap/Resources/Private/Language/locallang_be.xlf:tx_container.tabContainer.description', + [ + [ + ['name' => 'Tabs Container', 'colPos' => 280, 'allowed' => ['CType' => 'tabs_tab']] + ] + ] + ) + ) + ->setIcon('EXT:t3sbootstrap/Resources/Public/Icons/Register/ge-tab-container.svg') + ->setSaveAndCloseInNewContentElementWizard(false) + ); + # TAB + \TYPO3\CMS\Core\Utility\GeneralUtility::makeInstance(\B13\Container\Tca\Registry::class)->configureContainer( + ( + new \B13\Container\Tca\ContainerConfiguration( + 'tabs_tab', + 'LLL:EXT:t3sbootstrap/Resources/Private/Language/locallang_be.xlf:tx_container.tabElement.title', + 'LLL:EXT:t3sbootstrap/Resources/Private/Language/locallang_be.xlf:tx_container.tabElement.description', + [ + [ + ['name' => 'Tab', 'colPos' => 281] + ] + ] + ) + ) + ->setIcon('EXT:t3sbootstrap/Resources/Public/Icons/Register/ge-tab-container.svg') + ->setSaveAndCloseInNewContentElementWizard(false) + ); + # LIST GROUP WRAPPER + \TYPO3\CMS\Core\Utility\GeneralUtility::makeInstance(\B13\Container\Tca\Registry::class)->configureContainer( + ( + new \B13\Container\Tca\ContainerConfiguration( + 'listGroup_wrapper', + 'List Group Wrapper', + 'Shows other CEs in a bootstrap list group. Nice with "Link the entire Content Element"', + [ + [ + ['name' => 'List Group Wrapper', 'colPos' => 282] + ] + ] + ) + ) + ->setIcon('EXT:t3sbootstrap/Resources/Public/Icons/Register/ge-accordion-container.svg') + ->setSaveAndCloseInNewContentElementWizard(false) + ); + # MASONRY + \TYPO3\CMS\Core\Utility\GeneralUtility::makeInstance(\B13\Container\Tca\Registry::class)->configureContainer( + ( + new \B13\Container\Tca\ContainerConfiguration( + 'masonry_wrapper', + 'Masonry Wrapper', + 'Masonry with the Bootstrap grid system', + [ + [ + ['name' => 'Masonry', 'colPos' => 283] + ] + ] + ) + ) + ->setIcon('EXT:t3sbootstrap/Resources/Public/Icons/Register/ge-card-container.svg') + ->setSaveAndCloseInNewContentElementWizard(false) + ); + # SWIPE CONTAINER + \TYPO3\CMS\Core\Utility\GeneralUtility::makeInstance(\B13\Container\Tca\Registry::class)->configureContainer( + ( + new \B13\Container\Tca\ContainerConfiguration( + 'swiper_container', + 'Swiper Container', + 'A container for several Swipe slides (CE:t3sbs_carousel)', + [ + [ + ['name' => 'Swipe Container', 'colPos' => 300, 'allowed' => ['CType' => 't3sbs_carousel']] + ] + ] + ) + ) + ->setIcon('EXT:t3sbootstrap/Resources/Public/Icons/Register/ge-carousel-container.svg') + ->setSaveAndCloseInNewContentElementWizard(false) + ); + # TOAST CONTAINER + \TYPO3\CMS\Core\Utility\GeneralUtility::makeInstance(\B13\Container\Tca\Registry::class)->configureContainer( + ( + new \B13\Container\Tca\ContainerConfiguration( + 'toast_container', + 'Toast Container', + 'A container for several Toast content', + [ + [ + ['name' => 'Toast Container', 'colPos' => 310] + ] + ] + ) + ) + ->setIcon('EXT:t3sbootstrap/Resources/Public/Icons/Register/ge-modal.svg') + ->setSaveAndCloseInNewContentElementWizard(false) + ); + +} + +$GLOBALS['TCA']['tt_content']['types']['two_columns']['showitem'] = ' + --div--;LLL:EXT:core/Resources/Private/Language/Form/locallang_tabs.xlf:general, + --palette--;LLL:EXT:frontend/Resources/Private/Language/locallang_ttc.xlf:palette.general;general, + --palette--;LLL:EXT:frontend/Resources/Private/Language/locallang_ttc.xlf:palette.headers;headers, + --div--;LLL:EXT:frontend/Resources/Private/Language/locallang_ttc.xlf:tabs.appearance, + --palette--;LLL:EXT:frontend/Resources/Private/Language/locallang_ttc.xlf:palette.frames;frames,T3SFlex;tx_t3sbootstrap_flexform, + --palette--;LLL:EXT:frontend/Resources/Private/Language/locallang_ttc.xlf:palette.appearanceLinks;appearanceLinks, + --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--;LLL:EXT:frontend/Resources/Private/Language/locallang_ttc.xlf:palette.access;access, + --div--;LLL:EXT:core/Resources/Private/Language/Form/locallang_tabs.xlf:categories, + categories, + --div--;LLL:EXT:core/Resources/Private/Language/Form/locallang_tabs.xlf:notes, + rowDescription, + --div--;LLL:EXT:core/Resources/Private/Language/Form/locallang_tabs.xlf:extended +'; +$GLOBALS['TCA']['tt_content']['types']['background_wrapper']['showitem'] = ' + --div--;LLL:EXT:core/Resources/Private/Language/Form/locallang_tabs.xlf:general, + --palette--;LLL:EXT:frontend/Resources/Private/Language/locallang_ttc.xlf:palette.general;general, + --palette--;LLL:EXT:frontend/Resources/Private/Language/locallang_ttc.xlf:palette.headers;headers, + --div--;LLL:EXT:frontend/Resources/Private/Language/locallang_ttc.xlf:tabs.images, + assets, + --div--;LLL:EXT:frontend/Resources/Private/Language/locallang_ttc.xlf:tabs.appearance, + --palette--;LLL:EXT:frontend/Resources/Private/Language/locallang_ttc.xlf:palette.frames;frames,T3SFlex;tx_t3sbootstrap_flexform, + --palette--;LLL:EXT:frontend/Resources/Private/Language/locallang_ttc.xlf:palette.appearanceLinks;appearanceLinks, + --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--;LLL:EXT:frontend/Resources/Private/Language/locallang_ttc.xlf:palette.access;access, + --div--;LLL:EXT:core/Resources/Private/Language/Form/locallang_tabs.xlf:categories, + categories, + --div--;LLL:EXT:core/Resources/Private/Language/Form/locallang_tabs.xlf:notes, + rowDescription, + --div--;LLL:EXT:core/Resources/Private/Language/Form/locallang_tabs.xlf:extended +'; +$GLOBALS['TCA']['tt_content']['types']['background_wrapper']['columnsOverrides'] = [ + 'assets' => [ + 'config' => [ + 'maxitems' => 1 + ], + ] +]; +$GLOBALS['TCA']['tt_content']['types']['three_columns']['showitem'] = $GLOBALS['TCA']['tt_content']['types']['two_columns']['showitem']; +$GLOBALS['TCA']['tt_content']['types']['four_columns']['showitem'] = $GLOBALS['TCA']['tt_content']['types']['two_columns']['showitem']; +$GLOBALS['TCA']['tt_content']['types']['six_columns']['showitem'] = $GLOBALS['TCA']['tt_content']['types']['two_columns']['showitem']; +$GLOBALS['TCA']['tt_content']['types']['row_columns']['showitem'] = $GLOBALS['TCA']['tt_content']['types']['two_columns']['showitem']; +$GLOBALS['TCA']['tt_content']['types']['card_wrapper']['showitem'] = $GLOBALS['TCA']['tt_content']['types']['two_columns']['showitem']; +$GLOBALS['TCA']['tt_content']['types']['button_group']['showitem'] = $GLOBALS['TCA']['tt_content']['types']['two_columns']['showitem']; +$GLOBALS['TCA']['tt_content']['types']['autoLayout_row']['showitem'] = $GLOBALS['TCA']['tt_content']['types']['two_columns']['showitem']; +$GLOBALS['TCA']['tt_content']['types']['parallax_wrapper']['showitem'] = $GLOBALS['TCA']['tt_content']['types']['background_wrapper']['showitem']; +$GLOBALS['TCA']['tt_content']['types']['container']['showitem'] = $GLOBALS['TCA']['tt_content']['types']['two_columns']['showitem']; +$GLOBALS['TCA']['tt_content']['types']['carousel_container']['showitem'] = $GLOBALS['TCA']['tt_content']['types']['two_columns']['showitem']; +$GLOBALS['TCA']['tt_content']['types']['collapsible_container']['showitem'] = $GLOBALS['TCA']['tt_content']['types']['two_columns']['showitem']; +$GLOBALS['TCA']['tt_content']['types']['collapsible_accordion']['showitem'] = $GLOBALS['TCA']['tt_content']['types']['background_wrapper']['showitem']; +$GLOBALS['TCA']['tt_content']['types']['modal']['showitem'] = $GLOBALS['TCA']['tt_content']['types']['two_columns']['showitem']; +$GLOBALS['TCA']['tt_content']['types']['tabs_container']['showitem'] = $GLOBALS['TCA']['tt_content']['types']['two_columns']['showitem']; +$GLOBALS['TCA']['tt_content']['types']['tabs_tab']['showitem'] = $GLOBALS['TCA']['tt_content']['types']['two_columns']['showitem']; +$GLOBALS['TCA']['tt_content']['types']['listGroup_wrapper']['showitem'] = $GLOBALS['TCA']['tt_content']['types']['two_columns']['showitem']; +$GLOBALS['TCA']['tt_content']['types']['masonry_wrapper']['showitem'] = $GLOBALS['TCA']['tt_content']['types']['two_columns']['showitem']; +$GLOBALS['TCA']['tt_content']['types']['swiper_container']['showitem'] = $GLOBALS['TCA']['tt_content']['types']['two_columns']['showitem']; +$GLOBALS['TCA']['tt_content']['types']['toast_container']['showitem'] = $GLOBALS['TCA']['tt_content']['types']['two_columns']['showitem']; diff --git a/Configuration/TCA/Overrides/tt_content_newCType.php b/Configuration/TCA/Overrides/tt_content_newCType.php new file mode 100644 index 00000000..3dd9f936 --- /dev/null +++ b/Configuration/TCA/Overrides/tt_content_newCType.php @@ -0,0 +1,1190 @@ +get('t3sbootstrap'); + + +/*************** + * Add new CTypes + */ + \TYPO3\CMS\Core\Utility\ExtensionManagementUtility::addTcaSelectItem( + 'tt_content', + 'CType', + [ + 'Plain CSS or JavaScript inline', + 't3sbs_assets', + 'cssJsIcon', + ], + 'textmedia', + 'after' +); +\TYPO3\CMS\Core\Utility\ExtensionManagementUtility::addTcaSelectItem( + 'tt_content', + 'CType', + [ + 'Bootstrap Media object', + 't3sbs_mediaobject', + 'content-beside-text-img-left' + ], + 'textmedia', + 'after' +); +\TYPO3\CMS\Core\Utility\ExtensionManagementUtility::addTcaSelectItem( + 'tt_content', + 'CType', + [ + 'Bootstrap Card', + 't3sbs_card', + 'content-card' + ], + 't3sbs_mediaobject', + 'after' +); +\TYPO3\CMS\Core\Utility\ExtensionManagementUtility::addTcaSelectItem( + 'tt_content', + 'CType', + [ + 'Bootstrap Toasts', + 't3sbs_toast', + 'content-widget-calltoaction' + ], + 't3sbs_card', + 'after' +); +\TYPO3\CMS\Core\Utility\ExtensionManagementUtility::addTcaSelectItem( + 'tt_content', + 'CType', + [ + 'Bootstrap Carousel Item (in carousel- or swiper-container)', + 't3sbs_carousel', + 'content-carousel-item-textandimage' + ], + 't3sbs_toast', + 'after' +); +\TYPO3\CMS\Core\Utility\ExtensionManagementUtility::addTcaSelectItem( + 'tt_content', + 'CType', + [ + 'Bootstrap Button', + 't3sbs_button', + 'form-radio-button' + ], + 't3sbs_carousel', + 'after' +); +\TYPO3\CMS\Core\Utility\ExtensionManagementUtility::addTcaSelectItem( + 'tt_content', + 'CType', + [ + 'Fluidtemplate', + 't3sbs_fluidtemplate', + 'actions-template-new' + ], + 't3sbs_button', + 'after' +); +\TYPO3\CMS\Core\Utility\ExtensionManagementUtility::addTcaSelectItem( + 'tt_content', + 'CType', + [ + 'Bootstrap Image Gallery', + 't3sbs_gallery', + 'apps-filetree-folder-media' + ], + 't3sbs_fluidtemplate', + 'after' +); + + +/*************** + * New fields in table:tt_content +*/ +$tempContentColumns = [ + 'tx_t3sbootstrap_header_display' => [ + 'label' => 'Display headings', + 'exclude' => 1, + 'config' => [ + 'type' => 'select', + 'renderType' => 'selectSingle', + 'items' => [ + ['label' => 'none-1', 'value' => '',], + ['label' => 'display-1', 'value' => 'display-1',], + ['label' => 'display-2', 'value' => 'display-2',], + ['label' => 'display-3', 'value' => 'display-3',], + ['label' => 'display-4', 'value' => 'display-4',], + ['label' => 'display-5', 'value' => 'display-5',], + ['label' => 'display-6', 'value' => 'display-6',], + ], + 'default' => '' + ] + ], + 'tx_t3sbootstrap_header_class' => [ + 'label' => 'Header Extra Class', + 'exclude' => 1, + 'config' => [ + 'type' => 'input', + 'size' => 40, + 'eval' => 'trim', + 'valuePicker' => [ + 'items' => [ + ['m-3 (margin)', 'm-3'], + ['mt-3 (margin-top)', 'mt-3'], + ['mb-3 (margin-bottom)', 'mb-3'], + ['ms-3 (margin-left)', 'ms-3'], + ['me-3 (margin-right)', 'me-3'], + ['mx-3 (margin-left and -right)', 'mx-3'], + ['my-3 (margin-top and -bottom)', 'my-3'], + ['text-primary', 'text-primary'], + ['text-secondary', 'text-secondary'], + ['text-danger', 'text-danger'], + ['text-success', 'text-success'], + ['text-warning', 'text-warning'], + ['text-info', 'text-info'], + ['text-black', 'text-black'], + ['text-white', 'text-white'], + ['text-uppercase', 'text-uppercase'], + ['One line left and right', 'h-line-1'], + ['Two lines left and right', 'h-line-2'] + ], + ], + ], + ], + 'tx_t3sbootstrap_header_fontawesome' => [ + 'label' => 'Font Awesome Icon', + 'exclude' => 1, + 'config' => [ + 'type' => 'input', + 'size' => 40, + 'eval' => 'trim', + 'valuePicker' => [ + 'items' => [ + ['typo3', 'fab fa-typo3'], + ['envelope', 'far fa-envelope'], + ['info-circle', 'fas fa-info-circle'], + ['exclamation-circle', 'fas fa-exclamation-circle'], + ['question-circle', 'fas fa-question-circle'], + ['check-circle', 'fas fa-check-circle'], + ['chevron-circle-left', 'fas fa-chevron-circle-left'], + ['chevron-circle-right', 'fas fa-chevron-circle-right'], + ['youtube', 'fab fa-youtube'], + ['vimeo', 'fab fa-vimeo-square'], + ], + ], + ], + ], + 'tx_t3sbootstrap_header_celink' => [ + 'exclude' => 1, + 'label' => 'Link the entire Content Element', + 'config' => [ + 'type' => 'check' + ] + ], + 'tx_t3sbootstrap_header_position' => [ + 'label' => 'Header Position', + 'exclude' => 1, + 'displayCond' => [ + 'OR' => [ + 'FIELD:CType:=:textmedia', + 'FIELD:CType:=:textpic', + ], + ], + 'config' => [ + 'type' => 'select', + 'renderType' => 'selectSingle', + 'items' => [ + ['label' => 'Above the image (default)', 'value' => 'above',], + ['label' => 'Beside or under the image', 'value' => 'above',], + ], + 'default' => 'above' + ] + ], + 'tx_t3sbootstrap_header_sectionMenu' => [ + 'label' => 'Section Menu Text', + 'exclude' => 1, + 'config' => [ + 'type' => 'input', + 'size' => 40, + 'eval' => 'trim', + ], + ], + 'tx_t3sbootstrap_padding_sides' => [ + 'label' => 'Padding spacing side', + 'exclude' => 1, + 'displayCond' => 'USER:T3SBS\T3sbootstrap\UserFunction\TcaMatcher->spacing_'.$extconf['spacing'], + 'config' => [ + 'type' => 'select', + 'renderType' => 'selectSingle', + 'items' => [ + ['label' => 'no padding', 'value' => '',], + ['label' => 'padding on all 4 sides', 'value' => 'blank',], + ['label' => 'padding-top', 'value' => 't',], + ['label' => 'padding-bottom', 'value' => 'blank',], + ['label' => 'padding-left', 'value' => 's',], + ['label' => 'padding-right', 'value' => 'e',], + ['label' => 'padding-left and -right', 'value' => 'x',], + ['label' => 'padding-top and -bottom', 'value' => 'y',], + ], + 'default' => '' + ] + ], + 'tx_t3sbootstrap_padding_size' => [ + 'label' => 'Padding spacing size', + 'exclude' => 1, + 'displayCond' => 'USER:T3SBS\T3sbootstrap\UserFunction\TcaMatcher->spacing_'.$extconf['spacing'], + 'config' => [ + 'type' => 'select', + 'renderType' => 'selectSingle', + 'items' => [ + ['label' => '0', 'value' => '0',], + ['label' => '1 (.25 rem)', 'value' => '1',], + ['label' => '2 (.5 rem)', 'value' => '2',], + ['label' => '3 (1 rem)', 'value' => '3',], + ['label' => '4 (1.5 rem)', 'value' => '4',], + ['label' => '5 (3 rem)', 'value' => '5',], + ], + 'default' => '' + ] + ], + 'tx_t3sbootstrap_margin_sides' => [ + 'label' => 'Margin spacing side', + 'exclude' => 1, + 'displayCond' => 'USER:T3SBS\T3sbootstrap\UserFunction\TcaMatcher->spacing_'.$extconf['spacing'], + 'config' => [ + 'type' => 'select', + 'renderType' => 'selectSingle', + 'items' => [ + ['label' => 'no margin', 'value' => '',], + ['label' => 'margin on all 4 sides', 'value' => 'blank',], + ['label' => 'margin-top', 'value' => 't',], + ['label' => 'margin-bottom', 'value' => 'blank',], + ['label' => 'margin-left', 'value' => 's',], + ['label' => 'margin-right', 'value' => 'e',], + ['label' => 'margin-left and -right', 'value' => 'x',], + ['label' => 'margin-top and -bottom', 'value' => 'y',], + ], + 'default' => '' + ] + ], + 'tx_t3sbootstrap_margin_size' => [ + 'label' => 'Margin spacing size', + 'exclude' => 1, + 'displayCond' => 'USER:T3SBS\T3sbootstrap\UserFunction\TcaMatcher->spacing_'.$extconf['spacing'], + 'config' => [ + 'type' => 'select', + 'renderType' => 'selectSingle', + 'items' => [ + ['label' => '0','value' => '0',], + ['label' => '1 (.25 rem)', 'value' => '1',], + ['label' => '2 (.5 rem)', 'value' => '2',], + ['label' => '3 (1 rem)', 'value' => '3',], + ['label' => '4 (1.5 rem)', 'value' => '4',], + ['label' => '5 (3 rem)', 'value' => '5',], + ], + 'default' => '' + ] + ], + 'tx_t3sbootstrap_container' => [ + 'label' => 'Container', + 'exclude' => 1, + 'displayCond' => 'USER:T3SBS\T3sbootstrap\UserFunction\TcaMatcher->container_'.$extconf['container'], + 'config' => [ + 'type' => 'select', + 'renderType' => 'selectSingle', + 'items' => [ + ['label' => 'no container', 'value' => '0',], + ['label' => 'container', 'value' => 'container',], + ['label' => 'container-fluid', 'value' => 'container-fluid',], + ['label' => 'container-fluid px-0', 'value' => 'container-fluid px-0',], + ['label' => 'container-sm (< 576px)', 'value' => 'container-sm',], + ['label' => 'container-md (≥ 576px)', 'value' => 'container-md',], + ['label' => 'container-lg (≥ 768px)', 'value' => 'container-lg',], + ['label' => 'container-xl (≥ 992px)', 'value' => 'container-xl',], + ['label' => 'container-xxl (≥ 1200px)', 'value' => 'container-xxl',], + ], + 'default' => '' + ] + ], + 'tx_t3sbootstrap_flexform' => [ + 'exclude' => 1, + 'l10n_display' => 'hideDiff', + 'label' => ' ', + 'config' => [ + 'type' => 'flex', + 'ds_pointerField' => 'CType', + 'ds' => [ + 'default' => 'FILE:EXT:t3sbootstrap/Configuration/FlexForms/Bootstrap.xml', + 't3sbs_card' => 'FILE:EXT:t3sbootstrap/Configuration/FlexForms/CardSetting.xml', + 't3sbs_toast' => 'FILE:EXT:t3sbootstrap/Configuration/FlexForms/ToastSetting.xml', + 't3sbs_carousel' => 'FILE:EXT:t3sbootstrap/Configuration/FlexForms/Carousel.xml', + 't3sbs_button' => 'FILE:EXT:t3sbootstrap/Configuration/FlexForms/Button.xml', + 't3sbs_mediaobject' => 'FILE:EXT:t3sbootstrap/Configuration/FlexForms/Mediaobject.xml', + 'table' => 'FILE:EXT:t3sbootstrap/Configuration/FlexForms/Table.xml', + 'two_columns' => 'FILE:EXT:t3sbootstrap/Configuration/FlexForms/Container/TwoColumns.xml', + 'three_columns' => 'FILE:EXT:t3sbootstrap/Configuration/FlexForms/Container/ThreeColumns.xml', + 'four_columns' => 'FILE:EXT:t3sbootstrap/Configuration/FlexForms/Container/FourColumns.xml', + 'six_columns' => 'FILE:EXT:t3sbootstrap/Configuration/FlexForms/Container/SixColumns.xml', + 'card_wrapper' => 'FILE:EXT:t3sbootstrap/Configuration/FlexForms/Container/CardWrapper.xml', + 'button_group' => 'FILE:EXT:t3sbootstrap/Configuration/FlexForms/Container/Buttongroup.xml', + 'autoLayout_row' => 'FILE:EXT:t3sbootstrap/Configuration/FlexForms/Container/AutoLayoutRow.xml', + 'background_wrapper' => 'FILE:EXT:t3sbootstrap/Configuration/FlexForms/Container/BackgroundWrapper.xml', + 'parallax_wrapper' => 'FILE:EXT:t3sbootstrap/Configuration/FlexForms/Container/ParallaxWrapper.xml', + 'container' => 'FILE:EXT:t3sbootstrap/Configuration/FlexForms/Container/Container.xml', + 'carousel_container' => 'FILE:EXT:t3sbootstrap/Configuration/FlexForms/Container/CarouselContainer.xml', + 'collapsible_container' => 'FILE:EXT:t3sbootstrap/Configuration/FlexForms/Container/CollapseContainer.xml', + 'collapsible_accordion' => 'FILE:EXT:t3sbootstrap/Configuration/FlexForms/Container/Collapse.xml', + 'modal' => 'FILE:EXT:t3sbootstrap/Configuration/FlexForms/Container/Modal.xml', + 'tabs_container' => 'FILE:EXT:t3sbootstrap/Configuration/FlexForms/Container/Tabs.xml', + 'tabs_tab' => 'FILE:EXT:t3sbootstrap/Configuration/FlexForms/Container/TabsTab.xml', + 'masonry_wrapper' => 'FILE:EXT:t3sbootstrap/Configuration/FlexForms/Container/MasonryWrapper.xml', + 'swiper_container' => 'FILE:EXT:t3sbootstrap/Configuration/FlexForms/Container/SwiperContainer.xml', + 'toast_container' => 'FILE:EXT:t3sbootstrap/Configuration/FlexForms/Container/ToastContainer.xml', + 'row_columns' => 'FILE:EXT:t3sbootstrap/Configuration/FlexForms/Container/RowColumns.xml', + ] + ] + ], + 'tx_t3sbootstrap_extra_class' => [ + 'label' => 'Extra Class', + 'exclude' => 1, + 'config' => [ + 'type' => 'input', + 'size' => 35 + ] + ], + 'tx_t3sbootstrap_extra_style' => [ + 'label' => 'Extra Style', + 'exclude' => 1, + 'config' => [ + 'type' => 'input', + 'size' => 35 + ] + ], + 'tx_t3sbootstrap_bgcolor' => [ + 'label' => 'Background color', + 'exclude' => 1, + 'displayCond' => 'USER:T3SBS\T3sbootstrap\UserFunction\TcaMatcher->color_'.$extconf['color'], + 'config' => [ + 'type' => 'color', + 'size' => 20 + ], + ], + 'tx_t3sbootstrap_inTextImgColumns' => [ + 'label' => 'Gallery columns', + 'exclude' => 1, + 'config' => [ + 'type' => 'select', + 'renderType' => 'selectSingle', + 'items' => [ + ['label' => 1, 'value' => 1,], + ['label' => 2, 'value' => 2,], + ['label' => 3, 'value' => 3,], + ['label' => 4, 'value' => 4,], + ['label' => 5, 'value' => 5,], + ['label' => 6, 'value' => 6,], + ['label' => 7, 'value' => 7,], + ['label' => 8, 'value' => 8,], + ['label' => 9, 'value' => 9,], + ['label' => 10, 'value' => 10,], + ['label' => 11, 'value' => 11,], + ['label' => 12, 'value' => 12,], + ], + 'default' => 4 + ] + ], + 'tx_t3sbootstrap_bgopacity' => [ + 'label' => 'Opacity for Background color only', + 'exclude' => 1, + 'displayCond' => 'USER:T3SBS\T3sbootstrap\UserFunction\TcaMatcher->color_'.$extconf['color'], + 'config' => [ + 'type' => 'input', + 'size' => 10, + 'range' => [ + 'lower' => 0, + 'upper' => 100, + ], + 'default' => 100, + 'slider' => [ + 'step' => 1, + 'width' => 200, + ], + ], + ], + 'tx_t3sbootstrap_contextcolor' => [ + 'label' => 'Context color', + 'exclude' => 1, + 'displayCond' => 'USER:T3SBS\T3sbootstrap\UserFunction\TcaMatcher->color_'.$extconf['color'], + 'config' => [ + 'type' => 'select', + 'renderType' => 'selectSingle', + 'items' => [ + ['label' => 'none', 'value' => '',], + ['label' => 'primary', 'value' => 'primary',], + ['label' => 'secondary', 'value' => 'secondary',], + ['label' => 'success', 'value' => 'success',], + ['label' => 'info', 'value' => 'info',], + ['label' => 'warning', 'value' => 'warning',], + ['label' => 'danger', 'value' => 'danger',], + ['label' => 'light', 'value' => 'light',], + ['label' => 'dark', 'value' => 'dark',], + ['label' => 'body', 'value' => 'body',], + ['label' => 'transparent', 'value' => 'transparent',], + ['label' => 'custom 1', 'value' => 'customOne',], + ['label' => 'custom 2', 'value' => 'customTwo',], + ], + 'default' => '' + ] + ], + 'tx_t3sbootstrap_textcolor' => [ + 'label' => 'Text color', + 'exclude' => 1, + 'displayCond' => 'USER:T3SBS\T3sbootstrap\UserFunction\TcaMatcher->color_'.$extconf['color'], + 'config' => [ + 'type' => 'select', + 'renderType' => 'selectSingle', + 'items' => [ + ['label' => 'default','value' => '',], + ['label' => 'white', 'value' => 'white',], + ['label' => 'muted', 'value' => 'muted',], + ['label' => 'secondary', 'value' => 'secondary',], + ['label' => 'primary', 'value' => 'primary',], + ['label' => 'success', 'value' => 'success',], + ['label' => 'info', 'value' => 'info',], + ['label' => 'warning', 'value' => 'warning',], + ['label' => 'danger', 'value' => 'danger',], + ['label' => 'light', 'value' => 'light',], + ['label' => 'dark', 'value' => 'dark',], + ['label' => 'body', 'value' => 'body',], + ['label' => 'transparent', 'value' => 'transparent',], + ['label' => 'custom 1', 'value' => 'customOne',], + ['label' => 'custom 2', 'value' => 'customTwo',], + ], + 'default' => '' + ] + ], + 'tx_t3sbootstrap_inTextImgRowWidth' => [ + 'label' => 'Gallery row width in %', + 'exclude' => 1, + 'displayCond' => [ + 'OR' => [ + 'FIELD:CType:=:textpic', + 'FIELD:CType:=:textmedia', + 'FIELD:CType:=:t3sbs_mediaobject', + 'FIELD:CType:=:t3sbs_card', + 'FIELD:CType:=:t3sbs_toast', + 'FIELD:CType:=:t3sbs_gallery', + ], + ], + 'config' => [ + 'type' => 'select', + 'renderType' => 'selectSingle', + 'items' => [ + ['label' => 'auto', 'value' => 'auto',], + ['label' => 25, 'value' => 'w-25',], + ['label' => 33, 'value' => 'w-33',], + ['label' => 50, 'value' => 'w-50',], + ['label' => 66, 'value' => 'w-66',], + ['label' => 75, 'value' => 'w-75',], + ['label' => 100, 'value' => 'w-100',], + ['label' => 'none', 'value' => 'none',], + ], + 'default' => 'auto' + ] + ], + 'tx_t3sbootstrap_gutters' => [ + 'label' => 'Horizontal gutters', + 'exclude' => 1, + 'description' => 'INFO: https://getbootstrap.com/docs/5.3/layout/gutters/#horizontal-gutters', + 'displayCond' => [ + 'OR' => [ + 'FIELD:CType:=:image', + 'FIELD:CType:=:textpic', + 'FIELD:CType:=:textmedia', + 'FIELD:CType:=:t3sbs_gallery', + ], + ], + 'config' => [ + 'type' => 'select', + 'renderType' => 'selectSingle', + 'items' => [ + ['label' => 'gx-0 (no gutters)', 'value' => 'gx-0',], + ['label' => 'gx-1', 'value' => 'gx-1',], + ['label' => 'gx-2', 'value' => 'gx-2',], + ['label' => 'gx-3', 'value' => 'gx-3',], + ['label' => 'gx-4 (default)', 'value' => 'gx-4',], + ['label' => 'gx-5', 'value' => 'gx-5',], + ], + 'default' => 'gx-4' + ] + ], + 'tx_t3sbootstrap_verticalgutters' => [ + 'label' => 'Vertical gutters', + 'exclude' => 1, + 'description' => 'INFO: https://getbootstrap.com/docs/5.3/layout/gutters/#vertical-gutters', + 'displayCond' => [ + 'OR' => [ + 'FIELD:CType:=:image', + 'FIELD:CType:=:textpic', + 'FIELD:CType:=:textmedia', + 'FIELD:CType:=:t3sbs_gallery', + ], + ], + 'config' => [ + 'type' => 'select', + 'renderType' => 'selectSingle', + 'items' => [ + ['label' => 'gy-0 (no gutters)', 'value' => 'mb-0',], + ['label' => 'gy-1', 'value' => 'mb-1',], + ['label' => 'gy-2', 'value' => 'mb-2',], + ['label' => 'gy-3', 'value' => 'mb-3',], + ['label' => 'gy-4 (default)', 'value' => 'mb-4',], + ['label' => 'gy-5', 'value' => 'mb-5',], + ], + 'default' => 'mb-4' + ] + ], + 'tx_t3sbootstrap_bordercolor' => [ + 'label' => 'Border color', + 'exclude' => 1, + 'config' => [ + 'type' => 'select', + 'renderType' => 'selectSingle', + 'items' => [ + ['label' => 'default', 'value' => '',], + ['label' => 'white', 'value' => 'white',], + ['label' => 'muted', 'value' => 'muted',], + ['label' => 'secondary', 'value' => 'secondary',], + ['label' => 'primary', 'value' => 'primary',], + ['label' => 'success', 'value' => 'success',], + ['label' => 'info', 'value' => 'info',], + ['label' => 'warning', 'value' => 'warning',], + ['label' => 'danger', 'value' => 'danger',], + ['label' => 'light', 'value' => 'light',], + ['label' => 'dark', 'value' => 'dark',], + ], + 'default' => '' + ] + ], + 'tx_t3sbootstrap_image_ratio' => [ + 'label' => 'Image Ratio', + 'exclude' => 1, + 'displayCond' => [ + 'AND' => [ + 'USER:T3SBS\T3sbootstrap\UserFunction\TcaMatcher->ratio_'.$extconf['ratio'], + 'OR' => [ + 'FIELD:CType:=:textpic', + 'FIELD:CType:=:textmedia', + 'FIELD:CType:=:t3sbs_mediaobject', + 'FIELD:CType:=:t3sbs_card', + 'FIELD:CType:=:t3sbs_toast', + 'FIELD:CType:=:t3sbs_gallery', + ] + ] + ], + 'config' => [ + 'type' => 'select', + 'renderType' => 'selectSingle', + 'items' => [ + ['label' => 'none', 'value' => '',], + ['label' => '1:1', 'value' => '1:1',], + ['label' => '2:1', 'value' => '2:1',], + ['label' => '4:3', 'value' => '4:3',], + ['label' => '3:2', 'value' => '3:2',], + ['label' => '16:9', 'value' => '16:9',], + ['label' => '21:9', 'value' => '21:9',], + ], + 'default' => '' + ] + ], + 'tx_t3sbootstrap_image_orig' => [ + 'exclude' => 1, + 'label' => 'Use Original Image', + 'displayCond' => [ + 'AND' => [ + 'USER:T3SBS\T3sbootstrap\UserFunction\TcaMatcher->ratio_'.$extconf['ratio'], + 'OR' => [ + 'FIELD:CType:=:textpic', + 'FIELD:CType:=:textmedia', + 'FIELD:CType:=:t3sbs_mediaobject', + 'FIELD:CType:=:t3sbs_card', + 'FIELD:CType:=:t3sbs_toast', + 'FIELD:CType:=:t3sbs_gallery', + ] + ] + ], + 'config' => [ + 'type' => 'check' + ] + ], + 'tx_t3sbootstrap_animateCss' => [ + 'exclude' => 1, + 'l10n_display' => 'hideDiff', + 'label' => 'Animate.css', + 'config' => [ + 'type' => 'select', + 'items' => [ + ['label' => 'None', 'value' => '0',], + ['label' => 'bounce', 'value' => 'bounce',], + ['label' => 'flash', 'value' => 'flash',], + ['label' => 'pulse', 'value' => 'pulse',], + ['label' => 'rubberBand', 'value' => 'rubberBand',], + ['label' => 'shake', 'value' => 'shake',], + ['label' => 'headShake', 'value' => 'headShake',], + ['label' => 'swing', 'value' => 'swing',], + ['label' => 'tada', 'value' => 'tada',], + ['label' => 'jello', 'value' => 'jello',], + ['label' => 'bounceIn', 'value' => 'bounceIn',], + ['label' => 'bounceInDown', 'value' => 'bounceInDown',], + ['label' => 'bounceInLeft', 'value' => 'bounceInLeft',], + ['label' => 'bounceInRight', 'value' => 'bounceInRight',], + ['label' => 'bounceInUp', 'value' => 'bounceInUp',], + ['label' => 'bounceOut', 'value' => 'bounceOut',], + ['label' => 'bounceOutDown', 'value' => 'bounceOutDown',], + ['label' => 'bounceOutLeft', 'value' => 'bounceOutLeft',], + ['label' => 'bounceOutRight', 'value' => 'bounceOutRight',], + ['label' => 'bounceOutUp', 'value' => 'bounceOutUp',], + ['label' => 'fadeIn', 'value' => 'fadeIn',], + ['label' => 'fadeInDown', 'value' => 'fadeInDown',], + ['label' => 'fadeInDownBig', 'value' => 'fadeInDownBig',], + ['label' => 'fadeInLeft', 'value' => 'fadeInLeft',], + ['label' => 'fadeInLeftBig', 'value' => 'fadeInLeftBig',], + ['label' => 'fadeInRight', 'value' => 'fadeInRight',], + ['label' => 'fadeInRightBig', 'value' => 'fadeInRightBig',], + ['label' => 'fadeInUp', 'value' => 'fadeInUp',], + ['label' => 'fadeInUpBig', 'value' => 'fadeInUpBig',], + ['label' => 'fadeOut', 'value' => 'fadeOut',], + ['label' => 'fadeOutDown', 'value' => 'fadeOutDown',], + ['label' => 'fadeOutDownBig', 'value' => 'fadeOutDownBig',], + ['label' => 'fadeOutLeft', 'value' => 'fadeOutLeft',], + ['label' => 'fadeOutLeftBig', 'value' => 'fadeOutLeftBig',], + ['label' => 'fadeOutRight', 'value' => 'fadeOutRight',], + ['label' => 'fadeOutRightBig', 'value' => 'fadeOutRightBig',], + ['label' => 'fadeOutUp', 'value' => 'fadeOutUp',], + ['label' => 'fadeOutUpBig', 'value' => 'fadeOutUpBig',], + ['label' => 'flipInX', 'value' => 'flipInX',], + ['label' => 'flipInY', 'value' => 'flipInY',], + ['label' => 'flipOutX', 'value' => 'flipOutX',], + ['label' => 'flipOutY', 'value' => 'flipOutY',], + ['label' => 'lightSpeedIn', 'value' => 'lightSpeedIn',], + ['label' => 'lightSpeedOut', 'value' => 'lightSpeedOut',], + ['label' => 'rotateIn', 'value' => 'rotateIn',], + ['label' => 'rotateInDownLeft', 'value' => 'rotateInDownLeft',], + ['label' => 'rotateInDownRight', 'value' => 'rotateInDownRight',], + ['label' => 'rotateInUpLeft', 'value' => 'rotateInUpLeft',], + ['label' => 'rotateInUpRight', 'value' => 'rotateInUpRight',], + ['label' => 'rotateOut', 'value' => 'rotateOut',], + ['label' => 'rotateOutDownLeft', 'value' => 'rotateOutDownLeft',], + ['label' => 'rotateOutDownRight', 'value' => 'rotateOutDownRight',], + ['label' => 'rotateOutUpLeft', 'value' => 'rotateOutUpLeft',], + ['label' => 'rotateOutUpRight', 'value' => 'rotateOutUpRight',], + ['label' => 'hinge', 'value' => 'hinge',], + ['label' => 'rollIn', 'value' => 'rollIn',], + ['label' => 'rollOut', 'value' => 'rollOut',], + ['label' => 'zoomIn', 'value' => 'zoomIn',], + ['label' => 'zoomInDown', 'value' => 'zoomInDown',], + ['label' => 'zoomInLeft', 'value' => 'zoomInLeft',], + ['label' => 'zoomInRight', 'value' => 'zoomInRight',], + ['label' => 'zoomInUp', 'value' => 'zoomInUp',], + ['label' => 'zoomOut', 'value' => 'zoomOut',], + ['label' => 'zoomOutDown', 'value' => 'zoomOutDown',], + ['label' => 'zoomOutLeft', 'value' => 'zoomOutLeft',], + ['label' => 'zoomOutRight', 'value' => 'zoomOutRight',], + ['label' => 'zoomOutUp', 'value' => 'zoomOutUp',], + ['label' => 'slideInDown', 'value' => 'slideInDown',], + ['label' => 'slideInLeft', 'value' => 'slideInLeft',], + ['label' => 'slideInRight', 'value' => 'slideInRight',], + ['label' => 'slideInUp', 'value' => 'slideInUp',], + ['label' => 'slideOutDown', 'value' => 'slideOutDown',], + ['label' => 'slideOutLeft', 'value' => 'slideOutLeft',], + ['label' => 'slideOutRight', 'value' => 'slideOutRight',], + ['label' => 'slideOutUp', 'value' => 'slideOutUp',], + ], + 'renderType' => 'selectSingle' + ] + ], + 'tx_t3sbootstrap_animateCssRepeat' => [ + 'exclude' => 1, + 'label' => 'Repeat', + 'config' => [ + 'type' => 'check' + ] + ], + 'tx_t3sbootstrap_animateCssDuration' => [ + 'label' => 'Duration in seconds', + 'exclude' => 1, + 'config' => [ + 'type' => 'number', + 'size' => 3 + ] + ], + 'tx_t3sbootstrap_animateCssDelay' => [ + 'label' => 'Delay in seconds', + 'exclude' => 1, + 'config' => [ + 'type' => 'number', + 'size' => 3 + ] + ], + 'tx_t3sbootstrap_sectionOrder' => [ + 'label' => 'Custom order in section Menu', + 'exclude' => 1, + 'config' => [ + 'type' => 'number', + 'size' => 3 + ] + ], + 'tx_t3sbootstrap_bodytext' => [ + 'label' => 'Text bottom ', + 'config' => [ + 'type' => 'text', + 'cols' => 80, + 'rows' => 15, + 'softref' => 'typolink_tag,email[subst],url', + 'search' => [ + 'andWhere' => '{#CType}=\'t3sbs_card\'', + ], + ], + ], + 'tx_t3sbootstrap_cardheader' => [ + 'label' => 'Card Header', + 'config' => [ + 'type' => 'input', + 'size' => 50, + 'max' => 255, + ], + ], + 'tx_t3sbootstrap_cardfooter' => [ + 'label' => 'Card Header', + 'config' => [ + 'type' => 'input', + 'size' => 50, + 'max' => 255, + ], + ], + 'tx_t3sbootstrap_list_item' => [ + 'label' => 'List Group', + 'config' => [ + 'type' => 'inline', + 'foreign_table' => 'tx_t3sbootstrap_list_item_inline', + 'foreign_field' => 'parentid', + 'foreign_table_field' => 'parenttable', + ], + ], + 'tx_t3sbootstrap_upgrade_card' => [ + 'label' => 'Upgrade wizard', + 'config' => [ + 'type' => 'check', + ] + ], +]; + + +\TYPO3\CMS\Core\Utility\ExtensionManagementUtility::addTCAcolumns('tt_content',$tempContentColumns); +unset($tempContentColumns); + + +/*************** + * Assets Inline + */ +$GLOBALS['TCA']['tt_content']['types']['t3sbs_assets'] = [ + 'showitem' => ' + --div--;LLL:EXT:core/Resources/Private/Language/Form/locallang_tabs.xlf:general, + --palette--;;general, + header; Internal title (not displayed), + --div--;Java Script, + bodytext;JavaScript, + pi_flexform; Inline JavaScript Settings, + --div--;CSS, + tx_t3sbootstrap_bodytext;CSS, + --div--;LLL:EXT:core/Resources/Private/Language/Form/locallang_tabs.xlf:access, + --palette--;;hidden + ', + 'columnsOverrides' => [ + 'bodytext' => [ + 'config' => [ + 'type' => 'text', + 'format' => 'javascript', + 'renderType' => 't3editor', + 'wrap' => 'virtual', + 'rows' => 15, + ], + ], + 'tx_t3sbootstrap_bodytext' => [ + 'config' => [ + 'type' => 'text', + 'renderType' => 't3editor', + 'format' => 'css', + 'rows' => 15, + 'wrap' => 'virtual', + ], + ], + ], +]; + +\TYPO3\CMS\Core\Utility\ExtensionManagementUtility::addPiFlexFormValue( + '*', + 'FILE:EXT:t3sbootstrap/Configuration/FlexForms/AssetInline.xml', + 't3sbs_assets' +); + + +/*************** + * Button - t3sbs_button + */ +$GLOBALS['TCA']['tt_content']['types']['t3sbs_button'] = [ + 'showitem' => ' + --div--;LLL:EXT:core/Resources/Private/Language/Form/locallang_tabs.xlf:general, + --palette--;LLL:EXT:frontend/Resources/Private/Language/locallang_ttc.xlf:palette.general;general, + --palette--;LLL:EXT:frontend/Resources/Private/Language/locallang_ttc.xlf:palette.headers;headers, + --div--;LLL:EXT:frontend/Resources/Private/Language/locallang_ttc.xlf:tabs.appearance, + --palette--;LLL:EXT:frontend/Resources/Private/Language/locallang_ttc.xlf:palette.frames;frames, + --palette--;LLL:EXT:frontend/Resources/Private/Language/locallang_ttc.xlf:palette.appearanceLinks;appearanceLinks, + --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--;LLL:EXT:frontend/Resources/Private/Language/locallang_ttc.xlf:palette.access;access, + --div--;LLL:EXT:core/Resources/Private/Language/Form/locallang_tabs.xlf:categories,categories, + --div--;LLL:EXT:core/Resources/Private/Language/Form/locallang_tabs.xlf:notes,rowDescription, + --div--;LLL:EXT:core/Resources/Private/Language/Form/locallang_tabs.xlf:extended + ' +]; +$GLOBALS['TCA']['tt_content']['types']['t3sbs_button']['columnsOverrides'] = [ + 'header_link' => [ + 'config' => [ + 'eval' => 'trim,required' + ] + ], + 'header' => [ + 'config' => [ + 'eval' => 'trim,required' + ] + ], +]; + + +/*************** + * Carousel item - t3sbs_carousel + */ +$GLOBALS['TCA']['tt_content']['types']['t3sbs_carousel'] = [ + 'showitem' => ' + --div--;LLL:EXT:core/Resources/Private/Language/Form/locallang_tabs.xlf:general, + --palette--;LLL:EXT:frontend/Resources/Private/Language/locallang_ttc.xlf:palette.general;general, + --palette--;LLL:EXT:frontend/Resources/Private/Language/locallang_ttc.xlf:palette.headers;headers, + bodytext;LLL:EXT:frontend/Resources/Private/Language/locallang_ttc.xlf:bodytext_formlabel, + --div--;LLL:EXT:frontend/Resources/Private/Language/locallang_ttc.xlf:tabs.images, + assets, + --div--;LLL:EXT:frontend/Resources/Private/Language/locallang_ttc.xlf:tabs.appearance, + --palette--;LLL:EXT:frontend/Resources/Private/Language/locallang_ttc.xlf:palette.frames;frames,T3SFlex;tx_t3sbootstrap_flexform, + --palette--;LLL:EXT:frontend/Resources/Private/Language/locallang_ttc.xlf:palette.appearanceLinks;appearanceLinks, + --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--;LLL:EXT:frontend/Resources/Private/Language/locallang_ttc.xlf:palette.access;access, + --div--;LLL:EXT:core/Resources/Private/Language/Form/locallang_tabs.xlf:categories, + categories, + --div--;LLL:EXT:core/Resources/Private/Language/Form/locallang_tabs.xlf:notes, + rowDescription, + --div--;LLL:EXT:core/Resources/Private/Language/Form/locallang_tabs.xlf:extended + ', + 'columnsOverrides' => [ + 'bodytext' => [ + 'config' => [ + 'enableRichtext' => true + ] + ], + 'assets' => [ + 'config' => [ + 'maxitems' => 1 + ] + ] + ] +]; + +/*************** + * Media object - t3sbs_mediaobject + */ +$GLOBALS['TCA']['tt_content']['types']['t3sbs_mediaobject'] = $GLOBALS['TCA']['tt_content']['types']['textmedia']; +$GLOBALS['TCA']['tt_content']['types']['t3sbs_mediaobject']['columnsOverrides'] = [ + 'bodytext' => [ + 'config' => [ + 'enableRichtext' => true + ] + ], + 'assets' => [ + 'config' => [ + 'maxitems' => 1 + ] + ] +]; + + +/*************** + * Card - t3sbs_card + */ +$GLOBALS['TCA']['tt_content']['types']['t3sbs_card'] = [ + 'showitem' => ' + --div--;LLL:EXT:core/Resources/Private/Language/Form/locallang_tabs.xlf:general, + --palette--;LLL:EXT:frontend/Resources/Private/Language/locallang_ttc.xlf:palette.general;general, + --palette--;LLL:EXT:frontend/Resources/Private/Language/locallang_ttc.xlf:palette.headers;headers, + --div--;Content,pi_flexform;Card Content, + tx_t3sbootstrap_cardheader;Card Header, + bodytext;Text top, + tx_t3sbootstrap_list_item;List Group, + tx_t3sbootstrap_bodytext;Text bottom, + tx_t3sbootstrap_cardfooter;Card Footer, + --div--;LLL:EXT:frontend/Resources/Private/Language/locallang_ttc.xlf:tabs.media, + assets, + --palette--;LLL:EXT:frontend/Resources/Private/Language/Database.xlf:tt_content.palette.mediaAdjustments;mediaAdjustments, + --palette--;LLL:EXT:frontend/Resources/Private/Language/Database.xlf:tt_content.palette.gallerySettings;gallerySettings, + --palette--;LLL:EXT:frontend/Resources/Private/Language/locallang_ttc.xlf:palette.imagelinks;imagelinks, + --div--;LLL:EXT:frontend/Resources/Private/Language/locallang_ttc.xlf:tabs.appearance, + --palette--;LLL:EXT:frontend/Resources/Private/Language/locallang_ttc.xlf:palette.frames;frames, + --palette--;LLL:EXT:frontend/Resources/Private/Language/locallang_ttc.xlf:palette.appearanceLinks;appearanceLinks, + --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--;LLL:EXT:frontend/Resources/Private/Language/locallang_ttc.xlf:palette.access;access, + --div--;LLL:EXT:core/Resources/Private/Language/Form/locallang_tabs.xlf:categories,categories, + --div--;LLL:EXT:core/Resources/Private/Language/Form/locallang_tabs.xlf:notes,rowDescription, + --div--;LLL:EXT:core/Resources/Private/Language/Form/locallang_tabs.xlf:extended + ', + 'columnsOverrides' => [ + 'bodytext' => [ + 'config' => [ + 'enableRichtext' => true + ] + ], + 'tx_t3sbootstrap_bodytext' => [ + 'config' => [ + 'enableRichtext' => true + ] + ], + 'assets' => [ + 'config' => [ + 'maxitems' => 2 + ] + ] + ] +]; + + +/*************** + * Toasts - t3sbs_toast + */ +$GLOBALS['TCA']['tt_content']['types']['t3sbs_toast'] = $GLOBALS['TCA']['tt_content']['types']['t3sbs_mediaobject']; + + +/*************** + * Bullets + */ +// add extra column +$GLOBALS['TCA']['tt_content']['columns']['bullets_type']['config']['items'] = [ + ['label' => 'BS Inline list', 'value' => 2,], + ['label' => 'BS Unstyled list', 'value' => 3,], + ['label' => 'BS Listengruppen', 'value' => 4,], + ['label' => 'BS Definition list (use pipe "|")','value' => 5,], +]; + +/*************** + * FluidTemplate + */ +$GLOBALS['TCA']['tt_content']['types']['t3sbs_fluidtemplate']['showitem'] = ' + --palette--;LLL:EXT:frontend/Resources/Private/Language/locallang_ttc.xlf:palette.general;general, + header;Data Variable (optional), + subheader;Path to your Fluid-Template, + --palette--;LLL:EXT:frontend/Resources/Private/Language/locallang_ttc.xlf:palette.appearanceLinks;appearanceLinks, + --div--;LLL:EXT:frontend/Resources/Private/Language/locallang_ttc.xlf:tabs.access, + hidden;LLL:EXT:frontend/Resources/Private/Language/locallang_ttc.xlf:field.default.hidden, + --palette--;LLL:EXT:frontend/Resources/Private/Language/locallang_ttc.xlf:palette.access;access +'; + + +/*************** + * BS Image Gallery + */ +$GLOBALS['TCA']['tt_content']['types']['t3sbs_gallery'] = [ + 'showitem' => ' + --palette--;LLL:EXT:frontend/Resources/Private/Language/locallang_ttc.xlf:palette.general;general, + --palette--;LLL:EXT:frontend/Resources/Private/Language/locallang_ttc.xlf:palette.header;header,rowDescription, + --div--;LLL:EXT:frontend/Resources/Private/Language/locallang_ttc.xlf:tabs.media,assets, + LLL:EXT:frontend/Resources/Private/Language/locallang_ttc.xlf:media.ALT.uploads_formlabel, + --linebreak--, file_collections;LLL:EXT:frontend/Resources/Private/Language/locallang_ttc.xlf:file_collections.ALT.uploads_formlabel, + --linebreak--, filelink_sorting, + --palette--;;mediaAdjustments,imagecols, + --div--;LLL:EXT:frontend/Resources/Private/Language/locallang_ttc.xlf:tabs.appearance, + --palette--;LLL:EXT:frontend/Resources/Private/Language/locallang_ttc.xlf:palette.frames;frames, + --palette--;LLL:EXT:frontend/Resources/Private/Language/locallang_ttc.xlf:palette.appearanceLinks;appearanceLinks, + --div--;LLL:EXT:frontend/Resources/Private/Language/locallang_ttc.xlf:tabs.access, + hidden;LLL:EXT:frontend/Resources/Private/Language/locallang_ttc.xlf:field.default.hidden, + --palette--;LLL:EXT:frontend/Resources/Private/Language/locallang_ttc.xlf:palette.access;access, + --div--;LLL:EXT:frontend/Resources/Private/Language/locallang_ttc.xlf:tabs.extended + ' +]; + + +\TYPO3\CMS\Core\Utility\ExtensionManagementUtility::addFieldsToPalette( + 'tt_content', + 'appearanceLinks', + 'tx_t3sbootstrap_header_sectionMenu', + 'after:sectionIndex' +); + +\TYPO3\CMS\Core\Utility\ExtensionManagementUtility::addFieldsToPalette( + 'tt_content', + 'header', + 'tx_t3sbootstrap_header_celink', + 'after:header_link' +); +\TYPO3\CMS\Core\Utility\ExtensionManagementUtility::addFieldsToPalette( + 'tt_content', + 'headers', + 'tx_t3sbootstrap_header_celink', + 'after:header_link' +); +\TYPO3\CMS\Core\Utility\ExtensionManagementUtility::addFieldsToPalette( + 'tt_content', + 'mediaAdjustments', + '--linebreak--, tx_t3sbootstrap_bordercolor', + 'after:imageborder' +); +\TYPO3\CMS\Core\Utility\ExtensionManagementUtility::addFieldsToPalette( + 'tt_content', + 'imageSettings', + 'tx_t3sbootstrap_image_ratio', + 'after:tx_t3sbootstrap_bordercolor' +); + +\TYPO3\CMS\Core\Utility\ExtensionManagementUtility::addFieldsToPalette( + 'tt_content', + 'imageSettings', + 'tx_t3sbootstrap_image_orig', + 'before:tx_t3sbootstrap_image_ratio' +); +\TYPO3\CMS\Core\Utility\ExtensionManagementUtility::addFieldsToPalette( + 'tt_content', + 'imageSettings', + 'tx_t3sbootstrap_inTextImgRowWidth', + 'after:tx_t3sbootstrap_bordercolor' +); +\TYPO3\CMS\Core\Utility\ExtensionManagementUtility::addFieldsToPalette( + 'tt_content', + 'imageGutters', + 'tx_t3sbootstrap_gutters', + 'after:tx_t3sbootstrap_image_ratio' +); +\TYPO3\CMS\Core\Utility\ExtensionManagementUtility::addFieldsToPalette( + 'tt_content', + 'imageGutters', + 'tx_t3sbootstrap_verticalgutters', + 'after:tx_t3sbootstrap_gutters' +); + +# add palette bootstrap etc +\TYPO3\CMS\Core\Utility\ExtensionManagementUtility::addToAllTCAtypes( + 'tt_content', + '--palette--; ;bsHeaderExtra', + '', + 'after:header' +); +\TYPO3\CMS\Core\Utility\ExtensionManagementUtility::addToAllTCAtypes( + 'tt_content', + '--palette--;Bootstrap Color;bootstrapColor', + '', + 'after:layout' +); +\TYPO3\CMS\Core\Utility\ExtensionManagementUtility::addToAllTCAtypes( + 'tt_content', + '--palette--;Bootstrap Utilities;bootstrap', + '', + 'after:layout' +); +\TYPO3\CMS\Core\Utility\ExtensionManagementUtility::addToAllTCAtypes( + 'tt_content', + '--palette--;Bootstrap Spacing;bootstrapSpacing', + '', + 'after:layout' +); + +\TYPO3\CMS\Core\Utility\ExtensionManagementUtility::addToAllTCAtypes( + 'tt_content', + '--palette--;T3SB Image Settings;imageSettings', + '', + 'after:mediaAdjustments' +); +\TYPO3\CMS\Core\Utility\ExtensionManagementUtility::addToAllTCAtypes( + 'tt_content', + '--palette--;T3SB Image Gutters;imageGutters', + '', + 'after:mediaAdjustments' +); + + +# add palette animate if EXT:content_animations is not loaded +if ( !\TYPO3\CMS\Core\Utility\ExtensionManagementUtility::isLoaded('content_animations') ) { + \TYPO3\CMS\Core\Utility\ExtensionManagementUtility::addToAllTCAtypes( + 'tt_content', + '--palette--;Animation;animate', + '', + 'after:layout' + ); +} + +$GLOBALS['TCA']['tt_content']['palettes']['bsHeaderExtra'] = [ + 'showitem' => 'tx_t3sbootstrap_header_display, tx_t3sbootstrap_header_position, --linebreak--, + tx_t3sbootstrap_header_class, tx_t3sbootstrap_header_fontawesome' +]; + +$GLOBALS['TCA']['tt_content']['palettes']['bootstrapSpacing'] = [ + 'showitem' => 'tx_t3sbootstrap_padding_sides, tx_t3sbootstrap_padding_size, --linebreak--, + tx_t3sbootstrap_margin_sides, tx_t3sbootstrap_margin_size' +]; + +if ($extconf['extraStyle']) { +$GLOBALS['TCA']['tt_content']['palettes']['bootstrap'] = [ + 'showitem' => 'tx_t3sbootstrap_extra_class, + --linebreak--, tx_t3sbootstrap_extra_style, + --linebreak--, tx_t3sbootstrap_container, + --linebreak--, tx_t3sbootstrap_flexform' +]; +} else { +$GLOBALS['TCA']['tt_content']['palettes']['bootstrap'] = [ + 'showitem' => 'tx_t3sbootstrap_extra_class, + --linebreak--, tx_t3sbootstrap_container, + --linebreak--, tx_t3sbootstrap_flexform' +]; +} + +$GLOBALS['TCA']['tt_content']['palettes']['bootstrapColor'] = [ + 'showitem' => 'tx_t3sbootstrap_contextcolor, tx_t3sbootstrap_bgcolor, --linebreak--, tx_t3sbootstrap_bgopacity, tx_t3sbootstrap_textcolor' +]; + +if ($extconf['animateCss']) { + $GLOBALS['TCA']['tt_content']['palettes']['animate'] = [ + 'showitem' => 'tx_t3sbootstrap_animateCss, + tx_t3sbootstrap_animateCssDuration, --linebreak--, + tx_t3sbootstrap_animateCssDelay, + tx_t3sbootstrap_animateCssRepeat' + ]; +} + +if ($extconf['sectionOrder']) { + \TYPO3\CMS\Core\Utility\ExtensionManagementUtility::addFieldsToPalette( + 'tt_content', + 'appearanceLinks', + 'tx_t3sbootstrap_sectionOrder', + 'after:sectionIndex' + ); +} + +if ( $extconf['preview'] ) { + # Show preview of tt_content elements in page module + $t3sbsContent = ['t3sbs_button', 't3sbs_card', 't3sbs_carousel', 't3sbs_fluidtemplate', 't3sbs_gallery', 't3sbs_mediaobject', 't3sbs_toast', 't3sbs_assets']; + foreach ($t3sbsContent as $t3sb) { + $GLOBALS['TCA']['tt_content']['types'][trim($t3sb)]['previewRenderer'] = \T3SBS\T3sbootstrap\Backend\Preview\DefaultPreviewRenderer::class; + } +} + + diff --git a/Configuration/TCA/tx_t3sbootstrap_domain_model_config.php b/Configuration/TCA/tx_t3sbootstrap_domain_model_config.php index d83cc050..f9b1a8ed 100644 --- a/Configuration/TCA/tx_t3sbootstrap_domain_model_config.php +++ b/Configuration/TCA/tx_t3sbootstrap_domain_model_config.php @@ -5,11 +5,13 @@ 'label' => 'homepage_uid', 'tstamp' => 'tstamp', 'crdate' => 'crdate', - 'cruser_id' => 'cruser_id', 'enablecolumns' => [], 'hideTable' => 1, 'searchFields' => '', - 'iconfile' => 'EXT:t3sbootstrap/Resources/Public/Icons/tx_t3sbootstrap_domain_model_config.gif' + 'iconfile' => 'EXT:t3sbootstrap/Resources/Public/Icons/tx_t3sbootstrap_domain_model_config.gif', + 'security' => [ + 'ignorePageTypeRestriction' => true, + ], ], 'types' => [ '1' => ['showitem' => ''], @@ -30,10 +32,8 @@ 'config' => [ 'type' => 'check', 'items' => [ - '1' => [ - '0' => 'Use configuration from rootline (slide) if enabled or from rootpage if disabled. -
If your installation only needs one configuration, this should be disabled!' - ] + ['label' => 'Use configuration from rootline (slide) if enabled or from rootpage if disabled. +
If your installation only needs one configuration, this should be disabled!',], ] ] ], @@ -44,10 +44,8 @@ 'config' => [ 'type' => 'check', 'items' => [ - '1' => [ - '0' => 'The configuration from rootline (slide) if enabled or from rootpage will be overwritten. -
This option is only needed in rare cases on subpages only!' - ] + ['label' => 'The configuration from rootline (slide) if enabled or from rootpage will be overwritten. +
This option is only needed in rare cases on subpages only!',], ] ] ], @@ -58,9 +56,7 @@ 'config' => [ 'type' => 'check', 'items' => [ - '1' => [ - '0' => 'disable navbar, jumbotron, breadcrumb and footer on rootpage if enabled' - ] + ['label' => 'disable navbar, jumbotron, breadcrumb and footer on rootpage if enabled',], ] ] ], @@ -71,9 +67,7 @@ 'config' => [ 'type' => 'check', 'items' => [ - '1' => [ - '0' => 'compress and concatenate JS and CSS - did not work with CDN' - ] + ['label' => 'compress and concatenate JS and CSS - did not work with CDN',], ] ] ], @@ -84,9 +78,7 @@ 'config' => [ 'type' => 'check', 'items' => [ - '1' => [ - '0' => 'if set, the stdWrap property prefixComment will be disabled' - ] + ['label' => 'if set, the stdWrap property prefixComment will be disabled',], ] ] ], @@ -97,9 +89,7 @@ 'config' => [ 'type' => 'check', 'items' => [ - '1' => [ - '0' => 'shows an error message if a container is expected but no container has been selected' - ] + ['label' => 'shows an error message if a container is expected but no container has been selected',], ] ] ], @@ -143,12 +133,12 @@ 'type' => 'select', 'renderType' => 'selectSingle', 'items' => [ - ['none', ''], - ['pt-1', 'pt-1'], - ['pt-2', 'pt-2'], - ['pt-3', 'pt-3'], - ['pt-4', 'pt-4'], - ['pt-5', 'pt-5'], + ['label' => 'none', 'value' => '',], + ['label' => 'pt-1', 'value' => 'pt-1',], + ['label' => 'pt-2', 'value' => 'pt-2',], + ['label' => 'pt-3', 'value' => 'pt-3',], + ['label' => 'pt-4', 'value' => 'pt-4',], + ['label' => 'pt-5', 'value' => 'pt-5',], ], ] ], @@ -162,12 +152,12 @@ 'type' => 'select', 'renderType' => 'selectSingle', 'items' => [ - ['none', ''], - ['mt-1', 'mt-1'], - ['mt-2', 'mt-2'], - ['mt-3', 'mt-3'], - ['mt-4', 'mt-4'], - ['mt-5', 'mt-5'], + ['label' => 'none', 'value' => '',], + ['label' => 'mt-1', 'value' => 'mt-1',], + ['label' => 'mt-2', 'value' => 'mt-2',], + ['label' => 'mt-3', 'value' => 'mt-3',], + ['label' => 'mt-4', 'value' => 'mt-4',], + ['label' => 'mt-5', 'value' => 'mt-5',], ], ] ], @@ -181,9 +171,9 @@ 'type' => 'select', 'renderType' => 'selectSingle', 'items' => [ - ['none', ''], - ['Border spinner [border]', 'border'], - ['Growing spinner [grow]', 'grow'], + ['label' => 'none', 'value' => '',], + ['label' => 'Border spinner [border]', 'value' => 'border',], + ['label' => 'Growing spinner [grow]', 'value' => 'grow',], ], ] ], @@ -197,15 +187,15 @@ 'type' => 'select', 'renderType' => 'selectSingle', 'items' => [ - ['current color', ''], - ['primary', 'primary'], - ['secondary', 'secondary'], - ['success', 'success'], - ['danger', 'danger'], - ['warning', 'warning'], - ['info', 'info'], - ['light', 'light'], - ['dark', 'dark'], + ['label' => 'current color', 'value' => '',], + ['label' => 'primary', 'value' => 'primary',], + ['label' => 'secondary', 'value' => 'secondary',], + ['label' => 'success', 'value' => 'success',], + ['label' => 'danger', 'value' => 'danger',], + ['label' => 'warning', 'value' => 'warning',], + ['label' => 'info', 'value' => 'info',], + ['label' => 'light', 'value' => 'light',], + ['label' => 'dark', 'value' => 'dark',], ], ] ], @@ -218,10 +208,10 @@ 'type' => 'select', 'renderType' => 'selectSingle', 'items' => [ - ['none', 0], - ['Baguettbox [1]', 1], - ['Halkabox [2]', 2], - ['GLightbox [3]', 3], + ['label' => 'none', 'value' => '',], + ['label' => 'Baguettbox', 'value' => 1,], + ['label' => 'Halkabox [1]', 'value' => 2,], + ['label' => 'GLightbox [1]', 'value' => 3,], ], ] ], @@ -233,9 +223,7 @@ 'config' => [ 'type' => 'check', 'items' => [ - '1' => [ - '0' => 'in the center of an image on hover' - ] + ['label' => 'in the center of an image on hover',], ] ] ], @@ -277,9 +265,7 @@ 'config' => [ 'type' => 'check', 'items' => [ - '1' => [ - '0' => 'activate/deaktivate scrollspy' - ] + ['label' => 'activate/deaktivate scrollspy',], ] ] ], @@ -291,9 +277,7 @@ 'config' => [ 'type' => 'check', 'items' => [ - '1' => [ - '0' => 'for #sectionmenu, .submenu or .make-me-sticky' - ] + ['label' => 'for #sectionmenu, .submenu or .make-me-sticky',], ] ] ], @@ -305,9 +289,7 @@ 'config' => [ 'type' => 'check', 'items' => [ - '1' => [ - '0' => 'Shows FA icons in section menu' - ] + ['label' => 'Shows FA icons in section menu',], ] ] ], @@ -319,9 +301,7 @@ 'config' => [ 'type' => 'check', 'items' => [ - '1' => [ - '0' => 'Shows the section menu also in the mobile if enabled' - ] + ['label' => 'Shows the section menu also in the mobile if enabled',], ] ] ], @@ -333,9 +313,7 @@ 'config' => [ 'type' => 'check', 'items' => [ - '1' => [ - '0' => 'first image from pages media' - ] + ['label' => 'first image from pages media',], ] ] ], @@ -347,9 +325,7 @@ 'config' => [ 'type' => 'check', 'items' => [ - '1' => [ - '0' => 'rootline sliding for the background image' - ] + ['label' => 'rootline sliding for the background image',], ] ] ], @@ -363,15 +339,15 @@ 'type' => 'select', 'renderType' => 'selectSingle', 'items' => [ - ['current color', ''], - ['primary', 'primary'], - ['secondary', 'secondary'], - ['success', 'success'], - ['danger', 'danger'], - ['warning', 'warning'], - ['info', 'info'], - ['light', 'light'], - ['dark', 'dark'], + ['label' => 'current color', 'value' => '',], + ['label' => 'primary', 'value' => 'primary',], + ['label' => 'secondary', 'value' => 'secondary',], + ['label' => 'success', 'value' => 'success',], + ['label' => 'danger', 'value' => 'danger',], + ['label' => 'warning', 'value' => 'warning',], + ['label' => 'info', 'value' => 'info',], + ['label' => 'light', 'value' => 'light',], + ['label' => 'dark', 'value' => 'dark',], ], ] ], @@ -403,9 +379,7 @@ 'config' => [ 'type' => 'check', 'items' => [ - '1' => [ - '0' => 'loads the required CSS-style for links set in the RTE or used global if activated' - ] + ['label' => 'loads the required CSS-style for links set in the RTE or used global if activated',], ] ] ], @@ -417,9 +391,7 @@ 'config' => [ 'type' => 'check', 'items' => [ - '1' => [ - '0' => 'rotate the cards on click (not on hover) if activated' - ] + ['label' => 'rotate the cards on click (not on hover) if activated',], ] ] ], @@ -431,9 +403,7 @@ 'config' => [ 'type' => 'check', 'items' => [ - '1' => [ - '0' => 'display the date of the last modified content on current page in the footer' - ] + ['label' => 'display the date of the last modified content on current page in the footer',], ] ] ], @@ -445,9 +415,7 @@ 'config' => [ 'type' => 'check', 'items' => [ - '1' => [ - '0' => 'better solution in the Template MenuRecentlyUpdated.html if enabled' - ] + ['label' => 'better solution in the Template MenuRecentlyUpdated.html if enabled',], ] ] ], @@ -459,10 +427,10 @@ 'type' => 'select', 'renderType' => 'selectSingle', 'items' => [ - ['none', ''], - ['Left align [start]', 'start'], - ['Right align [end]', 'end'], - ['Nav-scroller (only left align) [scroller]', 'scroller'], + ['label' => 'none', 'value' => '',], + ['label' => 'Left align [start]', 'value' => 'start',], + ['label' => 'Right align [end]', 'value' => 'end',], + ['label' => 'Nav-scroller (only left align) [scroller]', 'value' => 'scroller',], ] ] ], @@ -483,14 +451,14 @@ 'type' => 'select', 'renderType' => 'selectSingle', 'items' => [ - ['none', 'none'], - ['container', 'container'], - ['container-sm (< 576px)', 'container-sm'], - ['container-md (≥ 576px)', 'container-md'], - ['container-lg (≥ 768px)', 'container-lg'], - ['container-xl (≥ 992px)', 'container-xl'], - ['container-xxl (≥ 1200px)', 'container-xxl'], - ['container-fluid (≥ 1400px)', 'container-fluid'] + ['label' => 'none', 'value' => 'none',], + ['label' => 'container','value' => 'container',], + ['label' => 'container-sm (< 576px)', 'value' => 'container-sm',], + ['label' => 'container-md (≥ 576px)', 'value' => 'container-md',], + ['label' => 'container-lg (≥ 768px)', 'value' => 'container-lg',], + ['label' => 'container-xl (≥ 992px)', 'value' => 'container-xl',], + ['label' => 'container-xxl (≥ 1200px)', 'value' => 'container-xxl',], + ['label' => 'container-fluid (≥ 1400px)', 'value' => 'container-fluid',], ] ] ], @@ -521,9 +489,9 @@ 'type' => 'select', 'renderType' => 'selectSingle', 'items' => [ - ['none', ''], - ['navbar-dark [dark]', 'dark'], - ['navbar-light [light]', 'light'], + ['label' => 'none', 'value' => '',], + ['label' => 'navbar-dark [dark]', 'value' => 'dark',], + ['label' => 'navbar-light [light]', 'value' => 'light',], ] ] ], @@ -568,10 +536,8 @@ 'accordion_id' => 3, 'config' => [ 'type' => 'check', - 'items' => [ - '1' => [ - '0' => 'Enable as right menu dropdown' - ] + 'items' => [ + ['label' => 'Enable as right menu dropdown',], ] ] ], @@ -582,10 +548,8 @@ 'accordion_sub' => '3-1', 'config' => [ 'type' => 'check', - 'items' => [ - '1' => [ - '0' => 'Enable for "One Page Layout"' - ] + 'items' => [ + ['label' => 'Enable for "One Page Layout"',], ] ] ], @@ -596,10 +560,8 @@ 'accordion_sub' => '3-1', 'config' => [ 'type' => 'check', - 'items' => [ - '1' => [ - '0' => 'Info: https://www.t3sbootstrap.de/demo/mega-menu/' - ] + 'items' => [ + ['label' => 'Info: https://www.t3sbootstrap.de/demo/mega-menu/',], ] ] ], @@ -611,9 +573,7 @@ 'config' => [ 'type' => 'check', 'items' => [ - '1' => [ - '0' => 'Enable spacer in dropdown' - ] + ['label' => 'Enable spacer in dropdown',], ] ] ], @@ -624,10 +584,8 @@ 'accordion_sub' => '3-1', 'config' => [ 'type' => 'check', - 'items' => [ - '1' => [ - '0' => 'Open dropdown on hover' - ] + 'items' => [ + ['label' => 'Open dropdown on hover',], ] ] ], @@ -638,10 +596,8 @@ 'accordion_sub' => '3-1', 'config' => [ 'type' => 'check', - 'items' => [ - '1' => [ - '0' => 'Clickable parent if dropdown menu is open' - ] + 'items' => [ + ['label' => 'Clickable parent if dropdown menu is open',], ] ] ], @@ -653,10 +609,8 @@ 'info' => 'Hover is disabled by default if activated!', 'config' => [ 'type' => 'check', - 'items' => [ - '1' => [ - '0' => 'Extra plus icon to open dropdown' - ] + 'items' => [ + ['label' => 'Extra plus icon to open dropdown',], ] ] ], @@ -669,9 +623,9 @@ 'type' => 'select', 'renderType' => 'selectSingle', 'items' => [ - ['none [0]', 0], - ['Slide In [1]', 1], - ['Fade [2]', 2], + ['label' => 'none', 'value' => 0,], + ['label' => 'Slide In [1]', 'value' => 1,], + ['label' => 'Fade [2]', 'value' => 2,], ] ] ], @@ -682,10 +636,8 @@ 'accordion_sub' => '3-1', 'config' => [ 'type' => 'check', - 'items' => [ - '1' => [ - '0' => 'Enable extra row(s) in the navbar - (fileadmin)/Resources/Private/Partials/Page/NavbarExtraRow.html' - ] + 'items' => [ + ['label' => 'Enable extra row(s) in the navbar - (fileadmin)/Resources/Private/Partials/Page/NavbarExtraRow.html',], ] ] ], @@ -698,11 +650,11 @@ 'type' => 'select', 'renderType' => 'selectSingle', 'items' => [ - ['none', ''], - ['As a link [link]', 'link'], - ['As a heading [heading]', 'heading'], - ['Just an image [image]', 'image'], - ['Image and text [imgText]', 'imgText'], + ['label' => 'none', 'value' => '',], + ['label' => 'As a link [link]', 'value' => 'link',], + ['label' => 'As a heading [heading]', 'value' => 'heading',], + ['label' => 'Just an image [image]', 'value' => 'image',], + ['label' => 'Image and text [imgText]', 'value' => 'imgText',], ] ] ], @@ -715,8 +667,8 @@ 'type' => 'select', 'renderType' => 'selectSingle', 'items' => [ - ['left', 'left'], - ['right', 'right'], + ['label' => 'left', 'value' => 'left',], + ['label' => 'right', 'value' => 'right',], ] ] ], @@ -749,26 +701,26 @@ 'type' => 'select', 'renderType' => 'selectSingle', 'items' => [ - ['bg-light', 'light'], - ['bg-light bg-gradient', 'light bg-gradient'], - ['bg-dark', 'dark'], - ['bg-dark bg-gradient', 'dark bg-gradient'], - ['bg-primary', 'primary'], - ['bg-primary bg-gradient', 'primary bg-gradient'], - ['bg-secondary', 'secondary'], - ['bg-secondary bg-gradient', 'secondary bg-gradient'], - ['bg-success', 'success'], - ['bg-success bg-gradient', 'success bg-gradient'], - ['bg-danger', 'danger'], - ['bg-danger bg-gradient', 'danger bg-gradient'], - ['bg-warning', 'warning'], - ['bg-warning bg-gradient', 'warning bg-gradient'], - ['bg-info', 'info'], - ['bg-info bg-gradient', 'info'], - ['bg-white', 'white'], - ['bg-body', 'body'], - ['bg-transparent', 'transparent'], - ['bg-color', 'color'], + ['label' => 'bg-light', 'value' => 'light',], + ['label' => 'bg-light bg-gradient', 'value' => 'light bg-gradient',], + ['label' => 'bg-dark', 'value' => 'dark',], + ['label' => 'bg-dark bg-gradient', 'value' => 'dark bg-gradient',], + ['label' => 'bg-primary', 'value' => 'primary',], + ['label' => 'bg-primary bg-gradient', 'value' => 'primary bg-gradient',], + ['label' => 'bg-secondary', 'value' => 'secondary',], + ['label' => 'bg-secondary bg-gradient', 'value' => 'bg-secondary bg-gradient',], + ['label' => 'bg-success ', 'value' => 'success',], + ['label' => 'bg-success bg-gradient', 'value' => 'success bg-gradient',], + ['label' => 'bg-danger ', 'value' => 'danger',], + ['label' => 'bg-danger bg-gradient', 'value' => 'danger bg-gradient',], + ['label' => 'bg-warning ', 'value' => 'warning',], + ['label' => 'bg-warning bg-gradient', 'value' => 'warning bg-gradient',], + ['label' => 'bg-info ', 'value' => 'info',], + ['label' => 'bg-info bg-gradient', 'value' => 'info bg-gradient',], + ['label' => 'bg-white', 'value' => 'white',], + ['label' => 'bg-body', 'value' => 'body',], + ['label' => 'bg-transparent', 'value' => 'transparent',], + ['label' => 'bg-color', 'value' => 'color',], ] ] ], @@ -791,9 +743,7 @@ 'config' => [ 'type' => 'check', 'items' => [ - '1' => [ - '0' => 'create a transparent navbar which changes its style on scroll' - ] + ['label' => 'create a transparent navbar which changes its style on scroll',], ] ] ], @@ -806,35 +756,33 @@ 'type' => 'select', 'renderType' => 'selectSingle', 'items' => [ - ['none', ''], - ['container', 'container'], - ['container-sm (< 576px)', 'container-sm'], - ['container-md (≥ 576px)', 'container-md'], - ['container-lg (≥ 768px)', 'container-lg'], - ['container-xl (≥ 992px)', 'container-xl'], - ['container-xxl (≥ 1200px)', 'container-xxl'], - ['container-fluid (≥ 1400px)', 'container-fluid'] + ['label' => 'none','value' => '',], + ['label' => 'container','value' => 'container',], + ['label' => 'container-sm (< 576px)', 'value' => 'container-sm',], + ['label' => 'container-md (≥ 576px)', 'value' => 'container-md',], + ['label' => 'container-lg (≥ 768px)', 'value' => 'container-lg',], + ['label' => 'container-xl (≥ 992px)', 'value' => 'container-xl',], + ['label' => 'container-xxl (≥ 1200px)', 'value' => 'container-xxl',], + ['label' => 'container-fluid (≥ 1400px)', 'value' => 'container-fluid',], ] ] ], 'navbar_innercontainer' => [ 'exclude' => false, 'label' => 'Inner-Container', - - 'accordion_id' => 3, - 'accordion_sub' => '3-4', - + 'accordion_id' => 3, + 'accordion_sub' => '3-4', 'config' => [ 'type' => 'select', 'renderType' => 'selectSingle', 'items' => [ - ['container', 'container'], - ['container-sm (< 576px)', 'container-sm'], - ['container-md (≥ 576px)', 'container-md'], - ['container-lg (≥ 768px)', 'container-lg'], - ['container-xl (≥ 992px)', 'container-xl'], - ['container-xxl (≥ 1200px)', 'container-xxl'], - ['container-fluid (≥ 1400px)', 'container-fluid'] + ['label' => 'container','value' => 'container',], + ['label' => 'container-sm (< 576px)', 'value' => 'container-sm',], + ['label' => 'container-md (≥ 576px)', 'value' => 'container-md',], + ['label' => 'container-lg (≥ 768px)', 'value' => 'container-lg',], + ['label' => 'container-xl (≥ 992px)', 'value' => 'container-xl',], + ['label' => 'container-xxl (≥ 1200px)', 'value' => 'container-xxl',], + ['label' => 'container-fluid (≥ 1400px)', 'value' => 'container-fluid',], ], 'size' => 1, 'maxitems' => 1 @@ -849,10 +797,10 @@ 'type' => 'select', 'renderType' => 'selectSingle', 'items' => [ - ['default', ''], - ['fixed-top', 'fixed-top'], - ['fixed-bottom', 'fixed-bottom'], - ['sticky-top', 'sticky-top'], + ['label' => 'default','value' => '',], + ['label' => 'fixed-top', 'value' => 'fixed-top',], + ['label' => 'fixed-bottom', 'value' => 'fixed-bottom',], + ['label' => 'sticky-top', 'value' => 'sticky-top',], ] ] ], @@ -865,11 +813,11 @@ 'type' => 'select', 'renderType' => 'selectSingle', 'items' => [ - ['left', 'left'], - ['right', 'right'], - ['center', 'center'], - ['fill (every nav item will be the same width)', 'fill'], - ['justified (all horizontal space will be occupied by nav links)', 'justified'], + ['label' => 'left','value' => 'left',], + ['label' => 'right','value' => 'right',], + ['label' => 'center','value' => 'center',], + ['label' => 'fill (every nav item will be the same width)','value' => 'fill',], + ['label' => 'justified (all horizontal space will be occupied by nav links)','value' => 'justified',], ] ] ], @@ -902,9 +850,9 @@ 'type' => 'select', 'renderType' => 'selectSingle', 'items' => [ - ['none', ''], - ['Form only [form]', 'form'], - ['Form & Button [button]', 'button'], + ['label' => 'none','value' => '',], + ['label' => 'Form only [form]','value' => 'form',], + ['label' => 'Form & Button [button]','value' => 'button',], ] ] ], @@ -918,9 +866,9 @@ 'type' => 'select', 'renderType' => 'selectSingle', 'items' => [ - ['none', ''], - ['navbar-dark [dark]', 'dark'], - ['navbar-light [light]', 'light'], + ['label' => 'none','value' => '',], + ['label' => 'navbar-dark [dark]','value' => 'dark',], + ['label' => 'navbar-light [light]','value' => 'light',], ] ] ], @@ -933,25 +881,25 @@ 'type' => 'select', 'renderType' => 'selectSingle', 'items' => [ - ['bg-light', 'light'], - ['bg-light bg-gradient', 'light bg-gradient'], - ['bg-dark', 'dark'], - ['bg-dark bg-gradient', 'dark bg-gradient'], - ['bg-primary', 'primary'], - ['bg-primary bg-gradient', 'primary bg-gradient'], - ['bg-secondary', 'secondary'], - ['bg-secondary bg-gradient', 'secondary bg-gradient'], - ['bg-success', 'success'], - ['bg-success bg-gradient', 'success bg-gradient'], - ['bg-danger', 'danger'], - ['bg-danger bg-gradient', 'danger bg-gradient'], - ['bg-warning', 'warning'], - ['bg-warning bg-gradient', 'warning bg-gradient'], - ['bg-info', 'info'], - ['bg-info bg-gradient', 'info'], - ['bg-white', 'white'], - ['bg-body', 'body'], - ['bg-transparent', 'transparent'], + ['label' => 'bg-light', 'value' => 'light',], + ['label' => 'bg-light bg-gradient', 'value' => 'light bg-gradient',], + ['label' => 'bg-dark', 'value' => 'dark',], + ['label' => 'bg-dark bg-gradient', 'value' => 'dark bg-gradient',], + ['label' => 'bg-primary', 'value' => 'primary',], + ['label' => 'bg-primary bg-gradient', 'value' => 'primary bg-gradient',], + ['label' => 'bg-secondary', 'value' => 'secondary',], + ['label' => 'bg-secondary bg-gradient', 'value' => 'bg-secondary bg-gradient',], + ['label' => 'bg-success ', 'value' => 'success',], + ['label' => 'bg-success bg-gradient', 'value' => 'success bg-gradient',], + ['label' => 'bg-danger ', 'value' => 'danger',], + ['label' => 'bg-danger bg-gradient', 'value' => 'danger bg-gradient',], + ['label' => 'bg-warning ', 'value' => 'warning',], + ['label' => 'bg-warning bg-gradient', 'value' => 'warning bg-gradient',], + ['label' => 'bg-info ', 'value' => 'info',], + ['label' => 'bg-info bg-gradient', 'value' => 'info bg-gradient',], + ['label' => 'bg-white', 'value' => 'white',], + ['label' => 'bg-body', 'value' => 'body',], + ['label' => 'bg-transparent', 'value' => 'transparent',], ] ] ], @@ -965,12 +913,12 @@ 'type' => 'select', 'renderType' => 'selectSingle', 'items' => [ - ['py-1', '1'], - ['py-2', '2'], - ['py-3', '3'], - ['py-4', '4'], - ['py-5', '5'], - ['py-x', 'x'], + ['label' => 'py-1', 'value' => '1',], + ['label' => 'py-2', 'value' => '2',], + ['label' => 'py-3', 'value' => '3',], + ['label' => 'py-4', 'value' => '4',], + ['label' => 'py-5', 'value' => '5',], + ['label' => 'py-x', 'value' => 'x',], ], ] ], @@ -983,8 +931,9 @@ 'type' => 'select', 'renderType' => 'selectSingle', 'items' => [ - ['left', 'left'], - ['right', 'right'], + ['label' => 'left', 'value' => 'left',], + ['label' => 'right', 'value' => 'right',], + ] ] ], @@ -995,10 +944,8 @@ 'label' => 'Animated Toggler', 'config' => [ 'type' => 'check', - 'items' => [ - '1' => [ - '0' => 'Doing it with plain HTML and pure CSS - does not work with "Offcanvas"' - ] + 'items' => [ + ['label' => 'Doing it with plain HTML and pure CSS - does not work with "Offcanvas"',], ] ] ], @@ -1012,12 +959,12 @@ 'type' => 'select', 'renderType' => 'selectSingle', 'items' => [ - ['Small (<= 576px) [sm]', 'sm'], - ['Medium (<= 768px [md])', 'md'], - ['Large (<= 992px) [lg]', 'lg'], - ['Extra large (<= 1200px) [xl]', 'xl'], - ['Extra extra large (<= 1400px) [xxl]', 'xxl'], - ['Never expand [no]', 'no'], + ['label' => 'Small (<= 576px) [sm]', 'value' => 'sm',], + ['label' => 'Medium (<= 768px [md]', 'value' => 'md',], + ['label' => 'Large (<= 992px) [lg]', 'value' => 'lg',], + ['label' => 'Extra extra large (<= 1400px) [xxl]', 'value' => 'xl',], + ['label' => 'Extra extra large (<= 1400px) [xxl]', 'value' => 'xxl',], + ['label' => 'Never expand [no]', 'value' => 'no',], ] ] ], @@ -1028,10 +975,8 @@ 'label' => 'Offcanvas', 'config' => [ 'type' => 'check', - 'items' => [ - '1' => [ - '0' => 'Change navbar collapse to offcanvas on mobile screen' - ] + 'items' => [ + ['label' => 'Change navbar collapse to offcanvas on mobile screen',], ] ] ], @@ -1042,10 +987,8 @@ 'accordion_sub' => '3-7', 'config' => [ 'type' => 'check', - 'items' => [ - '1' => [ - '0' => 'Setting is taken from the site configuration' - ] + 'items' => [ + ['label' => 'Setting is taken from the site configuration',], ] ] ], @@ -1056,10 +999,8 @@ 'accordion_sub' => '3-7', 'config' => [ 'type' => 'check', - 'items' => [ - '1' => [ - '0' => 'Fontawesome icon (globe) or current language with flag if enabled' - ] + 'items' => [ + ['label' => 'Fontawesome icon (globe) or current language with flag if enabled',], ] ] ], @@ -1071,10 +1012,8 @@ 'accordion_sub' => '3-7', 'config' => [ 'type' => 'check', - 'items' => [ - '1' => [ - '0' => 'Show flags in the language menu if enabled' - ] + 'items' => [ + ['label' => 'Show flags in the language menu if enabled',], ] ] ], @@ -1085,9 +1024,7 @@ 'config' => [ 'type' => 'check', 'items' => [ - '1' => [ - '0' => '' - ] + ['label' => '',], ] ] ], @@ -1100,9 +1037,9 @@ 'type' => 'select', 'renderType' => 'selectSingle', 'items' => [ - ['none', ''], - ['only on this page [page]', 'page'], - ['on this and all child pages (slide) [root]', 'root'], + ['label' => 'none', 'value' => '',], + ['label' => 'only on this page [page]', 'value' => 'page',], + ['label' => 'on this and all child pages (slide) [root]', 'value' => 'root',], ] ] ], @@ -1115,13 +1052,13 @@ 'type' => 'select', 'renderType' => 'selectSingle', 'items' => [ - ['none', ''], - ['67:9', '67x9'], - ['56:9', '56x9'], - ['46:9', '46x9'], - ['37:9', '37x9'], - ['29:9', '29x9'], - ['21:9', '21x9'], + ['label' => 'none', 'value' => '',], + ['label' => '67:9', 'value' => '67x9',], + ['label' => '56:9', 'value' => '56x9',], + ['label' => '46:9', 'value' => '46x9',], + ['label' => '37:9', 'value' => '37x9',], + ['label' => '29:9', 'value' => '29x9',], + ['label' => '21:9', 'value' => '21x9',], ] ] ], @@ -1134,12 +1071,12 @@ 'type' => 'select', 'renderType' => 'selectSingle', 'items' => [ - ['none', ''], - ['start', 'start'], - ['end', 'end'], - ['center', 'center'], - ['baseline', 'baseline'], - ['stretch', 'stretch'], + ['label' => 'none', 'value' => '',], + ['label' => 'start', 'value' => 'start',], + ['label' => 'end', 'value' => 'end',], + ['label' => 'center', 'value' => 'center',], + ['label' => 'baseline', 'value' => 'baseline',], + ['label' => 'stretch', 'value' => 'stretch',], ] ] ], @@ -1150,11 +1087,11 @@ 'type' => 'select', 'renderType' => 'selectSingle', 'items' => [ - ['none', '0'], - ['rounded', 'rounded'], - ['rounded-top', 'rounded-top'], - ['rounded-bottom', 'rounded-bottom'], - ['rounded-pill', 'rounded-pill'], + ['label' => 'none', 'value' => '0',], + ['label' => 'rounded', 'value' => 'rounded',], + ['label' => 'rounded-top', 'value' => 'rounded-top',], + ['label' => 'rounded-bottom', 'value' => 'rounded-bottom',], + ['label' => 'rounded-pill', 'value' => 'rounded-pill',], ], 'size' => 1, 'maxitems' => 1 @@ -1167,9 +1104,7 @@ 'config' => [ 'type' => 'check', 'items' => [ - '1' => [ - '0' => 'Content of Jumbotron "slide" through the rootline' - ] + ['label' => 'Content of Jumbotron "slide" through the rootline',], ] ] ], @@ -1181,8 +1116,8 @@ 'type' => 'select', 'renderType' => 'selectSingle', 'items' => [ - ['Above the NavBar [above]', 'above'], - ['Below the NavBar [below]', 'below'], + ['label' => 'Above the NavBar [above]', 'value' => 'above',], + ['label' => 'Below the NavBar [below]', 'value' => 'below',], ] ] ], @@ -1194,14 +1129,14 @@ 'type' => 'select', 'renderType' => 'selectSingle', 'items' => [ - ['none', 'none'], - ['container', 'container'], - ['container-sm (< 576px)', 'container-sm'], - ['container-md (≥ 576px)', 'container-md'], - ['container-lg (≥ 768px)', 'container-lg'], - ['container-xl (≥ 992px)', 'container-xl'], - ['container-xxl (≥ 1200px)', 'container-xxl'], - ['container-fluid (≥ 1400px)', 'container-fluid'] + ['label' => 'none', 'value' => 'none',], + ['label' => 'container','value' => 'container',], + ['label' => 'container-sm (< 576px)', 'value' => 'container-sm',], + ['label' => 'container-md (≥ 576px)', 'value' => 'container-md',], + ['label' => 'container-lg (≥ 768px)', 'value' => 'container-lg',], + ['label' => 'container-xl (≥ 992px)', 'value' => 'container-xl',], + ['label' => 'container-xxl (≥ 1200px)', 'value' => 'container-xxl',], + ['label' => 'container-fluid (≥ 1400px)', 'value' => 'container-fluid',], ] ] ], @@ -1214,8 +1149,8 @@ 'type' => 'select', 'renderType' => 'selectSingle', 'items' => [ - ['inside [Inside]', 'Inside'], - ['outside [Outside]', 'Outside'], + ['label' => 'inside [Inside]', 'value' => 'Inside',], + ['label' => 'outside [Outside]','value' => 'Outside',], ] ] ], @@ -1244,10 +1179,8 @@ 'accordion_sub' => '4-1', 'config' => [ 'type' => 'check', - 'items' => [ - '1' => [ - '0' => '' - ] + 'items' => [ + ['label' => '',], ] ] ], @@ -1260,12 +1193,12 @@ 'type' => 'select', 'renderType' => 'selectSingle', 'items' => [ - ['none (bad solution)', ''], - ['in the Jumbotron [jumbotron]', 'jumbotron'], - ['in the Main Content [content]', 'content'], - ['above the Breadcrumb [breadcrumb]', 'breadcrumb'], - ['Image replacement [replace]', 'replace'], - ['in the Expanded top content (if enabled) [expanded]', 'expanded'], + ['label' => 'none (bad solution)','value' => '',], + ['label' => 'in the Jumbotron [jumbotron]','value' => 'jumbotron',], + ['label' => 'in the Main Content [content]','value' => 'content',], + ['label' => 'above the Breadcrumb [breadcrumb]','value' => 'breadcrumb',], + ['label' => 'Image replacement [replace]','value' => 'replace',], + ['label' => 'in the Expanded top content (if enabled) [expanded]','value' => 'expanded',], ] ] ], @@ -1277,10 +1210,10 @@ 'type' => 'select', 'renderType' => 'selectSingle', 'items' => [ - ['default', ''], - ['center', 'center'], - ['right', 'right'], - ['left', 'left'], + ['label' => 'default','value' => '',], + ['label' => 'center','value' => 'center',], + ['label' => 'right','value' => 'right',], + ['label' => 'left','value' => 'left',], ] ] ], @@ -1292,14 +1225,14 @@ 'type' => 'select', 'renderType' => 'selectSingle', 'items' => [ - ['none', 'none'], - ['container', 'container'], - ['container-sm (< 576px)', 'container-sm'], - ['container-md (≥ 576px)', 'container-md'], - ['container-lg (≥ 768px)', 'container-lg'], - ['container-xl (≥ 992px)', 'container-xl'], - ['container-xxl (≥ 1200px)', 'container-xxl'], - ['container-fluid (≥ 1400px)', 'container-fluid'] + ['label' => 'none', 'value' => 'none',], + ['label' => 'container','value' => 'container',], + ['label' => 'container-sm (< 576px)', 'value' => 'container-sm',], + ['label' => 'container-md (≥ 576px)', 'value' => 'container-md',], + ['label' => 'container-lg (≥ 768px)', 'value' => 'container-lg',], + ['label' => 'container-xl (≥ 992px)', 'value' => 'container-xl',], + ['label' => 'container-xxl (≥ 1200px)', 'value' => 'container-xxl',], + ['label' => 'container-fluid (≥ 1400px)', 'value' => 'container-fluid',], ] ] ], @@ -1321,9 +1254,7 @@ 'config' => [ 'type' => 'check', 'items' => [ - '1' => [ - '0' => 'indicate the current page’s location within a navigational hierarchy' - ] + ['label' => 'indicate the current page’s location within a navigational hierarchy',], ] ] ], @@ -1334,9 +1265,7 @@ 'config' => [ 'type' => 'check', 'items' => [ - '1' => [ - '0' => 'Not on rootpage if enabled' - ] + ['label' => 'Not on rootpage if enabled',], ] ] ], @@ -1347,9 +1276,7 @@ 'config' => [ 'type' => 'check', 'items' => [ - '1' => [ - '0' => 'FA icon instead of text for level=0 only if enabled' - ] + ['label' => 'FA icon instead of text for level=0 only if enabled',], ] ] ], @@ -1360,9 +1287,7 @@ 'config' => [ 'type' => 'check', 'items' => [ - '1' => [ - '0' => 'To make the breadcrumb without rounded corners' - ] + ['label' => 'To make the breadcrumb without rounded corners',], ] ] ], @@ -1373,9 +1298,7 @@ 'config' => [ 'type' => 'check', 'items' => [ - '1' => [ - '0' => 'Show the breadcrumb menu below the content (only or also)' - ] + ['label' => 'Show the breadcrumb menu below the content (only or also)',], ] ] ], @@ -1387,10 +1310,10 @@ 'type' => 'select', 'renderType' => 'selectSingle', 'items' => [ - ['Above the NavBar [aboveNav]', 'aboveNav'], - ['Below the NavBar [belowNav]', 'belowNav'], - ['Above the Jumbotron [aboveJum]', 'aboveJum'], - ['Below the Jumbotron [belowJum]', 'belowJum'], + ['label' => 'Above the NavBar [aboveNav]', 'value' => 'aboveNav',], + ['label' => 'Below the NavBar [belowNav]','value' => 'belowNav',], + ['label' => 'Above the Jumbotron [aboveJum]', 'value' => 'aboveJum',], + ['label' => 'Below the Jumbotron [belowJum]', 'value' => 'belowJum',], ] ] ], @@ -1402,15 +1325,14 @@ 'type' => 'select', 'renderType' => 'selectSingle', 'items' => [ - ['none', 'none'], - ['container', 'container'], - ['container-sm (< 576px)', 'container-sm'], - ['container-md (≥ 576px)', 'container-md'], - ['container-lg (≥ 768px)', 'container-lg'], - ['container-xl (≥ 992px)', 'container-xl'], - ['container-xxl (≥ 1200px)', 'container-xxl'], - ['container-fluid (≥ 1400px)', 'container-fluid'] - + ['label' => 'none', 'value' => 'none',], + ['label' => 'container','value' => 'container',], + ['label' => 'container-sm (< 576px)', 'value' => 'container-sm',], + ['label' => 'container-md (≥ 576px)', 'value' => 'container-md',], + ['label' => 'container-lg (≥ 768px)', 'value' => 'container-lg',], + ['label' => 'container-xl (≥ 992px)', 'value' => 'container-xl',], + ['label' => 'container-xxl (≥ 1200px)', 'value' => 'container-xxl',], + ['label' => 'container-fluid (≥ 1400px)', 'value' => 'container-fluid',], ] ] ], @@ -1422,8 +1344,8 @@ 'type' => 'select', 'renderType' => 'selectSingle', 'items' => [ - ['inside', 'inside'], - ['outside', 'outside'], + ['label' => 'inside', 'value' => 'inside',], + ['label' => 'outside', 'value' => 'outside',], ] ] ], @@ -1445,9 +1367,9 @@ 'type' => 'select', 'renderType' => 'selectSingle', 'items' => [ - ['none', ''], - ['submenu [Sub]', 'Sub'], - ['sectionmenu [Section]', 'Section'] + ['label' => 'none', 'value' => '',], + ['label' => 'submenu [Sub]','value' => 'Sub',], + ['label' => 'sectionmenu [Section]', 'value' => 'Section',], ] ] ], @@ -1460,9 +1382,9 @@ 'type' => 'select', 'renderType' => 'selectSingle', 'items' => [ - ['none', ''], - ['submenu [Sub]', 'Sub'], - ['sectionmenu [Section]', 'Section'] + ['label' => 'none', 'value' => '',], + ['label' => 'submenu [Sub]','value' => 'Sub',], + ['label' => 'sectionmenu [Section]', 'value' => 'Section',], ] ] ], @@ -1499,9 +1421,7 @@ 'config' => [ 'type' => 'check', 'items' => [ - '1' => [ - '0' => 'Enable spacer' - ] + ['label' => 'Enable spacer',], ] ] ], @@ -1512,9 +1432,7 @@ 'config' => [ 'type' => 'check', 'items' => [ - '1' => [ - '0' => 'content slide for colPos=1 if enabled' - ] + ['label' => 'content slide for colPos=1 if enabled',], ] ] ], @@ -1525,9 +1443,7 @@ 'config' => [ 'type' => 'check', 'items' => [ - '1' => [ - '0' => 'content slide for colPos=2 if enabled' - ] + ['label' => 'content slide for colPos=2 if enabled',], ] ] ], @@ -1549,8 +1465,8 @@ 'type' => 'select', 'renderType' => 'selectSingle', 'items' => [ - ['above', 'above'], - ['below', 'below'] + ['label' => 'above', 'value' => 'above',], + ['label' => 'below','value' => 'below',], ], ] ], @@ -1562,9 +1478,7 @@ 'config' => [ 'type' => 'check', 'items' => [ - '1' => [ - '0' => 'position the submenu at the top of the viewport' - ] + ['label' => 'position the submenu at the top of the viewport',], ] ] ], @@ -1575,9 +1489,7 @@ 'config' => [ 'type' => 'check', 'items' => [ - '1' => [ - '0' => '' - ] + ['label' => '',], ] ] ], @@ -1588,9 +1500,7 @@ 'config' => [ 'type' => 'check', 'items' => [ - '1' => [ - '0' => '' - ] + ['label' => '',], ] ] ], @@ -1602,14 +1512,14 @@ 'type' => 'select', 'renderType' => 'selectSingle', 'items' => [ - ['none', 'none'], - ['container', 'container'], - ['container-sm (< 576px)', 'container-sm'], - ['container-md (≥ 576px)', 'container-md'], - ['container-lg (≥ 768px)', 'container-lg'], - ['container-xl (≥ 992px)', 'container-xl'], - ['container-xxl (≥ 1200px)', 'container-xxl'], - ['container-fluid (≥ 1400px)', 'container-fluid'] + ['label' => 'none', 'value' => 'none',], + ['label' => 'container','value' => 'container',], + ['label' => 'container-sm (< 576px)', 'value' => 'container-sm',], + ['label' => 'container-md (≥ 576px)', 'value' => 'container-md',], + ['label' => 'container-lg (≥ 768px)', 'value' => 'container-lg',], + ['label' => 'container-xl (≥ 992px)', 'value' => 'container-xl',], + ['label' => 'container-xxl (≥ 1200px)', 'value' => 'container-xxl',], + ['label' => 'container-fluid (≥ 1400px)', 'value' => 'container-fluid',], ] ] ], @@ -1621,8 +1531,8 @@ 'type' => 'select', 'renderType' => 'selectSingle', 'items' => [ - ['inside [Inside]', 'Inside'], - ['outside [Outside]', 'Outside'], + ['label' => 'inside [Inside]', 'value' => 'Inside',], + ['label' => 'outside [Outside]','value' => 'Outside',], ] ] ], @@ -1642,9 +1552,7 @@ 'config' => [ 'type' => 'check', 'items' => [ - '1' => [ - '0' => '' - ] + ['label' => '',], ] ] ], @@ -1655,9 +1563,7 @@ 'config' => [ 'type' => 'check', 'items' => [ - '1' => [ - '0' => 'Content of Expanded Content Bottom "slide" through the rootline' - ] + ['label' => 'Content of Expanded Content Bottom "slide" through the rootline',], ] ] ], @@ -1669,14 +1575,14 @@ 'type' => 'select', 'renderType' => 'selectSingle', 'items' => [ - ['none', 'none'], - ['container', 'container'], - ['container-sm (< 576px)', 'container-sm'], - ['container-md (≥ 576px)', 'container-md'], - ['container-lg (≥ 768px)', 'container-lg'], - ['container-xl (≥ 992px)', 'container-xl'], - ['container-xxl (≥ 1200px)', 'container-xxl'], - ['container-fluid (≥ 1400px)', 'container-fluid'] + ['label' => 'none', 'value' => 'none',], + ['label' => 'container','value' => 'container',], + ['label' => 'container-sm (< 576px)', 'value' => 'container-sm',], + ['label' => 'container-md (≥ 576px)', 'value' => 'container-md',], + ['label' => 'container-lg (≥ 768px)', 'value' => 'container-lg',], + ['label' => 'container-xl (≥ 992px)', 'value' => 'container-xl',], + ['label' => 'container-xxl (≥ 1200px)', 'value' => 'container-xxl',], + ['label' => 'container-fluid (≥ 1400px)', 'value' => 'container-fluid',], ] ] ], @@ -1688,8 +1594,8 @@ 'type' => 'select', 'renderType' => 'selectSingle', 'items' => [ - ['inside [Inside]', 'Inside'], - ['outside [Outside]', 'Outside'], + ['label' => 'inside [Inside]', 'value' => 'Inside',], + ['label' => 'outside [Outside]', 'value' => 'Outside',], ] ] ], @@ -1709,9 +1615,7 @@ 'config' => [ 'type' => 'check', 'items' => [ - '1' => [ - '0' => '' - ] + ['label' => '',], ] ] ], @@ -1722,9 +1626,7 @@ 'config' => [ 'type' => 'check', 'items' => [ - '1' => [ - '0' => '' - ] + ['label' => '',], ] ] ], @@ -1735,9 +1637,7 @@ 'config' => [ 'type' => 'check', 'items' => [ - '1' => [ - '0' => 'Content of Footer "slide" through the rootline' - ] + ['label' => 'Content of Footer "slide" through the rootline',], ] ] ], @@ -1749,14 +1649,14 @@ 'type' => 'select', 'renderType' => 'selectSingle', 'items' => [ - ['none', 'none'], - ['container', 'container'], - ['container-sm (< 576px)', 'container-sm'], - ['container-md (≥ 576px)', 'container-md'], - ['container-lg (≥ 768px)', 'container-lg'], - ['container-xl (≥ 992px)', 'container-xl'], - ['container-xxl (≥ 1200px)', 'container-xxl'], - ['container-fluid (≥ 1400px)', 'container-fluid'] + ['label' => 'none', 'value' => 'none',], + ['label' => 'container','value' => 'container',], + ['label' => 'container-sm (< 576px)', 'value' => 'container-sm',], + ['label' => 'container-md (≥ 576px)', 'value' => 'container-md',], + ['label' => 'container-lg (≥ 768px)', 'value' => 'container-lg',], + ['label' => 'container-xl (≥ 992px)', 'value' => 'container-xl',], + ['label' => 'container-xxl (≥ 1200px)', 'value' => 'container-xxl',], + ['label' => 'container-fluid (≥ 1400px)', 'value' => 'container-fluid',], ] ] ], @@ -1769,8 +1669,8 @@ 'type' => 'select', 'renderType' => 'selectSingle', 'items' => [ - ['inside [Inside]', 'Inside'], - ['outside [Outside]', 'Outside'], + ['label' => 'inside [Inside]', 'value' => 'Inside',], + ['label' => 'outside [Outside]', 'value' => 'Outside',], ] ] ], diff --git a/Configuration/TCA/tx_t3sbootstrap_list_item_inline.php b/Configuration/TCA/tx_t3sbootstrap_list_item_inline.php index 9322fa3a..1d36bb96 100644 --- a/Configuration/TCA/tx_t3sbootstrap_list_item_inline.php +++ b/Configuration/TCA/tx_t3sbootstrap_list_item_inline.php @@ -11,6 +11,9 @@ 'hideTable' => 1, 'searchFields' => '', 'iconfile' => 'EXT:t3sbootstrap/Resources/Public/Icons/tx_t3sbootstrap_domain_model_config.gif', + 'security' => [ + 'ignorePageTypeRestriction' => true, + ], ], 'columns' => [ @@ -18,8 +21,8 @@ 'config' => [ 'type' => 'check', 'items' => [ - ['Disable'], - ], + ['label' => 'Disable',], + ] ], ], 'sys_language_uid' => [ diff --git a/Configuration/TSConfig/CKEditor.tsconfig b/Configuration/TSConfig/CKEditor.tsconfig index 353e4193..60587fb9 100644 --- a/Configuration/TSConfig/CKEditor.tsconfig +++ b/Configuration/TSConfig/CKEditor.tsconfig @@ -10,74 +10,31 @@ RTE { page { class = internal-link type = page - titleText = - target = - image = - #params = - rel = } file { class = download-link type = file - titleText = Open or download file in new window - target = _blank - image = - #params = - rel = } mail { class = email-link type = mail - titleText = Send email - image = - #params = - rel = } url { class = external-link type = url - titleText = Open external link in new window - target = _blank - image = - #params = - rel = } telephone { class = phone-link type = telephone - titleText = Call us - target = _blank - image = - #params = - rel = } } buttons.link { - options.removeItems = folder - - file.properties { - class.default = - } - page.properties{ - class.default = - } - url.properties { - class.default = - } - mail.properties { - class.default = - } - telephone.properties { - class.default = - } - properties.class.allowedClasses = phone-link, fax-link, external-link, internal-link, email-link, download-link, btn, btn btn-primary, btn btn-secondary, btn btn-success, btn btn-danger, btn btn-warning, btn btn-info, btn btn-light, btn btn-dark, js-scroll-trigger, text-primary, text-secondary, text-success, text-danger, text-warning, text-info,text-light, text-light bg-dark, text-dark, text-muted, text-white, text-white bg-dark, stretched-link, link-primary, link-secondary, link-success, link-primary, link-secondary, link-success, link-danger, link-warning, link-info, link-light, link-darklink, link-danger, link-warning, link-info, link-light, link-dark - queryParametersSelector.enabled = 0 - + properties.class.allowedClasses = phone-link, external-link, internal-link, email-link, download-link } } } diff --git a/Configuration/TSConfig/Content.tsconfig b/Configuration/TSConfig/Content.tsconfig new file mode 100644 index 00000000..01a656f8 --- /dev/null +++ b/Configuration/TSConfig/Content.tsconfig @@ -0,0 +1,478 @@ +#------------------------------------------------------------------------------- +# Content +#------------------------------------------------------------------------------- + +TCAdefaults.tt_content.imagecols = 1 +TCAdefaults.tt_content.imageorient = 0 + + +TCEFORM.tt_content { + linkToTop.disabled = 1 + table_class.disabled = 1 + space_before_class.disabled = 1 + space_after_class.disabled = 1 + tx_t3sbootstrap_header_celink { + types { + t3sbs_button.disabled = 1 + t3sbs_toast.disabled = 1 + t3sbs_carousel.disabled = 1 + t3sbs_gallery.disabled = 1 + two_columns.disabled = 1 + three_columns.disabled = 1 + four_columns.disabled = 1 + six_columns.disabled = 1 + card_wrapper.disabled = 1 + button_group.disabled = 1 + autoLayout_row.disabled = 1 + background_wrapper.disabled = 1 + parallax_wrapper.disabled = 1 + container.disabled = 1 + carousel_container.disabled = 1 + collapsible_container.disabled = 1 + collapsible_accordion.disabled = 1 + modal.disabled = 1 + tabs_container.disabled = 1 + tabs_tab.disabled = 1 + #listGroup_wrapper.disabled = 1 + } + } + date { + types { + t3sbs_button.disabled = 1 + t3sbs_mediaobject.disabled = 1 + t3sbs_card.disabled = 1 + t3sbs_carousel.disabled = 1 + t3sbs_toast.disabled = 1 + collapsible_accordion.disabled = 1 + } + } + frame_class { + types { + collapsible_accordion.disabled = 1 + t3sbs_toast.disabled = 1 + } + } + + pi_flexform { + types { + two_columns.disabled = 1 + three_columns.disabled = 1 + four_columns.disabled = 1 + six_columns.disabled = 1 + card_wrapper.disabled = 1 + button_group.disabled = 1 + autoLayout_row.disabled = 1 + background_wrapper.disabled = 1 + parallax_wrapper.disabled = 1 + container.disabled = 1 + carousel_container.disabled = 1 + collapsible_container.disabled = 1 + collapsible_accordion.disabled = 1 + modal.disabled = 1 + tabs_container.disabled = 1 + tabs_tab.disabled = 1 + listGroup_wrapper.disabled = 1 + t3sbs_card.disabled = 1 + } + } + header { + types { + t3sbs_button { + label.default = Button Text + label.de = Button Text + } + t3sbs_card { + label.default = Card Title + label.de = Card Titel + } + } + } + header_link { + types { + t3sbs_button { + label.default = Button Link + label.de = Button Link + } + t3sbs_card { + label.default = Link (new button) + label.de = Link (neuer Button) + } + t3sbs_toast.disabled = 1 + collapsible_accordion.disabled = 1 + } + } + header_layout { + types { + t3sbs_button.disabled = 1 + t3sbs_toast.disabled = 1 + collapsible_accordion.disabled = 1 + } + altLabels { + 1 = H1 + 2 = H2 + 3 = H3 + 4 = H4 + 5 = H5 + } + addItems.101 = p + } + tx_t3sbootstrap_header_display { + types { + t3sbs_button.disabled = 1 + t3sbs_mediaobject.disabled = 1 + #t3sbs_card.disabled = 1 + t3sbs_carousel.disabled = 1 + t3sbs_toast.disabled = 1 + collapsible_accordion.disabled = 1 + t3sbs_assets.disabled = 1 + } + } + header_position { + types { + t3sbs_button { + label.default = Button Alignment + label.de = Button Ausrichtung + } + t3sbs_card { + label.default = Card Alignment + label.de = Card Ausrichtung + } + t3sbs_mediaobject.disabled = 1 + t3sbs_carousel.disabled = 1 + t3sbs_toast.disabled = 1 + collapsible_accordion.disabled = 1 + + } + } + subheader { + types { + t3sbs_button.disabled = 1 + t3sbs_mediaobject.disabled = 1 + t3sbs_carousel.disabled = 1 + t3sbs_card { + label.default = Card subtitle + label.de = Card Untertitel + } + } + } + assets { + types { + collapsible_accordion { + label.default = Image for accordions only + label.de = Image for accordions only + } + } + } + imageorient.addItems.66 = LLL:EXT:t3sbootstrap/Resources/Private/Language/locallang_be.xlf:tt_content.imageorient.66 + imageorient.addItems.77 = LLL:EXT:t3sbootstrap/Resources/Private/Language/locallang_be.xlf:tt_content.imageorient.77 + imageorient { + #0 = Above, center + #1 = Above, right + #2 = Above, left + #8 = Below, center + #9 = Below, right + #10 = Below, left + #17 = In text, right + #18 = In text, left + #25 = In text, right (nowrap) + #26 = In text, left (nowrap) + types { + t3sbs_card { + removeItems = 1,2,9,10,17,18,25,26,66,77 + label.default = Image position + label.de = Bild Position + altLabels.0 = LLL:EXT:t3sbootstrap/Resources/Private/Language/locallang_be.xlf:above + altLabels.8 = LLL:EXT:t3sbootstrap/Resources/Private/Language/locallang_be.xlf:below + } + t3sbs_mediaobject { + removeItems = 0,1,2,8,9,10,17,18,25,26,66,77 + label.default = Image position + label.de = Bild Position + addItems.90 = Default + addItems.91 = Center-aligned media + addItems.92 = Top-aligned media + addItems.93 = Bottom-aligned media + } + t3sbs_carousel.disabled = 1 + t3sbs_toast.disabled = 1 + } + } + imagecols { + types { + t3sbs_card.disabled = 1 + t3sbs_mediaobject.disabled = 1 + t3sbs_toast.disabled = 1 + t3sbs_carousel.disabled = 1 + t3sbs_gallery { + label.default = Columns + label.de = Spalten + addItems.12 = 12 + removeItems = 5,7,8,88 + } + textmedia { + addItems.88 = BOOTSTRAP: Carousel + } + } + } + + tx_t3sbootstrap_image_ratio { + types { + t3sbs_toast.disabled = 1 + two_columns.disabled = 1 + three_columns.disabled = 1 + four_columns.disabled = 1 + six_columns.disabled = 1 + card_wrapper.disabled = 1 + button_group.disabled = 1 + autoLayout_row.disabled = 1 + background_wrapper.disabled = 1 + parallax_wrapper.disabled = 1 + container.disabled = 1 + carousel_container.disabled = 1 + collapsible_container.disabled = 1 + collapsible_accordion.disabled = 1 + modal.disabled = 1 + tabs_container.disabled = 1 + tabs_tab.disabled = 1 + listGroup_wrapper.disabled = 1 + } + } + imagewidth { + types { + t3sbs_carousel.disabled = 1 + } + } + imageheight { + types { + t3sbs_carousel.disabled = 1 + t3sbs_toast.disabled = 1 + } + } + imageborder { + types { + t3sbs_carousel.disabled = 1 + t3sbs_toast.disabled = 1 + } + } + tx_t3sbootstrap_bordercolor { + types { + t3sbs_gallery.disabled = 1 + t3sbs_toast.disabled = 1 + } + } + image_zoom { + types { + t3sbs_carousel.disabled = 1 + t3sbs_toast.disabled = 1 + } + } + tx_t3sbootstrap_sectionOrder { + types { + t3sbs_toast.disabled = 1 + collapsible_accordion.disabled = 1 + } + } + tx_t3sbootstrap_header_class { + types { + t3sbs_button.disabled = 1 + t3sbs_toast.disabled = 1 + t3sbs_assets.disabled = 1 + } + } + tx_t3sbootstrap_bgcolor { + types { + t3sbs_button.disabled = 1 + t3sbs_toast.disabled = 1 + t3sbs_assets.disabled = 1 + t3sbs_carousel { + label.default = Caption background color (use with opacity - image link and zoom did not work) + label.de = Caption background color (use with opacity - image link and zoom did not work) + } + } + } + tx_t3sbootstrap_header_fontawesome { + types { + t3sbs_toast.disabled = 1 + t3sbs_assets.disabled = 1 + } + } + tx_t3sbootstrap_bgopacity { + types { + t3sbs_button.disabled = 1 + t3sbs_toast.disabled = 1 + t3sbs_assets.disabled = 1 + t3sbs_carousel { + label.default = Opacity for Caption background color + label.de = Opacity for Caption background color + } + } + } + tx_t3sbootstrap_contextcolor { + types { + t3sbs_button.disabled = 1 + t3sbs_carousel.disabled = 1 + t3sbs_toast.disabled = 1 + t3sbs_assets.disabled = 1 + } + } + + tx_t3sbootstrap_textcolor { + types { + t3sbs_button.disabled = 1 + t3sbs_toast.disabled = 1 + t3sbs_assets.disabled = 1 + t3sbs_carousel { + label.default = Text color for caption + label.de = Text color for caption + } + } + } + + tx_t3sbootstrap_extra_class { + types { + t3sbs_assets.disabled = 1 + } + } + + tx_t3sbootstrap_padding_sides { + types { + t3sbs_carousel.disabled = 1 + t3sbs_toast.disabled = 1 + toast_container.disabled = 1 + t3sbs_assets.disabled = 1 + } + } + tx_t3sbootstrap_padding_size { + types { + t3sbs_carousel.disabled = 1 + t3sbs_toast.disabled = 1 + toast_container.disabled = 1 + t3sbs_assets.disabled = 1 + } + } + tx_t3sbootstrap_margin_sides { + types { + t3sbs_carousel.disabled = 1 + t3sbs_toast.disabled = 1 + toast_container.disabled = 1 + t3sbs_assets.disabled = 1 + } + } + tx_t3sbootstrap_margin_size { + types { + t3sbs_carousel.disabled = 1 + t3sbs_toast.disabled = 1 + toast_container.disabled = 1 + t3sbs_assets.disabled = 1 + } + } + tx_t3sbootstrap_container { + types { + t3sbs_carousel.disabled = 1 + t3sbs_toast.disabled = 1 + collapsible_accordion.disabled = 1 + t3sbs_assets.disabled = 1 + } + } + tx_t3sbootstrap_flexform { + types { + t3sbs_assets.disabled = 1 + } + } + tx_t3sbootstrap_inTextImgRowWidth { + types { + t3sbs_card.disabled = 1 + t3sbs_mediaobject.disabled = 1 + t3sbs_carousel.disabled = 1 + t3sbs_toast.disabled = 1 + t3sbs_gallery.disabled = 1 + two_columns.disabled = 1 + three_columns.disabled = 1 + four_columns.disabled = 1 + six_columns.disabled = 1 + card_wrapper.disabled = 1 + button_group.disabled = 1 + autoLayout_row.disabled = 1 + background_wrapper.disabled = 1 + parallax_wrapper.disabled = 1 + container.disabled = 1 + carousel_container.disabled = 1 + collapsible_container.disabled = 1 + collapsible_accordion.disabled = 1 + modal.disabled = 1 + tabs_container.disabled = 1 + tabs_tab.disabled = 1 + listGroup_wrapper.disabled = 1 + } + } + tx_t3sbootstrap_animateCss { + types { + collapsible_accordion.disabled = 1 + } + } + tx_t3sbootstrap_animateCssDuration { + types { + collapsible_accordion.disabled = 1 + } + } + tx_t3sbootstrap_animateCssDelay { + types { + collapsible_accordion.disabled = 1 + } + } + tx_t3sbootstrap_animateCssRepeat { + types { + collapsible_accordion.disabled = 1 + } + } + tx_t3sbootstrap_header_sectionMenu { + types { + t3sbs_toast.disabled = 1 + collapsible_accordion.disabled = 1 + t3sbs_carousel.disabled = 1 + } + } + tx_content_animations_animation { + types { + collapsible_accordion.disabled = 1 + t3sbs_carousel.disabled = 1 + tabs_tab.disabled = 1 + listGroup_wrapper.disabled = 1 + t3sbs_button.disabled = 1 + } + } + tx_content_animations_duration { + types { + collapsible_accordion.disabled = 1 + t3sbs_carousel.disabled = 1 + tabs_tab.disabled = 1 + listGroup_wrapper.disabled = 1 + t3sbs_button.disabled = 1 + } + } + tx_content_animations_delay { + types { + collapsible_accordion.disabled = 1 + t3sbs_carousel.disabled = 1 + tabs_tab.disabled = 1 + listGroup_wrapper.disabled = 1 + t3sbs_button.disabled = 1 + } + } + tx_content_animations_animation { + types { + t3sbs_assets.disabled = 1 + } + } + tx_content_animations_duration { + types { + t3sbs_assets.disabled = 1 + } + } + tx_content_animations_delay { + types { + t3sbs_assets.disabled = 1 + } + } + +} diff --git a/Configuration/TSConfig/Page.tsconfig b/Configuration/TSConfig/Page.tsconfig index 69497cb4..1b25bd5c 100644 --- a/Configuration/TSConfig/Page.tsconfig +++ b/Configuration/TSConfig/Page.tsconfig @@ -1,22 +1,5 @@ - -#------------------------------------------------------------------------------- -# Include -#------------------------------------------------------------------------------- -mod.web_layout { - tt_content { - preview { - t3sbs_assets = EXT:t3sbootstrap/Resources/Private/Templates/Preview/t3sbs_assets.html - } - } -} - #------------------------------------------------------------------------------- -# Include -#------------------------------------------------------------------------------- -@import 'EXT:t3sbootstrap/Configuration/TSConfig/NewContentElements.tsconfig' -@import 'EXT:t3sbootstrap/Configuration/TSConfig/SysFileReference.tsconfig' -#------------------------------------------------------------------------------- -# Content +# Pages #------------------------------------------------------------------------------- TCAdefaults.pages.tx_t3sbootstrap_container = container @@ -31,477 +14,4 @@ TCEFORM.pages.nav_title.disabled = 1 TCEFORM.pages.crdate.disabled = 1 [END] -TCAdefaults.tt_content.imagecols = 1 -TCAdefaults.tt_content.imageorient = 0 - - -TCEFORM.tt_content { - linkToTop.disabled = 1 - table_class.disabled = 1 - space_before_class.disabled = 1 - space_after_class.disabled = 1 - tx_t3sbootstrap_header_celink { - types { - t3sbs_button.disabled = 1 - t3sbs_toast.disabled = 1 - t3sbs_carousel.disabled = 1 - t3sbs_gallery.disabled = 1 - two_columns.disabled = 1 - three_columns.disabled = 1 - four_columns.disabled = 1 - six_columns.disabled = 1 - card_wrapper.disabled = 1 - button_group.disabled = 1 - autoLayout_row.disabled = 1 - background_wrapper.disabled = 1 - parallax_wrapper.disabled = 1 - container.disabled = 1 - carousel_container.disabled = 1 - collapsible_container.disabled = 1 - collapsible_accordion.disabled = 1 - modal.disabled = 1 - tabs_container.disabled = 1 - tabs_tab.disabled = 1 - #listGroup_wrapper.disabled = 1 - } - } - date { - types { - t3sbs_button.disabled = 1 - t3sbs_mediaobject.disabled = 1 - t3sbs_card.disabled = 1 - t3sbs_carousel.disabled = 1 - t3sbs_toast.disabled = 1 - collapsible_accordion.disabled = 1 - } - } - frame_class { - types { - collapsible_accordion.disabled = 1 - t3sbs_toast.disabled = 1 - } - } - - pi_flexform { - types { - two_columns.disabled = 1 - three_columns.disabled = 1 - four_columns.disabled = 1 - six_columns.disabled = 1 - card_wrapper.disabled = 1 - button_group.disabled = 1 - autoLayout_row.disabled = 1 - background_wrapper.disabled = 1 - parallax_wrapper.disabled = 1 - container.disabled = 1 - carousel_container.disabled = 1 - collapsible_container.disabled = 1 - collapsible_accordion.disabled = 1 - modal.disabled = 1 - tabs_container.disabled = 1 - tabs_tab.disabled = 1 - listGroup_wrapper.disabled = 1 - t3sbs_card.disabled = 1 - } - } - header { - types { - t3sbs_button { - label.default = Button Text - label.de = Button Text - } - t3sbs_card { - label.default = Card Title - label.de = Card Titel - } - } - } - header_link { - types { - t3sbs_button { - label.default = Button Link - label.de = Button Link - } - t3sbs_card { - label.default = Link (new button) - label.de = Link (neuer Button) - } - t3sbs_toast.disabled = 1 - collapsible_accordion.disabled = 1 - } - } - header_layout { - types { - t3sbs_button.disabled = 1 - t3sbs_toast.disabled = 1 - collapsible_accordion.disabled = 1 - } - altLabels { - 1 = H1 - 2 = H2 - 3 = H3 - 4 = H4 - 5 = H5 - } - addItems.101 = p - } - tx_t3sbootstrap_header_display { - types { - t3sbs_button.disabled = 1 - t3sbs_mediaobject.disabled = 1 - #t3sbs_card.disabled = 1 - t3sbs_carousel.disabled = 1 - t3sbs_toast.disabled = 1 - collapsible_accordion.disabled = 1 - t3sbs_assets.disabled = 1 - } - } - header_position { - types { - t3sbs_button { - label.default = Button Alignment - label.de = Button Ausrichtung - } - t3sbs_card { - label.default = Card Alignment - label.de = Card Ausrichtung - } - t3sbs_mediaobject.disabled = 1 - t3sbs_carousel.disabled = 1 - t3sbs_toast.disabled = 1 - collapsible_accordion.disabled = 1 - - } - } - subheader { - types { - t3sbs_button.disabled = 1 - t3sbs_mediaobject.disabled = 1 - t3sbs_carousel.disabled = 1 - t3sbs_card { - label.default = Card subtitle - label.de = Card Untertitel - } - } - } - assets { - types { - collapsible_accordion { - label.default = Image for accordions only - label.de = Image for accordions only - } - } - } - imageorient.addItems.66 = LLL:EXT:t3sbootstrap/Resources/Private/Language/locallang_be.xlf:tt_content.imageorient.66 - imageorient.addItems.77 = LLL:EXT:t3sbootstrap/Resources/Private/Language/locallang_be.xlf:tt_content.imageorient.77 - imageorient { - #0 = Above, center - #1 = Above, right - #2 = Above, left - #8 = Below, center - #9 = Below, right - #10 = Below, left - #17 = In text, right - #18 = In text, left - #25 = In text, right (nowrap) - #26 = In text, left (nowrap) - types { - t3sbs_card { - removeItems = 1,2,9,10,17,18,25,26,66,77 - label.default = Image position - label.de = Bild Position - altLabels.0 = LLL:EXT:t3sbootstrap/Resources/Private/Language/locallang_be.xlf:above - altLabels.8 = LLL:EXT:t3sbootstrap/Resources/Private/Language/locallang_be.xlf:below - } - t3sbs_mediaobject { - removeItems = 0,1,2,8,9,10,17,18,25,26,66,77 - label.default = Image position - label.de = Bild Position - addItems.90 = Default - addItems.91 = Center-aligned media - addItems.92 = Top-aligned media - addItems.93 = Bottom-aligned media - } - t3sbs_carousel.disabled = 1 - t3sbs_toast.disabled = 1 - } - } - imagecols { - types { - t3sbs_card.disabled = 1 - t3sbs_mediaobject.disabled = 1 - t3sbs_toast.disabled = 1 - t3sbs_carousel.disabled = 1 - t3sbs_gallery { - label.default = Columns - label.de = Spalten - addItems.12 = 12 - removeItems = 5,7,8,88 - } - textmedia { - addItems.88 = BOOTSTRAP: Carousel - } - } - } - - tx_t3sbootstrap_image_ratio { - types { - t3sbs_toast.disabled = 1 - two_columns.disabled = 1 - three_columns.disabled = 1 - four_columns.disabled = 1 - six_columns.disabled = 1 - card_wrapper.disabled = 1 - button_group.disabled = 1 - autoLayout_row.disabled = 1 - background_wrapper.disabled = 1 - parallax_wrapper.disabled = 1 - container.disabled = 1 - carousel_container.disabled = 1 - collapsible_container.disabled = 1 - collapsible_accordion.disabled = 1 - modal.disabled = 1 - tabs_container.disabled = 1 - tabs_tab.disabled = 1 - listGroup_wrapper.disabled = 1 - } - } - imagewidth { - types { - t3sbs_carousel.disabled = 1 - } - } - imageheight { - types { - t3sbs_carousel.disabled = 1 - t3sbs_toast.disabled = 1 - } - } - imageborder { - types { - t3sbs_carousel.disabled = 1 - t3sbs_toast.disabled = 1 - } - } - tx_t3sbootstrap_bordercolor { - types { - t3sbs_gallery.disabled = 1 - t3sbs_toast.disabled = 1 - } - } - image_zoom { - types { - t3sbs_carousel.disabled = 1 - t3sbs_toast.disabled = 1 - } - } - tx_t3sbootstrap_sectionOrder { - types { - t3sbs_toast.disabled = 1 - collapsible_accordion.disabled = 1 - } - } - tx_t3sbootstrap_header_class { - types { - t3sbs_button.disabled = 1 - t3sbs_toast.disabled = 1 - t3sbs_assets.disabled = 1 - } - } - tx_t3sbootstrap_bgcolor { - types { - t3sbs_button.disabled = 1 - t3sbs_toast.disabled = 1 - t3sbs_assets.disabled = 1 - t3sbs_carousel { - label.default = Caption background color (use with opacity - image link and zoom did not work) - label.de = Caption background color (use with opacity - image link and zoom did not work) - } - } - } - tx_t3sbootstrap_header_fontawesome { - types { - t3sbs_toast.disabled = 1 - t3sbs_assets.disabled = 1 - } - } - tx_t3sbootstrap_bgopacity { - types { - t3sbs_button.disabled = 1 - t3sbs_toast.disabled = 1 - t3sbs_assets.disabled = 1 - t3sbs_carousel { - label.default = Opacity for Caption background color - label.de = Opacity for Caption background color - } - } - } - tx_t3sbootstrap_contextcolor { - types { - t3sbs_button.disabled = 1 - t3sbs_carousel.disabled = 1 - t3sbs_toast.disabled = 1 - t3sbs_assets.disabled = 1 - } - } - - tx_t3sbootstrap_textcolor { - types { - t3sbs_button.disabled = 1 - t3sbs_toast.disabled = 1 - t3sbs_assets.disabled = 1 - t3sbs_carousel { - label.default = Text color for caption - label.de = Text color for caption - } - } - } - - tx_t3sbootstrap_extra_class { - types { - t3sbs_assets.disabled = 1 - } - } - - tx_t3sbootstrap_padding_sides { - types { - t3sbs_carousel.disabled = 1 - t3sbs_toast.disabled = 1 - toast_container.disabled = 1 - t3sbs_assets.disabled = 1 - } - } - tx_t3sbootstrap_padding_size { - types { - t3sbs_carousel.disabled = 1 - t3sbs_toast.disabled = 1 - toast_container.disabled = 1 - t3sbs_assets.disabled = 1 - } - } - tx_t3sbootstrap_margin_sides { - types { - t3sbs_carousel.disabled = 1 - t3sbs_toast.disabled = 1 - toast_container.disabled = 1 - t3sbs_assets.disabled = 1 - } - } - tx_t3sbootstrap_margin_size { - types { - t3sbs_carousel.disabled = 1 - t3sbs_toast.disabled = 1 - toast_container.disabled = 1 - t3sbs_assets.disabled = 1 - } - } - tx_t3sbootstrap_container { - types { - t3sbs_carousel.disabled = 1 - t3sbs_toast.disabled = 1 - collapsible_accordion.disabled = 1 - t3sbs_assets.disabled = 1 - } - } - tx_t3sbootstrap_flexform { - types { - t3sbs_assets.disabled = 1 - } - } - tx_t3sbootstrap_inTextImgRowWidth { - types { - t3sbs_card.disabled = 1 - t3sbs_mediaobject.disabled = 1 - t3sbs_carousel.disabled = 1 - t3sbs_toast.disabled = 1 - t3sbs_gallery.disabled = 1 - two_columns.disabled = 1 - three_columns.disabled = 1 - four_columns.disabled = 1 - six_columns.disabled = 1 - card_wrapper.disabled = 1 - button_group.disabled = 1 - autoLayout_row.disabled = 1 - background_wrapper.disabled = 1 - parallax_wrapper.disabled = 1 - container.disabled = 1 - carousel_container.disabled = 1 - collapsible_container.disabled = 1 - collapsible_accordion.disabled = 1 - modal.disabled = 1 - tabs_container.disabled = 1 - tabs_tab.disabled = 1 - listGroup_wrapper.disabled = 1 - } - } - tx_t3sbootstrap_animateCss { - types { - collapsible_accordion.disabled = 1 - } - } - tx_t3sbootstrap_animateCssDuration { - types { - collapsible_accordion.disabled = 1 - } - } - tx_t3sbootstrap_animateCssDelay { - types { - collapsible_accordion.disabled = 1 - } - } - tx_t3sbootstrap_animateCssRepeat { - types { - collapsible_accordion.disabled = 1 - } - } - tx_t3sbootstrap_header_sectionMenu { - types { - t3sbs_toast.disabled = 1 - collapsible_accordion.disabled = 1 - t3sbs_carousel.disabled = 1 - } - } - tx_content_animations_animation { - types { - collapsible_accordion.disabled = 1 - t3sbs_carousel.disabled = 1 - tabs_tab.disabled = 1 - listGroup_wrapper.disabled = 1 - t3sbs_button.disabled = 1 - } - } - tx_content_animations_duration { - types { - collapsible_accordion.disabled = 1 - t3sbs_carousel.disabled = 1 - tabs_tab.disabled = 1 - listGroup_wrapper.disabled = 1 - t3sbs_button.disabled = 1 - } - } - tx_content_animations_delay { - types { - collapsible_accordion.disabled = 1 - t3sbs_carousel.disabled = 1 - tabs_tab.disabled = 1 - listGroup_wrapper.disabled = 1 - t3sbs_button.disabled = 1 - } - } - tx_content_animations_animation { - types { - t3sbs_assets.disabled = 1 - } - } - tx_content_animations_duration { - types { - t3sbs_assets.disabled = 1 - } - } - tx_content_animations_delay { - types { - t3sbs_assets.disabled = 1 - } - } -} diff --git a/Configuration/TypoScript/Page/BodyTag.typoscript b/Configuration/TypoScript/Page/BodyTag.typoscript index edc37e7a..a0235b7b 100644 --- a/Configuration/TypoScript/Page/BodyTag.typoscript +++ b/Configuration/TypoScript/Page/BodyTag.typoscript @@ -38,7 +38,18 @@ page { value = {$bootstrap.config.navbarBreakpoint} noTrimWrap = | || } - + 60 = TEXT + 60 { + value = webp + noTrimWrap = | || + if.isTrue = {$bootstrap.extconf.webp} + } + 70 = TEXT + 70 { + value = no-webp + noTrimWrap = | || + if.isFalse = {$bootstrap.extconf.webp} + } } 30 = COA 30 { diff --git a/Configuration/TypoScript/Page/IncludeCdn.typoscript b/Configuration/TypoScript/Page/IncludeCdn.typoscript index 0af98960..b6ebc645 100644 --- a/Configuration/TypoScript/Page/IncludeCdn.typoscript +++ b/Configuration/TypoScript/Page/IncludeCdn.typoscript @@ -107,7 +107,7 @@ page { 61 = TEXT 61.value = 61.if { - value = 1,3 + value = 3 isInList = {$bootstrap.extconf.fontawesomeCss} } } diff --git a/Configuration/TypoScript/Page/IncludeDefault.typoscript b/Configuration/TypoScript/Page/IncludeDefault.typoscript index 0f51ebfd..212550cb 100644 --- a/Configuration/TypoScript/Page/IncludeDefault.typoscript +++ b/Configuration/TypoScript/Page/IncludeDefault.typoscript @@ -99,12 +99,12 @@ page.includeCSS.bsicons = EXT:t3sbootstrap/Resources/Public/Contrib/BootstrapIso [{$bootstrap.config.faLinkIcons} == 1 && {$bootstrap.extconf.fontawesomeCss} == 0] page.includeCSS.t3sfontawesomeMinLink = EXT:t3sbootstrap/Resources/Public/Contrib/Fontawesome/css/fontawesomeMinLink.css [global] -[{$bootstrap.config.faLinkIcons} == 1 && {$bootstrap.extconf.fontawesomeCss} == 1] -page.includeCSS.t3sfontawesomeLink = EXT:t3sbootstrap/Resources/Public/Contrib/Fontawesome/css/fontawesomeLink.css -[global] -[{$bootstrap.config.faLinkIcons} == 1 && {$bootstrap.extconf.fontawesomeCss} == 2] -page.includeCSS.t3sfontawesomeProLink = EXT:t3sbootstrap/Resources/Public/Contrib/Fontawesome/css/fontawesomeProLink.css -[global] +#[{$bootstrap.config.faLinkIcons} == 1 && {$bootstrap.extconf.fontawesomeCss} == 1] +#page.includeCSS.t3sfontawesomeLink = EXT:t3sbootstrap/Resources/Public/Contrib/Fontawesome/css/fontawesomeLink.css +#[global] +#[{$bootstrap.config.faLinkIcons} == 1 && {$bootstrap.extconf.fontawesomeCss} == 2] +#page.includeCSS.t3sfontawesomeProLink = EXT:t3sbootstrap/Resources/Public/Contrib/Fontawesome/css/fontawesomeProLink.css +#[global] [{$bootstrap.config.faLinkIcons} == 1 && {$bootstrap.extconf.fontawesomeCss} == 3] page.includeCSS.t3sfontawesomeLink = EXT:t3sbootstrap/Resources/Public/Contrib/Fontawesome/css/fontawesome6Link.css [global] diff --git a/Configuration/TypoScript/constants.typoscript b/Configuration/TypoScript/constants.typoscript index eca7a407..1b46024b 100644 --- a/Configuration/TypoScript/constants.typoscript +++ b/Configuration/TypoScript/constants.typoscript @@ -1,3 +1,4 @@ + #------------------------------------------------------------------------------- # Plugin Constants #------------------------------------------------------------------------------- @@ -23,11 +24,24 @@ bootstrap.cdn.fontawesome6latest = 6.4.0 # Constant Editor #------------------------------------------------------------------------------- -# customcategory=bootstrap-cdn=* T3SB::CDN- Google Fonts and Version-Settings -# customsubcategory=a-enable=CDN (Content Delivery Network) - can offer a performance benefit! +# customcategory=bootstrap-cdn=T3SB CDN - Google Fonts and Version-Settings +# customsubcategory=a-enable=CDN - can offer a performance benefit # customsubcategory=a-google=GoogleFonts - Integrate Google Fonts -# customsubcategory=b-version=CDN Versions used in the scheduler task "T3SB CDN to local" - must be valid +# customsubcategory=b-version=CDN Versions used in the scheduler task T3SB CDN to local - must be valid # customsubcategory=c-integrity=CDN Integrity - if set crossorigin is set to anonymous + +# customcategory=bootstrap-image=T3SB Image settings +# customsubcategory=a-image=Default Image Size +# customsubcategory=b-image=Additional image sizes (srcset) that should be generated for each content image. +# customsubcategory=c-image=Lazyloading Threshold +# customsubcategory=d-image=Picturefill + +# customcategory=bootstrap-optimize=T3SB OPTIMIZE-Bootstrap +# customsubcategory=c-enable=Optimize Bootstrap - Lean Sass imports When using "Custom SCSS", make sure you optimize Bootstrap by only @importing the components you need. For example, if you’re not using the carousel, remove that import to save some file size in your compiled CSS by disable the associated checkbox below. progress, tooltip, popover and placeholders are not used by t3sbootstrap! After that execute the scheduler task "t3sbootstrap:customScss". + +# customcategory=bootstrap-pages=T3SB Global pages override +# customsubcategory=a-pages=Global pages override + bootstrap.cdn { # cat=bootstrap-cdn/a-enable/10; type=boolean; label=Enable CDN - please consider the "GDPR" ("DSGVO"):before CDN can be disabled, run the scheduler task "T3SB CDN to local" to write the required files to fileadmin/T3SB/Resources/Public/ enable = 1 @@ -44,7 +58,7 @@ bootstrap.cdn { # cat=bootstrap-cdn/b-version/12; type=small; label=Fontawesome: e.g. 5.15.4 or 6.4.0 fontawesome = 6.4.0 # cat=bootstrap-cdn/b-version/20; type=small; label=jQuery library: - jquery = 3.6.1 + jquery = 3.7.0 # cat=bootstrap-cdn/b-version/22; type=small; label=jQuery Easing: jqueryEasing = 1.4.1 # cat=bootstrap-cdn/b-version/25; type=int+; label=Cookieconsent: set to 3 only to get v3.x (latest) @@ -66,7 +80,7 @@ bootstrap.cdn { # cat=bootstrap-cdn/b-version/50; type=small; label=Jarallax: set to 2 only to get v2.x (latest) jarallax = 2 # cat=bootstrap-cdn/b-version/60; type=small; label=Swiper: set to 8 only to get v8.x (latest) - swiper = 8 + swiper = 9 # cat=bootstrap-cdn/c-integrity/10; type=small; label=Bootstrap CSS: bootstrapCssIntegrity = sha384-rbsA2VBKQhggwzxH7pPCaAqO46MgnOM80zW1RWuH61DGLwZJEdK2Kadq2F9CUG65 @@ -98,11 +112,6 @@ bootstrap.cdn { glightboxIntegrity = } -# customcategory=bootstrap-image=* T3SB::Image settings -# customsubcategory=a-image=Default Image Size -# customsubcategory=b-image=Additional image sizes (srcset) that should be generated for each content image. -# customsubcategory=c-image=Lazyloading Threshold -# customsubcategory=d-image=Picturefill bootstrap.image { # cat=bootstrap-image/a-image/10; type=boolean; label=Set Cookie with viewport width: usefull if using container "fluid-container" and auto image width. viewportWidthCookie = 0 @@ -132,9 +141,6 @@ bootstrap.image { picturefill = 0 } - -# customcategory=bootstrap-optimize=* T3SB::OPTIMIZE-Bootstrap -# customsubcategory=c-enable=Optimize Bootstrap - Lean Sass imports When using "Custom SCSS", make sure you optimize Bootstrap by only @importing the components you need. For example, if you’re not using the carousel, remove that import to save some file size in your compiled CSS by disable the associated checkbox below. progress, tooltip, popover and placeholders are not used by t3sbootstrap! After that execute the scheduler task "t3sbootstrap:customScss". bootstrap.optimize { # cat=bootstrap-optimize/c-enable/10; type=boolean; label=tables tables = 1 @@ -188,9 +194,6 @@ bootstrap.optimize { placeholders = 1 } - -# customcategory=bootstrap-pages=* T3SB::Global pages override -# customsubcategory=a-pages=Global pages override bootstrap.pages.override { # cat=bootstrap-pages/a-pages/10; type=options[none=0, container=container, container-sm=container-sm, container-md=container-md, container-lg=container-lg, container-xl=container-xl, container-xxl=container-xxl, container-fluid=container-fluid]; label=Container (for the whole page): container = 0 @@ -261,7 +264,7 @@ bootstrap.config.jqueryHeader = 0 bootstrap.disable.accordion.scrollToTop = 0 bootstrap.navbar { - image.defaultPath = /typo3conf/ext/t3sbootstrap/Resources/Public/Images/bootstrap-logo-white.svg + image.defaultPath = EXT:t3sbootstrap/Resources/Public/Images/bootstrap-logo-white.svg image.width = 30 image.height = 24 image.altText = Company Logo diff --git a/Configuration/page.tsconfig b/Configuration/page.tsconfig new file mode 100644 index 00000000..de2c3b08 --- /dev/null +++ b/Configuration/page.tsconfig @@ -0,0 +1,5 @@ +@import 'EXT:t3sbootstrap/Configuration/TSConfig/Page.tsconfig' +@import 'EXT:t3sbootstrap/Configuration/TSConfig/Content.tsconfig' +@import 'EXT:t3sbootstrap/Configuration/TSConfig/CKEditor.tsconfig' +@import 'EXT:t3sbootstrap/Configuration/TSConfig/NewContentElements.tsconfig' +@import 'EXT:t3sbootstrap/Configuration/TSConfig/SysFileReference.tsconfig' diff --git a/Contrib/scssphp/bin/pscss b/Contrib/scssphp/bin/pscss index e6223983..b70d499f 100644 --- a/Contrib/scssphp/bin/pscss +++ b/Contrib/scssphp/bin/pscss @@ -166,7 +166,7 @@ EOT; if (isset($arguments[0]) && file_exists($arguments[0])) { $inputFile = $arguments[0]; - $data = file_get_contents($inputFile); + $data = @file_get_contents($inputFile); } else { $data = ''; diff --git a/Contrib/scssphp/src/Cache.php b/Contrib/scssphp/src/Cache.php index 9731c60a..a9ab2e1e 100644 --- a/Contrib/scssphp/src/Cache.php +++ b/Contrib/scssphp/src/Cache.php @@ -132,7 +132,7 @@ public function getCache($operation, $what, $options = [], $lastModified = null) (\is_null($lastModified) || $cacheTime > $lastModified) && $cacheTime + self::$gcLifetime > time() ) { - $c = file_get_contents($fileCache); + $c = @file_get_contents($fileCache); $c = unserialize($c); if (\is_array($c) && isset($c['value'])) { diff --git a/Contrib/scssphp/src/Compiler.php b/Contrib/scssphp/src/Compiler.php index 9be47b7b..9c3d7e15 100644 --- a/Contrib/scssphp/src/Compiler.php +++ b/Contrib/scssphp/src/Compiler.php @@ -5669,7 +5669,7 @@ protected function importFile($path, OutputBlock $out) $tree = $this->importCache[$realPath]; } else { - $code = file_get_contents($path); + $code = @file_get_contents($path); $parser = $this->parserFactory($path); $tree = $parser->parse($code); diff --git a/Contrib/scssphp/src/SourceMap/SourceMapGenerator.php b/Contrib/scssphp/src/SourceMap/SourceMapGenerator.php index 4f14bdce..2da902d4 100644 --- a/Contrib/scssphp/src/SourceMap/SourceMapGenerator.php +++ b/Contrib/scssphp/src/SourceMap/SourceMapGenerator.php @@ -240,7 +240,7 @@ protected function getSourcesContent() $content = []; foreach ($this->sources as $sourceFile) { - $content[] = file_get_contents($sourceFile); + $content[] = @file_get_contents($sourceFile); } return $content; diff --git a/Resources/Private/Backend/Layouts/Default.html b/Resources/Private/Backend/Layouts/Default.html index 006cf180..ffc11c46 100644 --- a/Resources/Private/Backend/Layouts/Default.html +++ b/Resources/Private/Backend/Layouts/Default.html @@ -3,35 +3,34 @@
- +
- diff --git a/Resources/Private/Backend/Partials/Config/Accordion.html b/Resources/Private/Backend/Partials/Config/Accordion.html index 5f4a1498..1eb41e5e 100644 --- a/Resources/Private/Backend/Partials/Config/Accordion.html +++ b/Resources/Private/Backend/Partials/Config/Accordion.html @@ -1,6 +1,6 @@ - ACCORDION - -
+
@@ -18,76 +18,60 @@ -
-
-

-

+
-
-
- - - - - - - - Hide Option 'navbar_dark_mode' if Bootstrap is not > v5.2.99 - - - - - - - - - FORM FIELD - - - - - - - - - - - - - - - NESTED ACCORDION - -
-
-
-

- -

-
-
-
- - + + + + Hide Option 'navbar_dark_mode' if Bootstrap is not > v5.2.99 + + + +
+
+
+ + + + + Hide Option 'navbar_dark_mode' if Bootstrap is not > v5.2.99 + + + + + - FORM FIELD - - - -
-
-
-
- - - - - - - -
-
+ + + + + + + + + + + + + - NESTED ACCORDION - + + + + + + +
+
+
+ +
@@ -109,3 +93,25 @@

Shrinking Navbar on scrolling

+ + +
+
+

+ +

+
+
+
+ + + - FORM FIELD - + + +
+
+
+
diff --git a/Resources/Private/Backend/Partials/Config/Check.html b/Resources/Private/Backend/Partials/Config/Check.html index 8a6e897d..bbdd868b 100644 --- a/Resources/Private/Backend/Partials/Config/Check.html +++ b/Resources/Private/Backend/Partials/Config/Check.html @@ -1,7 +1,7 @@ -
+
- {field.label} +{field.label}
{compare.{field.property}}
@@ -12,9 +12,9 @@
- +
diff --git a/Resources/Private/Backend/Partials/Config/Input.html b/Resources/Private/Backend/Partials/Config/Input.html index c468fea2..81d0bbfa 100644 --- a/Resources/Private/Backend/Partials/Config/Input.html +++ b/Resources/Private/Backend/Partials/Config/Input.html @@ -1,6 +1,6 @@ -
-