Ich übergebe eine Variable an meine Zweig-Vorlage in Symfony2, diese Variable kann <br />
html-Tags enthalten, ich habe versucht, eine Erweiterung (Funktion) zu erstellen, aber die Variable wird weiterhin maskiert.
Wie kann ich eine Zweigvariable ausgeben, die das <br />
-Tag erlaubt? Gibt es eine einfache Lösung, um nur eine weiße Liste zulässiger Tags in bestimmten Vorlagen zuzulassen?
Ich habe nach Zweig-Sandboxen gesucht, bin mir aber nicht sicher, ob das meine Lösung ist.
edit: Ich möchte weiterhin, dass die Variable maskiert wird, aber ausschließlich das <br />
-Tag zulässt.
Zuerst dachte ich, es wäre möglich, benutzerdefinierte Escape-Strategien zu schreiben, damit Sie so etwas tun können:
%Vor% Leider ist das nicht der Fall. Nur verfügbare Strategien sind html und js. Sie sind in der Funktion twig_escape_filter()
fest codiert, die in einer Twig_Extension_Core
-Klassendatei definiert ist.
Es scheint, dass Ihre einzige Option darin besteht, benutzerdefinierte Estension mit einem neuen Filter zu schreiben:
%Vor%Hier ist ein Beispiel für eine benutzerdefinierte Zweig-Erweiterung und wie man sie in Symfony registriert: Symfony2 Twig extension
Das kannst du so machen:
%Vor%Zum Beispiel
%Vor%wird nicht entkommen
%Vor%und
%Vor%wird nicht entkommen
%Vor%usw.
funktioniert gut, aber ich weiß nicht, wie man mit diesem Zweigfilter ein Array an die php-Funktion strip_tags übergibt.
beide
%Vor%und
%Vor%löst beim Rendern einer Vorlage eine "Array to string conversion" -Ausnahme aus.
Seien Sie auch vorsichtig, dass strip_tags php function HTML-Attribute wie "onclick" nicht freigibt.