Hallo allerseits,
Ich habe mal wieder Schwierigkeiten.. Dabei ist mein Wunsch ganz einfach; Ich will via formhandler direkt in tt_address schreiben. Das soll ja mittels etwas Typoscript funktionieren, dachte ich. Hier mein kläglicher Versuch:
# Anmeldungen in tt_address eintragen
3.class = Finisher_DB
3.config {
table = tt_address
fields {
pid.mapping = nofield
pid.ifIsEmpty= TEXT
pid.ifIsEmpty.value = 25
#mapping
first_name.mapping = vorname
last_name.mapping = name
address.mapping = strasse
zip.mapping = plz
phone.mapping = phone
email.mapping = email
}
}
Passieren tut aber garnichts. Nichteinmal ein Fehler oder zumindest einfach ein falscher Eintrag in tt_address erscheint. Nichteinmal ein Query wird abgesetzt 🙁
Hat das vielleicht jemand schonmal gemacht? Oder weiss was hier falsch ist? Ich bin für jede Hilfe dankbar!
Hallo,
folgender Schnipsel funktioniert bei mir - allerdings nicht in Verwendung mit weiteren "finishern"...
1.class = Finisher_DB
1.config {
table = tt_address
key = uid
fields {
name.mapping = lastname
first_name.mapping = firstname
last_name.mapping = lastname
phone.maping = phone
email.mapping = email
module_sys_dmail_html = 1
pid = 37
}
}
}
Ich kaue gerade an der Konbination mit weiteren "finishern"...
...und inzwischen funktioniert auch die Kombination mehrerer "finisher". Es lag schlicht und einfach ein einem Fehler in der Klammerung...
#angry#
Hi,
bei mir passiert einfach gar nichts ... noch nichtmal eine Fehlermeldung.
Richtige PID ist gewählt.
Die nachfolgenden Finisher (Mailversand, Redirect) werden ohne Probleme ausgeführt.
1.class = Finisher_DB
1.config {
table = tt_address
key = uid
fields {
name.mapping = lastname
first_name.mapping = firstname
last_name.mapping = lastname
phone.maping = phone
email.mapping = email
pid = 136
}
}
Hat jemand einen Ansatz, wo der Fehler liegen könnte?
Bei der Gelegenheit auch die Frage: Wie mappe ich Felder, welche in tt_address nicht vorhanden sind? Muss ich die via Extension erst hinzufügen?
Edit:
Fehlermeldung gibts im Debugmodus doch 🙂
first_name und last_name gibt es im tt_address nicht. Vermute, im obigen Beispiel wurde tt_address durch directmail erweitert.
Also muss ich alle meine Felder tt_address erst hinzufügen ...
Gibt es hier eine passende Extension, um tt_address komfortabel zu erweitern (Tabs etc), oder muss ich mir hierfür im Kickstarter selber etwas erstellen?
Kann mir bitte jemand sagen wie das mit dem "gender.mapping = anrede" funktioniert?
Im HTML Template ist der value auf Herr und einer für Frau das wiederum kennt ja tt_address nicht und das feld in tt_address wird nicht ausgewählt...
Ich will aber das Template nicht umschreiben da ich ein Mail versende mit einer Persönlichen Anrede.
Hier das TS das soweit gut funktioniert bis auf den gender in tt_address:
Danke schon mal für Eure Hilfe!
# Formhandler User anlegen
plugin.Tx_Formhandler.settings.predef.default {
# GENERAL CONFIGURATION
name = Default
addErrorAnchors = 1
formValuesPrefix = formhandler
# ERRORS LAYOUT
singleErrorTemplate {
totalWrap = <div>|</div>
singleWrap = <span class="error">|</span><br />
}
errorListTemplate {
totalWrap = <ul>|</ul>
singleWrap = <li class="error">|</li>
}
validators {
1.class = Tx_Formhandler_Validator_Default
1.config {
fieldConf {
}
}
}
finishers {
1.class = Tx_Formhandler_Finisher_Mail
1.config {
limitMailsToUser = 5
admin {
}
user {
}
}
2.class = Tx_Formhandler_Finisher_DB
2.config {
table = tt_address
key = uid
fields {
pid.ifIsEmpty = 151
gender.mapping = anrede
first_name.mapping = vorname
last_name.mapping = name
email.mapping = email
phone.mapping = telefon
address.mapping = strasse
zip.mapping = plz
country.mapping = land
#usergroup.ifIsEmpty = 1
module_sys_dmail_html.ifIsEmpty = 1
}
}
3.class = Finisher_GenerateAuthCode
3.config {
table = tt_address
}
4.class = Tx_Formhandler_Finisher_Redirect
4.config {
}
}
/*
gender {
table = tt_address
select {
pidInList = 151
selectField = gender
andWhere.data = GPvar:formhandler|anrede
}
renderObj = COA
renderObj {
10 = TEXT
10 {
value = Frau
if.value = f
if.equals.field = gender
}
20 = TEXT
20 {
value = Herr
if.value = m
if.equals.field = gender
}
}
}
*/
}
Für alle die hier auf der Suche vorbei kommen. Die Anrede/gender kann man wie folgt in tt_address schreiben.
plugin.Tx_Formhandler.settings.predef.gewinnspiel {
finishers {
10.class = Finisher_DB
10.config {
table = tt_address
key = uid
fields {
pid.ifIsEmpty = 1306
tstamp.mapping = TEXT
tstamp.mapping {
data = date : U
strftime = %s
}
gender.mapping = CASE
gender.mapping {
key.data = GP:gewinnspiel|salutation
Herr = TEXT
Herr.value = m
Frau = TEXT
Frau.value = f
}
first_name.mapping = forename
last_name.mapping = surname
email.mapping = email
}
}
}
}