StefanS
Returning Observer

Gültigkeitsbereich von Header Funktionen

Moin,

ist eventuell eine triviale Frage, aber in der FirstSpirit-Doku konnte ich dazu keinen Hinweis finden. Es wird dort ausführlich über den Gültigkeitsbereich bzw. die Sichtbarkeit von Variablen in Vorlagen dikutiert, aber anscheinend nicht über Header-Funktionen.

Wenn eine Header-Funktion (bspw. ein define) in einer Seite oder gar in den Projectsettings definiert wird, ist diese Funktion dann auch in den restlichen Objekten der Vorschau/Generierung sichtbar? Oder kann sie von dort erreicht werden, zum Beispiel über den Kontext?

Besten Dank und Gruß
Stefan

0 Kudos
1 Reply
hoebbel
Crownpeak employee

Hallo Stefan,

eine Header Funktion hat als Gültigkeitsbereich den Kontext, in dem sie ausgeführt wurde. Im Prinzip ist es dasselbe, als wenn eine Variable in dem entsprechenden Kontext (z.B. mittels CMS_SET gesetzt wird). Und das Ergebnis einer Header Funktion kann mit einer gleichnamigen Variabel in einem niedrigeren (oder demselben) Kontext überschrieben werden. 

Einzige Besonderheit, die mir bekannt ist, ist der Zeitpunkt, an dem die Header Funktion ausgeführt wird. Da hängt es davon ab, welche Header Funktion verwendet wird. Aber das sollte für diese Anfrage keine Rolle spielen. 

Und ein Hinweis: Wenn Du eine Headerfunktion hast, die "teuer" ist (also lange dauert), könnte an auf die Idee kommen, diese nur einmal in den Projektsettings ausführen zu lassen, um auf diese Art Zeit zu sparen. Das würde zwar für eine [Voll-]Generierung wunderbar funktionieren. Aber für jede Vorschau würde die Funktion ausgeführt werden, was zu einer deutlich verschlechterten Performance für die Redakteure führen würde. [Ich erwähne das nur, weil ich mal ein entsprechendes Projektproblem analysieren musste und es relativ lange gedauert hat, bis die Ursache gefunden wurde - es war damals übrigens eine contentSelect Funktion 😉 ]

Viele Grüße
Holger

0 Kudos