flaxoiu
I'm new here

Problem mit Footernavigation

Hallo Zusammen,

ich habe folgendes Problem, welches ich noch nicht lösen konnte.

In der Footernavigation sollen lediglich Teile der Hauptnavigation anzeigt werden.

Die Gesamtnavigation besteht z.B. aus den Navigationsoberpunkten Verkaufen Kaufen Finanzieren und Unternehmen.

Im Footer sollen jedoch nur die Navigationspunkte für Verkaufen, Kaufen und Finanzieren angezeigt werden, also nur eine Teilmenge der Gesamtnavigation.

Wie kann ich dies meiner Navigationsfunktion übergeben? Anhand von gesetzten Variablen in der Struktur auf dein einzelnen Navigationsoberordnern? Hat hier jemand einen Lösungsansatz?  Kann ich hier einen Parameter dynamisieren für <CMS_VALUE_PARAM name="root" value="XYZ"? Oder wie könnte man soetwas technisch umsetzen?

Danke für euere Hilfe

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

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

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

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

   <CMS_VALUE_PARAM name="root" value="ss_navRoot"/>   

   

    <CMS_ARRAY_PARAM name="beginHTML">

      <CMS_ARRAY_ELEMENT index="0"><![CDATA[<ul>]]></CMS_ARRAY_ELEMENT>

      <CMS_ARRAY_ELEMENT index="1"><![CDATA[<li>]]></CMS_ARRAY_ELEMENT>     

    </CMS_ARRAY_PARAM>

          

    <CMS_ARRAY_PARAM name="unselectedHTML">

      <CMS_ARRAY_ELEMENT index="0"><![CDATA[]]></CMS_ARRAY_ELEMENT> 

      <CMS_ARRAY_ELEMENT index="1"><![CDATA[<a href="$CMS_REF(#nav.ref)$">$CMS_VALUE(#nav.label.convert2())$</a>]]></CMS_ARRAY_ELEMENT>      

    </CMS_ARRAY_PARAM>

   

    <CMS_ARRAY_PARAM name="selectedHTML">

      <CMS_ARRAY_ELEMENT index="0"><![CDATA[]]></CMS_ARRAY_ELEMENT>

      <CMS_ARRAY_ELEMENT index="1"><![CDATA[<a href="$CMS_REF(#nav.ref)$">$CMS_VALUE(#nav.label.convert2())$</a>]]></CMS_ARRAY_ELEMENT>     

     </CMS_ARRAY_PARAM>

   

    <CMS_ARRAY_PARAM name="endHTML">

      <CMS_ARRAY_ELEMENT index="0"><![CDATA[</ul>]]></CMS_ARRAY_ELEMENT>

      <CMS_ARRAY_ELEMENT index="1"><![CDATA[</li>]]></CMS_ARRAY_ELEMENT>     

   </CMS_ARRAY_PARAM>

 

</CMS_FUNCTION>

</CMS_HEADER>

$CMS_VALUE(fr_footernavi)$

0 Kudos
2 Replies
mbergmann
Crownpeak employee

Hallo Florian,

Vorab: Du kannst generell bei der Navigationsfunktion nicht mit einer Liste von Root-Knoten arbeiten. Hier Infos zu nutzen wie "in der Sitemap anzeigen" bzw. "im Navigationsmenü anzeigen" halte ich auch für ungünstig, weil man damit diese Einstellungen für den Footer "verbraucht".

Letztlich stellt sich die Frage, wie/wo/wieherum man definieren will, welche Knoten in der Navigation enthalten sein sollen.

  1. Pflege der "soll für mich eine Footer-Nav erzeugt werden"-Infos am Ordner (z.B. über Metadaten) => eine komplette Navigation "filtern"
  2. Zentrale Pflege einer Liste von Startknoten aus denen die Footer-Nav bestehen soll

Zu Variante 1)

Man kann hier im Rahmen der Navigationsfunktion natürlich beliebige Infos der Knoten abfragen und abhängig davon dann die Ausgabe unterdrücken. Für tiefer gelegene Knoten müsste man dann aber ggf. "hoch laufen" - oder auch mit Metadaten im Sitestore (+inherit) arbeiten.

Bei dieser Variante gäbe es dann um alle möglichen Ausgaben ein $CMS_IF$ in der Navigation.

Zu Variante 2)

man könnte hier einen anderen "expliziteren" Ansatz wählen - nämlich nicht "eine Untermenge der Hauptnavigation" sondern einfach "eine Liste von Sub-Navigationen, jeweils ausgehend von einem definierten Startknoten".

Die technische Idee wäre hier schlicht, drei (bzw. x) "einzelne" Navigationen zu erzeugen (nämlich die für Verkaufen, Kaufen und Finanzieren). Machbar wäre das, indem man die entsprechenden Ordner mit Hilfer einer FS_LIST pflegt (FS_LIST, darin Linktemplates die jeweils eine FS_REFERENCE auf Sitestore-Folder enthalten). Das Linktemplate rendert dann nur die Navigation "seines" Punktes, indem es die UID "seines" Punktes als root einer Navigation benutzt, in etwa

<CMS_VALUE_PARAM name="root" value='"pagefolder:"+lt_root.uid' />

... wenn lt_root der Name der FS_REFERENCE ist, die auf pagereffolder eingeschränkt ist.

Wo man diese FS_LIST unterbringt kommt ein bisschen drauf an - denkbar ist hier z.B. ein Seitentemplate, aus dem man dann eine globale Footer-Seite erstellt, die man per #global.gca(...) einbindet. Alternativ kann man die natürlich auch in den Projekteinstellungen ablegen.

Letztlich gibt man einfach alle enthaltenen Werte über das innere Linktemplates aus - und dadurch einmal pro Ordner.

Hier muss man natürlich noch darauf achten, bei der Ausgabe dann mit Level 0 zu beginnen und nicht mit Level 1.

Viele Grüße

Michael

0 Kudos
pavone
I'm new here

Hallo Florian,

benötigst Du noch weitere Hilfe oder hat Dir die Antwort von Michael bereits geholfen? In diesem Fall wäre es super, wenn Du die "richtige Antwort" entsprechend markierst, damit auch andere Community-Teilnehmer diese auf den ersten Blick finden. Solltest Du zwischenzeitlich eine eigene Lösung gefunden haben, wäre es nett, wenn Du diese hier bereitstellst.

Viele Grüße

Tim

0 Kudos