From 6160703361997079891c0fedccd935fae064aebd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bjo=CC=88rn=20Fromme?= Date: Tue, 31 Jul 2018 14:41:59 +0200 Subject: [PATCH] Prepopulate configurator form --- .../Classes/Controller/FormController.php | 12 ++++++++++-- .../Classes/DataProcessing/OfferProcessor.php | 5 ++++- .../ep_events/Classes/Domain/Model/Inquiry.php | 8 ++++++-- .../Resources/Private/Partials/PageHeader.html | 6 +++--- web/typo3conf/realurl_conf.php | 17 +++++++++++++++++ 5 files changed, 40 insertions(+), 8 deletions(-) diff --git a/web/typo3conf/ext/ep_events/Classes/Controller/FormController.php b/web/typo3conf/ext/ep_events/Classes/Controller/FormController.php index 81bafb9b..f4bddb03 100644 --- a/web/typo3conf/ext/ep_events/Classes/Controller/FormController.php +++ b/web/typo3conf/ext/ep_events/Classes/Controller/FormController.php @@ -51,9 +51,17 @@ class FormController extends ActionController $this->view->assign('inquiry', $inquiry); } - public function configuratorAction() + /** + * @param int $travelType + * @param int $locationType + */ + public function configuratorAction($travelType = 0, $locationType = 0) { - $inquiry = $this->getInquiryFromContext(); + if ($travelType !== 0) { + $inquiry = Inquiry::fromArguments($travelType, $locationType); + } else { + $inquiry = $this->getInquiryFromContext(); + } $this->view->assign('inquiry', $inquiry); } diff --git a/web/typo3conf/ext/ep_events/Classes/DataProcessing/OfferProcessor.php b/web/typo3conf/ext/ep_events/Classes/DataProcessing/OfferProcessor.php index d88759b4..5a6937b3 100644 --- a/web/typo3conf/ext/ep_events/Classes/DataProcessing/OfferProcessor.php +++ b/web/typo3conf/ext/ep_events/Classes/DataProcessing/OfferProcessor.php @@ -78,7 +78,10 @@ class OfferProcessor implements DataProcessorInterface $configuratorType = $offer->getConfiguratorType(); /** @var \EP\EpEvents\Domain\Repository\TraveltypeRepository $repository */ $repository = $objectManager->get(TraveltypeRepository::class); - $processedData['travelType'] = $repository->findOneByConfiguratorType($configuratorType); + $processedData['traveltype'] = $repository->findOneByConfiguratorType($configuratorType); + } + if ($offer->getLocation()) { + $processedData['locationtype'] = $offer->getLocation()->getConfiguratorType(); } $processedData['search'] = GeneralUtility::_GET('search'); return $processedData; diff --git a/web/typo3conf/ext/ep_events/Classes/Domain/Model/Inquiry.php b/web/typo3conf/ext/ep_events/Classes/Domain/Model/Inquiry.php index 595cc72c..1e907ea8 100644 --- a/web/typo3conf/ext/ep_events/Classes/Domain/Model/Inquiry.php +++ b/web/typo3conf/ext/ep_events/Classes/Domain/Model/Inquiry.php @@ -185,8 +185,12 @@ class Inquiry extends AbstractValueObject public static function fromArguments($travelType = 0, $locationType = 0) { $inquiry = new self; - $inquiry->setTravelType((string) $travelType); - $inquiry->setLocationType((string) $locationType); + if ($travelType) { + $inquiry->setTravelType((string) $travelType); + } + if ($locationType) { + $inquiry->setLocationType((string) $locationType); + } return $inquiry; } diff --git a/web/typo3conf/ext/ep_events/Resources/Private/Partials/PageHeader.html b/web/typo3conf/ext/ep_events/Resources/Private/Partials/PageHeader.html index f47cace1..65f9fcc6 100644 --- a/web/typo3conf/ext/ep_events/Resources/Private/Partials/PageHeader.html +++ b/web/typo3conf/ext/ep_events/Resources/Private/Partials/PageHeader.html @@ -85,11 +85,11 @@ » Anfragen « diff --git a/web/typo3conf/realurl_conf.php b/web/typo3conf/realurl_conf.php index 6dbfe3f7..387eacfe 100644 --- a/web/typo3conf/realurl_conf.php +++ b/web/typo3conf/realurl_conf.php @@ -106,6 +106,22 @@ $GLOBALS['TYPO3_CONF_VARS']['EXTCONF']['realurl'] = [ 'GETvar' => 'tx_epevents_contactform[travelType]', ], ], + 'events_configurator' => [ + [ + 'GETvar' => 'tx_epevents_configurator[controller]', + 'noMatch' => 'bypass', + ], + [ + 'GETvar' => 'tx_epevents_configurator[action]', + 'noMatch' => 'bypass', + ], + [ + 'GETvar' => 'tx_epevents_configurator[travelType]', + ], + [ + 'GETvar' => 'tx_epevents_configurator[locationType]', + ], + ], 'events_activity' => [ [ 'GETvar' => 'tx_epevents_activitydetail[controller]', @@ -171,6 +187,7 @@ $GLOBALS['TYPO3_CONF_VARS']['EXTCONF']['realurl'] = [ 1473 => 'team', 1488 => 'team', 987 => 'events_contactform', + 1263 => 'events_configurator', 1300 => 'events_activity', 1444 => 'reseller', 1448 => 'reseller',