Zum Inhalt springen

COA in Text umwandeln

Erstellt am 5. März 2013 · 2 Antworten · letzte Antwort am 6. März 2013

Tags: Powermail, Frage

tobla ·

Hallo zusammen

Wie kann ich ein COA in Text (einen einzigen String) umwandeln mit Typoscript?

Hintergrund

Powermail kann als Empfänger eine lib mitgegeben werden -> {f:cObject(typoscriptObjectPath:'lib.userEmail')}. Damit ist es möglich den Empfänger über Typoscript zu setzen. Leider scheint Powermail hier nur einfach lib-Konstrukte zu verarbeiten.
Da wir jedoch den Empfänger anhand einer übergebenen FE-user ID aus der Datenbank lesen, erhalten wir eine komplexere Struktur:

lib.userEmail = COA
lib.userEmail {
  10 = TEXT
  10 {
    insertData = 1
    dataWrap = DB:fe_users:{GP:receiver|user}:email #liefert die Email Adresse aus der Datenbank
    wrap3 = {|}
  }
}

lib.userEmail funktioniert und gibt auch die E-mail aus, wenn sie auf der Seite eingebunden wird. wird sie jedoch Powermail übergeben mit {f:cObject(typoscriptObjectPath:'lib.userEmail')}, so passiert überhaupt nichts.

Daher nehme ich an, dass Powermail das ganze als Text erwartet. Doch wie kann ich den gesammten Inhalt eines COA zu einem Text umwandeln (so wie es auch umgewandelt wird, wenn es im Frontend ausgegeben wird)? Ich stelle mir das ungefähr so vor (klappt natürlich nicht, nur konzeptioneller Ansatz):

lib.receiver = TEXT
lib.receiver.value = {lib.userEmail.value}

Powermail Empfänger Feld: {f:cObject(typoscriptObjectPath:'lib.receiver')}

Das das ganze seitens Powermail funktioniert haben wir getestet. Mit

lib.receiver = TEXT 
lib.receiver.value = me@myComp.com

funktioniert es nämlich.

Könnt ihr mit weiterhelfen?

LuP ·

Hallo,

ich kann nicht ganz nachvollziehen, warum Du zum Setzen der Receiver-E-Mail ein f:cObject Viewhelper brauchst. Wenn ohnehin der GP:receiver|user Parameter übergeben wird, eignet sich nach meiner Meinung eher die overwrite Eigenschaft dafür. Damit lässt sich per TS der Default-Empfänger überschreiben und ein cObject wird auch unterstützt.

plugin.tx_powermail.settings.setup.receiver.overwrite.email =

VG,
LuP

tobla ·

Wenn du den Empfänger nicht über Typoscript sondern im Flexform setzt, musst du in das Empfängerfeld anstelle von myReceiver@myDomain.com das Konstrukt '{f:cObject(typoscriptObjectPath:'lib.receiver')}' eintragen.

Wir haben das Problem jetzt gelöst und zwar folgendermassen:
Flexform:

{f:cObject(typoscriptObjectPath:'lib.userEmail')}

Template:

lib.userEmail = TEXT
lib.userEmail {
  insertData = 1
  dataWrap = DB:fe_users:{GP:receiver|user}:email #liefert die Email Adresse aus der Datenbank
  wrap3 = {|}
}

Da haben wir wohl einfach zu weit gedacht #angry#

Es würde mich allerdings trotzdem interessieren, ob man ein COA in einen String wandeln kann.
Hätte diese Funktion nämlich schon bei anderen Problemen gebraucht.