从页面 uID 开始创建菜单
Create Menu starting from page uID
我需要创建一个 HMENU,它从某个页面 uid 开始并递归遍历该页面下的所有页面。我尝试从 'special' 菜单 'list' 开始,该页面作为唯一列出的页面,但不起作用。
这可能吗?有什么想法吗?
提前感谢您的任何建议
编辑:
这是对我有效的解决方案
lib.footmenu >
lib.footmenu = HMENU
lib.footmenu.special = directory
lib.footmenu.special.value = 132
lib.footmenu.excludeUidList = 287
lib.footmenu {
1= TMENU
1.expAll= 1
1.wrap = <ul class="menufoot1">|</ul>
1.NO{
wrapItemAndSub = <li class="level1">|</li>
1.ATagTitle.field = title
1.ATagParams =
}
2 < .1
2.wrap = <ul class="menufoot2">|</ul>
3 < .2
3.wrap = <ul class="menufoot3">|</ul>
4 < .3
4.wrap = <ul class="menufoot3">|</ul>
5 < .4
5.wrap = <ul class="menufoot3">|</ul>
6 < .5
6.wrap = <ul class="menufoot3">|</ul>
}
现在我还有一个问题。我想排除某个 uid 下的所有页面(这是内部页面太多的事件页面)。我尝试使用 excludeUidList
但显然它也忽略了提到的页面(uid=287),但我只想忽略它的孩子。
您只需在 TMENU 定义中添加更多级别。
请参阅文档中的 属性“1/2/3”:https://docs.typo3.org/m/typo3/reference-typoscript/master/en-us/ContentObjects/Hmenu/Index.html
如果您想一次查看更多级别,您应该使用 expAll 属性:https://docs.typo3.org/m/typo3/reference-typoscript/master/en-us/MenuObjects/Tmenu/Index.html
我会选择
special = directory
你应该添加
expAll = 1
到 TMENU 的第一层(然后复制到您的子层)。
详细了解 TMENU 中的特殊关键字:
https://docs.typo3.org/m/typo3/reference-typoscript/master/en-us/ContentObjects/Hmenu/Index.html#the-special-property
我认为这里的问题,正如@BastianBalthasarBux 所指出的那样,是缺少 expAll = 1
我认为您的 TypoScript 代码可以这样简化:(我以 this one 为例):
lib.footmenu >
lib.footmenu = HMENU
lib.footmenu.special = list
lib.footmenu.special.value = 132
lib.footmenu {
1 = TMENU
1.expAll = 1
1.wrap = <ul class="menufoot1">|</ul>
1.NO {
wrapItemAndSub = <li>|</li>
ATagTitle.field = title
ATagParams =
}
2 < .1
2.wrap = <ul class="menufoot2">|</ul>
3 < .1
3.wrap = <ul class="menufoot3">|</ul>
}
我需要创建一个 HMENU,它从某个页面 uid 开始并递归遍历该页面下的所有页面。我尝试从 'special' 菜单 'list' 开始,该页面作为唯一列出的页面,但不起作用。 这可能吗?有什么想法吗?
提前感谢您的任何建议
编辑: 这是对我有效的解决方案
lib.footmenu >
lib.footmenu = HMENU
lib.footmenu.special = directory
lib.footmenu.special.value = 132
lib.footmenu.excludeUidList = 287
lib.footmenu {
1= TMENU
1.expAll= 1
1.wrap = <ul class="menufoot1">|</ul>
1.NO{
wrapItemAndSub = <li class="level1">|</li>
1.ATagTitle.field = title
1.ATagParams =
}
2 < .1
2.wrap = <ul class="menufoot2">|</ul>
3 < .2
3.wrap = <ul class="menufoot3">|</ul>
4 < .3
4.wrap = <ul class="menufoot3">|</ul>
5 < .4
5.wrap = <ul class="menufoot3">|</ul>
6 < .5
6.wrap = <ul class="menufoot3">|</ul>
}
现在我还有一个问题。我想排除某个 uid 下的所有页面(这是内部页面太多的事件页面)。我尝试使用 excludeUidList
但显然它也忽略了提到的页面(uid=287),但我只想忽略它的孩子。
您只需在 TMENU 定义中添加更多级别。
请参阅文档中的 属性“1/2/3”:https://docs.typo3.org/m/typo3/reference-typoscript/master/en-us/ContentObjects/Hmenu/Index.html
如果您想一次查看更多级别,您应该使用 expAll 属性:https://docs.typo3.org/m/typo3/reference-typoscript/master/en-us/MenuObjects/Tmenu/Index.html
我会选择
special = directory
你应该添加
expAll = 1
到 TMENU 的第一层(然后复制到您的子层)。
详细了解 TMENU 中的特殊关键字: https://docs.typo3.org/m/typo3/reference-typoscript/master/en-us/ContentObjects/Hmenu/Index.html#the-special-property
我认为这里的问题,正如@BastianBalthasarBux 所指出的那样,是缺少 expAll = 1
我认为您的 TypoScript 代码可以这样简化:(我以 this one 为例):
lib.footmenu >
lib.footmenu = HMENU
lib.footmenu.special = list
lib.footmenu.special.value = 132
lib.footmenu {
1 = TMENU
1.expAll = 1
1.wrap = <ul class="menufoot1">|</ul>
1.NO {
wrapItemAndSub = <li>|</li>
ATagTitle.field = title
ATagParams =
}
2 < .1
2.wrap = <ul class="menufoot2">|</ul>
3 < .1
3.wrap = <ul class="menufoot3">|</ul>
}