Das Objekt section und seine zwei Gesichter

Was innerhalb eines Abschnitts zur Verfügung steht — und der eine Unterschied zwischen Rumpf und Layout.

Für Entwickler

Voraussetzungen

  • Recht: website:write

Innerhalb eines Abschnitts steht `section` bereit. Es führt `id` (die Kennung aus der Vorlage), `type` (der Dateiname des Abschnitts), `settings` (die Werte des Schemas, mit den Vorgaben aufgefüllt) und `blocks` (die Liste der Blöcke in ihrer Reihenfolge).

Der eine Unterschied, über den man stolpert: Kommt der Abschnitt über `{% section "name" %}` aus dem Layout — also Kopf- und Fussbereich —, fehlt `section.type`. Vorhanden sind dort nur `id`, `settings` und `blocks`. Eine Datei, die an beiden Stellen laufen soll, darf sich auf `type` nicht verlassen.

Zusätzlich steht `sections` bereit: die Zuordnung vom Dateinamen eines Abschnitts auf `{ id, settings, blocks }`. Damit kommt ein Abschnitt an die Werte eines anderen heran, etwa an das Logo aus dem Kopfbereich.

Sobald Blöcke vorhanden sind, legt TacticTable `section.settings.items`, `section.settings.menu_items` und `section.settings.images` als Kurzformen dazu.

Codebeispiele

sections/typ-probe.liquid
Liquid
id=[{{ section.id }}] typ=[{{ section.type }}] anzahl_bloecke=[{{ section.blocks.size }}]
Ein Versuchsaufbau in einer Zeile. Gerendert wird er hier als Abschnitt im RUMPF einer Seite — dort ist `type` gesetzt.
Und derselbe Abschnitt aus dem Layout geholt
Liquid
{% section 'typ-probe' %}
DER Unterschied, über den man stolpert: kommt ein Abschnitt über `{% section %}` aus dem Layout, fehlt `section.type`. Vorhanden sind nur `id` (dann der DATEINAME), `settings` und `blocks` — und `blocks` ist leer, solange keine Vorlage denselben Typ führt. Eine Datei, die an beiden Stellen laufen soll, darf sich auf `type` nicht verlassen.
Was in section.settings wirklich steht
Liquid
<pre>{{ section.settings | json }}</pre>
Der schnellste Weg zur Wahrheit, wenn eine Einstellung leer bleibt. Sie sehen darin auch die drei Kurzformen `items`, `menu_items` und `images`, die bei Blöcken automatisch dazukommen.

Wo im Dashboard

/restaurant/[slug]/website/themes/[id]/code

Im Dashboard öffnen