Typo3 打字脚本:{field:uid}替换不起作用|每个菜单项的CSS类不同
我有一个标题菜单,并试图为每个项目定义不同的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
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>