TYPO3菜单 - 将HTML标记添加到stdWrap.override

时间:2014-08-26 11:31:30

标签: html typo3 typoscript

我在TypoScript中制作了一个菜单,我用自己的文本覆盖标准标题:

lib.menu = HMENU
lib.menu.special = list
lib.menu.special.value = 3304, 7753
lib.menu {
    1 = TMENU
    1 { 
        wrap = <ul class="menu">|</ul>  
        NO {
      allWrap = <li>|</li> 
      stdWrap.wrap = |
      ATagBeforeWrap = 1
      stdWrap.htmlSpecialChars = 1
      stdWrap.override = some text <br /> some text! || some text <br /> some text!
        }  
  }
}

但是在输出中,我将带有HTML标记的菜单作为文本:

 - some text <br /> some text! 
 - some text <br /> some text!

如何将HTML标记解析为HTML?

1 个答案:

答案 0 :(得分:1)

问题在于这一行:

stdWrap.htmlSpecialChars = 1

它通过用实体替换HTML特殊字符来转义stdWrap的输入(在这种情况下是覆盖的结果)。

如果输入是用户提供的或者是用户提供的部分,则应该使用它,以防止用户破坏前端的HTML输出或引入XSS漏洞。如果内容是硬编码文本,您可以放心地将其删除。

否则,您应该只转义用户输入,然后再添加HTML,例如使用stdWrap.override.htmlSpecialChars = 1