Typo3 - 自己的 viewhelper 在 T3 V8 中转义 HTML

Ger*_*ied 2 typo3 viewhelper typo3-8.x

我有一个 viewhelper,它在 Typo3 V7.x 中运行良好,但在 V8.x 中,它的输出不再是纯 html,而是 html 编码的。

简化的viewhelper类:

namespace MyName\Teaserbox\ViewHelpers;
class TeaserboxViewHelper extends \TYPO3\CMS\Fluid\Core\ViewHelper\AbstractViewHelper {
    public function render ( $html = null ) {
        return "<div><h2>$html</h2></div>"
    }
}
Run Code Online (Sandbox Code Playgroud)

简化的 HTML:

<m:teaserbox><f:cObject typoscriptObjectPath="lib.someHTML"></f:cObject></m:teaserbox>
Run Code Online (Sandbox Code Playgroud)

输出类似于:

&lt;div&gt;&lt;h2&gt;TEST&lt;/h2&gt;&lt;/div&gt;
Run Code Online (Sandbox Code Playgroud)

der*_*sen 7

protected $escapeOutput = false;可以通过添加到 ViewHelper 来关闭转义。

namespace MyName\Teaserbox\ViewHelpers;
class TeaserboxViewHelper extends \TYPO3\CMS\Fluid\Core\ViewHelper\AbstractViewHelper {
    protected $escapeOutput = false;

    public function render ( $html = null ) {
        return "<div><h2>$html</h2></div>"
    }
}
Run Code Online (Sandbox Code Playgroud)

这样做时,您必须意识到,您需要自己清理用户输入以防止 XSS。