Typo3 - 自己的 viewhelper 在 T3 V8 中转义 HTML
Typo3 - own viewhelper escapes HTML in T3 V8
我有一个在 Typo3 V7.x 中运行良好的 viewhelper,但在 V8.x 中它的输出不再是普通的 html,而是 html 编码的。
简化的查看助手class:
namespace MyName\Teaserbox\ViewHelpers;
class TeaserboxViewHelper extends \TYPO3\CMS\Fluid\Core\ViewHelper\AbstractViewHelper {
public function render ( $html = null ) {
return "<div><h2>$html</h2></div>"
}
}
简化HTML:
<m:teaserbox><f:cObject typoscriptObjectPath="lib.someHTML"></f:cObject></m:teaserbox>
输出类似于:
<div><h2>TEST</h2></div>
可以通过将 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>"
}
}
这样做时,您必须意识到,您需要自己清理用户输入以防止 XSS。
我有一个在 Typo3 V7.x 中运行良好的 viewhelper,但在 V8.x 中它的输出不再是普通的 html,而是 html 编码的。
简化的查看助手class:
namespace MyName\Teaserbox\ViewHelpers;
class TeaserboxViewHelper extends \TYPO3\CMS\Fluid\Core\ViewHelper\AbstractViewHelper {
public function render ( $html = null ) {
return "<div><h2>$html</h2></div>"
}
}
简化HTML:
<m:teaserbox><f:cObject typoscriptObjectPath="lib.someHTML"></f:cObject></m:teaserbox>
输出类似于:
<div><h2>TEST</h2></div>
可以通过将 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>"
}
}
这样做时,您必须意识到,您需要自己清理用户输入以防止 XSS。