Я хочу переопределить в Typoscript CONTENT или renderObj с пометкой - PullRequest
0 голосов
/ 10 июня 2018

У меня небольшая проблема, работает следующий код, но чтобы не показать то, что я не хочу отображать, я вынужден поставить style =" display: none " с неверным HTML-кодом, потому что я нахожусь в <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

На самом деле я много чего пробовал, прежде чем смириться с <span style =" display: none "> | </ span>, у вас есть лучшее решение?С наилучшими пожеланиями

Ответы [ 2 ]

0 голосов
/ 12 июня 2018

Извините, но я не поставил весь код, был до 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
        }

Благодарю вас, С уважением

0 голосов
/ 10 июня 2018

Вы пробовали эти предложения?

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           
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...