从菜单中隐藏页面和子页面
hide page & subpages from menu
我在 TYPO3 中有以下页面结构:
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
现在我想在页眉菜单中包含 1/* + 4/*,在页脚菜单中包含 4/* + 7/*。由于页眉和页脚菜单不同,我不能只使用 "hide in menu" 功能,而需要在 TypoScript 中使用。
这是我目前的情况:
HEADERMENU = HMENU
HEADERMENU {
1 = TMENU
1.expAll = 1
1.NO = 1
1.NO {
stdWrap.if.value.field = uid
stdWrap.if.equals = 7
stdWrap.if.negate = 1
}
2 < .1
}
FOOTERMENU < HEADERMENU
FOOTERMENU.1.NO.stdWrap.if.equals = 1
问题在于,它仍然在页眉中显示第 8+9 页,在页脚中显示第 2+3 页,即使它不再显示第 1/7 页。我知道我可以使用 if.isInList
并提供所有子页面 ID,但是每次添加新页面时我都必须更改 TypoScript。如果可能,我想动态排除一个页面及其所有子页面。
我该怎么做?
您可以采用 special=directory
方法呈现一个或多个页面及其子页面的菜单。
HEADERMENU.special = directory
HEADERMENU.special.value = 1, 4
documentation 中的更多信息。
正如丹尼尔在他的回答中提到的,有一种方法可以显示所选页面的所有子页面。 special = directory
仅显示子页面。因此,您在菜单中只能看到 2/3
、5/6
和 8/9
。
special = directory
"This will generate a menu of all pages with pid = 35 and pid = 56."
我建议 excludeUidList
属性。
HEADERMENU = HMENU
HEADERMENU {
excludeUidList = 7
1 = TMENU
1.expAll = 1
2 < .1
}
FOOTERMENU < HEADERMENU
FOOTERMENU.excludeUidList = 1
它作为数据库 SELECT
查询中的 WHERE
条件工作,因此您不会在第一级获得这些页面,也不会找到它们的子页面。
我在 TYPO3 中有以下页面结构:
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
现在我想在页眉菜单中包含 1/* + 4/*,在页脚菜单中包含 4/* + 7/*。由于页眉和页脚菜单不同,我不能只使用 "hide in menu" 功能,而需要在 TypoScript 中使用。
这是我目前的情况:
HEADERMENU = HMENU
HEADERMENU {
1 = TMENU
1.expAll = 1
1.NO = 1
1.NO {
stdWrap.if.value.field = uid
stdWrap.if.equals = 7
stdWrap.if.negate = 1
}
2 < .1
}
FOOTERMENU < HEADERMENU
FOOTERMENU.1.NO.stdWrap.if.equals = 1
问题在于,它仍然在页眉中显示第 8+9 页,在页脚中显示第 2+3 页,即使它不再显示第 1/7 页。我知道我可以使用 if.isInList
并提供所有子页面 ID,但是每次添加新页面时我都必须更改 TypoScript。如果可能,我想动态排除一个页面及其所有子页面。
我该怎么做?
您可以采用 special=directory
方法呈现一个或多个页面及其子页面的菜单。
HEADERMENU.special = directory
HEADERMENU.special.value = 1, 4
documentation 中的更多信息。
正如丹尼尔在他的回答中提到的,有一种方法可以显示所选页面的所有子页面。 special = directory
仅显示子页面。因此,您在菜单中只能看到 2/3
、5/6
和 8/9
。
special = directory
"This will generate a menu of all pages with pid = 35 and pid = 56."
我建议 excludeUidList
属性。
HEADERMENU = HMENU
HEADERMENU {
excludeUidList = 7
1 = TMENU
1.expAll = 1
2 < .1
}
FOOTERMENU < HEADERMENU
FOOTERMENU.excludeUidList = 1
它作为数据库 SELECT
查询中的 WHERE
条件工作,因此您不会在第一级获得这些页面,也不会找到它们的子页面。