Questions & Answers

SOLVED
MarcusDau
Occasional Collector

Sortierung lowerCase bei contentSelect

Jump to solution

Hallo!

Kleine Frage kurz vorm Wochenende.

Ich habe folgenden contentSelect:

<CMS_FUNCTION name="contentSelect" resultname="fr_alle_eintraege" context="PAGE">

    <CMS_PARAM name="schema" value="Data"/>

    <QUERY entityType="Glossar">"

        <ORDERCRITERIA attribute="ueberschrift" descending="0"/>

    </QUERY>

</CMS_FUNCTION>

Wie man sieht, mรถchte ich nach der รœberschrift aufsteigend sortieren.

Dabei gibt es aber das Problem, dass ich auch Eintrรคge mit einem Kleinbuchstaben am Anfang habe. Diese werden dann (fรผr mich) nicht richtig einsortiert.

Reihenfolge wรผrde also zum Beispiel so aussehen: A B C D E M Z e k v

Kann ich diese Eintrรคge irgendwie direkt im contentSelect nach lowerCase sortieren?

GrรผรŸe

Marcus

1 Solution

Accepted Solutions
hoebbel
Crownpeak employee

Hallo Marcus,

die direkte Sortierung in der contentSelect Funktion funktioniert nur, wenn die Datenbank die Ergebnisse in der gewรผnschten Sortierung zurรผckliefert.

Also musst Du selber sortieren. Ist aber nicht wirklich schwer. Eigentlich mรผsste hier folgendes funktionieren:

ORDERCRITERIA aus der Funktion entfernen.

Ergebnis so auffrufen:

$CMS_FOR(element,contentSelect.copy.sort(x -> x.text.toLowerCase())$

Und um die nรคchste Frage gleich vorweg zu nehmen. Mit deutschen Umlauten geht es dann so:

$CMS_FOR(element,contentSelect.copy.sort(x -> x.text.toLowerCase().replaceAll("รถ","oe").replaceAll("รค","ae").replaceAll("รผ","ue")))$

Viele Grรผsse aus Dortmund,

  Holger

View solution in original post

1 Reply
hoebbel
Crownpeak employee

Hallo Marcus,

die direkte Sortierung in der contentSelect Funktion funktioniert nur, wenn die Datenbank die Ergebnisse in der gewรผnschten Sortierung zurรผckliefert.

Also musst Du selber sortieren. Ist aber nicht wirklich schwer. Eigentlich mรผsste hier folgendes funktionieren:

ORDERCRITERIA aus der Funktion entfernen.

Ergebnis so auffrufen:

$CMS_FOR(element,contentSelect.copy.sort(x -> x.text.toLowerCase())$

Und um die nรคchste Frage gleich vorweg zu nehmen. Mit deutschen Umlauten geht es dann so:

$CMS_FOR(element,contentSelect.copy.sort(x -> x.text.toLowerCase().replaceAll("รถ","oe").replaceAll("รค","ae").replaceAll("รผ","ue")))$

Viele Grรผsse aus Dortmund,

  Holger

Type a product name