Typo3 8.7 Typoscript: панель навигации с HMENU: исключить иерархический шаг из отображения

В настоящее время я работаю над своей навигационной панелью в Typo3 Typoscript. Структура страницы моего проекта выглядит следующим образом:

root
 1
 1
 1
  2
   3
   3
 1
 1
  2
   3
   3

Что я хочу сейчас, так это исключить двойки (пнуть их), но продолжать отображать все 3 при выборе 1, у которых есть 3 в качестве своих дочерних элементов.

Нравится:

   root
     1
     1
     1
      3
      3
     1
     1
      3
      3

Мой код в TypoScript, который отображает полную структуру страницы

NAVIOFF = HMENU
    NAVIOFF.entryLevel = 0
    NAVIOFF {
    1 = TMENU
    1 {
    expAll = 1
    wrap = <ul class="sf-menu">|</ul>
    noBlur = 1
    NO = 1
    NO.ATagTitle.field = title
    NO.wrapItemAndSub = <li>|</li>
    IFSUB = 1
    IFSUB < .NO
    IFSUB.ATagParams = class="pfeile"  

     ACT = 1
     ACT < .NO
     ACT.ATagParams = class="menuakt"
     CUR = 1
     CUR < .ACT

    }
    2 < .1  
    2.wrap = <ul>|</ul>
    2.NO.wrapItemAndSub =  <li class="first"> |</li> |*| <li> |</li> |*| <li class="last"> | </li>   
    2.ACT = 0

    3 < .2
    4 < .2
    }

Можно ли добиться того, чего я хочу? До сих пор я наткнулся на excludeUIDlist, но затем я, очевидно, пинаю полные 2 и 3, «прикрепленные» к ним.

Заранее спасибо.


person dombg    schedule 27.09.2018    source источник


Ответы (2)


Вы можете переопределить рендеринг 2. уровня, например, «каждый второй уровень должен выводить только пустую строку и никаких ссылок», например с использованием

    2.NO.stdWrap.override =  |*| |*|
    2.NO.doNotLinkIt = 1

Тогда вместо вывода [element 2[element3a],[element3b]] вы должны получить [nothing[element3a],[element3b]], что похоже на то, что вы хотите.

person NextThursday    schedule 27.09.2018

просто пропустите 2-й уровень в меню:

ничего не делать со 2-м уровнем:

//remove:
# 2 < .1
// no rendering:
2.NO.doNotShowLink = 1

конечно вы не можете копировать .2. Для дальнейших уровней вы начинаете с .3 адаптируете его, а затем копируете уровень 3:

3 < .1  
3.wrap = <ul>|</ul>
3.NO.wrapItemAndSub =  <li class="first"> |</li> |*| <li> |</li> |*| <li class="last"> | </li>   
3.ACT = 0

4 < .3
person Bernd Wilke πφ    schedule 27.09.2018
comment
Это не сработало для меня, так как не создавало никаких ‹ul› внутри 1 для 3. - person dombg; 27.09.2018