Search the FirstSpirit Knowledge Base
Hallo liebe Community,
wie man aus meinen vorherigen Fragen entnehmen kann, arbeiten wir relativ viel mit Strukturvariabeln.
Wenn eine neue Seite erzeugt wird, erhält diese logischerweise nur die Strukturvariabeln, wenn man die Seite in die Struktur referenziert.
Gibt es eine Möglichkeit die Variablen ohne Referenz zu erhalten? Quasi die Seite vorgaukeln, dass diese bereits in der Struktur hängt. Oder die Strukturvariabeln ohne PageRef setzen.
Liebe Grüße
Marcel
Hallo Marcel,
Du musst die Variable ja nicht immer weiter reichen. Die Idee war, im Seiten(!)-Template ungefähr sowas zu machen:
$CMS_SET(ss_someVar, if(isSet(ss_someVar),ss_someVar, "my_default"))$
Dadurch gibt es die Variable dann mindestens im Seitenkontext und damit auch in allen anderen - insbesondere in Rendertemplates.
Viele Grüße
Michael
Hallo Marcel,
nein, das geht schon rein logisch / prinzipbedingt nicht. Denn eine Inhaltsseite kann ja gerade von verschiedenen Stellen aus der Struktur referenziert werden und je nach dieser Stelle unterschiedliche Werte der Strukturvariablen nutzen. D.h. letztlich bräuchtest du zumindest irgendwoher die Information welche "Stelle" in der Struktur denn für die Werte der Variablen "benutzt" werden soll.
Viele Grüße
Michael
Hi Michael,
danke für die schnelle Antwort!
Die Stelle bzw. der Ordner ist bei einer bestimmen Seitenvorlage immer gleich, weshalb ich die Werte der Strukturvariabeln für die eine Seitenvorlage gerne als default definieren würde.
Da die Seitenvorlage einige Rendertemplates aufruft, die auch andere Seitentypen nutzen, wäre das setzten von Default-Werten, falls die Strukturvariabeln nicht gefunden werden kann, keine Option.
Liebe Grüße
Marcel
Hallo Marcel,
Du kannst ja einfach im Seitentemplate schauen ob es die Variable gibt und falls nicht sie einfach setzen. Strukturvariablen sind ja letztlich nur Strings.
Viele Grüße
Michael
Hi Michael,
wir haben vieles in Rendertemplates ausgelagert. Andere Seitenvorlagen nutzen ebenfalls diese Rendertemplates.
In meinem Fall sollen aber alle Strukturvariablen gesetzt werden, wenn eine bestimmte Seitenvorlage genutzt wird, unabhängig ob sie in der Struktur hängt.
Ein Defaultwert nutzen wir bereits.
Ich könnte natürlich Parameter mit dem gleichen Namen wie die Strukturvariabel beim Aufruf des Rendertemplates übergeben, jedoch nutzen unsere Rendertemplates viele weitere andere Rendertemplates. Somit müsste ich an viele Stellen ran.
Wenn es nicht geht, muss ich es leider so hinnehmen. Ich habe mir erhofft, dass es hier vielleicht ein Trick gibt, wie beispielsweise meine Idee in der Frage.
Liebe Grüße
Marcel
Hallo Marcel,
Du musst die Variable ja nicht immer weiter reichen. Die Idee war, im Seiten(!)-Template ungefähr sowas zu machen:
$CMS_SET(ss_someVar, if(isSet(ss_someVar),ss_someVar, "my_default"))$
Dadurch gibt es die Variable dann mindestens im Seitenkontext und damit auch in allen anderen - insbesondere in Rendertemplates.
Viele Grüße
Michael
Hi Michael,
natürlich! Habe es total vergessen, dass die Render-Templates auch auf Variablen von den genutzten Vorlagen zugreifen können.
Funktioniert Prima:
$CMS_IF(#global.preview)$
$CMS_SET(ss_available_languages,"DE,EN")$
$CMS_SET(ss_news_detail_reference,"pageref:news_detail_g_j")$
.....
$CMS_END_IF$
Vielen Dank! und liebe Grüße
Marcel