我在Typoscript中有以下对象,我想重复使用几次:
module.headedmenu = COA
module.headedmenu{
10 = HMENU
10{
wrap = <nav><ul><li>|</li></ul></nav>
special = list
special.value = ###ROOTID###
1 = TMENU
1.NO.doNotLinkIt = 1
}
20 = HMENU
20{
wrap = <nav><ul>|</ul></nav>
special = directory
special.value = ###ROOTID###
1 = TMENU
1{
#Do we really need this??
expAll= 1
NO = 1
NO.wrapItemAndSub = <li class="first-level">|</li>
ACT = 1
ACT.wrapItemAndSub = <li class="first-level active">|</li>
}
}
}
这可以像这样重复使用:
10 < module.headedmenu
10.10.special.value = 3
10.20.special.value = 3
20 < module.headedmenu
20.10.special.value = 12
20.20.special.value = 12
有没有办法重构这个,所以我不需要输入多次root ID?常数不要削减它,因为我想多次使用它。我不想有一个巨大的常量列表。我想使用它,更像是一个可以传递参数的函数。
这可行吗?
答案 0 :(得分:1)
您可以使用registers:
# Query register where the root id is needed:
module.headedmenu {
[...]
special.value = {register:rootId}
special.value.insertData = 1
[...]
}
# Set register before rendering element, and
# restore it afterwards:
10 = COA
10 {
10 = LOAD_REGISTER
10 {
rootId = 3
}
20 < module.headedmenu
30 = RESTORE_REGISTER
}