diff --git a/public/typo3conf/ext/ep_events/Configuration/PageTS/Main.tsconfig b/public/typo3conf/ext/ep_events/Configuration/PageTS/Main.tsconfig deleted file mode 100644 index 7efd2691..00000000 --- a/public/typo3conf/ext/ep_events/Configuration/PageTS/Main.tsconfig +++ /dev/null @@ -1,5 +0,0 @@ - - - - - diff --git a/public/typo3conf/ext/ep_events/Configuration/TCA/Overrides/pages.php b/public/typo3conf/ext/ep_events/Configuration/TCA/Overrides/pages.php index 55f29d51..271c0e60 100644 --- a/public/typo3conf/ext/ep_events/Configuration/TCA/Overrides/pages.php +++ b/public/typo3conf/ext/ep_events/Configuration/TCA/Overrides/pages.php @@ -133,4 +133,10 @@ call_user_func(function() { ], ], ]; + + \TYPO3\CMS\Core\Utility\ExtensionManagementUtility::registerPageTSConfigFile( + 'ep_events', + 'Configuration/TSconfig/Page/Main.tsconfig', + 'EP Events' + ); }); diff --git a/public/typo3conf/ext/ep_events/Configuration/TSconfig/Page/Main.tsconfig b/public/typo3conf/ext/ep_events/Configuration/TSconfig/Page/Main.tsconfig new file mode 100644 index 00000000..ea8c3227 --- /dev/null +++ b/public/typo3conf/ext/ep_events/Configuration/TSconfig/Page/Main.tsconfig @@ -0,0 +1,5 @@ + + + + + diff --git a/public/typo3conf/ext/ep_events/Configuration/PageTS/Mod/SHARED.tsconfig b/public/typo3conf/ext/ep_events/Configuration/TSconfig/Page/Mod/SHARED.tsconfig similarity index 100% rename from public/typo3conf/ext/ep_events/Configuration/PageTS/Mod/SHARED.tsconfig rename to public/typo3conf/ext/ep_events/Configuration/TSconfig/Page/Mod/SHARED.tsconfig diff --git a/public/typo3conf/ext/ep_events/Configuration/PageTS/Mod/WebLayout/BackendLayouts.tsconfig b/public/typo3conf/ext/ep_events/Configuration/TSconfig/Page/Mod/WebLayout/BackendLayouts.tsconfig similarity index 100% rename from public/typo3conf/ext/ep_events/Configuration/PageTS/Mod/WebLayout/BackendLayouts.tsconfig rename to public/typo3conf/ext/ep_events/Configuration/TSconfig/Page/Mod/WebLayout/BackendLayouts.tsconfig diff --git a/public/typo3conf/ext/ep_events/Configuration/PageTS/Wizards/NewContentElement.tsconfig b/public/typo3conf/ext/ep_events/Configuration/TSconfig/Page/Mod/Wizards/NewContentElement.tsconfig similarity index 100% rename from public/typo3conf/ext/ep_events/Configuration/PageTS/Wizards/NewContentElement.tsconfig rename to public/typo3conf/ext/ep_events/Configuration/TSconfig/Page/Mod/Wizards/NewContentElement.tsconfig diff --git a/public/typo3conf/ext/ep_events/Configuration/PageTS/RTE.tsconfig b/public/typo3conf/ext/ep_events/Configuration/TSconfig/Page/RTE.tsconfig similarity index 100% rename from public/typo3conf/ext/ep_events/Configuration/PageTS/RTE.tsconfig rename to public/typo3conf/ext/ep_events/Configuration/TSconfig/Page/RTE.tsconfig diff --git a/public/typo3conf/ext/ep_events/Configuration/PageTS/TCEFORM.tsconfig b/public/typo3conf/ext/ep_events/Configuration/TSconfig/Page/TCEFORM.tsconfig similarity index 100% rename from public/typo3conf/ext/ep_events/Configuration/PageTS/TCEFORM.tsconfig rename to public/typo3conf/ext/ep_events/Configuration/TSconfig/Page/TCEFORM.tsconfig diff --git a/public/typo3conf/ext/ep_theme/Classes/Form/AddReferrerFinisher.php b/public/typo3conf/ext/ep_theme/Classes/Form/AddReferrerFinisher.php new file mode 100644 index 00000000..6f5463bd --- /dev/null +++ b/public/typo3conf/ext/ep_theme/Classes/Form/AddReferrerFinisher.php @@ -0,0 +1,40 @@ +fe_user->getKey('ses', 'referrer'); + + if (null === $referrer) { + return; + } + + // Add textfield to form containing referrer value + $field = $this->finisherContext + ->getFormRuntime() + ->getFormDefinition() + ->getPageByIndex(0) + ->createElement('referrer', 'Text'); + + $field->setDefaultValue($referrer); + $field->setDataType('string'); + $field->setLabel('Referrer'); + + // Add finisher variable for potential later use + $this->finisherContext->getFinisherVariableProvider()->add( + $this->shortFinisherIdentifier, + 'referrer', + $referrer + ); + + // Remove session key + $GLOBALS['TSFE']->fe_user->setKey('ses', 'referrer', null); + $GLOBALS['TSFE']->fe_user->storeSessionData(); + } +} diff --git a/public/typo3conf/ext/ep_theme/Classes/Middleware/ReferrerMiddleware.php b/public/typo3conf/ext/ep_theme/Classes/Middleware/ReferrerMiddleware.php new file mode 100644 index 00000000..35eed7a5 --- /dev/null +++ b/public/typo3conf/ext/ep_theme/Classes/Middleware/ReferrerMiddleware.php @@ -0,0 +1,39 @@ +getQueryParams(); + + if (!array_key_exists('ref', $queryParams)) { + return $handler->handle($request); + } + + $ref = $queryParams['ref']; + + /** @var SiteFinder $siteFinder */ + $siteFinder = GeneralUtility::makeInstance(SiteFinder::class); + + try { + $site = $siteFinder->getSiteByPageId($ref); + $url = $site->getRouter()->generateUri($ref); + $GLOBALS['TSFE']->fe_user->setKey('ses', 'referrer', $url); + $GLOBALS['TSFE']->fe_user->storeSessionData(); + } + catch (SiteNotFoundException $exception) { + } + + return $handler->handle($request); + } +} diff --git a/public/typo3conf/ext/ep_theme/Configuration/PageTS/Main.tsconfig b/public/typo3conf/ext/ep_theme/Configuration/PageTS/Main.tsconfig deleted file mode 100644 index 48aa3659..00000000 --- a/public/typo3conf/ext/ep_theme/Configuration/PageTS/Main.tsconfig +++ /dev/null @@ -1,7 +0,0 @@ - - - - - - - diff --git a/public/typo3conf/ext/ep_theme/Configuration/RequestMiddlewares.php b/public/typo3conf/ext/ep_theme/Configuration/RequestMiddlewares.php new file mode 100644 index 00000000..ec4ed8b7 --- /dev/null +++ b/public/typo3conf/ext/ep_theme/Configuration/RequestMiddlewares.php @@ -0,0 +1,12 @@ + [ + 'ep/referrer' => [ + 'target' => \EP\EpTheme\Middleware\ReferrerMiddleware::class, + 'after' => [ + 'typo3/cms-frontend/site', + ], + ], + ], +]; diff --git a/public/typo3conf/ext/ep_theme/Configuration/TCA/Overrides/pages.php b/public/typo3conf/ext/ep_theme/Configuration/TCA/Overrides/pages.php index 557274a0..42215776 100644 --- a/public/typo3conf/ext/ep_theme/Configuration/TCA/Overrides/pages.php +++ b/public/typo3conf/ext/ep_theme/Configuration/TCA/Overrides/pages.php @@ -128,7 +128,7 @@ call_user_func(function() { \TYPO3\CMS\Core\Utility\ExtensionManagementUtility::registerPageTSConfigFile( 'ep_theme', - 'Configuration/TypoScript/pageTSconfig.ts', + 'Configuration/TSconfig/Page/Main.tsconfig', 'EP Theme' ); diff --git a/public/typo3conf/ext/ep_theme/Configuration/PageTS/Extensions/GridElements.tsconfig b/public/typo3conf/ext/ep_theme/Configuration/TSconfig/Page/Extensions/GridElements.tsconfig similarity index 100% rename from public/typo3conf/ext/ep_theme/Configuration/PageTS/Extensions/GridElements.tsconfig rename to public/typo3conf/ext/ep_theme/Configuration/TSconfig/Page/Extensions/GridElements.tsconfig diff --git a/public/typo3conf/ext/ep_theme/Configuration/TSconfig/Page/Main.tsconfig b/public/typo3conf/ext/ep_theme/Configuration/TSconfig/Page/Main.tsconfig new file mode 100644 index 00000000..7c4d2925 --- /dev/null +++ b/public/typo3conf/ext/ep_theme/Configuration/TSconfig/Page/Main.tsconfig @@ -0,0 +1,7 @@ + + + + + + + diff --git a/public/typo3conf/ext/ep_theme/Configuration/PageTS/Mod/SHARED.tsconfig b/public/typo3conf/ext/ep_theme/Configuration/TSconfig/Page/Mod/SHARED.tsconfig similarity index 100% rename from public/typo3conf/ext/ep_theme/Configuration/PageTS/Mod/SHARED.tsconfig rename to public/typo3conf/ext/ep_theme/Configuration/TSconfig/Page/Mod/SHARED.tsconfig diff --git a/public/typo3conf/ext/ep_theme/Configuration/PageTS/Mod/WebLayout/BackendLayouts.tsconfig b/public/typo3conf/ext/ep_theme/Configuration/TSconfig/Page/Mod/WebLayout/BackendLayouts.tsconfig similarity index 100% rename from public/typo3conf/ext/ep_theme/Configuration/PageTS/Mod/WebLayout/BackendLayouts.tsconfig rename to public/typo3conf/ext/ep_theme/Configuration/TSconfig/Page/Mod/WebLayout/BackendLayouts.tsconfig diff --git a/public/typo3conf/ext/ep_theme/Configuration/PageTS/Mod/Wizards/NewContentElement.tsconfig b/public/typo3conf/ext/ep_theme/Configuration/TSconfig/Page/Mod/Wizards/NewContentElement.tsconfig similarity index 100% rename from public/typo3conf/ext/ep_theme/Configuration/PageTS/Mod/Wizards/NewContentElement.tsconfig rename to public/typo3conf/ext/ep_theme/Configuration/TSconfig/Page/Mod/Wizards/NewContentElement.tsconfig diff --git a/public/typo3conf/ext/ep_theme/Configuration/PageTS/RTE.tsconfig b/public/typo3conf/ext/ep_theme/Configuration/TSconfig/Page/RTE.tsconfig similarity index 100% rename from public/typo3conf/ext/ep_theme/Configuration/PageTS/RTE.tsconfig rename to public/typo3conf/ext/ep_theme/Configuration/TSconfig/Page/RTE.tsconfig diff --git a/public/typo3conf/ext/ep_theme/Configuration/PageTS/TCEFORM.tsconfig b/public/typo3conf/ext/ep_theme/Configuration/TSconfig/Page/TCEFORM.tsconfig similarity index 100% rename from public/typo3conf/ext/ep_theme/Configuration/PageTS/TCEFORM.tsconfig rename to public/typo3conf/ext/ep_theme/Configuration/TSconfig/Page/TCEFORM.tsconfig diff --git a/public/typo3conf/ext/ep_theme/Configuration/PageTS/TCEMAIN.tsconfig b/public/typo3conf/ext/ep_theme/Configuration/TSconfig/Page/TCEMAIN.tsconfig similarity index 100% rename from public/typo3conf/ext/ep_theme/Configuration/PageTS/TCEMAIN.tsconfig rename to public/typo3conf/ext/ep_theme/Configuration/TSconfig/Page/TCEMAIN.tsconfig diff --git a/public/typo3conf/ext/ep_theme/Configuration/TypoScript/Extensions/Form.typoscript b/public/typo3conf/ext/ep_theme/Configuration/TypoScript/Extensions/Form.typoscript index 190f7e6a..f0105ae1 100644 --- a/public/typo3conf/ext/ep_theme/Configuration/TypoScript/Extensions/Form.typoscript +++ b/public/typo3conf/ext/ep_theme/Configuration/TypoScript/Extensions/Form.typoscript @@ -1,13 +1,16 @@ -@import "EXT:form/Configuration/TypoScript/setup.typoscript" +@import 'EXT:form/Configuration/TypoScript/setup.typoscript' +@import 'EXT:form_element_linked_checkbox/Configuration/TypoScript/setup.typoscript' plugin.tx_form.view { templateRootPaths.10 = EXT:ep_theme/Resources/Private/Templates/Form/ } plugin.tx_form.settings.yamlConfigurations { - 100 = EXT:ep_theme/Configuration/Forms/FormSetup.yaml + 1630994710 = EXT:ep_theme/Configuration/Yaml/FormsBase.yaml + 1630994711 = EXT:ep_theme/Configuration/Yaml/FormFinishersFrontend.yaml } module.tx_form.settings.yamlConfigurations { - 100 = EXT:ep_theme/Configuration/Forms/FormSetup.yaml + 1630994710 = EXT:ep_theme/Configuration/Yaml/FormsBase.yaml + 1630994711 = EXT:ep_theme/Configuration/Yaml/FormFinishersBackend.yaml } diff --git a/public/typo3conf/ext/ep_theme/Configuration/Yaml/FormFinishersBackend.yaml b/public/typo3conf/ext/ep_theme/Configuration/Yaml/FormFinishersBackend.yaml new file mode 100644 index 00000000..f155147c --- /dev/null +++ b/public/typo3conf/ext/ep_theme/Configuration/Yaml/FormFinishersBackend.yaml @@ -0,0 +1,51 @@ +TYPO3: + CMS: + Form: + prototypes: + standard: + formElementsDefinition: + Form: + formEditor: + editors: + 900: + selectOptions: + 1000: + value: 'BpnApiFinisher' + label: 'BusPro Finisher' + 1100: + value: 'AddReferrerFinisher' + label: 'Referrer Finisher' + propertyCollections: + finishers: + 1000: + identifier: 'BpnApiFinisher' + editors: + __inheritances: + 10: 'TYPO3.CMS.Form.mixins.formElementMixins.BaseCollectionEditorsMixin' + 100: + label: 'BusPro Finisher' + 110: + identifier: 'mapping' + templateName: 'Inspector-TextEditor' + label: 'Mapping' + propertyPath: 'options.mapping' + propertyValidators: + 10: 'NotEmpty' + 1100: + identifier: 'AddReferrerFinisher' + editors: + __inheritances: + 10: 'TYPO3.CMS.Form.mixins.formElementMixins.BaseCollectionEditorsMixin' + 100: + label: 'Referrer Finisher' + + finishersDefinition: + BpnApiFinisher: + formEditor: + iconIdentifier: 'form-finisher' + predefinedDefaults: + options: + mapping: 'lastName:text-1,firstName:text-2,gender:singleselect-1,email:email-1,street:text-3,zipCode:text-4,city:text-5,phone:telephone-1' + AddReferrerFinisher: + formEditor: + iconIdentifier: 'form-finisher' diff --git a/public/typo3conf/ext/ep_theme/Configuration/Yaml/FormFinishersFrontend.yaml b/public/typo3conf/ext/ep_theme/Configuration/Yaml/FormFinishersFrontend.yaml new file mode 100644 index 00000000..b9e8cb73 --- /dev/null +++ b/public/typo3conf/ext/ep_theme/Configuration/Yaml/FormFinishersFrontend.yaml @@ -0,0 +1,19 @@ +TYPO3: + CMS: + Form: + prototypes: + standard: + finishersDefinition: + BpnApiFinisher: + implementationClassName: 'EP\EpTheme\Form\BpnApiFinisher' + formEditor: + label: 'BusPro Finisher' + options: + identifier: 'BpnApiFinisher' + mapping: 'lastName:text-1,firstName:text-2,gender:singleselect-1,email:email-1,street:text-3,zipCode:text-4,city:text-5,phone:telephone-1' + AddReferrerFinisher: + implementationClassName: 'EP\EpTheme\Form\AddReferrerFinisher' + formEditor: + label: 'Referrer Finisher' + options: + identifier: 'AddReferrerFinisher' diff --git a/public/typo3conf/ext/ep_theme/Configuration/Forms/FormSetup.yaml b/public/typo3conf/ext/ep_theme/Configuration/Yaml/FormsBase.yaml similarity index 61% rename from public/typo3conf/ext/ep_theme/Configuration/Forms/FormSetup.yaml rename to public/typo3conf/ext/ep_theme/Configuration/Yaml/FormsBase.yaml index 255e9b4e..7687bbb7 100644 --- a/public/typo3conf/ext/ep_theme/Configuration/Forms/FormSetup.yaml +++ b/public/typo3conf/ext/ep_theme/Configuration/Yaml/FormsBase.yaml @@ -4,26 +4,20 @@ TYPO3: persistenceManager: allowedExtensionPaths: 10: EXT:ep_theme/Resources/Private/Forms/ - prototypes: standard: - finishersDefinition: - BpnApiFinisher: - implementationClassName: 'EP\EpTheme\Form\BpnApiFinisher' formElementsDefinition: Form: renderingOptions: templateRootPaths: - 100: 'EXT:ep_theme/Resources/Private/Templates/Form/' + 1505042810: 'EXT:ep_theme/Resources/Private/Templates/Form/' partialRootPaths: - 100: 'EXT:ep_theme/Resources/Private/Partials/Form/' + 1505042810: 'EXT:ep_theme/Resources/Private/Partials/Form/' layoutRootPaths: - 100: 'EXT:ep_theme/Resources/Private/Layouts/Form/' - + 1505042810: 'EXT:ep_theme/Resources/Private/Layouts/Form/' contactform: __inheritances: 10: 'TYPO3.CMS.Form.prototypes.standard' - applicationform: __inheritances: 10: 'TYPO3.CMS.Form.prototypes.standard'