0

サブメニュー付きのメニューを作成したいのですが、それはタイポスクリプトを介して簡単にできます。課題は、含まれているページのコンテンツが空の場合、親レベルを最初のサブページに直接リンクすることです。

バックエンドのショートカットリンクを介してそれを達成できることは知っていますが、可能であれば、タイポスクリプトを介してそれを達成したいと考えています。

何か案は?現在使用しているタイポスクリプト メニュー コードを同封します。

lib.mainMenu = COA
lib.mainMenu{
10 = HMENU
10{
        # Level 1, further levels are generic
        1 = TMENU
        1.noBlur = 1
        1.expAll = 0
        1.wrap = <ul data-role="listview" data-inset="true">|</ul>
        1.NO = 1
        1.NO.ATagBeforeWrap = 1
        1.NO.insertData = 1
        1.NO.wrapItemAndSub.insertData = 1
        1.NO.wrapItemAndSub = <li id="menu_{field:uid}">|</li>
        1.NO.ATagTitle.field = subtitle // title

        1.ACT = 1
        1.ACT.ATagBeforeWrap = 1
        1.ACT.wrapItemAndSub.insertData = 1
        1.ACT.wrapItemAndSub = <li id="menu_{field:uid}" class="active">|</li>
        1.ACT.ATagTitle.field = subtitle // title

        1.CUR = 1
        1.CUR.ATagBeforeWrap = 1
        1.CUR.wrapItemAndSub.insertData = 1
        1.CUR.wrapItemAndSub = <li id="menu_{field:uid}" class="active">|</li> 
        1.CUR.ATagTitle.field = subtitle // title

}
20 < .10
20.entryLevel = 1
20.1.wrap = <ul data-role="listview" data-inset="true">|</ul>
30 < .20
30.entryLevel = 2
40 < .20
40.entryLevel = 3
}
4

2 に答える 2

0

ここからのヒントに基づいてソリューションを構築できるかもしれません: http://typo3-blog.net/tutorials/news/if-funktionen-in-typo3.html

上記のリンクの例では、メニューではありませんが、テーブル (あなたの場合は tt_content) にサブクエリがあり、何かが出力されるかどうかを定義するために使用されます。

temp.main = COA
temp.main.20 = COA
temp.main.20 {
  [...]
  wrap=&lt;div class="meine-adressen"&gt;|&lt;/div&gt;
  stdWrap.if.isTrue.cObject = CONTENT
  stdWrap.if.isTrue.cObject{
    table = tt_address
    select {
      [...]
    }
  renderObj = TEXT
  renderObj.value = 1
  }
}

temp.main.21 = TEXT
temp.main.21 {
  wrap=&lt;div class="keine-adressen"&gt;|&lt;/div&gt;
  value = Keine Adressen gefunden
  stdWrap.if.isFalse.cObject < temp.main.20.stdWrap.if.isTrue.cObject
}

しかし、これがHMENUで頭痛の種にならないかどうかはわかりません

于 2013-02-25T14:11:14.463 に答える
0

タイポスクリプトを使えば可能だと思いますが、やり方がわかりません。以下のタイポスクリプトが役に立ちます:

ページ内のコンテンツ要素の数を見つけるタイポスクリプト:

lib.emptypage = CONTENT
lib.emptypage{
    table = tt_content
    select{
      selectFields = count(uid) AS count
      pid = id
    }
    renderObj = COA
    renderObj {
      10 = TEXT
      10 {
        value = {field:count}
        insertData = 1
      }
    }
    wrap = |
}

count が 0 の場合、ページは空です。

最初のサブページを取得するタイポスクリプト:

lib.firstsubpage= HMENU
lib.firstsubpage {
    maxItems = 1
    1 = TMENU
    1 {
        NO = 1
    }
}

タイポスクリプト ソリューションを実装した後、共有してください。

于 2013-02-26T05:17:55.660 に答える