Neos 2.0 面包屑菜单:如何跳过前两级?
Neos 2.0 Breadcrumb menu: How to skip first two levels?
我需要显示一个面包屑菜单,其中跳过了前两级。
Menu
类型的菜单有一个 属性 entryLevel
来控制菜单的开始位置,但 Breadcrumb
似乎并非如此。 (至少没有影响。)
有没有办法在 Neos 中完成此操作?
面包屑在 TYPO3.Neos/Resources/Private/TypoScript/Prototypes/Breadcrumb.ts2
中定义,您可以在站点包的 Root.ts2 中覆盖那里的值。因此,您可以更改 templatePath
并使用 f:for
中的迭代器处理它,或者甚至更好地限制(切片) items
您传递给 TS2 级别的模板。将它翻译成代码,你有 Your.Site.Package/Resources/Private/TypoScript/Root.ts2
和你的页面定义,只需更改 Breadcrumb 部分:
page = Page {
...
body {
templatePath = 'resource://Your.Site.Package/Private/Templates/Page/Default.html'
sectionName = 'body'
parts {
menu = Menu
breadcrumb = Breadcrumb {
# replace items with itemCollection if you're using BreadcrumbMenu (Neos 2+)
items = ${q(node).add(q(node).parents('[instanceof TYPO3.Neos:Document]')).slice(0, -2).get()}
}
}
...
我需要显示一个面包屑菜单,其中跳过了前两级。
Menu
类型的菜单有一个 属性 entryLevel
来控制菜单的开始位置,但 Breadcrumb
似乎并非如此。 (至少没有影响。)
有没有办法在 Neos 中完成此操作?
面包屑在 TYPO3.Neos/Resources/Private/TypoScript/Prototypes/Breadcrumb.ts2
中定义,您可以在站点包的 Root.ts2 中覆盖那里的值。因此,您可以更改 templatePath
并使用 f:for
中的迭代器处理它,或者甚至更好地限制(切片) items
您传递给 TS2 级别的模板。将它翻译成代码,你有 Your.Site.Package/Resources/Private/TypoScript/Root.ts2
和你的页面定义,只需更改 Breadcrumb 部分:
page = Page {
...
body {
templatePath = 'resource://Your.Site.Package/Private/Templates/Page/Default.html'
sectionName = 'body'
parts {
menu = Menu
breadcrumb = Breadcrumb {
# replace items with itemCollection if you're using BreadcrumbMenu (Neos 2+)
items = ${q(node).add(q(node).parents('[instanceof TYPO3.Neos:Document]')).slice(0, -2).get()}
}
}
...