Search the FirstSpirit Knowledge Base
Hallo zusammen.
Ich frage mich gerade, ob es möglich ist die Strukturvariable der verlinkten Seite auszulesen.
Sprich in einer Verweisvorlage etwas abzufragen, wie
$CMS_IF(#lt_ref.localvar('hiervariablenname') == "moeglicher wert")$
mache etwas
$CMS_ELSE$
mache etwas anderes
$CMS_END_IF$
Ich möchte damit überprüfen, ob die Zielseite einer bestimmten Nutzergruppe zugelassen ist und somit ggf. die Authentisierung (welche per Lightbox umgesetzt werden soll) zwischenschalten.
Danke schon mal
Da fehlt nur ein .editor.get(<gewünschteSprache>), also so:
$CMS_SET(myData,ref.parent.data.get("myVar").editor.get(#global.language))$
Mein {jetzt vorhandener } Testfall hier lokal, der funktioniert hat (Die IF Abfrage war auch nicht ganz optimal ]
$CMS_SET(ref,ref(pageref:"permissiontest").target)$
$CMS_SET(myData,"")$
$CMS_FOR(count,[1..ref(pageref:"permissiontest").target.depth])$
$CMS_IF((myData=="") && !(ref.parent.data.get("Hallo").editor.get(#global.language).isEmpty))$
$CMS_SET(myData,ref.parent.data.get("Hallo").editor.get(#global.language))$
$CMS_END_IF$
$CMS_SET(ref,ref.parent)$
$CMS_END_FOR$
VarContent: $CMS_VALUE(myData)$
Es gib ein API-Beispiel zum Setzen von Strukturvariablen. Als Ausgangspunkt dient ein SiteStoreFolder. Das bekommt man in ihrem Codeschnipsel mit Linkvorlage mit $CMS_VALUE(#lt_ref.parent)$
Macht es denn hier Sinn, ein Skript dafür zu benutzen. Mit Templatemitteln ist es zwar nicht schön umzusetzen (da man außerhalb der Navigationsfunktion die geerbten Werte nicht auslesen kann), aber folgendermaßen möglich [Annahme: Strukturvariable heißt "myVar" ]
$CMS_SET(ref,ref(#link.sitestoreref).target)$
$CMS_SET(myData,"")$
$CMS_FOR(folder,[1..ref.depth])$
$CMS_IF((myData=="") && !(ref.parent.data.get("myVar")==""))$
$CMS_SET(myData,ref.parent.data.get("myVar"))$
$CMS_END_IF$
$CMS_SET(ref,ref.parent)$
$CMS_END_FOR$
Ausgabe des geerbten Wertes der Variable myVar: $CMS_VALUE(myData)$<br>
Ich hoffe, ich habe beim Runterschreiben jetzt nicht etwas Wesentliches vergessen. Wenn doch, bitte kurz Bescheid sagen .- ich teste es dann doch mal
Hallo Herr Höbbel,
wenn ich mir innerhalt der Schleife den Wert von 'ref.parent.data.get("myVar")' ausgeben lasse, erhalte ich etwas wie
<CMS_VALUE name="myVar"><LANG id="DE" set="1"><VAR>all</VAR></LANG><LANG id="EN" set="1"><VAR>all</VAR></LANG></CMS_VALUE>
Unabhängig davon, dass das set nicht funktioniert, aber danach kann ich auch selbst tüfteln, hilft mir das schon mal sehr weiter.
Können Sie, gerne auch jemand anderes , mir noch sagen, wie ich den tatsächlichen Wert der Variablen noch bekomme?
Thanks in advance.
Da fehlt nur ein .editor.get(<gewünschteSprache>), also so:
$CMS_SET(myData,ref.parent.data.get("myVar").editor.get(#global.language))$
Mein {jetzt vorhandener } Testfall hier lokal, der funktioniert hat (Die IF Abfrage war auch nicht ganz optimal ]
$CMS_SET(ref,ref(pageref:"permissiontest").target)$
$CMS_SET(myData,"")$
$CMS_FOR(count,[1..ref(pageref:"permissiontest").target.depth])$
$CMS_IF((myData=="") && !(ref.parent.data.get("Hallo").editor.get(#global.language).isEmpty))$
$CMS_SET(myData,ref.parent.data.get("Hallo").editor.get(#global.language))$
$CMS_END_IF$
$CMS_SET(ref,ref.parent)$
$CMS_END_FOR$
VarContent: $CMS_VALUE(myData)$
Hallo Herr Höbbel,
das funktioniert wunderbar! Danke schön!
Ich habe das
ref(pageref:"permissiontest").target.depth
noch mit
ref.depth
ausgetauscht, damit ich nur einmal die Referenz definieren muss, aber ansonsten, wie bereits gesagt, wunderbar!