我的目标是将不同的导航逻辑应用于不同的页面类型。例如,shortcut
类型将是容器(FE中的下拉列表,快捷方式本身是虚拟链接),standard
类型 - 包含您可以导航到的内容的页面。因此,当在FE导航用户选择页面时:
drop-down list appears
if (type of page in list == standard)
can navigate to page in list;
else if (type of page in list == shortcut)
GO TO drop-down list appears
我知道你可以这样做:
lib {
main-nav = HMENU
main-nav {
1 = TMENU
1 {
expAll = 1
NO = 1
NO.wrapItemAndSub = <li>|</li>
NO.stdWrap.cObject = CASE
NO.stdWrap.cObject {
key.field = doktype
default = TEXT
default {
field = title
}
# standard page type
1 = TEXT
1 {
field = title
wrap = <div>|</div>
}....
因此,如果网页类型为div
,您的网页标题将被standard
包裹。
但是我需要做什么来包装整个菜单项而不是只包装标题?
答案 0 :(得分:1)
如果它只是将div放在整个子菜单上,我猜你已经得到的东西应该应用于wrapItemAndSub而不是
lib {
main-nav = HMENU
main-nav {
1 = TMENU
1 {
expAll = 1
NO = 1
NO.wrapItemAndSub.cObject = CASE
NO.wrapItemAndSub.cObject {
key.field = doktype
default = TEXT
default {
value = <li>|</li>
}
# standard page type
1 = TEXT
1 {
value = <li><div>|</div></li>
}....
答案 1 :(得分:0)
我认为你需要结合HTML,CSS和javascript。
在typoscript中,您根据页面类型准备具有不同标记的HTML。然后你的javascript必须处理点击事件,如果是一个快捷方式页面,点击应该打开一个下拉菜单而不是去那个页面。 (添加eventhandler)
所以你需要给javascript一些东西来识别快捷方式页面 使用您提到的CASE对象,您可以使用所有必要信息构建适当的HTML(您可以使用数据属性)。
要获得更详细的帮助,您需要更具体地了解您想要实现的目标。