Search the FirstSpirit Knowledge Base
Hallo liebe FS Community,
$CMS_VALUE(#nav.label)$ liefert mir ein String.
Nun möchte ich zwei Strings vergleichen mit einem Wert auf meinem Navigation, wober alle auf identischen Ebene.
Ist das überhaupt möglich :
#nav.label.compareTo(„News“) oder #nav.label. compareTo(„referenzname_der_Struktur_Knoten“)
Oder
#nav.label.equals(„News“) oder #nav.label.equals(„referenzname_der_Struktur_Knoten“)
Es klappt nicht.
In meinem Main Navigation muss ich unterschiedliche Icons verwenden für die Ebene 1, je nach Titel.
#nav.isFirst und #nav.isLast klappen schon, obwohl es nocht nicht in meinem Kontaxt ist, da es greifft auf globale <li>s des <ul>s... Aber die zwischenknoten der selben Ebene werden auch anders behandeln und klappt noch nicht auch mit #nav.levelPos… oder #nav.data ("BEZEICHNER")
Ich bleibe auf Ebene 1, aber möchte alle Knote dieser Ebene gezielt zugreiffen und ein Icon setzen, das sollte normalerweise sehr gut klappen wenn ich die Strings vergleiche, damit wäre alles okay, aber fehlt mir etwas beim Bergleich von
#nav.label mit einem anderen expliziten String Wert vergleich könnte...
Hat jemand eine Idee, was mir dabei gefehlt hat?
Danke sehr! 🙂
Fabrice
Hier mein Test:
<CMS_ARRAY_ELEMENT index="1">
<![CDATA[<a href="$CMS_REF(#nav.ref)$">
$CMS_SET(str1, #nav.label)$
$CMS_IF(#nav.isFirst)$
<span class="hello-icont"></span>
$CMS_ELSIF(#nav.levelPos + 1)$
<span class="welcome-icon"></span>
$CMS_ELSIF(#nav.isLast)$
<span class="help-icons"></span>
$CMS_ELSIF( str1.compareToIgnoreCase("News"))$
<span class="text-icons"></span>
$CMS_ELSE$
<span class="news-icons"></span>
$CMS_END_IF$ $CMS_VALUE(#nav.label)$ </a>]]>
</CMS_ARRAY_ELEMENT>
"compareToIgnoreCase" liefert kein "boolean", sondern ein "int" (für die Sortierung). Du wolltest wahrscheinlich "equalsIgnoreCase" benutzen...
"compareToIgnoreCase" liefert kein "boolean", sondern ein "int" (für die Sortierung). Du wolltest wahrscheinlich "equalsIgnoreCase" benutzen...
Hallo Peter
danke für dein Hinweis,
Das hatte ich auch probiert, aber es geht noch nicht.
Kann man überhaupt dieses Vergleich im FS machen? Meine Logik sagt mir, dass es sollte gehen was Strings angeht... aber was mache falsch an der Stelle?
$CMS_ELSIF( #nav.label.equalsToIgnoreCase("News"))$
<span class="icon-news"></span>
oder
$CMS_ELSIF( #nav.label.equalsToIgnoreCase("knoten_ref_name"))$
<span class="icon-news"></span>
Danke
Fabrice
kleine Korrektur
#nav.label.equalsIgnoreCase("ef")
Hallo Fabrice,
benötigst Du noch weitere Hilfe oder hat Dir die Antwort von Peter 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
Thorsten