TYPO3 Typo脚本菜单:隐藏元素条件

问题描述:

这是我的Typo脚本菜单:TYPO3 Typo脚本菜单:隐藏元素条件

page.10.variables { 
menue = HMENU 
menue { 
#special = directory 
#special.value = 17 
wrap = <div id="mobile-header"><div class="bar"></div></div><div class="menu-collapsed"><div id="navigation"><nav class="nav"><ul>|</ul></nav></div></div> 
1 = TMENU 
1.expAll=1 
1 { 
     NO { 
     wrapItemAndSub = <li>|</li> 
     stdWrap.cObject = TEXT 
     stdWrap.cObject.field = subtitle // title 
     ATagBeforeWrap = 1 
     # linkWrap = |<span class="underline"></span> 
     ATagParams=class="navi" 
      } 
     RO = 1 
     RO {   
     wrapItemAndSub = <li>|</li> 
     stdWrap.cObject = TEXT 
     stdWrap.cObject.field = subtitle // title 
     ATagBeforeWrap = 1 
     # linkWrap = |<span class="underline"></span> 
     ATagParams=class="navi" 
     } 
     ACT = 1 
     ACT { 
     wrapItemAndSub = <li> |</li> 
     stdWrap.cObject = TEXT 
     stdWrap.cObject.field = subtitle // title 
     ATagBeforeWrap = 1 
     # linkWrap = |<span class="underline"></span> 
     ATagParams=class="navi_active" 
     } 

     IFSUB = 1 
     IFSUB { 
     wrapItemAndSub = <li> |</li> 
     stdWrap.cObject = TEXT 
     stdWrap.cObject.field = subtitle // title 
     ATagBeforeWrap = 1 
     linkWrap = |<i class="fa fa-angle-down" aria-hidden="true"></i> 
     ATagParams=class="navi sub" 
      } 

    ACTIFSUB < .IFSUB 

     SPC = 1 
    SPC { 
    doNotLinkIt = 1 
    doNotShowLink = 1 
    allWrap = <div class="space"></div> 
    }  
    } 

    2 < .1 
    2.wrap = <ul class="nav_list1 subnavi resp">|</ul> 
    2.NO.wrapItemAndSub = <li> |</li> 
    2.ACT.wrapItemAndSub = <li> |</li> 
    3 < .2 
    3.wrap = <ul id="subsubnavi">|</ul> 
    } 


menue2 = HMENU 
menue2 { 
special = directory 
special.value = 62 
1 = TMENU 
1.expAll=1 
1 { 
wrap = <div class="box-menue2"><nav class="nav"><ul class="profile_tab">|</ul></nav></div> 
     NO { 
     wrapItemAndSub = <li>|</li> 
     stdWrap.cObject = TEXT 
     stdWrap.cObject.field = subtitle // title 
     ATagBeforeWrap = 1 
     ATagParams=class="navi2" 
    stdWrap.dataWrap =<i class="fa fa-{field:tx_iconfont_icon}" aria-hidden="true"></i> 
    stdWrap.dataWrap.insertData=1 
      } 
     RO = 1 
     RO {   
     wrapItemAndSub = <li>|</li> 
     stdWrap.cObject = TEXT 
     stdWrap.cObject.field = subtitle // title 
     ATagBeforeWrap = 1 
     stdWrap.dataWrap =<i class="fa fa-{field:tx_iconfont_icon}" aria-hidden="true"></i> 
    stdWrap.dataWrap.insertData=1 
     ATagParams=class="navi2" 
     } 
     ACT = 1 
     ACT { 
     wrapItemAndSub = <li> |</li> 
     stdWrap.cObject = TEXT 
     stdWrap.cObject.field = subtitle // title 
     ATagBeforeWrap = 1 
    stdWrap.dataWrap =<i class="fa fa-{field:tx_iconfont_icon}" aria-hidden="true"></i> 
    stdWrap.dataWrap.insertData=1 
     ATagParams=class="navi2_active" 
     } 

     IFSUB = 1 
     IFSUB { 
     wrapItemAndSub = <li> |</li> 
     stdWrap.cObject = TEXT 
     stdWrap.cObject.field = subtitle // title 
     ATagBeforeWrap = 1 
     linkWrap = |<i class="fa fa-angle-down" aria-hidden="true"></i> 
     ATagParams=class="navi2 sub" 
      } 

    ACTIFSUB < .IFSUB 

     SPC = 1 
    SPC { 
    doNotLinkIt = 1 
    doNotShowLink = 1 
    allWrap = <div class="space"></div> 
    }  
    } 

    2 < .1 
    2.wrap = <ul class="nav_list">|</ul> 
    2.NO.wrapItemAndSub = <li> |</li> 
    2.ACT.wrapItemAndSub = <li> |</li> 
    3 < .2 
    3.wrap = <ul id="subsubnavi">|</ul> 
    } 


menue3 = HMENU 
menue3 { 
special = directory 
special.value = 57 
1 = TMENU 
1.expAll=1 
1 { 
wrap = <div class="box-menue3"><nav class="nav3"><ul class="profile_tab">|</ul></nav></div> 
     NO { 
     wrapItemAndSub = <li>|</li> 
     stdWrap.cObject = TEXT 
     stdWrap.cObject.field = subtitle // title 
     ATagBeforeWrap = 1 
     ATagParams=class="navi2" 
    stdWrap.dataWrap =<i class="fa fa-{field:tx_iconfont_icon}" aria-hidden="true"></i> 
    stdWrap.dataWrap.insertData=1 
      } 
     RO = 1 
     RO {   
     wrapItemAndSub = <li>|</li> 
     stdWrap.cObject = TEXT 
     stdWrap.cObject.field = subtitle // title 
     ATagBeforeWrap = 1 
     stdWrap.dataWrap =<i class="fa fa-{field:tx_iconfont_icon}" aria-hidden="true"></i> 
    stdWrap.dataWrap.insertData=1 
     ATagParams=class="navi2" 
     } 
     ACT = 1 
     ACT { 
     wrapItemAndSub = <li> |</li> 
     stdWrap.cObject = TEXT 
     stdWrap.cObject.field = subtitle // title 
     ATagBeforeWrap = 1 
    stdWrap.dataWrap =<i class="fa fa-{field:tx_iconfont_icon}" aria-hidden="true"></i> 
    stdWrap.dataWrap.insertData=1 
     ATagParams=class="navi2_active" 
     } 

     IFSUB = 1 
     IFSUB { 
     wrapItemAndSub = <li> |</li> 
     stdWrap.cObject = TEXT 
     stdWrap.cObject.field = subtitle // title 
     ATagBeforeWrap = 1 
     linkWrap = | 
     ATagParams=class="navi sub" 
      } 

    ACTIFSUB < .IFSUB 

     SPC = 1 
    SPC { 
    doNotLinkIt = 1 
    doNotShowLink = 1 
    allWrap = <div class="space"></div> 
    }  
    } 

    2 < .1 
    2.wrap = <ul class="nav_list">|</ul> 
    2.NO.wrapItemAndSub = <li> |</li> 
    2.ACT.wrapItemAndSub = <li> |</li> 
    3 < .2 
    3.wrap = <ul id="subsubnavi">|</ul> 
    } 

    FOO2 = HMENU 
    FOO2{ 
    special = directory 
    special.value = 18 
    1 = TMENU 
    1 { 
     NO { 
     wrapItemAndSub = | |*| &nbsp;&nbsp; | |*| &nbsp;&nbsp; | 
     } 
    } 
    } 
} 

我需要显示在状态菜单中的一些子元素。如果db == 0中的某个字段显示一个菜单元素,则显示第二个。可能吗 ?我希望你明白我想要的。有人能帮助我吗?

'条件'在输入错误方面并不是唯一的。

有'条件'打开和关闭打字稿的部分。

[global] 

这些条件通常取决于页面调用的环境。

你想要一个依赖于数据库值的条件,所以你需要使用stdWrap函数来评估数据值。
除了具有多个选项的大功能ifoverride,ifEmptyifBlank

要么你写在你的COA替代品和有自己的if包裹每个部分或者你写的,默认的配置您的TypoScript做这是对的,并切换与自己if包装的override

对于一个干净的错字脚本,您可以使用temp对象,您可以复制并保持您的使用清洁。
实施例:

temp.alternative1 = COA 
temp.alternative1 { 
    : 
} 
temp.alternative2 = COA 
temp.alternative2 { 
    : 
} 

10 = HMENU 
10 { 
    1 = TMENU 
    1 { 
    : 
    before < temp.alternative1 
    before.override < temp.alternative2 
    before.override.if.isfalse.field = my_field 
    } 
}