Charlotte_Koeni
I'm new here

pagefolder: root?

Jump to solution

Hallo,

ich bräuchte Hilfe 🙂

Ich habe eine Navigationsfunktion, die den Parameter root dynamisch füllt (dieses Vorgehen habe ich hier im Forum gefunden, danke dafür!). Und zwar passiert das in dem ich eine andere Funktion habe, die einen Startordner ermittelt und zurückgibt. Diese Funktion ("fr_root") wird dann in meiner Navigationsfunktion mittels <CMS_VALUE_PARAM name ="root" value="fr_root.toString()" /> ausgelesen.

Nun bräuchte ich aber irgendeine Fallback-Lösung, falls durch meine Funktion "fr_root" mal kein Ordner ermittelt wird, so dass dann automatisch der Wurzelknoten als root genommen wird.  Wie kann ich unter value="" den Wurzelknoten speichern? Mit "pagefolder:root"  oder einfach nur "root" geht es nicht. Oder kann ich den auch in meiner "fr_root" Funktion ermitteln? Oder geht das gar nicht? (normalerweise braucht man sowas ja auch nicht..)

Gruß

charlotte

0 Kudos
1 Solution

Accepted Solutions
fz_gpm
I'm new here

hallo charlottte,

wir haben auch eine webseite auf der die Hauptnavigation in den Unterverzeichnissen wechselt und da habe ich mal getestet und das funktioniert:

Die Bedingung (1==0) könntest du ja dann mit ner Abfrage, ob dein pagefolder entweder leer ist oder überhaupt existiert, füllen.

    <CMS_FUNCTION name="Navigation" resultname="fr_pt_getrootfolder">

        <CMS_PARAM name="expansionVisibility" value="purepath"/>

        <CMS_PARAM name="wholePathSelected" value="1"/>

        <CMS_ARRAY_PARAM name="selectedHTML">

        <CMS_ARRAY_ELEMENT index="0">$CMS_IF(1==0)$$CMS_VALUE(#nav.folder.referenceName)$$CMS_ELSE$pagefolder:root$CMS_END_IF$</CMS_ARRAY_ELEMENT>

        </CMS_ARRAY_PARAM>

    </CMS_FUNCTION>

    <CMS_FUNCTION name="Navigation" resultname="mainnavLevel1">

        <CMS_VALUE_PARAM name="root" value="fr_pt_getrootfolder.toString()"/>

        <CMS_PARAM name="expansionVisibility" value="all"/>

        <CMS_PARAM name="wholePathSelected" value="1"/>

        <CMS_PARAM name="suppressEmptyFolders" value="1" />

        <CMS_ARRAY_PARAM name="innerBeginHTML">

        ...

    </CMS_FUNCTION>

grüsse

...frank...

View solution in original post

0 Kudos
4 Replies
fz_gpm
I'm new here

hallo charlottte,

wir haben auch eine webseite auf der die Hauptnavigation in den Unterverzeichnissen wechselt und da habe ich mal getestet und das funktioniert:

Die Bedingung (1==0) könntest du ja dann mit ner Abfrage, ob dein pagefolder entweder leer ist oder überhaupt existiert, füllen.

    <CMS_FUNCTION name="Navigation" resultname="fr_pt_getrootfolder">

        <CMS_PARAM name="expansionVisibility" value="purepath"/>

        <CMS_PARAM name="wholePathSelected" value="1"/>

        <CMS_ARRAY_PARAM name="selectedHTML">

        <CMS_ARRAY_ELEMENT index="0">$CMS_IF(1==0)$$CMS_VALUE(#nav.folder.referenceName)$$CMS_ELSE$pagefolder:root$CMS_END_IF$</CMS_ARRAY_ELEMENT>

        </CMS_ARRAY_PARAM>

    </CMS_FUNCTION>

    <CMS_FUNCTION name="Navigation" resultname="mainnavLevel1">

        <CMS_VALUE_PARAM name="root" value="fr_pt_getrootfolder.toString()"/>

        <CMS_PARAM name="expansionVisibility" value="all"/>

        <CMS_PARAM name="wholePathSelected" value="1"/>

        <CMS_PARAM name="suppressEmptyFolders" value="1" />

        <CMS_ARRAY_PARAM name="innerBeginHTML">

        ...

    </CMS_FUNCTION>

grüsse

...frank...

0 Kudos

Vielen Dank, das hat funktioniert!

Nur komisch, dass es nicht funktioniert hat, als ich direkt "pagefolder:root" eingegeben hatte, deswegen habe ich es so nämlich gar nicht erst probiert...

gruß

0 Kudos

hallo charlotte,

So funktioniert es:

<CMS_PARAM name="root" value="pagefolder:root"/>

So nicht:

<CMS_VALUE_PARAM name="root" value="pagefolder:root"/>

Anscheinend erwartet "<CMS_VALUE_PARAM..." mehr, als nur einen profanen String Smiley Happy

gruss

...frank...

0 Kudos
hoebbel
Crownpeak employee

Hallo zusammen,

<CMS_PARAM erwartet einen String (Konstante)

<CMS_VALUE_PARAM eine Variable

In diesem Zusammenhang mal zwei kleine Beispiele, was man auch als CMS_VALUE_PARAM übergeben kann:

Aktueller Ordner als Startpunkt der Navigation:

<CMS_VALUE_PARAM name='root' value='"pageref:"+#global.node.uid'/>

Abfrage:

<CMS_VALUE_PARAM name="root" value="if(<Abfrage>,<True>,<False>"/>

und wenn man in der Abfrage doppelte Anführungzeichen benötigt, geht auch folgendes (das Beispiel gehört jetzt aber zu einer DOMTABLE, für die Navigation fiel mir auf die Schnelle nichts ein Smiley Wink)

<CMS_VALUE_PARAM name="tableData" value="if(!st_table.isEmpty,st_table,#global.section.getData().get(&quot;st_table&quot;).editor.get(#global.project.masterLanguage))" />

Viele Grüsse aus Dortmund,

  Holger

0 Kudos