Questions & Answers

SOLVED
o5_puschnig
I'm new here

Test, ob Inhaltsbereiche leer sind?

Jump to solution

Hallo, ich habe eine Frage zu den Inhaltsbereichen von Seitenvorlagen. Ich habe eine Seitenvorlage, in der es zwei Inhaltsbereiche gibt: "content" und "marginal". Fรผr "content" habe ich bereits einige Absatzvorlagen als zugelassen eingetragen, fรผr "marginal" noch nicht. Dann habe ich in der Inhaltsverwaltung eine neue Seite mit dieser Vorlage angelegt.

Nun mรถchte ich in der HTML-Ausgabe testen, ob fรผr den "marginal"-Bereich Inhalte gepflegt wurden (ansonsten soll bei der Ausgabe des "content"-Bereichs noch eine weitere css-Klasse gesetzt werden).

Als Ansatz habe ich in der HTML-Ausgabe folgendes versucht:

$CMS_SET(isMarginalEmpty, #global.page.body("marginal").getChildren().isEmpty())$

Die Variable hat allerdings den Wert false, obwohl ich an der Seite keine Absรคtze gepflegt habe (geht ja auch nicht, weil noch keine zugelassen sind).

In der Doku finde ich unter #global.page und auch unter der API-Definition zu Body nichts, was mir hier helfen wรผrde. Gibt es vielleicht einen anderen Weg, wie ich testen kann, ob der Inhaltsbereich leer ist?

1 Solution

Accepted Solutions
ErnstLustig
I'm new here

Versuchen Sie mal: #global.page.body("marginal").getChildren().toList().isEmpty()

Das sollte funktionieren.

View solution in original post

0 Kudos
4 Replies
ErnstLustig
I'm new here

Versuchen Sie mal: #global.page.body("marginal").getChildren().toList().isEmpty()

Das sollte funktionieren.

0 Kudos

Vielen Dank, das wars! Ich habe noch mal in der API-Doku nachgeschaut, und ich hatte mich dort verlesen...die Methode getChildren() gibt keine List, sondern ein Listable zurรผck. Wieder was gelernt!

0 Kudos

Hallo,

#global.page.body("marginal").getChildren().toList().isEmpty()

das funktioniert so nur zufรคllig, da der Body-Knoten derzeit keine anderen Kind-Typen, auรŸer Absรคtze (Section) haben kann.

Korrekt (zukunftssicher) wรคre hier:

#global.page.body("marginal").getChildren(class("de.espirit.firstspirit.access.store.pagestore.Section")).getFirst() != null

Listable.getFirst() != null

sollte hier verwendet werden, damit bei vorhandenen Absรคtzen, die Liste nicht im Speicher aufgebaut werden muss, nur um zu prรผfen, ob diese leer ist. Genau dafรผr ist die Methode #getFirst() da.

Danke, habe den Ausdruck noch mal angepasst. Funktioniert wie gewรผnscht Smiley Happy

0 Kudos

Type a product name