Mit powermail den HTTP REFERER als hidden field verschicken

Von welcher Seite ist ein Besucher auf meine Kontaktseite gekommen? Diese Frage beantwortet der sog. HTTP REFERER, ein Feld, das mit dem HTTP-Header geschickt und ausgelesen werden kann. Wie funktioniert das mit TYPO3?

 

Die meisten TYPO3-Websites nutzen zur Verwaltung der Formulare die Extension powermail, die mit zahlreichen Konfigurations- und Anpassungsmöglichkeiten eine flexible Lösung darstellt. Powermail bietet die Möglichkeit, den HTTP REFERER als Mail zusammen mit den restlichen Formulardaten an den Website-Betreiber zu versenden.

 

Folgende Schritte sind dabei durchzuführen:

 

1. Anlegen eines hidden fields im Formular

 

Wählen Sie zunächst das Formular und fügen Sie ihm ein neues Feld hinzu. In unserem Fall heißt das Feld "referer"(kann beliebig gewählt werden, der Name wird später aber noch benötigt). Unter Typ wählen Sie "verstecktes Feld" (bzw. hidden field im Englischen).

 


2. Anpassungen im TYPOSCRIPT

Als nächstes müssen Sie Änderungen am Template vornehmen, indem Sie via TYPOSCRIPT folgende Deklarationen vornehmen("referer" ist in diesem Fall der Name des in 1. vergebenen Feldes):

 

plugin.tx_powermail.settings.setup {
    prefill {
        referer = TEXT
        referer.data = getIndpEnv : HTTP_REFERER
    }
}

 

Wenn nicht mehrere Formulare "verstreut" auf der Website verteilt sind, eignet sich ggf. das Anlegen eines Erweiterungstemplates.

Die Daten sollten nun bereits in der Bestätigungsmail mitgeliefert werden(falls diese nicht durch Spezialkonfiguration das Feld unberücksichtigt lässt, was in der default-Einstellung {powermail_all} nicht der Fall ist.

Bsp.-Ausschnitt aus der Mail:

....
referer www.wacon.de/unternehmen/allgemeines/profil.html
.....

3. Anpassungen von Bestätigungsseite bzw. -mail

Wenn Sie eine Bestätigungsseite und/oder eine Bestätigungmail für den Kunden eingerichtet haben, ist es vermutlich vorteilerhafter, dieses Feld nicht anzuzeigen/zu mailen. Erweitern Sie hierzu Ihre TYPO3SCRIPT-Deklarationen wie folgt:

 

plugin.tx_powermail.settings.setup {
    prefill {
        referer = TEXT
        referer.data = getIndpEnv : HTTP_REFERER
    }

    excludeFromPowermailAllMarker.submitPage {
       excludeFromFieldTypes = hidden
    }

    excludeFromPowermailAllMarker.senderMail {
        excludeFromMarkerNames = referer
    }

}

 

In der Variante excludeFromFieldTypes = hidden werden gleich alle hidden fields ausgeschlossen. Mit excludeFromMarkerNames = referer dagegen nur das spezielle Feld. Je nachdem, was einem lieber ist...