Allow multiple regions to be selected for product teasers
This commit is contained in:
@@ -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>
|
||||
|
||||
Reference in New Issue
Block a user