Zum Inhalt springen

[Powermail] Geänderte fe_user-Felder in E-Mail hervorheben

Erstellt am 14. Mai 2010 · 11 Antworten · letzte Antwort am 18. Mai 2010

Tags: Powermail, Frage

sebastian_wr ·

Andere Frage, die in dem Zusammenhang auch interessant ist: Ich hatte es mal geschafft, dass per TS bestimmte Felder - egal, was der User dort eingetragen hat - in der E-Mail einen bestimmten Wert hatten.

Die Werte wurden also _nach_ dem Abschicken mit TypoScript überschrieben.

plugin.tx_powermail_pi1 {  
  mode.email.recipient_mail {
   uid25 = TEXT
   uid25.value = foobar
  }
}

Dieser Abschnitt aus dem Beispiel-TS im Ext.-Ordner tut leider nix und mir fällt auch nicht mehr ein, wie ich das damals gemacht hab. Es ging auf jeden Fall. 😉

Hast' nen Tipp für mich? Vielen Dank!

edit:

Habs jetzt. Korrekterweise muss die zweite Zeile

    mode.recipient_mail {

heißen. Mea culpa.

sebastian_wr ·

Würde jetzt gerne etwas aus der Datenbank auslesen und in die E-Mail werfen. Habe es jedoch bisher nicht hinbekommen. Hier mein TS:

lib.title = CONTENT
lib.title {
  table = tt_news
  select {
    pidInList = 43
    andWhere {
      intVal = 1
      data = GPvar:sid
      wrap = tt_news.uid=|
    }    
  }        
  renderObj = TEXT
  renderObj.field = title
  renderObj.wrap = <h1>|</h1>
}

plugin.tx_powermail_pi1 {  
  mode.recipient_mail {
   uid25 < lib.title
  }
}

In der E-Mail bleibt das Feld leider leer. Normalerweise müsste da doch ein TEXT-Objekt zurückgegeben werden, was man dann einfügen kann? Mit uid25 < lib.title.renderObj kommt <h1>&nbsp;</h1> raus.

Was mache ich falsch?

einpraegsam.​net ·

was ist wenn du den Wert direkt auf der Seite ausgibst:

page.20 < lib.title

P.S.: Bitte künftig bei neuer Frage einen neuen Post aufmachen

sebastian_wr ·

Funktioniert prima. Das hab ich ja auch z.B. auf der Seite davor als Seitentitel verwendet (deswegen auch das <h1>).

einpraegsam.​net ·

Ins Blaue:
Ich könnte mir eine Kollision vorstellen, da powermail selbst .field nutzt. Das könnte das .field aus dem Render Objekt überschreiben...

sebastian_wr ·

Hast du denn spontan eine Idee, wie man das umsetzen könnte? Werte aus der Datenbank in die E-Mail schmeißen, ohne prefill zu nutzen? (wäre ja mit relativ geringen Kenntnissen manipulierbar)

einpraegsam.​net ·

Was auf jeden Fall geht
Ändere das betroffene Feld in ein TypoScript Feld ab. Dann das Feld manuell nachbauen:

lib.feld = COA
lib.feld {
  10 = TEXT
  10.value = <input type="text" name="uid123" value="
  20 < lib.title
  30 = TEXT
  30.value = " />
}

Ansonsten könnte man noch etwas mit dem Register probieren...

sebastian_wr ·

Das Nachbauen find ich eher blöd, da der Wert dann ja trotzdem wieder geändert werden kann. Habe mal was mit dem register versucht, jedoch wird der Wert nicht ausgegeben:

lib.coursedata = LOAD_REGISTER
lib.coursedata {
  coursetitle = CONTENT
  coursetitle {
    table = tt_news
    select {
      pidInList = 43
      andWhere {
      intVal = 1
        data = GPvar:sid
        wrap = tt_news.uid=|
      }    
    }        
    renderObj = TEXT
    renderObj.field = title   
  } 
}

page.20 = TEXT
page.20.data = register:coursetitle
sebastian_wr ·

Leider lassen sich die Werte aus dem Register nicht übernehmen. Auch nicht mit Prefill. Folgendes hat keine Auswirkungen:

lib.test = CONTENT
lib.test {
    ...

    renderObj = LOAD_REGISTER
    renderObj {
        regtest = TEXT
        regtest.field = title
    }
}

plugin.tx_powermail_pi1.prefill {
   uid25 = TEXT
   uid25.data = register:regtest
   // leider leer!
}

Ich arbeite jetzt einfach erstmal mit hidden-Feldern und normalem prefill ohne Register. Ist zwar nicht ganz wasserdicht, aber ich denke, das wird es tun.