Состояние меню жидкости TYPO3 для текущей страницы - PullRequest
0 голосов
/ 22 марта 2020

Я использую TYPO3 v. 8.7 и доп. 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>

Ответы [ 2 ]

1 голос
/ 22 марта 2020

Я не знаю, какую версию 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>
0 голосов
/ 22 марта 2020

Я временно решил это следующим образом. Но я не думаю, что это самое хорошее решение.

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