Neos バックエンドでメニューを作成しました。各メニュー ノードは、コントローラ アクションのプラグインに対応します。これらのコントローラー アクションは、policy.yaml で、フロー アクセス ポリシー ロールを持つリソースとして定義されます。メニューのテンプレートは、Typo3.NeosDemoTypo3Org パッケージからコピーした root.ts2 で定義されています。
root.ts2 の mainMenu 部分は
mainMenu = Menu {
entryLevel = 1
templatePath = 'resource://ABC.Demo/Private/Templates/TypoScriptObjects/MainMenu.html'
maximumLevels = 3
site = ${site}
}
MainMenu.html は次のとおりです。
<div class="collapse navbar-collapse navbar-main-collapse">
<ul class="nav nav-pills nav-justified">
<f:for each="{items}" as="item" iteration="menuItemIterator">
<f:then>
<li class="active">
<neos:link.node node="{item.node}">{item.label}</neos:link.node>
</li>
</f:then>
<f:else>
<li>
<neos:link.node node="{item.node}">{item.label}</neos:link.node>
</li>
</f:else>
</f:if>
</f:for>
</ul>
</div>
Default.html で {parts.mainMenu -> f:format.raw()} を使用すると、Neos サイトのルートで定義されたすべてのメニュー項目が出力されます。
ユーザーが policy.yaml で定義された対応するリソースにアクセスできる Web ページのメイン メニューに、これらのメニュー項目のみを表示するにはどうすればよいですか。
誰でもアイデア、それを達成する方法を教えてください。