diff --git a/public/typo3conf/ext/ep_products/Classes/Controller/ProductController.php b/public/typo3conf/ext/ep_products/Classes/Controller/ProductController.php index 90eb86b5..492ddd55 100644 --- a/public/typo3conf/ext/ep_products/Classes/Controller/ProductController.php +++ b/public/typo3conf/ext/ep_products/Classes/Controller/ProductController.php @@ -148,8 +148,8 @@ class ProductController extends ActionController } // Use first hotel which should be the only one at this point if ($product->getHotels()->count() > 0) { - $hotels = $product->getHotels()->toArray(); - $hotel = reset($hotels); + $product->getHotels()->rewind(); + $hotel = $product->getHotels()->current(); } } diff --git a/public/typo3conf/ext/ep_products/Classes/Domain/Model/Product.php b/public/typo3conf/ext/ep_products/Classes/Domain/Model/Product.php index 1b3a58f8..0b9b0bce 100644 --- a/public/typo3conf/ext/ep_products/Classes/Domain/Model/Product.php +++ b/public/typo3conf/ext/ep_products/Classes/Domain/Model/Product.php @@ -766,11 +766,14 @@ class Product extends \TYPO3\CMS\Extbase\DomainObject\AbstractEntity implements */ public function getTeaserImage() { - if ($this->teaserImages->count() === 0) { + $teaserImages = $this->teaserImages; + $teaserImages->rewind(); + + if ($teaserImages->count() === 0) { return null; } - return reset($this->teaserImages->toArray()); + return $teaserImages->current(); } /** @@ -807,12 +810,13 @@ class Product extends \TYPO3\CMS\Extbase\DomainObject\AbstractEntity implements public function getHeaderImage() { $headerImages = $this->getHeaderImages(); + $headerImages->rewind(); if ($headerImages->count() === 0) { return null; } - return reset($headerImages->toArray()); + return $headerImages->current(); } /** diff --git a/public/typo3conf/ext/ep_products/Configuration/TCA/tx_epproducts_domain_model_product.php b/public/typo3conf/ext/ep_products/Configuration/TCA/tx_epproducts_domain_model_product.php index d2206e50..3375d4bc 100644 --- a/public/typo3conf/ext/ep_products/Configuration/TCA/tx_epproducts_domain_model_product.php +++ b/public/typo3conf/ext/ep_products/Configuration/TCA/tx_epproducts_domain_model_product.php @@ -175,6 +175,7 @@ return [ 'label' => 'Saison', 'config' => [ 'type' => 'select', + 'renderType' => 'selectSingle', 'items' => [ [ 'Winter', 'w' ], [ 'Sommer', 's' ], diff --git a/public/typo3conf/ext/ep_products/Configuration/TCA/tx_epproducts_domain_model_region.php b/public/typo3conf/ext/ep_products/Configuration/TCA/tx_epproducts_domain_model_region.php index 9771b123..10814304 100644 --- a/public/typo3conf/ext/ep_products/Configuration/TCA/tx_epproducts_domain_model_region.php +++ b/public/typo3conf/ext/ep_products/Configuration/TCA/tx_epproducts_domain_model_region.php @@ -23,10 +23,10 @@ return [ ], 'types' => [ '1' => [ - 'showitem' => '--palette--;;top, name_internal, --palette--;;name, --palette--;;destinations, + 'showitem' => '--palette--;;top, name_internal, --palette--;;name, --palette--;;destinations, --palette--;;livedata, teaser, keywords, facts, officetip,--palette--;Auszeichnung;award, - --div--;Texte, ski_area, ski_area_extended, ski_pass, description, news, - --div--;Daten, --palette--;;dimensions, + --div--;Texte, ski_area, ski_area_extended, ski_pass, description, news, + --div--;Daten, --palette--;;dimensions, --div--;Bilder/Dateien, teaser_images, header_images, images, region_maps', ], ], @@ -529,10 +529,10 @@ return [ 'label' => 'Gebiet für Schneehöhen', 'config' => [ 'type' => 'select', + 'renderType' => 'selectSingle', 'items' => [ ['Keine Zuordnung', 0] ], - 'renderType' => 'selectSingle', 'foreign_table' => 'tx_epproducts_domain_model_snowreport', 'foreign_table_where' => 'ORDER BY tx_epproducts_domain_model_snowreport.region_name', 'minitems' => 0, diff --git a/public/typo3conf/ext/ep_theme/Resources/Private/Assets/js/controllers/product_details_controller.js b/public/typo3conf/ext/ep_theme/Resources/Private/Assets/js/controllers/product_details_controller.js index 599f140e..31af8393 100644 --- a/public/typo3conf/ext/ep_theme/Resources/Private/Assets/js/controllers/product_details_controller.js +++ b/public/typo3conf/ext/ep_theme/Resources/Private/Assets/js/controllers/product_details_controller.js @@ -18,7 +18,7 @@ export default class extends Controller { loading: Boolean, loaded: Boolean, mode: String, - daytrip: Boolean, + disableTables: Boolean, } initialize() { @@ -27,7 +27,7 @@ export default class extends Controller { } connect() { - if (false === this.daytripValue) { + if (false === this.disableTablesValue) { this.loadDates() } } @@ -49,7 +49,7 @@ export default class extends Controller { loadDates() { this.modeValue = 'dates' - if (true === this.loadedValue) { + if (true === this.loadedValue || true === this.disableTablesValue) { return } this.loadingValue = true diff --git a/public/typo3conf/ext/ep_theme/Resources/Private/Assets/scss/main.scss b/public/typo3conf/ext/ep_theme/Resources/Private/Assets/scss/main.scss index beadf7a4..d45c0ff5 100644 --- a/public/typo3conf/ext/ep_theme/Resources/Private/Assets/scss/main.scss +++ b/public/typo3conf/ext/ep_theme/Resources/Private/Assets/scss/main.scss @@ -3,6 +3,9 @@ @tailwind utilities; @layer base { + body { + padding: env(safe-area-inset-top) env(safe-area-inset-right) env(safe-area-inset-bottom) env(safe-area-inset-left); + } @import "base/fonts"; @import "base/typography"; @import "base/images"; diff --git a/public/typo3conf/ext/ep_theme/Resources/Private/Partials/Region/Details.html b/public/typo3conf/ext/ep_theme/Resources/Private/Partials/Region/Details.html index bf2f129d..7e5a9e9f 100644 --- a/public/typo3conf/ext/ep_theme/Resources/Private/Partials/Region/Details.html +++ b/public/typo3conf/ext/ep_theme/Resources/Private/Partials/Region/Details.html @@ -26,7 +26,7 @@ - + {region.length} @@ -35,7 +35,7 @@ - + {region.height} @@ -45,7 +45,7 @@ - + {region.lifts} diff --git a/public/typo3conf/ext/ep_theme/Resources/Private/Templates/Product/Detail.html b/public/typo3conf/ext/ep_theme/Resources/Private/Templates/Product/Detail.html index 91b9ecae..b5133088 100644 --- a/public/typo3conf/ext/ep_theme/Resources/Private/Templates/Product/Detail.html +++ b/public/typo3conf/ext/ep_theme/Resources/Private/Templates/Product/Detail.html @@ -14,7 +14,7 @@ data-product-details-datestable-uri-value="{ep:uri.ajax(action: 'datestable', controller: 'AjaxTable', arguments: '{product: product, hotel: hotel}', format: 'html', pageUid: settings.defaultAjaxUid)}" data-product-details-pricetable-uri-value="{ep:uri.ajax(action: 'pricetable', controller: 'AjaxTable', arguments: '{product: product, hotel: hotel}', format: 'html', pageUid: settings.defaultAjaxUid)}" data-product-details-travel-alert-uri-value="{f:uri.typolink(parameter: settings.travelAlertPageUid)}" - data-product-details-daytrip-value="{product.daytrip -> f:format.json()}"> + data-product-details-disable-tables-value="{f:if(condition: hotel.groupsPriceConfigs, then: 'true', else: 'false')}">
+ class="py-2 uppercase bg-ep-primary-dark"> Unterkunft @@ -125,15 +125,15 @@ data-tab="dates"> -
-

+

+

Gruppenrabatt bis zu 100€ möglich

- Für Gruppen bis 15 Personen könnt ihr hier direkt buchen. + Für Gruppen bis 15 Personen könnt ihr hier direkt buchen. Für Gruppen ab 16 Personen erstellen wir euch ein konkretes Angebot zu günstigen Gruppenkonditionen zu dieser Reise. Anfrage via Tel. 0221 - 272 276 18 oder mit einer - Kurzanfrage! + Kurzanfrage!