如果在菜单中选中了页面页面选项中的复选框,则覆盖allWrap

时间:2017-07-13 15:23:57

标签: typo3 typoscript

如果选中页面选项中的复选框,我想覆盖typoscript菜单定义中的allWrap选项。应突出显示以下页面,因此我需要在list标签中添加一个额外的css类。

在我的页面选项中,我有一个名为tx_mask_highlight_nav的布尔值。

因此,在我的流体模板中,我可以访问{page.tx_mask_highlight_nav}

但我在我的typoscript菜单定义中需要这个。

我目前的做法如下:

lib.menu_main = COA
lib.menu_main {
  10 = HMENU
  10 {
    entryLevel = 0
    wrap = |

    1 = TMENU
    1 {
      expAll = 1
      NO.allWrap = <li>|</li>
      NO.ATagTitle.field = abstract // description // title

      NO.allWrap.override = <li class="menu-item--bold">|</li>
      NO.allWrap.override.if {
        isTrue.data = page:tx_mask_highlight_nav
      }

      ACT = 1
      ACT.wrapItemAndSub = <li class="active">|</li>
      ACT.ATagTitle.field = abstract // description // title

      IFSUB = 1
      IFSUB.wrapItemAndSub = <li>|</li>
      IFSUB.ATagTitle.field = abstract // description // title

      ACTIFSUB = 1
      ACTIFSUB.wrapItemAndSub = <li class="active">|</li>
      ACTIFSUB.ATagTitle.field = abstract // description // title
    }

    1 {
      wrap = <ul class="dropdown menu menu--main" data-dropdown-menu>|</ul>
    }

    2 < .1
    2 {
      wrap = <ul class="menu vertical">|</ul>
    }

    3 < .2
    4 < .3
    5 < .4
  }
}

我尝试了其他几件事,例如:

NO.allWrap.override = <li class="menu-item--bold">|</li>
No.allWrap.override.if {
    value = page:tx_mask_highlight_nav
    equals = 1
}

但它不起作用。也许我无法访问page:tx_mask_highlight_nav

非常感谢你的帮助!

1 个答案:

答案 0 :(得分:1)

用字段替换数据。使用NO.allWrap.override.if.isTrue.field = tx_mask_highlight_nav

Full TypoScript

lib.menu_main = COA
lib.menu_main {
  10 = HMENU
  10 {
    entryLevel = 0
    wrap = |

    1 = TMENU
    1 {
      expAll = 1
      NO.allWrap = <li>|</li>
      NO.ATagTitle.field = abstract // description // title

      NO.allWrap.override = <li class="menu-item--bold">|</li>
      NO.allWrap.override.if.isTrue.field = tx_mask_highlight_nav

      ACT = 1
      ACT.wrapItemAndSub = <li class="active">|</li>
      ACT.ATagTitle.field = abstract // description // title

      IFSUB = 1
      IFSUB.wrapItemAndSub = <li>|</li>
      IFSUB.ATagTitle.field = abstract // description // title

      ACTIFSUB = 1
      ACTIFSUB.wrapItemAndSub = <li class="active">|</li>
      ACTIFSUB.ATagTitle.field = abstract // description // title
    }

    1 {
      wrap = <ul class="dropdown menu menu--main" data-dropdown-menu>|</ul>
    }

    2 < .1
    2 {
      wrap = <ul class="menu vertical">|</ul>
    }

    3 < .2
    4 < .3
    5 < .4
  }
}