Questions & Answers

aVogt
Returning Creator

Variablen in am StrukturOrdner

Hallo,

bei einem Ordner in der Struktur kann man Variablen definieren.

Nun habe ich das Problem, dass ich die gesetzte Variable immer nur bei dem Ordner erhalte, bei dem sie auch gesetzt wurde. In den untergeordnete Ordnern steht mir der wert nicht zur Verfรผgung.

Bsp:

Struktur-Root

     Ordner 1 => Variable nameA = 1

          Ordner 1.1

          Ordner 1.2

     Ordner 2 => Variable nameA = 2

          Ordner 2.1

          Ordner 2.2

Ich bekomme das Ergebnis von Variable nameA nur bei den Ordner 1 und Ordner 2 direkt geliefert.

Werden die Variablen nicht vererbt?

Muss ich immer so lange "nach oben" gehen (parent vom Ordner holen) bis ich ein Ergebnis geliefret bekomme?

7 Replies
rbitdd
Returning Responder

Doch, die Werte sollten vererbt werden.

Sind die Variablennamen in dem Reiter der Unterordner fett? Wenn ja, dann werden an entsprechender Stelle die Werte รผberschrieben. Das Problem hatten Kollegen von mir schon mal, das er das รผbersehen hat! Smiley Wink

Wenn nein, dann hรถrt sich das fรผr mich nach einem Fehlverhalten an.

In welcher Version kommt das vor? Dann versuche ich das zu Reproduzieren.

0 Kudos
feddersen
Community Manager

รœber $CMS_VALUE(OBJEKT.meta())$ kรถnnen auch veerbte Informationen ausgegeben werden. Greift man per API auch die Metadaten zu, so ist รผber hasMeta() zu prรผfen, ob am aktuellen Knoten Informationen hinterlegt sind. Falls nicht, muss man sich durch die Vaterkette durchhangeln.

0 Kudos
aVogt
Returning Creator

Wenn ich einen Wert bekomme, sind die Variablen fett, wenn ich keinen Wert bekomme sind die Variablen nicht fett.

Da ich das ganze in einem Script benรถtige teste ich das DataValue der Variable auf null

pageref.getParentFolder().getData().get("VARIABLENAME");

Falls das null ist hole solange den รผbergeordneten Ordner und gucke, ob VARIABLENAME nicht null ist

0 Kudos

Hallo Herr Feddersen,

mit hasMeta() bekomme ich immer false. Die Variablen die ich in der Struktur definieren kann, sind doch keine Metadaten oder doch?

Ich definiere die Variablen doch nicht als Metadaten an der Seite. Ich verwende die Variablen bei einem Strukturorder (Struktur->Ordner und da in der rechten fensterhรคlfte "neue Variable"definieren

0 Kudos

Hallo Herr Vogt,

Sie haben vรถllig recht, hasMeta() ist hier vรถllig falsch, da war es gestern wohl schon zu spรคt. Bei Strukturvariablen gilt das gleiche Prinzip, dort ist nur auf null zu prรผfen, wie sie es schon machen. Es gibt auch ein Beispiel, wo das Vorgehen erlรคutert ist.

Hallo Herr Vogt,

da Sie nicht geschrieben haben, wozu Sie das Skript benรถtigen, hier die beiden Wege, wie Sie den Variableninhalt auch ohne Hilfe eines Skriptes bekommen:

- In der Navigationsfunktion:

Dort kรถnnen Sie den Variableninhalt immer direkt mittels #nav.data("Bezeichner") ausgeben {auch geerbte Inhalte}

- Im normalen Templatequelltext geht das nur auf {wie im Skript} durch manuelle Iteration, also zum Beispiel so:

$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$

$CMS_VALUE(myData)$

Viele Grรผsse aus Dortmund,

  Holger Hรถbbel

aVogt
Returning Creator

Hallo Herr Hรถbbel,

ich brauche das ganze in einer Aktionsvorlage.

Habe es auch schon umgesetzt (Zugriff: .siehe weiter oben) Hatte nur gedacht, dass die Variable immer da ist und dass ich nicht solange nach "oben" gehen muss, bis die gesetzt ist.

GrรผรŸe aus DD
A. Vogt

0 Kudos

Type a product name