Search the FirstSpirit Knowledge Base
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
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...
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...
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ß
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
gruss
...frank...
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 )
<CMS_VALUE_PARAM name="tableData" value="if(!st_table.isEmpty,st_table,#global.section.getData().get("st_table").editor.get(#global.project.masterLanguage))" />
Viele Grüsse aus Dortmund,
Holger