【问题标题】:TYPO3 fluid menu condition for current page当前页面的 TYPO3 流体菜单条件
【发布时间】:2020-07-03 02:23:30
【问题描述】:

我正在使用 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>

【问题讨论】:

    标签: menu typo3 conditional-statements fluid


    【解决方案1】:

    我不知道您使用的是哪个版本的 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>
    

    【讨论】:

    • 我使用的是 6.0 版。我会试试你的解决方案。谢谢!
    【解决方案2】:

    我暂时解决如下。但我认为这不是最好的解决方案。

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

    【讨论】:

      猜你喜欢
      • 2018-03-23
      • 2017-10-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-08-23
      • 1970-01-01
      • 2011-04-19
      相关资源
      最近更新 更多