我有一个HTML模板,我使用automaketemplate创建了一个typo3模板。在这个HTML中,我有一个像这样的div的设置
<div class="bigPostItWrap">1
<div class="postit">2
<div class="postit_tesa">3</div>
<div class="postItWrap">4
<ul class="menusmall">5
<li>* Team</li>6
<li>* something else</li>
<li>* Third point</li>
</ul>
</div>
</div>
</div>
UL应包含辅助导航,仅在选择某个主导航对象时显示。由于它位于屏幕上的其他位置,因此我将其设为一个独立的菜单,如此
postitMenu = HMENU
postitMenu {
# show the submenue relative to this entry level (?)
entryLevel = 1
# the first level of the menu is a text menu
1 = TMENU
# wrap the whole menu with <ul class="menu"> | </ul>
1.wrap = <ul class="menusmall"> | </ul>
# enable the "no"rmal state
1.NO = 1
# for the normal state, wrap it in li
1.NO.linkWrap = <li>* |</li>
#enable active state
1.ACT = 1
#copy all properties from normal state to active state
1.ACT < .NO
# disable the link for the active menu-point
1.ACT.doNotLinkIt = 1
# wrap the active menulink in li with the class = "active"
1.ACT.allWrap = <li class="active">* |</li>
}
所有这些都很有效,菜单只显示在正确的主菜单条目上。但是外部div postit
包含一个背景图像(你可能猜到,它是一个postIt),postit_tesa在postit上面显示了一条胶带。当然,如果我没有显示次要菜单,我也不希望渲染postIt和粘性磁带。
由于我对typoScript相当新,我不知道如何实现这一目标。我不知道如何google,至少我没有找到任何解决方案。我想,不知何故,如果我围绕它制作bigPostItWrap,我可能会做类似
的事情if there is an li-element,
render the subpart bigPostItWrap,
else, don't render it
但是我不能落后于ts-if,或做一些完全错误的事情。任何提示都值得赞赏。对于职业选手而言,这可能很容易,但是我无法弄明白,而且我从前天开始就在努力--.-
谢谢!
答案 0 :(得分:0)
对于任何面临同样问题的人:我做了一个作弊..实际上有两种方式。
首先,我简单地创建了外部wrap-div,并为其分配了所有其他代码,并且如果页面ID是我想要的那个,则在此代码中进行菜单构建。这很有效,但并不好。
第二种,可能更干净的方法是通过css ..只需将包装器的可见性设置为隐藏。比使用typo3为你的身体标签提供身体标签内的UID
# generate a bodyTag with the current page UID
page.bodyTag >
page.bodyTagCObject = TEXT
page.bodyTagCObject.field = uid
page.bodyTagCObject.wrap = <body id="pid-|">
在你的css中,创建一个新的选择器(假设第3页是你希望菜单出现的那个)
#pid-3 .your-wrappers-name {
visibility: visible;
}
你去吧。 Div只会在带有UID 3的页面上显示。