Questions & Answers

HenningSchneidr
I'm new here

Navigations-root via Variable bestimmen

Hallo zusammen,

ich bin gerade dabei eine Template-Satz zu erstellen, den man bei รคhnlichen Projekten wieder verwenden kann und dort dann nur mit ein "paar Klicks" konfiguriert.

Dies alles ist erstmal nur ein "proof-of-concept" und soll spรคter "nur" das initiale Setup fรผr ein Projekt vereinfachen/vereinheitlichen.

Die Anforderung im Detail:

  • Ich wรผrde gern die Mรถglichkeit haben, mir projekt(-/mandanten-)spezifisch die Anzahl der Navigationen zu konfigurieren.
  • Hรคkchen setzen welche Navi ich angezeigt haben will
  • via Referenzname angeben von wo aus die Navigation sich aufbauen soll
projekt_einstellungen.png
  • Das SeitenTemplate ist relativ generisch gehalten sein
  • mit dem Wert von "area" wird im RenderingSkript jeweils die gewรผnschte(n) Variable(n) aufgelesen

Abgrenzung:

Die jeweiligen Navigationen mรผssen, immer noch, mit dem Projekt-spezifischen MarkUp ge"wrapped" werden, nach dem Projekt-Setup

aufbau_standard_vorlage.png
  • im Strukturbaum wรคre dann ein spezieller Ordner angelegt der alle benรถtigten "Sonder"navigations-Bรคume beinhaltet
  • unterhalb der Startknoten dieser "Sonder"navigationen liegen die fรผr die Anzeige gewรผnschten Seitenreferenzen
site_architect_navi_struktur.png
  • im RenderingSkript fรผr die Navigation wird der gewรผnschte "root"-Knoten ermittelt (mit Fallback auf "root")

<CMS_HEADER>

  <CMS_FUNCTION name="define" resultname="navigationRoot">

   <CMS_CDATA_PARAM name="source">

     <![CDATA[pagefolder:$CMS_IF(!#global.getContext().getVariableValue("pt_g_navigation_"+area+"_root").isEmpty)$$CMS_VALUE(#global.getContext().getVariableValue("pt_g_navigation_"+area+"_root"))$$CMS_ELSE$root$CMS_END_IF$]]>

   </CMS_CDATA_PARAM>

  </CMS_FUNCTION>

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

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

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

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

    <CMS_ARRAY_PARAM name="innerBeginHTML">

    ...

</CMS_HEADER>

>>$CMS_VALUE(navigationRoot)$<<

...

$CMS_VALUE(ft_navigation)$

  • Fรผr den Hauptknoten, der den Referenznamen "root" hat, funktioniert das (dort wird nicht in den Fallback gegangen)
  • fรผr alle anderen nicht
content_creator.png

Ich habe mir hier auch mal nach รคhnlichen Problemen gesucht, z.B. hierโ€‹, die Lรถsungen dort haben aber, fรผr mich, nicht funktioniert

Was mache ich da falsch?

Ich hab das Gefรผhl das es mit der Art der Zuweisung hier:

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

zu tun hat.

0 Kudos
1 Reply
HenningSchneidr
I'm new here

Denkfehler von mir, im jeweiligen Navigationsbaum mรผssen Unterordner drin sein damit das so funktioniert. #AscheAufMeinHaupt ๐Ÿ˜‰

0 Kudos

Type a product name