2013-02-24 74 views
0

我想創建一個帶子菜單的菜單,通過打字稿非常安靜。面臨的挑戰是,如果包含頁面的內容爲空,我希望父級別直接鏈接到第一個子頁面。Typoscript菜單跳轉到子頁面

我知道你可以通過後端的快捷鏈接來實現,但是我想,如果可能的話,通過輸入法來實現。

任何想法?我附上我當前使用的輸入法菜單代碼。

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 
} 

回答

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頭痛

0

我認爲有可能使用錯字,但我不知道該怎麼做。 下面的Typo腳本可以幫助你:

的TypoScript找到一個頁面內容元素的數量:

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 = | 
} 

如果計數爲零,則該頁面是空的。

的TypoScript拿到第一子頁面:

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

請執行它後分享的Typo腳本的解決方案。

+0

我們做了一些變通辦法,抱歉花了這麼長時間來解決問題,無論如何。 – elonmir 2013-05-31 09:02:16