Search the FirstSpirit Knowledge Base
Hallo zusammen,
ich möchte zwischen zwei Absätzen des gleichen Typs Trennlinien einfügen.
Dafür würde ich gerne eine Art vorlagenübergreifende Variable definieren (z.B. im Pageheader, den wir auf jeder Seite mittels Formatvorlage einfügen) und den Wert dieser Variable beim ersten Aufruf des entsprechenden Absatz-Typs überschreiben. Etwa so:
$-- Pageheader --$
$CMS_SET(set_zeigeTrennlinie,false)$
$-- Absatz --$
$CMS_IF(set_zeigeTrennlinie)$
<hr>
$CMS_ELSE$
$CMS_SET(set_zeigeTrennlinie,true)$
$CMS_END_IF$
Auf diese Weise möchte ich erreichen, dass die Trennlinie ab dem zweiten Vorkommen des Absatzes innerhalb einer Seite ausgegeben wird. Leider funktioniert das nicht. Wenn ich innerhalb des Absatzes auf set_zeigeTrennlinie.isEmpty prüfe, erhalte ich immer false. Auch dann, wenn ich dies in der If-Bedingung negiert prüfe.
Gibt es eine Möglichkeit, Variablen vorlagenübergreifend zu definieren, ohne gleich Struktur-Variablen, Projekteinstellungen oder die Globalen Inhalte verwenden zu müssen (das würde ich als unsauber ansehen, da es sich um eine rein technische Variable handelt, die nicht pflegbar sein soll)?
Vielen Dank für eure Antworten im Voraus!
Viele Grüße
René Schubert
Ja, z.B. über $CMS_SET(#global.context.parentContext["xxxx"], "xxx")$ kann man etwas in den übergeordneten Kontext schreiben. Der Zugriff erfolgt dann ganz normal über $CMS_VALUE(xxxx)$
Hallo René,
sind in dem Absatzbereich immer die selben Absätze drin?
Wenn ja, dann wäre ja die Anforderung, vor jedem Absatz außer dem Ersten eine entsprechende Trennlinie auszugeben.
Das würde ich wiederum mittels
$CMS_IF(#global.section.parent.getChildIndex(#global.section) == 0)$
prüfen, anstatt eine Variable in den Context zu schreiben.
Der letzte Absatz ist übrigens
$CMS_IF(#global.section.parent.getChildCount()-1 == #global.section.parent.getChildIndex(#global.section))$
falls Du anders herum prüfen willst
Viele Grüsse aus Dortmund,
Holger