Merge branch 'develop'

This commit is contained in:
Björn Fromme
2022-08-23 08:36:08 +02:00
6 changed files with 54 additions and 44 deletions
@@ -85,7 +85,8 @@ class CityController extends ActionController
{
$regionUid = $this->settings['regionUid'];
$season = $this->settings['season'];
$cities = $this->cityRepository->getTeasersByRegionAndSeason($regionUid, $season);
$citiesPid = $this->settings['citiesPid'];
$cities = $this->cityRepository->getTeasersByRegionAndSeason($regionUid, $season, $citiesPid);
$data = $this->configurationManager->getContentObject()->data;
$this->view->assign('data', $data);
$this->view->assign('teasers', $cities);
@@ -85,7 +85,8 @@ class RegionController extends ActionController
{
$countryUid = $this->settings['countryUid'];
$season = $this->settings['season'];
$regions = $this->regionRepository->getTeasersByCountryAndSeason($countryUid, $season);
$regionsPid = $this->settings['regionsStoragePid'];
$regions = $this->regionRepository->getTeasersByCountryAndSeason($countryUid, $season, $regionsPid);
$data = $this->configurationManager->getContentObject()->data;
$this->view->assign('data', $data);
$this->view->assign('teasers', $regions);
@@ -31,14 +31,7 @@ use EP\EpProducts\Domain\Model\AbstractDestination;
class CityRepository extends AbstractRepository
{
/**
* @param int $regionUid
* @param string $season
*
* @return \TYPO3\CMS\Extbase\Persistence\QueryResultInterface
*/
public function getTeasersByRegionAndSeason($regionUid, $season = 'w')
public function getTeasersByRegionAndSeason(int $regionUid, string $season = 'w', int $storagePid = 0)
{
if ($season === null) {
$season = AbstractDestination::SEASON_WINTER;
@@ -49,6 +42,10 @@ class CityRepository extends AbstractRepository
$query->equals('season', $season),
$query->equals('excludeFromTeasergroups', 0)
];
if (0 < $storagePid) {
$constraints[] = $query->equals('pid', $storagePid);
}
return $query
->matching($query->logicalAnd($constraints))
->execute()
@@ -31,13 +31,7 @@ use EP\EpProducts\Domain\Model\AbstractDestination;
class RegionRepository extends AbstractRepository
{
/**
* @param int $countryUid
* @param string $season
* @return \TYPO3\CMS\Extbase\Persistence\QueryResultInterface
*/
public function getTeasersByCountryAndSeason($countryUid, $season = 'w')
public function getTeasersByCountryAndSeason(int $countryUid, string $season = 'w', int $storagePid = 0)
{
if ($season === null) {
$season = AbstractDestination::SEASON_WINTER;
@@ -48,6 +42,11 @@ class RegionRepository extends AbstractRepository
$query->equals('season', $season),
$query->equals('excludeFromTeasergroups', 0)
];
if (0 < $storagePid) {
$constraints[] = $query->equals('pid', $storagePid);
}
return $query
->matching($query->logicalAnd($constraints))
->execute()
@@ -1,48 +1,58 @@
# customsubcategory=100=Storage
# customsubcategory=110=Pages
# customsubcategory=120=Search/Filtering
# customsubcategory=130=Email
# customsubcategory=140=Misc
plugin.tx_epproducts {
settings {
# cat=plugin.tx_epproducts//a; type=string; label=Products storage PID
# cat=epproducts/100/100; type=string; label=Products storage PID
productsStoragePid =
# cat=plugin.tx_epproducts//a; type=string; label=Hotels storage PID
# cat=epproducts/100/110; type=string; label=Hotels storage PID
hotelsStoragePid =
# cat=plugin.tx_epproducts//a; type=string; label=Concepts storage PID
# cat=epproducts/100/120; type=string; label=Concepts storage PID
conceptsStoragePid =
# cat=plugin.tx_epproducts//a; type=string; label=Facts storage PID
# cat=epproducts/100/130; type=string; label=Facts storage PID
factsStoragePid =
# cat=plugin.tx_epproducts//a; type=string; label=Faqs storage PID
# cat=epproducts/100/140; type=string; label=Faqs storage PID
faqsStoragePid =
# cat=plugin.tx_epproducts//a; type=string; label=Destinations storage PID
# cat=epproducts/100/150; type=string; label=Destinations storage PID
destinationsStoragePid =
# cat=plugin.tx_epproducts//a; type=string; label=Teammember storage PID
# cat=epproducts/100/160; type=string; label=Regions storage PID
regionsStoragePid =
# cat=epproducts/100/160; type=string; label=Cities storage PID
citiesStoragePid =
# cat=epproducts/100/170; type=string; label=Teammember storage PID
teammemberStoragePid =
# cat=plugin.tx_epproducts//a; type=string; label=Officetip storage PID
# cat=epproducts/100/180; type=string; label=Officetip storage PID
officetipStoragePid =
# cat=plugin.tx_epproducts//a; type=string; label=Snow report storage PID
# cat=epproducts/100/190; type=string; label=Snow report storage PID
snowReportStoragePid =
# cat=plugin.tx_epproducts//a; type=string; label=Default search page UID
# cat=epproducts/110/100; type=string; label=Default search page UID
defaultSearchPageUid =
# cat=plugin.tx_epproducts//a; type=string; label=Default product detail page UID
# cat=epproducts/110/110; type=string; label=Default product detail page UID
defaultDetailPageUid =
# cat=plugin.tx_epproducts//a; type=string; label=Exclude products with concept UIDs from search result (CSV)
excludedConceptUids =
# cat=plugin.tx_epproducts//a; type=string; label=Exclude regions with these UIDs from filter options (CSV)
excludedRegionUids =
# cat=plugin.tx_epproducts//a; type=string; label=Force concept UID in all search related parts (CSV)
forcedConceptUids =
# cat=plugin.tx_epproducts//a; type=string; label=Don't show availability info for products with these concept UIDs
noInfoConceptUids =
# cat=plugin.tx_epproducts//a; type=string; label=Room types for pricetables (CSV)
priceTableRoomTypes = 1,2,3,4,5,6,7,8,9,10
# cat=plugin.tx_epproducts//a; type=string; label=Ignore following IPs in searchlog
searchLogIgnoreIps =
# cat=plugin.tx_epproducts//a; type=string; label=Page UID with reseller export plugin
# cat=epproducts/110/120; type=string; label=Page UID with reseller export plugin
resellerExportPageUid =
# cat=plugin.tx_epproducts//a; type=string; label=Email recipient for groups price inquiries
# cat=epproducts/120/100; type=string; label=Exclude products with concept UIDs from search result (CSV)
excludedConceptUids =
# cat=epproducts/120/110; type=string; label=Exclude regions with these UIDs from filter options (CSV)
excludedRegionUids =
# cat=epproducts/120/120; type=string; label=Force concept UID in all search related parts (CSV)
forcedConceptUids =
# cat=epproducts/120/130; type=string; label=Don't show availability info for products with these concept UIDs
noInfoConceptUids =
# cat=epproducts/130/110; type=string; label=Email recipient for groups price inquiries
groupsPriceToEmail = [email protected]
# cat=plugin.tx_epproducts//a; type=string; label=Email recipient for groups price inquiries
# cat=epproducts/130/120; type=string; label=Email recipient for groups price inquiries
groupsPriceToName = EP Reisen
# cat=epproducts/140/100; type=string; label=Room types for pricetables (CSV)
priceTableRoomTypes = 1,2,3,4,5,6,7,8,9,10
# cat=epproducts/140/110; type=string; label=Ignore following IPs in searchlog
searchLogIgnoreIps =
}
persistence {
# cat=plugin.tx_epproducts//a; type=string; label=Default storage PID
# cat=epproducts/100/100; type=string; label=Default storage PID
storagePid =
}
}
@@ -26,6 +26,8 @@ plugin.tx_epproducts {
settings {
productsPid = {$plugin.tx_epproducts.settings.productsStoragePid}
destinationsStoragePid = {$plugin.tx_epproducts.settings.destinationsStoragePid}
regionsStoragePid = {$plugin.tx_epproducts.settings.regionsStoragePid}
citiesStoragePid = {$plugin.tx_epproducts.settings.citiesStoragePid}
snowReportStoragePid = {$plugin.tx_epproducts.settings.snowReportStoragePid}
defaultSearchPageUid = {$plugin.tx_epproducts.settings.defaultSearchPageUid}
defaultDetailPageUid = {$plugin.tx_epproducts.settings.defaultDetailPageUid}