Меню хлебных крошек Neos 2.0: как пропустить первые два уровня?

Мне нужно отобразить меню хлебных крошек, в котором пропущены первые два уровня.

Меню типа Menu имеют свойство entryLevel для управления началом меню, но похоже, что это не относится к Breadcrumb. (По крайней мере, это не имеет никакого эффекта.)

Есть ли способ сделать это в Neos?


person BlueM    schedule 02.12.2015    source источник


Ответы (1)


Хлебные крошки определены в 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()}
            }
        }
    ...
person k.tarkin    schedule 06.12.2015
comment
Спасибо, это работает — по крайней мере, при изменении items на itemCollection. (Я забыл упомянуть, что это Neos 2; возможно, items будет правильным в Neos 1.) - person BlueM; 07.12.2015