Hallo,
bei einer Controller-Action will ich eine Email losschicken. Diese wird mit t3lib_htmlmail gesendet.
Inhalt der Email ist ein Plaintext und ein HTML-Part.
$htmlMail->addPlain($plain);
$htmlMail->setHtml($html);
Dafür gibt es zwei Views mit zwei Template-Dateien:
- notifyMail.html für den HTML-Part
- notifyMail.txt für den Plaintext-Part
Fluid bekommt nun diverse Variablen mitgeteilt, die in diesen Template-Dateien geparsed werden. Im HTML-Template will ich, dass Zeichen wie "<", "&", usw. excaped werden. Dazu brauche ich nichts weiter machen, weil Fluid die Variablen vor der Ausgabe umwandelt.
Im Plaintext-Part der Email soll das aber nicht der Fall sein. HTML-Entities im Plaintext sehen schrecklich aus ;-)
Bisher habe ich keinen ViewHelper gefunden, der einfach dessen Value zurückgibt ohne diesen zu rendern.
Versuchter RawVielHelper:
Class Tx_MyExt_ViewHelpers_RawViewHelper Extends Tx_Fluid_Core_ViewHelper_AbstractViewHelper {
Public Function render() {
return $this->renderChildren(); // Childs werden umgewandelt in HTML
// Gibt es sowas:?
return $this->allesWasZwischenDenViewHelperTagsStehtOhneZuRendern;
}
}
Kann man im ViewHelper einfach das zurückgeben, was dazwischen steht?
$var = "Das hier soll einfach so ausgegeben werden wie es ist. Also z. B. & und nicht &";
<tx:Raw>{var}</tx:Raw>
soll so aussehen:
Das hier soll einfach so ausgegeben werden wie es ist. Also z. B. & und nicht &
und nicht so:
Das hier soll einfach so ausgegeben werden wie es ist. Also z. B. & und nicht &amp;
Vielen Dank für eure Hilfe.
LG sun
Edith sagt: Beispiel geändert.
Edith Zwei sagt:
So könnte die Render-Methode des ViewHelper aussehen:
Public Function render($value = NULL) {
return ($value != NULL) ? $value : $this->renderChildren();
}
<tx:Raw value="{var}" /> <!-- Gibt {var} im Klartext zurück ohne es weiter zu bearbeiten. -->
<tx:Raw />{var}</tx:Raw> <!-- Nachteil: Gibt {var} gerendert zurück (keine Ahnung wie ich das ändern kann).-->