Zum Inhalt springen

Powermail2 - dynamisch generierte Checkboxen

Erstellt am 14. Oktober 2014 · 7 Antworten · letzte Antwort am 26. September 2018

Tags: Powermail, Frage

dercin ·

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

einpraegsam.​net ·

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.

dercin ·

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

dercin ·

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

Steppo ·

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.

Steppo ·

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.