正在制作一些复杂的菜单,并希望使用CASE(或类似格式)来确定给定分支中子菜单的数量,以确定要使用的菜单样式。
代码:
5 = HMENU
5 {
entryLevel = -1
1 = TMENU
1 {
expAll = 1
NO = 1
NO {
...
}
IFSUB = 1
IFSUB {
10 = CASE
10 {
key.data = {register:count_menuItems}
1 = COA
1 {
data = {field:title}
data.insertData = 1
}
2 = COA
2 {
data = {field:title}
data.insertData = 1
}
default = COA
default {
data = {field:title}
data.insertData = 1
}
}
wrapItemAndSub = |
}
}
2 = TMENU
2 {
maxItems = 2
expAll = 1
...
}
}
我如何让CASE工作?我已经尝试过不带大括号。
找到答案。据我所知,CASE
适用于stdwrap.cObjects
,因此代码
10 = CASE
10 {
key.data = {register:count_menuItems}
...
}
应该是
stdWrap.cObject = CASE
stdWrap.cObject {
key.data = register:count_menuItems
if.isTrue.data = register:count_menuItems
...
}
以这种方式工作。
您应该获得更多有关如何输入打字稿中的字段,注册和其他数据的信息。
如果拥有属性,您通常可以修改获取常量文本以外的其他信息的方式。
在您的示例中,是key
属性,常量没有意义。
如果要访问“当前”记录/数据的字段,则只需使用key.field = fieldname
如果是其他数据,则将其修改为key.data = register:registername
可以通过key.data = field:fieldname
如果您希望这些数据与其他信息相关联,则可以使用自动换行:
key.data = register:registername
key.wrap = prefix- | -suffix
注意:包装纸的各个部分在连接之前已被修剪
另一种方式是内联表示法,您甚至可以使用多个值:
key = {register:registername}-with-{field:fieldname}
key.insertData = 1
这里有两个替代品。每个都必须用花括号{}
包裹,并且您需要告诉TYPO3有要做的替换:insertData = 1