addCurrentUrlField(); $this->addReferrerField(); } private function addReferrerField(): void { // Look for key 'referrer' in frontend session $referrer = $GLOBALS['TSFE']->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(); } private function addCurrentUrlField(): void { // Get URL of current page $pageId = $GLOBALS['TSFE']->id; $site = GeneralUtility::makeInstance(SiteFinder::class)->getSiteByPageId($pageId); $url = $site->getRouter()->generateUri($pageId); // Add textfield to form containing url value $field = $this->finisherContext ->getFormRuntime() ->getFormDefinition() ->getPageByIndex(0) ->createElement('pageurl', 'Text'); $field->setDefaultValue($url); $field->setDataType('string'); $field->setLabel('URL'); // Add finisher variable for potential later use $this->finisherContext->getFinisherVariableProvider()->add( $this->shortFinisherIdentifier, 'pageurl', $url ); } }