diff --git a/Classes/Backend/EventListener/FlexForm/FlexformEvent.php b/Classes/Backend/EventListener/FlexForm/FlexformEvent.php index ca30781f..2ea3f23c 100644 --- a/Classes/Backend/EventListener/FlexForm/FlexformEvent.php +++ b/Classes/Backend/EventListener/FlexForm/FlexformEvent.php @@ -8,7 +8,6 @@ use TYPO3\CMS\Core\Configuration\Event\AfterFlexFormDataStructureParsedEvent; use TYPO3\CMS\Core\Utility\ArrayUtility; use TYPO3\CMS\Core\Configuration\ExtensionConfiguration; -use TYPO3\CMS\Core\Core\Environment; use TYPO3\CMS\Extbase\Configuration\ConfigurationManager; use TYPO3\CMS\Extbase\Configuration\ConfigurationManagerInterface; @@ -46,8 +45,8 @@ public function __invoke(AfterFlexFormDataStructureParsedEvent $event): void 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'; + && $identifier['fieldName'] === 'tx_t3sbootstrap_flexform' && $identifier['dataStructureKey']) { + $file = GeneralUtility::getFileAbsFileName($ffPath.$flexForms[$identifier['dataStructureKey']].'.xml'); if (file_exists($file)) { $content = @file_get_contents($file); if ($content) { diff --git a/Classes/Backend/FormDataProvider/FlexFormManipulation.php b/Classes/Backend/FormDataProvider/FlexFormManipulation.php index a49a3ebd..37316ac0 100644 --- a/Classes/Backend/FormDataProvider/FlexFormManipulation.php +++ b/Classes/Backend/FormDataProvider/FlexFormManipulation.php @@ -22,7 +22,7 @@ class FlexFormManipulation implements FormDataProviderInterface */ public function addData(array $result): array { - $configurationManager =GeneralUtility::makeInstance(BackendConfigurationManager::class); + $configurationManager = GeneralUtility::makeInstance(BackendConfigurationManager::class); $setup = $configurationManager->getTypoScriptSetup(); $flexforms = !empty($setup['plugin.']['tx_t3sbootstrap.']['flexform.']) ? $setup['plugin.']['tx_t3sbootstrap.']['flexform.'] : []; diff --git a/Classes/Command/CustomScss.php b/Classes/Command/CustomScss.php index 5464c3b6..71ba737c 100644 --- a/Classes/Command/CustomScss.php +++ b/Classes/Command/CustomScss.php @@ -24,18 +24,12 @@ */ class CustomScss extends CommandBase { + public function initializeAction() { parent::initializeAction(); } - - public function injectConfigurationManager(ConfigurationManagerInterface $configurationManager) - { - $this->configurationManager = $configurationManager; - } - - /** * Defines the allowed options for this command * @@ -54,8 +48,8 @@ protected function configure() */ protected function execute(InputInterface $input, OutputInterface $output): int { - $this->configurationManager = GeneralUtility::makeInstance(ConfigurationManager::class); - $settings = $this->configurationManager->getConfiguration( + $configurationManager = GeneralUtility::makeInstance(ConfigurationManager::class); + $settings = $configurationManager->getConfiguration( ConfigurationManagerInterface::CONFIGURATION_TYPE_SETTINGS, 't3sbootstrap', 'm1' diff --git a/Classes/DataProcessing/ConfigProcessor.php b/Classes/DataProcessing/ConfigProcessor.php index d3adb6c6..ddc5ed6a 100644 --- a/Classes/DataProcessing/ConfigProcessor.php +++ b/Classes/DataProcessing/ConfigProcessor.php @@ -78,7 +78,6 @@ public function process(ContentObjectRenderer $cObj, array $contentObjectConfigu $rootlinePage = $pageRepository->getPage($processedRecordVariables['homepageUid']); $smallColumnsRootline = !empty($rootlinePage['tx_t3sbootstrap_smallColumns']) ? (int)$rootlinePage['tx_t3sbootstrap_smallColumns'] : 3; $smallColumns = $smallColumnsCurrent ?: $smallColumnsRootline; - // global override page data if (!empty($contentObjectConfiguration['settings.']['pages.']['override.'])) { foreach ($contentObjectConfiguration['settings.']['pages.']['override.'] as $field=>$override) { @@ -425,7 +424,14 @@ public function process(ContentObjectRenderer $cObj, array $contentObjectConfigu $hasBgImages = 0; $fileRepository = GeneralUtility::makeInstance(FileRepository::class); $fileObjects = []; - $processedData['config']['jumbotron']['alignItem'] = 'd-flex align-items-'.$processedRecordVariables['jumbotronAlignitem']; + + if ( !empty($processedRecordVariables['jumbotronAlignitem']) ) { + $processedData['config']['jumbotron']['alignItem'] = 'd-flex mx-auto align-items-'.$processedRecordVariables['jumbotronAlignitem']; + $processedData['config']['jumbotron']['class'] .= ' d-flex'; + } else { + $processedData['config']['jumbotron']['alignItem'] = ' d-flex'; + } + $processedData['config']['jumbotron']['alignment'] = $processedRecordVariables['jumbotronAlignitem']; if ($processedRecordVariables['jumbotronBgimage'] == 'root') { @@ -517,14 +523,18 @@ public function process(ContentObjectRenderer $cObj, array $contentObjectConfigu $processedData['config']['jumbotron']['bgImage'] = $bgSlides; } } - if ($hasBgImages && !empty($processedRecordVariables['jumbotronBgimageratio'])) { + + if ($hasBgImages && empty($currentPage['tx_t3sbootstrap_fullheightsection']) && !empty($processedRecordVariables['jumbotronBgimageratio'])) { $processedData['config']['jumbotron']['noBgRatio'] = false; $processedData['config']['jumbotron']['class'] .= ' ratio ratio-'.$processedRecordVariables['jumbotronBgimageratio']; $ratioArr = explode('x', $processedRecordVariables['jumbotronBgimageratio']); $x = $processedRecordVariables['jumbotronBgimageratio']; $y = $ratioArr[1].' / '.$ratioArr[0].' * 100%'; $processedData['ratioCalcCss'] = '.ratio-'.$x.'{--bs-aspect-ratio:calc('.$y.');}'; + } else { + $processedData['config']['jumbotron']['class'] = ' ratio'; } + } /** diff --git a/Classes/PageTitle/BreadcrumbProvider.php b/Classes/PageTitle/BreadcrumbProvider.php index cc14b99d..6adba1ce 100644 --- a/Classes/PageTitle/BreadcrumbProvider.php +++ b/Classes/PageTitle/BreadcrumbProvider.php @@ -17,18 +17,19 @@ class BreadcrumbProvider extends AbstractPageTitleProvider { - public function injectConfigurationManager(ConfigurationManagerInterface $configurationManager) - { - $this->configurationManager = $configurationManager; - } + /** + * @var ConfigurationManagerInterface + */ + protected ConfigurationManagerInterface $configurationManager; + /** * @param string $title */ public function setTitle(string $title) { - $this->configurationManager = GeneralUtility::makeInstance(ConfigurationManager::class); - $settings = $this->configurationManager->getConfiguration( + $configurationManager = GeneralUtility::makeInstance(ConfigurationManager::class); + $settings = $configurationManager->getConfiguration( ConfigurationManagerInterface::CONFIGURATION_TYPE_SETTINGS, 't3sbootstrap', 'm1' diff --git a/Classes/ViewHelpers/MediaViewHelper.php b/Classes/ViewHelpers/MediaViewHelper.php index 214f0c7a..efb2d4ed 100644 --- a/Classes/ViewHelpers/MediaViewHelper.php +++ b/Classes/ViewHelpers/MediaViewHelper.php @@ -16,7 +16,6 @@ use TYPO3\CMS\Extbase\Service\ImageService; use TYPO3Fluid\Fluid\Core\ViewHelper\AbstractTagBasedViewHelper; -#ConfigurationManagerInterface /* * This file is part of the TYPO3 extension t3sbootstrap. @@ -33,35 +32,8 @@ class MediaViewHelper extends AbstractTagBasedViewHelper * @var string */ protected $tagName = 'img'; - - /** - * @var ResponsiveImagesUtility - */ - protected $responsiveImagesUtility; - - /** - * @var ConfigurationManager - */ - protected $configurationManager; - - - /** - * @param ResponsiveImagesUtility $responsiveImagesUtility - */ - public function injectResponsiveImagesUtility(ResponsiveImagesUtility $responsiveImagesUtility) - { - $this->responsiveImagesUtility = $responsiveImagesUtility; - } - /** - * @param ConfigurationManager $configurationManager - */ - public function injectConfigurationManager(ConfigurationManager $configurationManager) - { - $this->configurationManager = $configurationManager; - } - /** * Initialize arguments. */ @@ -150,8 +122,8 @@ public function render(): string $additionalConfig = array_merge_recursive($this->arguments, $additionalConfig); return $fileRenderer->render($file, $width, $height, $additionalConfig); } - - + + /** * Render img tag * @@ -258,8 +230,9 @@ protected function renderPicture(FileInterface $image, $width, $height) $this->arguments['breakpoints'] = $breakpointArr; + $responsiveImagesUtility = GeneralUtility::makeInstance(ResponsiveImagesUtility::class); // Generate picture tag - $this->tag = $this->responsiveImagesUtility->createPictureTag( + $this->tag = $responsiveImagesUtility->createPictureTag( $image, $fallbackImage, $this->arguments['breakpoints'], @@ -346,7 +319,8 @@ protected function renderImageTag(FileInterface $image, $width, $height, $fileEx $imageService = self::getImageService(); $processedImage = $imageService->applyProcessingInstructions($image, $processingInstructions); - $settings = $this->configurationManager->getConfiguration(ConfigurationManagerInterface::CONFIGURATION_TYPE_FULL_TYPOSCRIPT); + $configurationManager = GeneralUtility::makeInstance(ConfigurationManager::class); + $settings = $configurationManager->getConfiguration(ConfigurationManagerInterface::CONFIGURATION_TYPE_FULL_TYPOSCRIPT); $imageUri = $imageService->getImageUri($processedImage); diff --git a/Classes/Wrapper/CollapsibleAccordion.php b/Classes/Wrapper/CollapsibleAccordion.php index abe3ccba..be190f39 100644 --- a/Classes/Wrapper/CollapsibleAccordion.php +++ b/Classes/Wrapper/CollapsibleAccordion.php @@ -27,15 +27,14 @@ public function getProcessedData(array $processedData, array $flexconf, array $p if (!empty($file)) { $file = $file[0]; } - $processedData['appearance'] = $parentflexconf['appearance']; + $processedData['appearance'] = !empty($parentflexconf['appearance']) ? $parentflexconf['appearance'] : ''; $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'] = !empty($flexconf['collapsibleByPid']) ? $flexconf['collapsibleByPid'] : ''; - $processedData['media'] = $file ? $file : ''; - $processedData['appearance'] = $parentflexconf['appearance']; + $processedData['media'] = !empty($file) ? $file : ''; return $processedData; } diff --git a/Configuration/FlexForms/CardSetting.xml b/Configuration/FlexForms/CardSetting.xml index 20cde1f1..3670fd58 100644 --- a/Configuration/FlexForms/CardSetting.xml +++ b/Configuration/FlexForms/CardSetting.xml @@ -314,12 +314,6 @@ - - - FIELD:sDEF.multiImage.enable:=:0 - FIELD:sDEF.tiling.enable:=:0 - - check @@ -358,12 +352,6 @@ You need at least two images for the profile card. The second is the circular, smaller image - - - FIELD:sDEF.horizontal:=:0 - FIELD:sDEF.tiling.enable:=:0 - - reload check @@ -373,10 +361,10 @@ FIELD:sDEF.multiImage.enable:=:1 - input + number 5 50 - trim,int + trim 10 90 @@ -499,10 +487,10 @@ - input + number 5 50 - trim,int + trim 10 90 diff --git a/Configuration/FlexForms/Carousel.xml b/Configuration/FlexForms/Carousel.xml index 28a63e4d..638b91b5 100644 --- a/Configuration/FlexForms/Carousel.xml +++ b/Configuration/FlexForms/Carousel.xml @@ -11,10 +11,9 @@ USER:T3SBS\T3sbootstrap\UserFunction\TcaMatcher->isLocalVideo - input + number 5 0 - int -60 60 diff --git a/Configuration/FlexForms/Container/Buttongroup.xml b/Configuration/FlexForms/Container/Buttongroup.xml index 80cf92d5..c3bbea3d 100644 --- a/Configuration/FlexForms/Container/Buttongroup.xml +++ b/Configuration/FlexForms/Container/Buttongroup.xml @@ -169,12 +169,12 @@ offset to the left specified in px FIELD:sDEF.slideIn:=:1 - input + number 4 4 33 0 - required,int + true diff --git a/Configuration/FlexForms/Container/CarouselContainer.xml b/Configuration/FlexForms/Container/CarouselContainer.xml index 1b5d6bfd..9b7564bc 100644 --- a/Configuration/FlexForms/Container/CarouselContainer.xml +++ b/Configuration/FlexForms/Container/CarouselContainer.xml @@ -58,11 +58,11 @@ - input + number 4 4 1440 - int+,required + true 0 @@ -111,11 +111,10 @@ - input + number 5 5 5000 - int 0 diff --git a/Configuration/FlexForms/Container/SwiperContainer.xml b/Configuration/FlexForms/Container/SwiperContainer.xml index d2eb2936..aba85a03 100644 --- a/Configuration/FlexForms/Container/SwiperContainer.xml +++ b/Configuration/FlexForms/Container/SwiperContainer.xml @@ -81,11 +81,10 @@ - input + number 4 4 576 - int 0 diff --git a/Configuration/FlexForms/Container/ToastContainer.xml b/Configuration/FlexForms/Container/ToastContainer.xml index c687b077..b55abcf4 100644 --- a/Configuration/FlexForms/Container/ToastContainer.xml +++ b/Configuration/FlexForms/Container/ToastContainer.xml @@ -42,10 +42,9 @@ - input + number 5 5000 - int @@ -105,10 +104,9 @@ FIELD:general.multipleToast:=:0 - input + number 5 350 - int @@ -125,10 +123,9 @@ FIELD:general.cookie:=:1 - input + number 5 30 - int diff --git a/Configuration/FlexForms/ToastSetting.xml b/Configuration/FlexForms/ToastSetting.xml index f35233cc..9fa8b088 100644 --- a/Configuration/FlexForms/ToastSetting.xml +++ b/Configuration/FlexForms/ToastSetting.xml @@ -27,10 +27,9 @@ FIELD:general.autohide:=:1 - input + number 5 5000 - int @@ -90,10 +89,9 @@ - input + number 5 350 - int @@ -109,10 +107,9 @@ FIELD:general.cookie:=:1 - input + number 5 30 - int diff --git a/Configuration/TCA/Overrides/pages.php b/Configuration/TCA/Overrides/pages.php index c58c3300..09c0a72b 100644 --- a/Configuration/TCA/Overrides/pages.php +++ b/Configuration/TCA/Overrides/pages.php @@ -309,21 +309,32 @@ ], ], ], + ], + 'tx_t3sbootstrap_fullheightsection' => [ + 'exclude' => 1, + 'label' => 'Full height section', + 'description' => 'Make a fullscreen section that`s full height of browser window', + 'config' => [ + 'type' => 'check' + ] ] ]; ExtensionManagementUtility::addTCAcolumns('pages', $tempPagesColumns); unset($tempPagesColumns); -ExtensionManagementUtility::addFieldsToPalette('pages', 'title', '--linebreak--,tx_t3sbootstrap_titlecolor', 'after:title'); -ExtensionManagementUtility::addFieldsToPalette('pages', 'title', '--linebreak--,tx_t3sbootstrap_subtitlecolor', 'after:subtitle'); -ExtensionManagementUtility::addFieldsToPalette('pages', 'layout', '--linebreak--,tx_t3sbootstrap_smallColumns', 'after:backend_layout_next_level'); -ExtensionManagementUtility::addFieldsToPalette('pages', 'layout', '--linebreak--,tx_t3sbootstrap_mobileOrder', 'after:tx_t3sbootstrap_smallColumns'); -ExtensionManagementUtility::addFieldsToPalette('pages', 'layout', '--linebreak--,tx_t3sbootstrap_breakpoint', 'after:tx_t3sbootstrap_mobileOrder'); -ExtensionManagementUtility::addFieldsToPalette('pages', 'layout', '--linebreak--,tx_t3sbootstrap_dropdownRight', 'after:tx_t3sbootstrap_breakpoint'); -ExtensionManagementUtility::addFieldsToPalette('pages', 'layout', '--linebreak--,tx_t3sbootstrap_container', 'after:tx_t3sbootstrap_dropdownRight'); -ExtensionManagementUtility::addFieldsToPalette('pages', 'layout', '--linebreak--,tx_t3sbootstrap_linkToTop', 'after:tx_t3sbootstrap_container'); -ExtensionManagementUtility::addFieldsToPalette('pages', 'layout', '--linebreak--,tx_t3sbootstrap_megamenu', 'after:tx_t3sbootstrap_linkToTop'); + +$GLOBALS['TCA']['pages']['palettes']['bootstrap'] = [ + 'showitem' => 'tx_t3sbootstrap_smallColumns, tx_t3sbootstrap_mobileOrder, --linebreak--, tx_t3sbootstrap_container, tx_t3sbootstrap_breakpoint, --linebreak--, tx_t3sbootstrap_linkToTop, tx_t3sbootstrap_fullheightsection', + 'canNotCollapse' => 1 +]; + +ExtensionManagementUtility::addToAllTCAtypes( + 'pages', + '--palette--;T3S Bootstrap;bootstrap', + '', + 'after:backend_layout' +); if (array_key_exists('navigationColor', $extconf) && $extconf['navigationColor'] === '1') { # add palette Navigation Colors diff --git a/Configuration/TCA/Overrides/tt_content_newCType.php b/Configuration/TCA/Overrides/tt_content_newCType.php index cc6e7cdc..8e5b2ee4 100644 --- a/Configuration/TCA/Overrides/tt_content_newCType.php +++ b/Configuration/TCA/Overrides/tt_content_newCType.php @@ -881,12 +881,14 @@ $GLOBALS['TCA']['tt_content']['types']['t3sbs_button']['columnsOverrides'] = [ 'header_link' => [ 'config' => [ - 'eval' => 'trim,required' + 'required' => true, + 'eval' => 'trim' ] ], 'header' => [ 'config' => [ - 'eval' => 'trim,required' + 'required' => true, + 'eval' => 'trim' ] ], ]; diff --git a/Configuration/TCA/tx_t3sbootstrap_domain_model_config.php b/Configuration/TCA/tx_t3sbootstrap_domain_model_config.php index 4d887e48..6c56d0cf 100644 --- a/Configuration/TCA/tx_t3sbootstrap_domain_model_config.php +++ b/Configuration/TCA/tx_t3sbootstrap_domain_model_config.php @@ -1048,7 +1048,7 @@ 'exclude' => false, 'label' => 'Background image ratio', 'accordion_id' => 4, - 'info' => 'Only to be used with a background image - not with videos.', + 'info' => 'Only to be used with a background image - not with videos or "Full height section".', 'config' => [ 'type' => 'select', 'renderType' => 'selectSingle', diff --git a/Configuration/TypoScript/Page/Template.typoscript b/Configuration/TypoScript/Page/Template.typoscript index 23eaec7d..2f826b7d 100644 --- a/Configuration/TypoScript/Page/Template.typoscript +++ b/Configuration/TypoScript/Page/Template.typoscript @@ -97,6 +97,9 @@ page { colorMode.enable = {$bootstrap.colorMode.enable} colorMode.position = {$bootstrap.colorMode.position} } + fullHeightSection { + icon = + } } dataProcessing { diff --git a/Configuration/TypoScript/Page/_main.typoscript b/Configuration/TypoScript/Page/_main.typoscript index 9354f217..06873525 100644 --- a/Configuration/TypoScript/Page/_main.typoscript +++ b/Configuration/TypoScript/Page/_main.typoscript @@ -95,7 +95,9 @@ page.includeCSS.t3sfontawesomeLink = EXT:t3sbootstrap/Resources/Public/Contrib/F [END] [{$bootstrap.config.faLinkIcons} == 1 && {$bootstrap.extconf.fontawesomeCss} == 3] page.includeCSS.t3sfontawesomeLink = EXT:t3sbootstrap/Resources/Public/Contrib/Fontawesome/css/fontawesomeLink.css +page.includeCSS.t3sfontawesomeLink.forceOnTop = 1 [END] [{$bootstrap.config.faLinkIcons} == 0 && {$bootstrap.extconf.fontawesomeCss} == 0] page.includeCSS.t3sfontawesomeMin = EXT:t3sbootstrap/Resources/Public/Contrib/Fontawesome/css/fontawesomeMin.css +page.includeCSS.t3sfontawesomeMin.forceOnTop = 1 [END] diff --git a/Resources/Private/Extensions/news/Configuration/FlexForms/News.xml b/Resources/Private/Extensions/news/Configuration/FlexForms/News.xml index 22eb6043..af854283 100644 --- a/Resources/Private/Extensions/news/Configuration/FlexForms/News.xml +++ b/Resources/Private/Extensions/news/Configuration/FlexForms/News.xml @@ -13,7 +13,7 @@ input 25 - required + true row-cols-1 row-cols-md-3 row-cols-lg-4 g-4 @@ -24,7 +24,7 @@ input 25 - required + true col-xs-12 col-sm-6 col-lg-3 mb-3 @@ -86,9 +86,8 @@ - input + number 5 - int @@ -123,9 +122,8 @@ FIELD:template.settings.templateLayout:=:81 - input + number 5 - int 7 diff --git a/Resources/Private/Partials/Content/Media/Rendering/Image.html b/Resources/Private/Partials/Content/Media/Rendering/Image.html index ab12859e..1e5566af 100644 --- a/Resources/Private/Partials/Content/Media/Rendering/Image.html +++ b/Resources/Private/Partials/Content/Media/Rendering/Image.html @@ -2,7 +2,7 @@ xmlns:t3sb="http://typo3.org/ns/T3SBS/T3sbootstrap/ViewHelpers" data-namespace-typo3-fluid="true"> - + diff --git a/Resources/Private/Partials/Page/Jumbotron.html b/Resources/Private/Partials/Page/Jumbotron.html index 1c7b0ddc..e14b29d1 100644 --- a/Resources/Private/Partials/Page/Jumbotron.html +++ b/Resources/Private/Partials/Page/Jumbotron.html @@ -1,12 +1,21 @@ + + + FALSE + + + TRUE + + + {ratioCalcCss -> f:format.raw()} - + SLIDER @@ -16,7 +25,7 @@
- +
@@ -33,10 +42,12 @@
- +
- +
+ +
@@ -52,7 +63,7 @@
- + @@ -77,7 +88,7 @@
- +
@@ -90,7 +101,7 @@
- +
@@ -114,8 +125,8 @@ - +
@@ -149,6 +160,9 @@
+ + + diff --git a/Resources/Private/Partials/Page/_mainfullheight.html b/Resources/Private/Partials/Page/_mainfullheight.html new file mode 100644 index 00000000..58be1166 --- /dev/null +++ b/Resources/Private/Partials/Page/_mainfullheight.html @@ -0,0 +1,76 @@ + + + + +#full-height-section { + position: relative; + height: 100vh; + display: flex; + flex-direction: column; +} + +#full-height-section .jumbotron { + flex-grow: 1; +} + +#full-height-section #full-height-icon { + position: absolute; + left: calc(50% - 32px); + font-size: 4em; + color: #fff; + opacity: .7; + z-index: 1009; + margin: 0 auto; + cursor: pointer; + padding: 0; + height: 75px; + border: none; + background: none; + bottom: 30px; +} + + + + +function scrollDown() { + + var scrollTo = document.getElementById('full-height-section').clientHeight; + var navbar = document.getElementById('main-navbar'); + var navbarHeight = navbar.clientHeight; + var fixedNavbar = false; + + if ( navbar.classList.contains('fixed-top') ) { + fixedNavbar = true; + } + + if ( fixedNavbar ) { + scrollTo -= navbarHeight; + } + + window.scroll({ top: scrollTo, behavior: 'smooth' }); +} + + + + if ( navbar.offsetTop < 1 && fixedNavbar ) { + var fhs = document.getElementById('full-height-section'); + fhs.style.paddingTop = navbarHeight+'px'; + } + + +
+ + + + + + + + + + +
+ + + + diff --git a/Resources/Private/Templates/Main.html b/Resources/Private/Templates/Main.html index b9c4b102..de609537 100644 --- a/Resources/Private/Templates/Main.html +++ b/Resources/Private/Templates/Main.html @@ -49,7 +49,14 @@

The main configuration has to be create NAVBAR | JUMBOTRON | BREADCRUMB - + + + + + + + + EXPANDED CONTENT TOP diff --git a/ext_emconf.php b/ext_emconf.php index e1e8fafb..656a4fbd 100644 --- a/ext_emconf.php +++ b/ext_emconf.php @@ -14,7 +14,7 @@ 'title' => 'Bootstrap Components', 'description' => 'Startup extension to use bootstrap 5 classes, components and more out of the box. Example and info: www.t3sbootstrap.de', 'category' => 'templates', - 'version' => '5.3.15', + 'version' => '5.3.16', 'state' => 'stable', 'author' => 'Helmut Hackbarth', 'author_email' => 'typo3@t3solution.de', diff --git a/ext_tables.sql b/ext_tables.sql index a95c5b25..3dfddf14 100644 --- a/ext_tables.sql +++ b/ext_tables.sql @@ -234,4 +234,5 @@ CREATE TABLE pages ( tx_t3sbootstrap_navigationactivecolor varchar(30) DEFAULT '' NOT NULL, tx_t3sbootstrap_navigationhover varchar(30) DEFAULT '' NOT NULL, tx_t3sbootstrap_navigationbgcolor varchar(30) DEFAULT '' NOT NULL, + tx_t3sbootstrap_fullheightsection tinyint(4) DEFAULT '0' NOT NULL, );