2017-08-24 3 views
0

also hier ist mein Problem: Ich habe versucht, einen zusätzlichen Text auszugeben, sobald ein bestimmtes Kontrollkästchen in powermail aktiviert ist.Geben Sie zusätzlichen Text in Powermail aus, wenn die spezifische Checkbox aktiviert ist

Das Auswahlfeld enthält mehrere Optionen und alle sind natürlich wählbar, aber wenn das Feld 1 aktiviert ist, sollte der Absender den Standardtext in der Mail plus "Lorem ipsum" haben, aber wenn das Feld nicht angekreuzt ist, sollte es keine zusätzliche Ausgabe sein.

Ich könnte eine Lösung für die Änderung von Texten je nach Auswahl für einzelne Auswahl/Dropdown finden und es funktioniert wie ein Charme, aber aus einem Grund funktioniert das Multi-Auswahl überhaupt nicht. Ich kann mir nicht vorstellen, warum vielleicht jemand helfen kann.

TS:

lib.serverex = CASE 
lib.serverex { 

    key.data = GP:tx_powermail_pi1|field|produktang|1 
    key.intval = 1 
    1 = TEXT 
    1.value = Lorem Ipsum 

    #Default 
    default = TEXT 
    default.value = 
} 

Die E-Mail in Powermail wie folgt aussieht:

Some standard text... 

{f:cObject(typoscriptObjectPath:'lib.serverex', data:'{produktang}')} 

Die Checkbox Konfiguration in der Form (id: produktang):

first product | 1 
second product | 2 
third product | 3 
fourth product | 4 
fifth product | 5 

Entweder es anfügt Es ist egal, was die Eingabe ist/checked Boxen sind oder es nicht den zusätzlichen Text überhaupt sendet. Vermutlich vermisse ich hier etwas.

Vielen Dank im Voraus!

Antwort

0

Ich habe es jetzt mit gelöst eine Art Trick, weil ich es nicht anders machen konnte. Was ich getan habe:

Ich habe das spezifische Produkt verschoben, wo die E-Mail an die erste Position im Multiselect-Element ändert. Also ist der Index 0. Die nächste Sache ist zu überprüfen, ob das Element in Position 0 des Arrays das gewünschte Produkt entspricht, in meinem Fall ist es "firstProduct". Da es in der ersten Position ist, wird es immer "firstProduct" sein, wenn "firstProduct" aktiviert ist und der zusätzliche Text "gedruckt" wird. Ich setze den Standardtext auf einen leeren String, so dass er in jedem anderen Fall leer bleibt.

Hier ist der Code:

lib.serverex = CASE 
    lib.serverex { 
     key.data = GP:tx_powermail_pi1|field|produkt|0 
     firstProduct = TEXT 
     firstProduct.value = Lorem Ipsum 

     #Default 
     default = TEXT 
     default.value = 
    } 

Die Konfiguration der Checkbox innerhalb Power:

firstProduct 
    secondProduct 
    thirdProduct 
    fourthProduct 
    fifthProduct 

und der Code, der innerhalb der E-Mail selbst:

{f:cObject(typoscriptObjectPath:'lib.serverex', data:'{produkt}')} 

Wahrscheinlich funktioniert auch anders, aber ich konnte es nicht anders lösen. Ich hoffe, das hilft, wenn jemand auf dieselben Probleme trifft, die ich hatte.

0

Das Ergebnis von Feld {Produktang} ist ein Array (natürlich, weil es ein Kontrollkästchen ist). Sie müssen also herausfinden, ob es einen Schlüssel mit dem Wert "2" gibt (zB wenn Sie Produkt 2 suchen) in Ihrem Fall tx_powermail_pi1 | field | produktang | 1 == 2

+0

Zunächst einmal danke für die schnelle Antwort :) Ich dachte, die angefügte "1" in "tx_powermail_pi1 | field | produktang | 1" würde den Index 1 des Arrays für das Feld auswählen. Scheint so, als ob ich das ganze Konzept noch nicht verstehe. Anyway ... wenn ich vergleiche (1 == 2) also wenn Produkt 2 überprüft wird, wie Sie oben zum Beispiel es immer noch nicht den Text geben ... vielleicht ist der Fehler woanders in meinem Code .. .überprüft alles und gibt weitere Versuche. – kelevra

+0

Okay, also habe ich mehrere Dinge ausprobiert, einschließlich deines Vorschlags, aber es funktioniert immer noch nicht. Und es wird nicht mehr den Standardtext ausgeben. Hat jemand Ideen? Muss ich zusätzliche Informationen bereitstellen? – kelevra

Verwandte Themen