Eine wichtige Basis beim Aufbau von Drupal sind die Regions. Hier die Basics.
Basics
Verwaltet werden die Regions in der [theme-name].info.yml. Falls hier keine Regions eingetragen sind, greifen die Default Regions.
regions:
sidebar_first: Left sidebar
sidebar_second: Right sidebar
content: Content
header: Header
primary_menu: Primary menu
secondary_menu: Secondary menu
footer: Footer
highlighted: Highlighted > Für Systemausgaben (z.B. Inhalt wurde gespeichert)
help: Help > Für Hilfemeldungen (idR. Hilfstexte von Modulen etc)
breadcrumb: BreadcrumbDie Region highlighted gibt in der Regel Systemmeldungen zurück, wie «Die Inhalte wurden gespeichert», «Cache wurde geleert» usw. Die Region hilfe ist für Hilfstexte vorgesehen. Wird vor allem im Backend für Hilfetexte von Modulen benutzt. In einem Theme selber habe ich diese Region noch nie wissentlich aktiv genutzt.
Die Regions sind erstmal nur Container, in denen Blöcke ausgegeben werden. Auch der Inhaltstyp ist am Ende ein Block, der in der Region 'Content' (oder wie auch immer man die Region benennen will) ausgegeben wird.
Die Platzierung der Regions wird in der page.html.twig Datei definiert.
Vereinfachtes Beispiel:
<div class="layout-container">
<header>
{{ page.header }}
</header>
{{ page.primary_menu }}
<main>
<div class="layout-content">
{{ page.content }}
</div>
</main>
{% if page.footer %}
<footer>
{{ page.footer }}
</footer>
{% endif %}
</div>
Regionen und Blöcke einrichten
Problem beim Themewechsel. WICHTIG!
Beim Wechsel von einem Theme zu einem anderen muss folgender Ablauf immer eingehalten werden. Wird das nicht sauber gemacht, werden Blöcke falschen Regions zugewiesen oder disabled. Grund: Regionen werden in themename.info.yml definiert. Block-Zuweisungen werden in der Datenbank gespeichert – mit Theme-Name + Region-Maschinenname als Schlüssel. Stimmt der Maschinenname nicht mehr überein, landet der Block in der Disabled-Zone.
Der korrekte Ablauf:
- Neues Theme installieren aber noch nicht aktivieren
- Structure → Block layout → oben das neue Theme im Tab wählen
- Blöcke für das neue Theme konfigurieren und speichern
- Erst dann das neue Theme als Standard aktivieren
- Cache leeren
Wenn Blöcke trotzdem in Disabled landen
- Structure → Block layout → Blöcke manuell den richtigen Regionen zuweisen
- Save blocks → Cache leeren
Wenn Regionen komplett fehlen oder falsch sind:
- Theme deinstallieren → Cache leeren
- Theme reinstallieren → Cache leeren
- Block layout neu konfigurieren
Blöcke aufräumen
Bevor wir Regions definieren, löschen wir im Blocklayout (Structure > Block layout) alle Blöcke die wir nicht brauchen.
Für Modestia sind das z.B.
- Powerd by Drupal
- Help
- User account menu
Breadcrumbs
Page title habe ich nur deaktiviert, damit man sieht wo er ausgegeben würde, aber wir nutzen bei Modestia nicht den page title sondern den Titel aus dem Paragraph.
Regionen definieren
In der [theme-name].info.yml listen wir die benötigten Regions auf. Die Reihenfolge bestimmt die Ausgabe der Regionen im Block-Layout. Macht also Sinn hier schon etwas Logik mitzugeben, auch wenn es auf die Ausgabe auf der Site keinen Einfluss hat.
WICHTIG: Keine Tabulatoren in .yml verwenden, sondern zwei Leerzeichen!
Beispiel Modestia:
regions:
header: Header
primary_menu: Primary menu
highlighted: Highlighted
content: Content
footer: FooterSpeichern und Cache leeren, damit die Block layout aktualisiert wird.