hi leute, ich steh da vor einem problem...
ich will mit powermail das formular dann auch in eine datenbank schreiben lassen, das funktinoiert auch schön, nur hab ich bei manchen drop-down menüs für die datenbank dann nicht einen text stehen, sondern halt als wert dann 0, 1, 2, 3 usw.
Auf der "confirmation" seite von typo3 steht dann allerdings auch der wert da, 0, 1, 2, 3 usw... sollte aber dann der text des jeweiligen feldes stehen...
jetzt habe ich in der doku von powermail folgendes gefunden:
confirmation {
uid999 = TEXT
uid999.field = uid999
uid999.wrap = <b>|</b>
}
also kann man zumindest in der simplen form mal den wert beeinflussen... wie kann ich da aber jetzt eine if-abfrage oder ähnliches einbauen um die werte der drop-down menüs wieder auf texte zurückzumanipulieren?
bin jetzt nicht so der typoscript profi, aber vielleicht hat ja jemand eine idee dazu :-)
danke gruß st0ne
hi,
danke für den tipp, so direkt hats dann nicht funktioniert, aber habs dann so gelöst :-)
mode {
confirmation {
uid34 = CASE
uid34.key.data = TSFE:fe_user|sesData|powermail_51|uid34
uid34.default = TEXT
uid34.default.value = Nein
uid34.1 = TEXT
uid34.1.value = Ja
}
}
so, weiteres problem, wie gehe ich bei einem feld mit mehreren checkboxen vor?
so funktionierts nicht:
uid61_0 = CASE
uid61_0.key.data = TSFE:fe_user|sesData|powermail_51|uid61|0
uid61_0.1 = TEXT
uid61_0.1.value = Text1
uid61_1 = CASE
uid61_1.key.data = TSFE:fe_user|sesData|powermail_51|uid61|1
uid61_1.1 = TEXT
uid61_1.1.value = Text2
uid61_2 = CASE
uid61_2.key.data = TSFE:fe_user|sesData|powermail_51|uid61|2
uid61_2.1 = TEXT
uid61_2.1.value = Text3
uid61_3 = CASE
uid61_3.key.data = TSFE:fe_user|sesData|powermail_51|uid61|3
uid61_3.1 = TEXT
uid61_3.1.value = Text4
uid61_4 = CASE
uid61_4.key.data = TSFE:fe_user|sesData|powermail_51|uid61|4
uid61_4.1 = TEXT
uid61_4.1.value = Text5
uid61_5 = CASE
uid61_5.key.data = TSFE:fe_user|sesData|powermail_51|uid61|5
uid61_5.1 = TEXT
uid61_5.1.value = Text6
uid61_6 = CASE
uid61_6.key.data = TSFE:fe_user|sesData|powermail_51|uid61|6
uid61_6.1 = TEXT
uid61_6.1.value = Text7
Ins Blaue:
uid61 = COA
uid61 {
10 = CASE
10.key.data = TSFE:fe_user|sesData|powermail_51|uid61|0
10.1 = TEXT
10.1.value = Erste Checkbox angehakt
10.1.noTrimWrap = ||, |
10.default = TEXT
10.default.value =
20 = CASE
20.key.data = TSFE:fe_user|sesData|powermail_51|uid61|1
20.1 = TEXT
20.1.value = Zweite Checkbox angehakt
20.1.noTrimWrap = ||, |
20.default = TEXT
20.default.value =
}
danke!
hat auf anhieb geklappt :-)
hab jetzt nur noch das problem das ich diese multi-checkboxen nicht in die datenbank eingetragen bekomme...
weil das modul im backend erwartet dass die checkboxen zusammengezählte werte sind, also binär halt...
naja, jedenfalls scheine ich von powermail nur ein array zu bekommen, und das übernimmts mir nicht in die datenbank...
geht das nur mit einer userfunction? oder kann das typoscript irgendwie bewerkstelligen
danke
gruß st0ne
st0ne schrieb
geht das nur mit einer userfunction? oder kann das typoscript irgendwie bewerkstelligen
Ehrlich gesagt weiß ich nicht ganz was du meinst...
also, wenn man in typo3 eine extension baut, und zb. so multi-checkboxen hinzufügt, dann wird wenn man zb. 5 checkboxen hat der wert der in die datenbank gespeichert wird, zusammengezählt...
checkbox1 = 1
checkbox2 = 2
checkbox3 = 4
checkbox4 = 8
checkbox5 = 16
somit steht in der datenbank wenn man checkbox 1 und 3 anhackt, 5 in der datenbank.
bei powermail allerdings, bekommt man wohl ein array aus dem formular zurück... sozusagen so:
checkbox[0] = 1
checkbox[1] = 0
checkbox[2] = 1
checkbox[3] = 0
checkbox[4] = 0
und das lässt sich leider nicht mit dem dbentry in die datenbank eintragen 🙁
hoffe es halbwegs verständlich erklärt zu haben 🙂
Du willst etwas in der db speichern...
Wie ist das TS hierzu?
bei textfeldern funktionierts so:
plugin.tx_powermail_pi1 {
dbEntry {
tx_tabellenname.spaltenname = TEXT
tx_tabellenname.spaltenname.data = TSFE:fe_user|sesData|powermail_51|uid61
}
}
ok, und wenn es für jede Checkbox ein Feld in der DB gibt, dann kannst du dieses füllen, sobald die Checkbox angehakt wird.
Wenn du aber einen komischen Wert in ausschließlich einem Feld eintragen willst (5 wenn 1 und 3 angehakt), dann brauchst du wirklich eine userFunc
ok danke, dann werde ich mir mal überlegen ob ich es mit einer userfunc löse oder für jede checkbox eine spalte anlege...
aber ist eigentlich blöd dass powermail das nicht von selbst kann... naja, danke trotzdem für die hilfe :-)
Konnte das Vorhaben damit erreichen:
plugin.tx_powermail_pi1.dbEntry.user_mydb {
_enable = TEXT
_enable.value = 1
myfield = TEXT
myfield.cObject = COA
myfield.cObject.1 = TEXT
myfield.cObject.1.value = 0
myfield.cObject.5 = TEXT
myfield.cObject.5.data = TSFE:fe_user|sesData|powermail_1|uid1|0
myfield.cObject.5.wrap = +|
myfield.cObject.5.if.isTrue.data = TSFE:fe_user|sesData|powermail_1|uid1|0
myfield.cObject.15 = TEXT
myfield.cObject.15.data = TSFE:fe_user|sesData|powermail_1|uid1|1
myfield.cObject.15.wrap = +|
myfield.cObject.15.if.isTrue.data = TSFE:fe_user|sesData|powermail_1|uid1|1
myfield.cObject.25 = TEXT
myfield.cObject.25.data = TSFE:fe_user|sesData|powermail_1|uid1|2
myfield.cObject.25.wrap = +|
myfield.cObject.25.if.isTrue.data = TSFE:fe_user|sesData|powermail_1|uid1|2
myfield.prioriCalc = intval
}
Die Checkboxen so definieren:
Wert 1|1
Wert 2|2
Wert 3|4
cObject wird vor prioriCalc ausgeführt.
(Mit insertData geht's leider nicht - wird erst danach ausgeführt.)