简体   繁体   English

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

[英]TYPO3 fluid menu condition for current page

I'm using TYPO3 v. 8.7 and ext.我正在使用 TYPO3 v. 8.7 和 ext。 vhs视频

Is it possible to make a condition that checks for current page?是否可以创建一个检查当前页面的条件? Have tried the code below but it does not work.已经尝试了下面的代码,但它不起作用。 I think it should then be possible to check for Current page我认为应该可以检查当前页面

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

I don't know which version of EXT:VHS you are using, maybe an old one (as you wrote the deprecated v:page.menu instead of v:menu ).我不知道您使用的是哪个版本的 EXT:VHS,可能是旧版本(因为您编写了已弃用的v:page.menu而不是v:menu )。

You can discover all the options available for each item on the menu and their current value just using您可以发现菜单上每个项目的所有可用选项及其当前值,只需使用

<f:debug>{_all}</f:debug>

Like this:像这样:

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

On version 6.0.0 (the one I am currently using) there are the boolean current and active so your code should be just:在 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>

Plus, if you just need a different class for your "active" or "current" items, you can also use the v:menu arguments ´classActive´ and classCurrent另外,如果您只需要为“活动”或“当前”项目使用不同的类,您还可以使用v:menu参数 'classActive' 和classCurrent

for example:例如:

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

I have temporarily resolved it as follows.我暂时解决了如下。 But I don't think that's the nicest solution.但我认为这不是最好的解决方案。

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

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM