Extend plugin to use either country or region
This commit is contained in:
@@ -58,7 +58,7 @@ class CityController extends ActionController
|
||||
/**
|
||||
* @param City $city
|
||||
*/
|
||||
public function detailAction(City $city = null)
|
||||
public function detailAction(City $city = null): void
|
||||
{
|
||||
if (null === $city) {
|
||||
$cityUid = $this->settings['cityUid'];
|
||||
@@ -81,12 +81,14 @@ class CityController extends ActionController
|
||||
]);
|
||||
}
|
||||
|
||||
public function teasergroupAction()
|
||||
public function teasergroupAction(): void
|
||||
{
|
||||
$regionUid = (int)$this->settings['regionUid'];
|
||||
$countryUid = (int)$this->settings['countryUid'];
|
||||
$season = $this->settings['season'];
|
||||
$citiesPid = (int)$this->settings['citiesStoragePid'];
|
||||
$cities = $this->cityRepository->getTeasersByRegionAndSeason($regionUid, $season, $citiesPid);
|
||||
|
||||
$cities = $this->cityRepository->getTeasersByCountryOrRegionAndSeason($regionUid, $countryUid, $season, $citiesPid);
|
||||
$data = $this->configurationManager->getContentObject()->data;
|
||||
$this->view->assign('data', $data);
|
||||
$this->view->assign('teasers', $cities);
|
||||
|
||||
@@ -31,17 +31,21 @@ use EP\EpProducts\Domain\Model\AbstractDestination;
|
||||
|
||||
class CityRepository extends AbstractRepository
|
||||
{
|
||||
public function getTeasersByRegionAndSeason(int $regionUid, string $season = 'w', int $storagePid = 0)
|
||||
public function getTeasersByCountryOrRegionAndSeason(int $regionUid = 0, int $countryUid = 0, string $season = 'w', int $storagePid = 0)
|
||||
{
|
||||
if ($season === null) {
|
||||
$season = AbstractDestination::SEASON_WINTER;
|
||||
}
|
||||
$query = $this->createQuery();
|
||||
$constraints = [
|
||||
$query->equals('region', $regionUid),
|
||||
$query->equals('season', $season),
|
||||
$query->equals('excludeFromTeasergroups', 0)
|
||||
];
|
||||
if (0 < $regionUid) {
|
||||
$constraints[] = $query->equals('region', $regionUid);
|
||||
} elseif (0 < $countryUid) {
|
||||
$constraints[] = $query->equals('country', $countryUid);
|
||||
}
|
||||
if (0 < $storagePid) {
|
||||
$constraints[] = $query->equals('pid', $storagePid);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user