Typo3 打字稿菜单跳转到子页面
我想创建一个带有子菜单的菜单,它可以通过打字脚本直接显示出来。挑战在于,如果包含页面的内容为空,我希望父级直接链接到第一个子页面 我知道你可以通过后端的快捷链接来实现这一点,但如果可能的话,我想通过打字脚本来实现 有什么想法吗?我将当前使用的打字脚本菜单代码嵌入其中Typo3 打字稿菜单跳转到子页面,typo3,typoscript,Typo3,Typoscript,我想创建一个带有子菜单的菜单,它可以通过打字脚本直接显示出来。挑战在于,如果包含页面的内容为空,我希望父级直接链接到第一个子页面 我知道你可以通过后端的快捷链接来实现这一点,但如果可能的话,我想通过打字脚本来实现 有什么想法吗?我将当前使用的打字脚本菜单代码嵌入其中 lib.mainMenu = COA lib.mainMenu{ 10 = HMENU 10{ # Level 1, further levels are generic 1 = TMENU
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
}
lib.main菜单=COA
lib.main菜单{
10=汉努
10{
#级别1,其他级别为通用级别
1=t菜单
1.noBlur=1
1.expAll=0
1.wrap=
1.NO=1
1.NO.ATagBeforeWrap=1
1.NO.insertData=1
1.NO.wrapItemAndSub.insertData=1
1.NO.wrapItemAndSub=|
1.NO.ATagTitle.field=副标题//标题
1.ACT=1
1.ACT.ATagBeforeWrap=1
1.ACT.wrapItemAndSub.insertData=1
1.ACT.wrapItemAndSub=|
1.ACT.ATagTitle.field=副标题//标题
1.CUR=1
1.CUR.ATagBeforeWrap=1
1.CUR.wrapItemAndSub.insertData=1
1.CUR.wrapItemAndSub=
1.CUR.ATagTitle.field=副标题//标题
}
20 < .10
20.entryLevel=1
20.1.wrap=|
30 < .20
30.entryLevel=2
40 < .20
40.entryLevel=3
}
也许您可以根据以下提示构建解决方案:
在上面链接的示例中,它不是一个菜单,而是一个表上的子查询(在您的例子中是tt_内容),然后将使用该子查询定义某个内容是否输出:
temp.main = COA
temp.main.20 = COA
temp.main.20 {
[...]
wrap=<div class="meine-adressen">|</div>
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=<div class="keine-adressen">|</div>
value = Keine Adressen gefunden
stdWrap.if.isFalse.cObject < temp.main.20.stdWrap.if.isTrue.cObject
}
temp.main=COA
主温度20=COA
主温度20{
[...]
wrap=div class=“meine adressen”|/div
stdWrap.if.isTrue.cObject=CONTENT
stdWrap.if.isTrue.cObject{
表=tt\U地址
挑选{
[...]
}
renderObj=文本
renderObj.value=1
}
}
temp.main.21=文本
主温度21{
wrap=div class=“keine adressen”|/div
值=Keine Adressen gefunden
stdWrap.if.isFalse.cObject
但是我不确定这是否会让你在一张纸上头疼,我认为使用打字稿是可能的,但我不知道怎么做。 以下打字稿可能会帮助您: 键入脚本以查找页面中内容元素的数量:
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等于零,则该页为空
要获取第一个子页面,请键入脚本:
lib.firstsubpage= HMENU
lib.firstsubpage {
maxItems = 1
1 = TMENU
1 {
NO = 1
}
}
请在实现后共享您的打字稿解决方案。我们做了一些变通方法,很抱歉花了这么长时间来解决这个问题,谢谢。