我想覆盖在typoscript CONTENT或renderObj中注意到

时间:2018-06-10 03:44:14

标签: typo3 override typoscript

我有一点问题,以下代码有效,但为了不显示我不想显示的内容,我被迫将style =" display: none "放入无效的HTML代码,因为我在{{1 }}。我怎么能不显示任何东西?

<ul> <li> ... </ ul>

事实上,在我辞去40 = CONTENT 40 { table = tt_content select { orderBy = sorting pidInList.field = uid where = {#colPos}=99 and deleted = 0 and hidden = 0 } renderObj = COA renderObj { 20 = TEXT 20.stdWrap.field = header 20.stdWrap.wrap = <b>|</b> # OVERRIDE for <ul><li> ... 20.stdWrap.wrap.override = <span style="display:none">|</span> 20.stdWrap.wrap.override.if.value = 1 20.stdWrap.wrap.override.if.equals.dataWrap = {register:typeOfMenu} 30 = TEXT 30.stdWrap.field = bodytext 30.stdWrap.wrap = <i>|</i> # OVERRIDE for <ul><li> ... 30.stdWrap.wrap.override = <span style="display:none">|</span> 30.stdWrap.wrap.override.if.value = 1 30.stdWrap.wrap.override.if.equals.dataWrap = {register:typeOfMenu} 40 = FILES 40 { references { table = tt_content uid.data = field:uid fieldName = image } begin = 0 maxItems = 1 renderObj = IMAGE renderObj { file { import.data = file:current:originalUid // file:current:uid #width = 232c #height = 145c } required = 1 wrap = <div class="img-wrap">|</div> } } # OVERRIDE for <ul><li> ... 40.stdWrap.wrap.override = <span style="display:none">|</span> 40.stdWrap.wrap.override.if.value = 1 40.stdWrap.wrap.override.if.equals.dataWrap = {register:typeOfMenu} }//COA }//CONTENT 之前,我尝试了很多东西,你有更好的解决方案吗? 最好的问候

2 个答案:

答案 0 :(得分:0)

你有没有尝试过这些命题?

40.renderObj.40.if {
    value = 1
    equals.dataWrap = {register:typeOfMenu}
}

40.renderObj.40.stdWrap.if {
    value = 1
    equals.dataWrap = {register:typeOfMenu}
}

如果这不起作用你要检查寄存器是否填充了任何数据,你可以通过40.renderObj.50中的渲染来检查它:

40.renderObj.50 = TEXT
40.renderObj.50.data = {register:typeOfMenu}

因为{register:typeOfMenu}似乎是在CONTENT之外定义的,并且您希望仅在{register:typeOfMenu}=1时呈现整个块,您还可以这样注意:

40 = CONTENT
40 {
    table = tt_content
    select {
       orderBy = sorting
       pidInList.field = uid
       where = {#colPos}=99  and deleted = 0 and hidden = 0
    }
    renderObj = COA
    renderObj {
       20 = TEXT
       20.stdWrap.field = header
       20.stdWrap.wrap = <b>|</b>

       30 = TEXT
       30.stdWrap.field = bodytext
       30.stdWrap.wrap = <i>|</i>

       40 = FILES
       40 {
           references {
               table = tt_content
               uid.data = field:uid
               fieldName = image
           }
           begin = 0
           maxItems = 1
           renderObj = IMAGE
           renderObj {
               file {
                   import.data = file:current:originalUid // file:current:uid
                   #width = 232c
                   #height = 145c
               }
               required = 1
               wrap = <div class="img-wrap">|</div>
            }
        }
    }//COA
    stdWrap.if {
        value = 1
        equals.dataWrap = {register:typeOfMenu}
    }
}//CONTENT           

答案 1 :(得分:0)

抱歉,我没有把所有代码都放在COA之前。现在,多亏了你的建议,我已经解决了这个问题。这是完整的代码:

      NO {
        doNotLinkIt = 1

        stdWrap.cObject = COA
        stdWrap.cObject {            
            10 = TEXT
            10.wrap = <h1>|</h1>
            10.field = nav_title // title
            10.typolink.parameter.field = uid

            # OVERRIDE for <ul><li> ...
            10.wrap.override = <li class="laclasse">|
            10.wrap.override.if.value = 1
            10.wrap.override.if.equals.dataWrap = {register:typeOfMenu}

            40 = CONTENT
            40 {
                table = tt_content
                select {
                    orderBy = sorting
                    pidInList.field = uid
                    where = {#colPos}=99  and deleted = 0 and hidden = 0
                }

                renderObj = COA
                renderObj {
                    20 = TEXT
                    20.stdWrap.field = header
                    20.stdWrap.wrap = <b>|</b>  

                    30 = TEXT
                    30.stdWrap.field = bodytext
                    30.stdWrap.wrap = <i>|</i>

                    40 = FILES
                    40 {
                        references {
                            table = tt_content
                            uid.data = field:uid
                            fieldName = image
                        }
                        begin = 0
                        maxItems = 1

                        renderObj = IMAGE
                        renderObj {
                            file {
                                import.data = file:current:originalUid // file:current:uid
                                #width = 232c
                                #height = 145c
                            }
                            required = 1
                            #wrap = <div class="img-wrap">|</div>

                            titleText.data = page:subtitle
                            altText.data = page:subtitle
                            stdWrap.typolink.parameter.data = leveluid:0                                
                            }
                        }                        
                }//COA
            }//CONTENT
        }//COA

        # OVERRIDE for <ul><li> ...
        stdWrap.cObject.40.if {                    
                value = 1
                equals.dataWrap = {register:typeOfMenu}
                negate = 1
        }

感谢你, 最好的问候