Search the FirstSpirit Knowledge Base
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
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
Hi Holger,
Danke für die Ausführungen. Ich habe hier nur die Situation im Projekt angetroffen, dass Header Funktionen bspw. aus Seiten auch in Absätzen verwendet wurden (und zu einem Fehler führten). Daher wollte ich nur sichergehen, dass hier kein Fehlverhalten vorliegt sondern einfach ein Nutzungsfehler.
Die genutzten Werte werden tatsächlich verteilt über die meisten Vorlagen irgendwo genutzt, daher habe ich die Header-Funktionen in diesem Fall in die Projekt-Settings verbracht. Die Funktionen sind aus meiner Sicht auch nicht sonderlich teuer. Aber Danke auch für diesen Hinweis.
Gruß
Stefan