Zum Inhalt springen

Formularfeld in formhandler je nach Thema vorbelegen

Erstellt am 30. Januar 2012 · 2 Antworten · letzte Antwort am 31. Januar 2012

Tags: Formhandler, Frage

Valen ·

Hallo zusammen,

ich verwende auf meiner Seite formhandler für meine Kontaktformulare. Funktioniert ganz gut, bis auf ein relativ wichtiges Detail:

Es gibt verschiedene Themengebiete auf der Seite, über die man sich jeweils per Formular "Weiteres Informationsmaterial" anfordern kann.
Deshalb würde ich gern in ein verstecktes Formularfeld (oder meinetwegen auch in den Betreff) jeweils dieses Themengebiet übergeben lassen.

Mein Ansatz war: einfach nur den Titel der zuletzt besuchten Seite mit ins Formular übergeben.

Mit folgendem Code schaff ich das auch:

lib.form_filled_from = TEXT
lib.form_filled_from {
  data = getenv : HTTP_REFERER
}

Allerdings bekomme ich da wirklich nur die URL. Ich hätte da aber gerne den Seitentitel, damit es für die Sachbearbeiter schneller ersichtlich ist.
ich hab heute den halben Tag versucht, das Ganze irgendwie anders zu lösen, aber von Sessions hab einfach zu wenig Ahnung und verzweifle so langsam.

Ein anderer Ansatz wäre noch, das Ganze als Parameter mit der URL zu übergeben, aber da wüsste ich jetzt nicht, wie man das übers Backend bewerkstelligen kann, ohne im RTE in die Codeansicht zu wechseln und dort den Parameter manuell an den Link zu hängen.

Hab irgendwer ne Idee? Ih ckomm nicht weiter.

LuP ·

Hallo,

warum nicht einfach ein neues Feld mit Dropwdown-List für die Auswahl der Themengebiete im Formular hinfügen? Es könnte ja sein, dass jemand zwar von einer Seite mit bestimmtem Themengebiet kommt aber letztendlich sich für anderes interessiert.

EDIT:
mein Ansatz würde aber dann nur gelten, wenn das Feld für die Besucher sichtbar sein kann.

VG,
LuP

Valen ·

Also ich hab das ganze jetzt doch völlig unerwartet über die Session gelöst.

Ich binde per

[globalVar=TSFE:id!=9]
seite.1 = PHP_SCRIPT
seite.1{
  file = fileadmin/templates/.../ts_seitentitel.php
}
[global]

folgendes script ein:

<?php
$GLOBALS['TSFE']->fe_user->setKey('ses', 'pageTitle', $GLOBALS['TSFE']->page['title']);
$GLOBALS['TSFE']->fe_user->storeSessionData();
?>

Damit wird auf jeder Seite bis auf die ID=9 (mein Kontaktformular) der aktuelle Seitentitel in die Session geschrieben.

Wie schon erwähnt, benutze ich Formhandler. Dort gibt es eine eigene TS-Setup Datei. In dieser hole ich mir mit

lib.form_filled_from = TEXT
lib.form_filled_from {
  data = TSFE:fe_user|sesData|pageTitle
  dataWrap = <input type="hidden" name="formhandler2[came_from]" value="|" />
}

plugin.Tx_Formhandler.settings.predef.fullform.markers.camefrom < lib.form_filled_from

den Seitentitel und spucke ihn mit einem hidden-field auf den Marker.

Problem gelöst.