Da diese Frage immer wieder auftaucht, und ich sie selbst erst gestern hatte, möchte ich sie hier einmal zusammenfassend beantworten. (Vielen Dank auch nochmals an Joey, der mir den richtigen Tipp gegeben hat).
1. Formularfelder mit Werten aus einer Datentabelle vorbelegen:
Zunächst im Content-Element mailform eintragen:
Feldname: | *feldname = input,40 | {DB:tt_datentabelle:uid:datenfeld}
Dabei muss tt_datentabelle durch den Namen der gewünschten Tabelle ersetzt werden (es gehen nur Tabellen mit tt_ vorneweg). uid ist die Datensatznummer und datenfeld ist der Name des gewünschten Feldes der Datentabelle.
Das reicht allerdings noch nicht. Es muss im Template noch folgendes konfiguriert werden:
tt_content.mailform.20.data.insertData = 1
2. Formularfelder mit Übergabewerten aus der URL vorbelegen:
Zunächst im Content-Element mailform eintragen:
Feldname: | *feldname = input,40 | {GPvar:var}
Dabei ist var der Variablenname des Übergabewertes. In der URL also z. B.
www.domain.de/32.0.html?var=BlaBla
Wieder muss im Template folgendes konfiguriert werden:
tt_content.mailform.20.data.insertData = 1
3. Formularfelder mit Daten aus einer Datentabelle vorbelegen, wobei der Datensatz über einen Übergabewert aus der URL ausgewählt wird:
Dazu muss zunächst im Template per TypoScript eine Globale mit dem entsprechenden Wert gefüllt werden. Auf diese Globale kann dann im Content-Element zugegriffen werden.
Registrierung des gewünschten Wertes in einer Globalen; ich entnehme einen Wert aus dem Feld title der Tabelle tt_news. Die Übergabevariable heisst wieder var:
tt_content.mailform {
15 = LOAD_REGISTER
15 {
meinWert.cObject = RECORDS
meinWert.cObject {
source.data = GPvar:var
tables = tt_news
conf.tt_news = TEXT
conf.tt_news {
field = title
}
}
}
}
Jetzt kann ich mit register:meinWert auf den gespeicherten Wert zugreifen und ihn im formmail-Content-Element verwenden:
# Example content:
Feldname: | *feldname = input,40 | {register:meinWert}
Auch hier gilt wieder, dass folgende Zeile im Template stehen muss:
tt_content.mailform.20.data.insertData = 1
OK, das hilft hoffentlich allen weiter, die Formularfelder vorbelegen wollen. Damit sollte alles möglich sein, was man braucht ...
Viele Grüße
Peter