diff --git a/web/typo3conf/ext/ep_products/Classes/Service/ProductService.php b/web/typo3conf/ext/ep_products/Classes/Service/ProductService.php index f19a97ae..0f811e77 100644 --- a/web/typo3conf/ext/ep_products/Classes/Service/ProductService.php +++ b/web/typo3conf/ext/ep_products/Classes/Service/ProductService.php @@ -143,6 +143,11 @@ class ProductService implements SingletonInterface if ($teaser['hotel']['uid'] !== $row['hotelUid']) { $teaser['hotelCount']++; } + + if (!array_key_exists($row['hotelCategory'], $teaser['hotelCategories'])) { + $teaser['hotelCategories'][$row['hotelCategory']] = Hotel::$categoryLabels[$row['hotelCategory']]; + ksort($teaser['hotelCategories']); + } } if ($limit > 0) { @@ -204,6 +209,7 @@ class ProductService implements SingletonInterface ], 'dates' => [], 'nights' => [], + 'hotelCategories' => [], ]; } diff --git a/web/typo3conf/ext/ep_theme/Classes/ViewHelpers/HotelCategoriesViewHelper.php b/web/typo3conf/ext/ep_theme/Classes/ViewHelpers/HotelCategoriesViewHelper.php new file mode 100644 index 00000000..674fe423 --- /dev/null +++ b/web/typo3conf/ext/ep_theme/Classes/ViewHelpers/HotelCategoriesViewHelper.php @@ -0,0 +1,55 @@ +, dreipunktnull + * + * All rights reserved + * + * This script is part of the TYPO3 project. The TYPO3 project is + * free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 3 of the License, or + * (at your option) any later version. + * + * The GNU General Public License can be found at + * http://www.gnu.org/copyleft/gpl.html. + * + * This script is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * This copyright notice MUST APPEAR in all copies of the script! + ***************************************************************/ + +use EP\EpProducts\Domain\Model\Hotel; +use TYPO3\CMS\Fluid\Core\ViewHelper\AbstractViewHelper; + +class HotelCategoriesViewHelper extends AbstractViewHelper +{ + + /** + * @param array $categories + * + * @return string + */ + public function render($categories) + { + switch (count($categories)) { + case 1: + $label = reset($categories); + break; + default: + $categoryMinLabel = array_shift($categories); + $categoryMaxLabel = array_pop($categories); + $label = $categoryMinLabel . ' - ' . $categoryMaxLabel; + } + + return $label; + } +} diff --git a/web/typo3conf/ext/ep_theme/Resources/Private/Partials/Product/TeaserWide.html b/web/typo3conf/ext/ep_theme/Resources/Private/Partials/Product/TeaserWide.html index 475c42e3..7074ced8 100644 --- a/web/typo3conf/ext/ep_theme/Resources/Private/Partials/Product/TeaserWide.html +++ b/web/typo3conf/ext/ep_theme/Resources/Private/Partials/Product/TeaserWide.html @@ -42,6 +42,7 @@ Verschiedene Unterkünfte + Kategorie {ep:hotelCategories(categories: teaser.hotelCategories)}