Menü
Das Menü kann ebenfalls mit einem Tailor-Blueprint umgesetzt werden - unser Glück, dass jemand bereits ein Blueprint geschrieben hat, den wir übernehmen und weiterentwickeln können:
Backend
handle: Menus
type: entry
name: Menü
drafts: false
pagefinder: false
customMessages:
buttonCreate: Neues Menü
primaryNavigation:
label: Inhalt
icon: ph ph-pencil-circle
order: 130
navigation:
label: Menüs
parent: Menus
icon: icon-sitemap
order: 300
columns:
title:
label: Title
entry_type_name:
label: Menu Type
invisible: false
slug:
label: Code
invisible: false
fields:
slug:
label: Code
validation:
- required
items:
label: Menu Items
type: nesteditems
span: adaptive
maxDepth: 0
customMessages:
buttonCreate: Eintrag hinzufügen
titleCreateForm: Eintrag erstellen
titleUpdateForm: Eintrag bearbeiten
form:
fields:
title:
label: Titel
tab: Referenz
default: Neuen Menüeintrag
span: full
type: text
autoFocus: true
validation:
- required
reference:
label: Verweist auf
type: pagefinder
tab: Referenz
Kopiere den Blueprint in die Datei `menu.yaml` und klicke speichern und migrieren. Nun sollte der neue Menüpunkt im Backend erscheinen, wo du ein neues Menü erstellen kannst.
Frontend
Anschliessend kann eine Tailor-Sektion-Komponente am gewünschten Ort im Theme (Layout oder Partial) hinzugefügt werden. Hier mögliche Einstellungen füür die Komponente:
Paramenter
Wert
Verknüpfung
menu
Identifikator
Menü (Menus)
Lookup Column
Slug
Lookup Value
hauptmenue
Die Einträge des Menüs kannst du nun folgendem Code ausgeben:
<nav>
<ul>
{% for item in items.toNested() %}
<li>
{% set href = (item.reference|link) %}
{% set currentUrl = (''|page) %}
<a href="{{ href }}" class="{{ href == currentUrl ? 'active' }}">
{{ item.title }}
</a>
{% if item.nesting and item.children %}
<ul>
{{ _self.renderItems(item.children) }}
</ul>
{% endif %}
</li>
{% endfor %}
</ul>
</nav>
Last updated