rbitdd
Returning Responder

Navigationsfunktion Startseite != Startordner --> Highlighting

Jump to solution

Hallo Community,

ich verzweifle gerade an der Navigationsfunktion. Smiley Sad

Folgende Aufgabenstellung:

1. Der ganze Pfad ist selektiert und bekommt eine entsprechende Auszeichnung über eine CSS-Klasse und ein entsprechendes Bild.

2. Der wirklich ausgewählte aktuelle Menüpunkt ist zusätzlich noch mit einer Hintergrundfarbe gekennzeichnet. (CSS "aktiv")

3. Ein Menüpunkt, welcher keine "Kindelemente" hat, wird ohne Bild dargestellt.

Klingt erst mal nicht sooo kompliziert. Daraus ergab sich bisher folgedes:

<CMS_ARRAY_PARAM name="selectedHTML">

     <CMS_ARRAY_ELEMENT index="2..12"><![CDATA[

          $CMS_IF(#nav.hasSubFolders)$

               <span class="wrapper$CMS_IF(#nav.id == #global.node.id)$Aktiv$CMS_END_IF$">

                    <span class="symbLink symbLink$CMS_IF(#nav.id == #global.node.id)$Aktiv$CMS_ELSE$Inaktiv$CMS_END_IF$">

                         <input type="image" class="symbLinkAktiv" src="$CMS_REF(media:"mini", abs:1)$" alt="Unterebene aufklappen" title="Unterebene aufklappen" />

                    </span>

                    <span class="textLink$CMS_IF(#nav.id == #global.node.id)$ textLinkAktiv$CMS_END_IF$" style="font-weight:bold;">

                         <a class="textLink$CMS_IF(#nav.id == #global.node.id)$Aktiv$CMS_END_IF$" style="font-weight:bold;" href="$CMS_REF(#nav.ref, abs:1)$">$CMS_VALUE(#nav.label)$</a>

                    </span>

               </span>

          $CMS_ELSE$

               <a class="textLinkAktiv noSymb" href="$CMS_REF(#nav.ref, abs:1)$">$CMS_VALUE(#nav.label)$</a>

          $CMS_END_IF$

     ]]></CMS_ARRAY_ELEMENT>

</CMS_ARRAY_PARAM>

Der komplette Pfad ist selektiert ("<CMS_PARAM name="wholePathSelected" value="1"/>", der aktuell ausgewählte Menüpunkt, der keine Unterordner hat, hat einen Hintergrundfarbe.

Jetzt habe ich jedoch das Problem, dass ein Menüpunkt, welcher ausgewählt ist und Unterordner hat, bekommt keine Hintergrundfarbe (AKTIV fehlt) und mir fällt echt nicht mehr ein, wie ich die Prüfung machen soll.

Gibt es eine Möglichkeit zu prüfen, ob die aktuell generierte Seite die "Startseite" des aktuellen Ordners im Menü ist?

Die Problematik bzgl. der Prüfung  wurde erst eingefügt, als ein Menüpunkt keine Startseite, sondern nur einen Startordner hatte und somit beide Menüpunkte ein Highlighting erhielten. Was laut Definition falsch war/ist.

Hat jemand eine Idee, wie ich prüfen kann, ob der aktuelle Menüpunkt eine Startseite oder einen Startordner hat?

Oder vielleicht eine noch bessere Idee bzgl. der Herangehensweise an die Problematik?

Ich hoffe, ich konnte das Problem einigemaßen verständlich schildern.

Freue mich auf zahlreiche, hilfreiche Rückmeldungen.

Viele Grüße

D.

1 Solution

Accepted Solutions

Ich vermute, du willst #nav.folder == #global.node.parent prüfen?!

Peter

View solution in original post

4 Replies
feddersen
Community Manager

Ja, man kann prüfen ob eine Seite eine Startseite ist, siehe http://www.e-spirit.com/odfs42/access/de/espirit/firstspirit/access/store/sitestore/StartNode.html#i...

Eventuell hilft auch getStartNode() um den Startknoten zu ermitteln. Den kannst du dann mit einem anderen Knoten (z.B. der aktuellen Seite) vergleichen.

rbitdd
Returning Responder

Hallo,

das hilft schon mal weiter.

Wenn jedoch mein "folder" keine Startseite hat, jedoch einen Unterordner, der wiederum eine Startseite hat, nimmt die Navigation als "ref" die Seite des Unterordners.

Das wiederum führt ja dazu, das ich zwei "Aktiv" markierte Menüpunkte habe, was ja wieder nicht gewünscht ist.

Smiley Sad

Ich habe die Abfrage auch wie folgt geändert

$CMS_IF(#nav.ref.id == #global.node.id && #nav.ref.isStartNode())$Aktiv$CMS_END_IF$

Das Highlighting kommt jetzt dem gewünschten näher.

Freue mich auf weitere sachdienliche Hinweise bzgl. der "folder"-Problematik.

Best wishes

D.

0 Kudos

Ich vermute, du willst #nav.folder == #global.node.parent prüfen?!

Peter

Vielen Dank für die Hilfe.

Ich habe jetzt die Abfrage auf lediglich diese Prüfung gekürzt und das Highlighting funktioniert, so wie ich das sehe, wie gewünscht.

D.h. meine Abfrage sieht jetzt wie folgt aus:

$CMS_IF(#nav.folder == #global.node.parent)$

Auf zum nächsten Ticket.

0 Kudos