Prepopulate configurator form

This commit is contained in:
Björn Fromme
2018-07-31 14:41:59 +02:00
parent 340261220c
commit 6160703361
5 changed files with 40 additions and 8 deletions
@@ -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);
}
@@ -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;
@@ -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;
}
@@ -85,11 +85,11 @@
</svg>
<a class="button button--page-header" href="{f:uri.action(
pageUid: settings.configuratorPageUid,
action: 'contactForm',
action: 'configurator',
controller: 'Form',
extensionName: 'epevents'
pluginName: 'ContactForm',
arguments: '{travelType: \'{traveltype.configuratorType -> v:or(alternative: 0)}\'}',
pluginName: 'Configurator',
arguments: '{travelType: \'{traveltype.configuratorType -> v:or(alternative: 0)}\', locationType: \'{locationtype -> v:or(alternative: 0)}\'}',
additionalParams: '{ref: data.uid}',
noCacheHash: 1
)}">&raquo; Anfragen &laquo;</a>
+17
View File
@@ -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',