From ed68ec23ae601beb4a8869192b02eac091b829cd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bj=C3=B6rn=20Fromme?= Date: Tue, 4 Aug 2020 16:35:58 +0200 Subject: [PATCH] Allow multiple regions to be selected for product teasers --- .../Classes/Controller/RegionController.php | 7 ++++++- .../FlexForms/flexform_region_detail.xml | 14 ++++++++++++++ 2 files changed, 20 insertions(+), 1 deletion(-) diff --git a/public/typo3conf/ext/ep_products/Classes/Controller/RegionController.php b/public/typo3conf/ext/ep_products/Classes/Controller/RegionController.php index 55b8940d..0b4e9a79 100644 --- a/public/typo3conf/ext/ep_products/Classes/Controller/RegionController.php +++ b/public/typo3conf/ext/ep_products/Classes/Controller/RegionController.php @@ -67,8 +67,13 @@ class RegionController extends ActionController $regionUid = $this->settings['regionUid']; $region = $this->regionRepository->findByIdentifier($regionUid); } + $additionalRegionUids = GeneralUtility::trimExplode(',', $this->settings['additionalRegionUids'], true); + $additionalRegionUids = array_map(function ($uid) { + return (int)$uid; + }, $additionalRegionUids); + $teaserRegionUids = array_merge([$region->getUid()], $additionalRegionUids); $filterSettings = new FilterSettings(); - $filterSettings->setRegionUids([$region->getUid()]); + $filterSettings->setRegionUids($teaserRegionUids); $excludedConceptUids = GeneralUtility::trimExplode(',', $this->settings['excludedConceptUids'], true); $limit = $this->settings['showMoreLink'] ? 4 : 0; $teasers = $this->productDataService->getTeasergroup($filterSettings, $excludedConceptUids, $limit); diff --git a/public/typo3conf/ext/ep_products/Configuration/FlexForms/flexform_region_detail.xml b/public/typo3conf/ext/ep_products/Configuration/FlexForms/flexform_region_detail.xml index 2e313c07..0c8fae8d 100644 --- a/public/typo3conf/ext/ep_products/Configuration/FlexForms/flexform_region_detail.xml +++ b/public/typo3conf/ext/ep_products/Configuration/FlexForms/flexform_region_detail.xml @@ -24,6 +24,20 @@ + + + 0 + + + select + selectMultipleSideBySide + tx_epproducts_domain_model_region + AND tx_epproducts_domain_model_region.hidden = 0 AND tx_epproducts_domain_model_region.deleted = 0 ORDER BY tx_epproducts_domain_model_region.name + 0 + 5 + + + 0