0

tt_content 内のコンテンツの有無に応じて、メニューの外観を変更する必要があります。そのために、私はこれを行いましたが、機能しません。テストでエラーが発生しました:

      1 = TMENU
  1 {
    expAll = 1
    doNotLinkIt = 1                 

    IFSUB = 1
    IFSUB {
       doNotLinkIt = 1

    typeOfMenu = 0 
    #typeOfMenu.override = 1

    # pane content  
    contenu.cObject = COA
    contenu.cObject {                                                                       
          10 = CONTENT
          10 {
            table = tt_content
            select {
              orderBy = sorting
              pidInList.field = uid
              where = {#colPos}=99  and deleted = 0 and hidden = 0
            }
            if.isTrue.data {
                typeOfMenu = 1

            }
           # 20 = TEXT
           # 20 {
           #     field = bodytext
           #     typeOfMenu.value.override.if {
           #         isTrue.data = 20.field
           #     }
           # }
        }
    }
    [globalVar = LIT:1 = typeOfMenu]     
    #[globalVar = LIT:1 = {$typeOfMenu}]
        stdWrap {              
            typolink.parameter.field =  uid
            typolink.ATagParams = class="dropdown shrink" data-toggle="sous-menu{register:count_MENUOBJ}"
            typolink.ATagParams.insertData = 1
        }

    [else]
        stdWrap {              
            typolink.parameter.field =  uid
            typolink.ATagParams = class="vertical menu -- {register:typeOfMenu.value} --"
            typolink.ATagParams.insertData = 1
        }
    [end]            
        ...
  • エラー: 行 2244: オブジェクト名文字列、"[globalVar" に無効な文字 "[" が含まれています。英数字または「_:-」のいずれかである必要があります。

誰にもアイデアはありますか?よろしくお願いします !


それはほとんどそれですが、うまくいきません(Bernd Wilkeソリューション...)。SQLクエリがよくわかりません。そして、オフセットがあり、1 番目に typeOfMenu が 2 番目に書き込まれます。実際、私はこれが欲しいです:

<div class="top-bar-left">
           <ul class="dropdown vertical menu medium-horizontal" data-responsive-menu="accordion medium-dropdown">
              <li>
                 <a href="/testtypo3-9.2.0/htdocs/index.php?id=25">!</a>
                 <ul class="vertical menu">
                    <li>
                       <a href="/testtypo3-9.2.0/htdocs/index.php?id=29">YogaTissimo.fr</a>
                       <ul class="vertical menu">
                          <li><a href="/testtypo3-9.2.0/htdocs/index.php?id=31">Qui sommes nous ?</a></li>
                          <li><a href="/testtypo3-9.2.0/htdocs/index.php?id=30">Faq</a></li>
                       </ul>
                    </li>
                    <li><a href="/testtypo3-9.2.0/htdocs/index.php?id=28">Vous nous dites ?</a></li>
                    <li><a href="/testtypo3-9.2.0/htdocs/index.php?id=27">Contacts</a></li>
                    <li><a href="/testtypo3-9.2.0/htdocs/index.php?id=26">Â propos</a></li>
                 </ul>
              </li>
              <li>
                 <a href="/testtypo3-9.2.0/htdocs/index.php?id=15">Philosophie</a>
                 <ul class="vertical menu">
                    <li><a href="/testtypo3-9.2.0/htdocs/index.php?id=24">Un art de vivre</a></li>
                    <li><a href="/testtypo3-9.2.0/htdocs/index.php?id=23">Conscience et action</a></li>
                    <li>
                       <a href="/testtypo3-9.2.0/htdocs/index.php?id=17">Journal d'une sadhana [TTC]</a>
                       <ul class="vertical menu">
                          <li><a href="/testtypo3-9.2.0/htdocs/index.php?id=22">Jour 1</a></li>
                          <li><a href="/testtypo3-9.2.0/htdocs/index.php?id=21">Jour 2</a></li>
                          <li><a href="/testtypo3-9.2.0/htdocs/index.php?id=20">Jour 3</a></li>
                          <li><a href="/testtypo3-9.2.0/htdocs/index.php?id=19">Jour 4</a></li>
                          <li><a href="/testtypo3-9.2.0/htdocs/index.php?id=18">Jour 5</a></li>
                       </ul>
                    </li>
                    <li><a href="/testtypo3-9.2.0/htdocs/index.php?id=16">Vedanta</a></li>
                 </ul>
              </li> .....

そして、colPos=99 に何かがある場合は、次のようにします。

     <div class="top-bar-left">
        <ul class="dropdown vertical menu medium-horizontal" data-responsive-menu="accordion medium-dropdown">
           <li class="sanskrit-1">
              <a href="/testtypo3-9.2.0/htdocs/index.php?id=25" class="dropdown shrink" data-toggle="sous-menu1">!</a>
              <div class="dropdown-pane" id="sous-menu1" data-dropdown data-options="closeOnClick:true; hover: true; hoverPane: true">
                 <div class="grid-x grid-padding-x">
                    <div class="large-12">PaneC'est-UN_PANE ! </div>
                 </div>
                 <div class="grid-x grid-padding-x">
                    <div class="large-3 medium-4 cell">
                       <p>
                          <a href="/testtypo3-9.2.0/htdocs/index.php?id=29">YogaTissimo.fr</a></br><b>Sur ce site</b>
                          <i>

                       </i></p>
                       <ul class="ssmenu">
                          <li class="first"><a href="/testtypo3-9.2.0/htdocs/index.php?id=31">Qui sommes nous ?</a></li>
                          <li class="last"><a href="/testtypo3-9.2.0/htdocs/index.php?id=30">Faq</a></li>
                       </ul>
                    </div>
                    <div class="large-3 medium-4 cell">
                       <p><a href="/testtypo3-9.2.0/htdocs/index.php?id=28">Vous nous dites ?</a></br></p>
                    </div>
                    <div class="large-3 medium-4 cell">
                       <p><a href="/testtypo3-9.2.0/htdocs/index.php?id=27">Contacts</a></br></p>
                    </div>
                    <div class="large-3 medium-4 cell">
                       <p><a href="/testtypo3-9.2.0/htdocs/index.php?id=26">Â propos</a></br><b></b><i></i>
                       <div class="img-wrap"><img src="/testtypo3-9.2.0/htdocs/fileadmin/user_upload/bg.jpeg" width="225" height="225"   alt="" ></div>
                       </p>
                    </div>
                 </div>
              </div>
           </li>

ここでは、colPos = 99 を考慮せずにコーディングするのが非常に困難で、機能するタイポスクリプトの部分を示します。

    # menu
20 = HMENU
20 {
    wrap = <ul class="dropdown vertical menu medium-horizontal" data-responsive-menu="accordion medium-dropdown">|</ul>

  # Premier niveau
  1 = TMENU
  1 {
    expAll = 1
    doNotLinkIt = 1                 

    IFSUB = 1
    IFSUB {
       doNotLinkIt = 1

       stdWrap {              
           typolink.parameter.field =  uid
           typolink.ATagParams = class="dropdown shrink" data-toggle="sous-menu{register:count_MENUOBJ}"
           typolink.ATagParams.insertData = 1
        }
        wrapItemAndSub = <li class="sanskrit-1">|</div></div></li> |*| <li>|</div></div></li> |*| <li class="last">|</div></div></li>
        after {
          stdWrap.insertData = 1
          stdWrap.wrap = <div class="dropdown-pane" id="sous-menu{register:count_MENUOBJ}" data-dropdown data-options="closeOnClick:true; hover: true; hoverPane: true"><div class="grid-x grid-padding-x">|

          # pane content  
          stdWrap.cObject = COA
          stdWrap.cObject {                                                                       
          10 = CONTENT
          10 {
            table = tt_content
            select {
              orderBy = sorting
              pidInList.field = uid
              where = {#colPos}=99  and deleted = 0 and hidden = 0
            }

            renderObj = COA
            renderObj {
              10 = TEXT
              10.stdWrap.field = bodytext
              10.stdWrap.wrap = <div class="large-12">|

              20 = FILES
              20 {
                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>
                  wrap = |
                }
              }
              30 = TEXT
              30.value = </div></div><div class="grid-x grid-padding-x">
            } //COA
          } //CONTENT
        } //COA
      } //after
    } //IFSUB
  } //1

よろしくお願いします

今私がこれを行うと:

# menu
20 = HMENU
20 {
    wrap = <ul class="dropdown vertical menu medium-horizontal" data-responsive-menu="accordion medium-dropdown">|</ul>

  # Premier niveau
  1 = TMENU
  1 {
    expAll = 1
    doNotLinkIt = 1                 

    IFSUB = 1
    IFSUB {
       doNotLinkIt = 1

        stdWrap.cObject = COA 
        stdWrap.cObject {
            # let's define registers
            1 = LOAD_REGISTER
            # define register 'typeOfMenu'
            1.typeOfMenu.cObject = TEXT
            1.typeOfMenu.cObject {
                # set value 1
                value = 1
                # override with 0
                override = 0
                # override only if this CONTENT is empty
                override.ifEmpty.cObject = CONTENT
                override.ifEmpty.cObject {
                    # select all CEs, from this page in column 99
                    table = tt_content
                    select {
                        pidInList.field = uid
                        where = {#colPos}=99 and deleted=0 and hidden=0
                    }
                    # render only the uid, so even an empty CE will trigger  
                    renderObj = TEXT
                    renderObj.field = uid
                } 
            }
            #99 = RESTORE_REGISTER 
        }                    

        stdWrap.typolink {              
            parameter.field =  uid
            ATagParams = class="vertical menu -- {register:typeOfMenu} --"
            ATagParams.insertData = 1

            ATagParams {
                insertData = 1
                # override the std value: 
                override = class="dropdown shrink" data-toggle="sous-menu{register:count_MENUOBJ}"
                override {
                    insertData = 1
                    # override only if register typeOfMenu is 1
                    stdWrap.if.equals = 1
                    stdWrap.if.data = register:typeOfMenu
                }
            }

        } 




       #stdWrap {              
       #    typolink.parameter.field =  uid
       #    typolink.ATagParams = class="dropdown shrink" data-toggle="sous-menu{register:count_MENUOBJ}"
       #    typolink.ATagParams.insertData = 1
       # }

        wrapItemAndSub = <li class="sanskrit-1">|</div></div></li> |*| <li>|</div></div></li> |*| <li class="last">|</div></div></li>
        after {
          stdWrap.insertData = 1
          stdWrap.wrap = <div class="dropdown-pane" id="sous-menu{register:count_MENUOBJ}" data-dropdown data-options="closeOnClick:true; hover: true; hoverPane: true"><div class="grid-x grid-padding-x">|

          # pane content  
          stdWrap.cObject = COA
          stdWrap.cObject {                                                                       
          10 = CONTENT
          10 {
            table = tt_content
            select {
              orderBy = sorting
              pidInList.field = uid
              where = {#colPos}=99  and deleted = 0 and hidden = 0
            }

            renderObj = COA
            renderObj {
              10 = TEXT
              10.stdWrap.field = bodytext
              10.stdWrap.wrap = <div class="large-12">|

              20 = FILES
              20 {
                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>
                  wrap = |
                }
              }
              30 = TEXT
              30.value = </div></div><div class="grid-x grid-padding-x">
            } //COA
          } //CONTENT
        } //COA
      } //after
    } //IFSUB
  } //1

colPos = 99 に対応する 'typeOfMenu' のいくつかの値を取得します (反転、まだそれほどではありません)。これはほぼ問題ありませんが、スクリプトで下位にあるものは考慮されていません。

私がこれを行う場合:

# let's define registers
        stdWrap.innerWrap.cObject = LOAD_REGISTER
        stdWrap.innerWrap.cObject {
            # define register 'typeOfMenu'
            typeOfMenu.cObject = TEXT
            typeOfMenu.cObject {
                # set value 1
                value = 1
                # override with 0
                override = 0
                # override only if this CONTENT is empty
                override.ifEmpty.cObject = CONTENT
                override.ifEmpty.cObject {
                    # select all CEs, from this page in column 99
                    table = tt_content
                    select {
                        pidInList.field = uid
                        where = colPos=99  and deleted=0 and hidden=0
                    }
                    # render only the uid, so even an empty CE will trigger  
                    renderObj = TEXT
                    renderObj.field = uid
                } 
            }
        }

        stdWrap.typolink{              
            parameter.field =  uid
            ATagParams = class="vertical menu -- {register:typeOfMenu} --"
            ATagParams {
                insertData = 1
                # override the std value: 
                override = class="dropdown shrink" data-toggle="sous-menu{register:count_MENUOBJ}"
                override {
                    insertData = 1
                    # override only if register typeOfMenu is 1
                    stdWrap.if.equals = 1
                    stdWrap.if.data = register:typeOfMenu
                }
            }
        }

私はこれを得る:

<li class="sanskrit-1"><a href="/testtypo3-9.2.0/htdocs/index.php?id=25" class="vertical menu -- 46 --">!</a><div class="dropdown-pane" ... # DROP PANE YES
<li><a href="/testtypo3-9.2.0/htdocs/index.php?id=15" class="vertical menu -- 47 --"> ...</a> ... # DROP PANE YES
<li><a href="/testtypo3-9.2.0/htdocs/index.php?id=15" class="vertical menu -- 1 --"> ...</a> ... # NO DROP PANE
<li><a href="/testtypo3-9.2.0/htdocs/index.php?id=15" class="vertical menu -- 1 --"> ...</a> ... # NO DROP PANE
<li><a href="/testtypo3-9.2.0/htdocs/index.php?id=15" class="vertical menu -- 1 --"> ...</a> ... # NO DROP PANE

...

'typeOfMenu' = 1 の場合、ドロップペインはありませんが、変更はありません: override = class="dropdown Shrink" data-toggle="sous-

4

3 に答える 3