当前页面的TYPO3流体菜单条件



我使用的是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版本(我目前正在使用的版本(上,有布尔currentactive,所以您的代码应该只是:

<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>

最新更新