Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/typo3/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Typo3 打字脚本:{field:uid}替换不起作用|每个菜单项的CSS类不同_Typo3_Typoscript - Fatal编程技术网

Typo3 打字脚本:{field:uid}替换不起作用|每个菜单项的CSS类不同

Typo3 打字脚本:{field:uid}替换不起作用|每个菜单项的CSS类不同,typo3,typoscript,Typo3,Typoscript,我有一个标题菜单,并试图为每个项目定义不同的CSS类 这就是我所拥有的: 20 = HMENU 20 { special = directory special.value = 107 1 = TMENU 1 { wrap = <ul class="foo" id="mymenu">|</ul> expAll = 1 NO = 1 NO.allWrap = <li class="fi

我有一个标题菜单,并试图为每个项目定义不同的CSS类

这就是我所拥有的:

20 = HMENU
  20 {
    special = directory
    special.value = 107
    1 = TMENU
    1 {
      wrap = <ul class="foo" id="mymenu">|</ul>
      expAll = 1
      NO = 1
      NO.allWrap = <li class="first menu_{field:uid}">|</li> || <li class="menu_{field:uid}">|</li> || <li class="last menu_{field:uid}">|</li>
    }
  }

您必须添加
NO.allWrap.insertData=1
,然后将插入数据
allWrap
只是一个普通的
stdWrap

顺便说一句:我认为你的观点仍然是错误的。我猜你想这样做:

NO.allWrap = <li class="first menu_{field:uid}">|</li> |*| <li class="menu_{field:uid}">|</li> |*| <li class="last menu_{field:uid}">|</li>
NO.allWrap=
  • *|
  • *|
  • |

  • 远离
    insertData=1
    !!!这是一个安全问题!假设有人在页面标题中使用
    {DB:be|user | 0 | password}
    。然后后端用户的密码将在前端打印。而是使用
    dataWrap
    。这不会替换页面标题内的值,因为它在换行之前执行
    insertData
    。所以只需使用
    NO.stdWrap.dataWrap=…
    。有人在页面标题中使用{DB:be|u user | 0 | password}是什么意思?花括号是特殊的字符,将被转义。但即使不是这样,也只有后端用户可以编辑页面属性,那么为什么有人会破解他/她自己的输入3?这样所有后端用户都可以读取所有表中的所有配置和所有值?
    insertData=1
    dataWrap
    之间的区别在于
    dataWrap
    仅替换已包装内容的内容,而
    insertData=1
    甚至替换已包装数据内的标记。因此,如果您包装页面标题并使用
    dataWrap=1
    ,则会替换页面标题中的所有标记。这可能是有用的,但主要是不需要的。当然,这取决于你对编辑的信任。安全团队建议根本不要使用
    insertData
    。因此,请修正您的答案,解决问题,但会带来不必要的安全风险。或者你真的认为他想替换页面标题中的
    {…}
    标记吗?他想把包装纸上的记号笔换掉。事实上,我正在考虑将其标记为显示漏洞。大约一年前,我在内核中看到了这一点。
    NO.allWrap = <li class="first menu_{field:uid}">|</li> |*| <li class="menu_{field:uid}">|</li> |*| <li class="last menu_{field:uid}">|</li>