2013-02-24 82 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