Allow multiple regions to be selected for product teasers

This commit is contained in:
Björn Fromme
2020-08-04 16:35:58 +02:00
parent 2d8662328d
commit ed68ec23ae
2 changed files with 20 additions and 1 deletions
@@ -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);
@@ -24,6 +24,20 @@
</config>
</TCEforms>
</settings.regionUid>
<settings.additionalRegionUids>
<TCEforms>
<exclude>0</exclude>
<label>Weitere Gebiete für Teaser:</label>
<config>
<type>select</type>
<renderType>selectMultipleSideBySide</renderType>
<foreign_table>tx_epproducts_domain_model_region</foreign_table>
<foreign_table_where>AND tx_epproducts_domain_model_region.hidden = 0 AND tx_epproducts_domain_model_region.deleted = 0 ORDER BY tx_epproducts_domain_model_region.name</foreign_table_where>
<minitems>0</minitems>
<maxitems>5</maxitems>
</config>
</TCEforms>
</settings.additionalRegionUids>
<settings.showMoreLink>
<TCEforms>
<exclude>0</exclude>