TYPO3 6.2.4 / Powermail 2.1.1
Guten Morgen,
ich möchte bei Powermail ein Formularfeld einfügen, in dem der Benutzer die Möglichkeit hat, aus einer Liste von Seiten (Pages) auszuwählen (Mehrfachauswahl möglich). Soweit ich es richtig sehe, ist ein einfaches Prefill bei Auswahllisten oder Checkboxen nicht möglich oder?
Ich habe also im Formular ein Feld TYPOSCRIPT platziert und dort bei Typoscritp Pfad lib.product
Dieses Objekt baue ich in TS folgendermaßen zusammen:
lib.product = COA_INT
lib.product {
10 = TEXT
10.value = <div id="powermaildiv_uid41" class="tx_powermail_pi1_fieldwrap_html tx_powermail_pi1_fieldwrap_html_select tx_powermail_pi1_fieldwrap_html_41 even"><label for="uid41">Produkt wählen</label><input type="hidden" name="tx_powermail_pi1[field][produkt]" value="" />
20 = CONTENT
20 {
table = pages
select {
pidInList = xxx
}
renderObj = COA
renderObj {
10 = COA
10 {
10 = TEXT
10.dataWrap = <input class="powermail_checkbox powermail_checkbox_{field:uid}" id="powermail_field_produkt_{field:uid}" name="tx_powermail_pi1[field][produkt][]" type="checkbox" value="{field:title}"
20 = TEXT
20.value = checked="checked"
20.if {
value.data = field:uid
equals.data = GP:productpage
}
50 = TEXT
50.value = />
60 = TEXT
60.dataWrap = {field:title}
}
}
}
}
Es funktioniert alles. Das einzige Problem ist nun noch, dass Powermail offenbar nicht weiß, dass es sich um ein checkbox Feld handelt und die Werte in der eMail nur als Array übertragen werden, statt einer Kommaseparierten Liste:
["Test 1","Test 2","Test 3"]
Wie kann ich denn Powermail beibringen daraus in der eMail, wie bei normalen Checkboxen, Test 1, Test 2, Test 3 zu generieren?
Vielen Dank
Nico
Wenn du powermail 2.1.x nutzt, kannst du ganz einfach über TypoScript Checkboxen, Selectfelder oder Radiobuttons mit Werten befüllen.
Einfach ein Feld vom Typ Checkbox hinzufügen, das Feld "Options" leer lassen und dafür einen TypoScript-Pfad im Feld "Create from TypoScript" eintragen - z.B. "lib.options"
Bild: s3.amazonaws.com/…/screen.png
TypoScript Beispiel:
lib.options = TEXT
lib.options.value = red[\n]blue[\n]yellow
Das TypoScript kann natürlich auch vom Typ CONTENT oder ähnlichem sein.
Hilft dir das weiter? Falls ja, kannst du gerne dein angepasstest TypoScript hier posten, ist sicher auch für andere interessant.
Hey,
oh mann, ich bin ja blind. Vielen Dank für den Hinweis, das Feld kannte ich noch nicht.
Dann baue ich mein Script entsprechend um und poste das Ergebnis anschließend.
Beste Grüße und ein schönes Wochenende.
Nico
So es hat mir keine Ruhe gelassen, da habe ich es gleich umgebaut 🙂
Der Sinn ist:
Auf einer Produktseite klicke ich auf "Mehr Informationen". Über den Link wird die UID der Produktseite in GP:productpage übergeben. Im Zielformular ist nun eine aus der Tabelle "pages" gefüllte Auswahlbox (Ich Interessiere mich für) und die bereits vorausgewählten Seite ist markiert:
lib.productfill = CONTENT
lib.productfill {
table = pages
select {
pidInList = xxx
}
renderObj = COA
renderObj {
10 = COA
10 {
10 = TEXT
10.dataWrap = {field:title}[\n]
}
}
}
plugin.tx_powermail.settings.setup.prefill {
produkt= RECORDS
produkt {
tables = pages
source.data = GP:productpage
conf.pages = TEXT
conf.pages.field = title
}
}
vg Nico
Nice, schön zu sehen, dass die Änderung in der 2.1 "Create from TypoScript" auch benutzt wird 🙂
Entschuldigt bitte wenn ich einen so alten Post ausgrabe, allerdings hat der mir sehr gut weitergeholfen bei einer Problemstellung vor der ich gerade gestanden habe :-)
Ich konnte das Script hier ganz gut adaptieren nur scheitere ich gerade daran einen dynamischen Link zu generieren womit ich auf der Folgeseite eine Checkbox vorauswählen kann.
Wie müsste der Link dazu denn aussehen?
index.php?id=123?tx_powermail_pi1[uid123][0]=1
Danke schonmal für Eure Hilfe.
Der Threadersteller hat mir an einer anderen Stelle weitergeholfen. Nur zur Vervollständigung seine Antwort:
Das Befüllen der Checkbox geht ganz ohne Powermail.
Beispiel:
index.php?id=1&productpage=18
Das Script aus meiner Beschreibung holt dann die Seite mit der uid 18 und befüllt die Selectbox mit dem Titel der Seite.
An der Stelle nochmals Danke für die Hilfe.