我使用的是TYPO3 v.8.7和ext.vhs
是否可以设置一个条件来检查当前页面?已经尝试了下面的代码,但它不起作用。我认为应该可以检查当前页面
<v:page.menu expandAll="1" entryLevel="1" >
<f:for each="{menu}" as="menuPage" iteration="iteration">
<f:if condition="{menuPage.isCurrentPage}">
<f:then>is current page</f:then>
<f:else>is not current page</f:else>
</f:if>
</f:for>
</v:page.menu>
我不知道你在使用哪个版本的EXT:VHS,可能是旧版本(因为你写了不推荐使用的v:page.menu
而不是v:menu
(。
只需使用,您就可以发现菜单上每个项目的所有可用选项及其当前值
<f:debug>{_all}</f:debug>
像这样:
<v:page.menu expandAll="1" entryLevel="1" >
<f:for each="{menu}" as="menuPage" iteration="iteration">
<f:debug>{_all}</f:debug>
<f:if condition="{menuPage.uid} == {data.uid}">
<f:then>is current page </f:then>
<f:else>is not current page</f:else>
</f:if>
</f:for>
</v:page.menu>
在6.0.0版本(我目前正在使用的版本(上,有布尔current
和active
,所以您的代码应该只是:
<v:menu expandAll="1" entryLevel="1" >
<f:for each="{menu}" as="menuPage" iteration="iteration">
<f:if condition = "{menuPage.current}">
<f:then>is current page </f:then>
<f:else>is not current page</f:else>
</f:if>
</f:for>
</v:menu>
此外,如果您的"活动"或"当前"项目只需要一个不同的类,您也可以使用v:menu
参数"classActive"和classCurrent
例如:
<v:menu expandAll="1" entryLevel="1" classCurrent="is-current" classActive="is-active">
<f:for each="{menu}" as="menuPage" iteration="iteration">
<li class="{menuPage.class}">
<f:link.page pageUid="{menuPage.uid}" title="{menuPage.linktext}">{menuPage.linktext}</f:link.page>
</li>
</f:for>
</v:menu>
我暂时解决了它,如下所示。但我不认为这是最好的解决方案。
<v:page.menu expandAll="1" entryLevel="1" >
<f:for each="{menu}" as="menuPage" iteration="iteration">
<f:if condition="{menuPage.uid} == {data.uid}">
<f:then>is current page </f:then>
<f:else>is not current page</f:else>
</f:if>
</f:for>
</v:page.menu>