Tutorials

Einige nützliche Hilfen und Code-Schnipsel, die ich immer wieder benötige und deshalb hier für alle sammle.

Zurück zur Übersicht

TYPO3 8LTS: ViewHelper Default Escaping ausschalten

#Tutorials#TYPO3#PHP

Seit TYPO3 8LTS werden ViewHelper die \TYPO3\CMS\Fluid\Core\ViewHelper\AbstractViewHelper extenden standardmäßig mit htmlspecialchars escaped. Dadurch bekommt man keine HTML Ausgabe hin. Das Ganze lässt sich aber relativ schnell und schmerzfrei ausschalten. Dafür könnte man von \TYPO3\CMS\Fluid\Core\ViewHelper\AbstractTagBasedViewHelper extenden oder einfach protected $escapeOutput = false; in den ViewHelper schreiben.

Siehe folgendes Beispiel:

<?php
namespace Vendor\ArTest\ViewHelpers;

class YourViewHelper extends \TYPO3\CMS\Fluid\Core\ViewHelper\AbstractViewHelper{

  /**
    * As this ViewHelper renders HTML, the output must not be escaped.
    *
    * @var bool
    */
  protected $escapeOutput = false;

Das wars auch schon.


Kommentare

  • Knöterich
    Ich nutze die Extension `find` von der Uni Göttingen. Dabei wird dynamisach JS code generiert. Die Values der Parameter werden unnötigerweise escaped, was dann auf JS -Seite knallt, weil aus "String" "String" wird. Nun habe ich diese obige Zeile in die Viewhelper- Class eingefügt, was aber leider zu „Oops, an error occurred! Code: 201803101349045298f3c3“ führt (nachdem ich im Installtool den PHP-Cache geleert habe). Was kann ich noch tun?
    Antworten
    • Knöterich
      In dem Fall geht das mit dem Flag nicht, weil `s:format.json` genutzt wird. Ich habe mir geholfen, indem ich die Stelle mit <f:format.htmlentitiesDecode> umklammert habe.
      Antworten
  • franz
    Danke! Ne Menge Sucherei erspart 8)
    Antworten

Hinterlasse einen Kommentar

Antworten abbrechen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind markiert *

Kommentar wird gespeichert
Danke für deinen Kommentar! Sobald er freigegeben wurde erscheint er hier.