Sort (SP-Tag)
Aus SiteparkWiki
Inhaltsverzeichnis |
Name
<sp:sort> - Sortiert eine Liste
Syntax
<sp:sort name="sortedList" collection="listToSort" keys="lastName, birthday" sequences="desc, asc" types="text, number" locale="en"/>
Beschreibung
Der Sort-Tag sortiert eine Liste nach den angegeben Sortierkriterien (keys). Zu jedem Sortierkriterium kann eine Sortierreihenfolge (sequences) angegeben werden, die bestimmt ob auf- oder absteigend sortiert werden soll. Weiter kann für jedes Sortierkriterium ein Sortiertyp (types) festgelegt werden, um zu bestimmen, ob Zeichenketten oder Zahlen sortiert werden sollen.
Punkte, Leerzeichen und Bindestriche werden bei der Text-Sortierung nicht berücksichtigt. Für Umlaute und Groß- bzw. Kleinbuchstaben gilt folgende Reihenfolge: a, A, ä, Ä, aa, Aa, äa, Äa, ad, Ad, ae, Ae
Attribute
| Name | Type | Required | Default | ab IES Version |
|---|---|---|---|---|
name
| Variable | Ja | None | 1 |
collection
| Collection | Ja | None | 1 |
keys
| kommaseparierte Liste von Texten | Nein | das Element selbst | 1 |
sequences
| kommaseparierte Liste von Texten | asc für alle Sortierkriterien
| None | 1 |
types
| kommaseparierte Liste von Texten | text für alle Sortierkriterien
| None | 1 |
locale
| Locale | Nein | None | 1 |
name- Name der sortierten Liste.
collection- Name der zu sortierenden Liste.
keys- Die Sortierkriterien nach denen die Elemente der Liste sortiert werden sollen. Diese Parameter ist optional. Ist kein Sortierkriterium angegeben, so wird das Element selber für die Sortierung verwendet. Dies ist beispielsweise der Fall, wenn die Liste nicht aus Elementen sondern aus einfachen Zeichenketten besteht. Die Objekte der Liste haben keine Attribute und es soll nach den Zeichenketten selbst sortiert werden.
sequences- Für jedes Sortierkriterium muss eine Sortierreihenfolge festgelegt werden, mit der bestimmt wird, ob mit dem Sortierkriterium aufsteigend (
desc), absteigend (asc) oder zufällig (random) sortiert wird. Ist kein Sortierkriterium angegeben muss genau eine Sortierreihenfolge angegeben werden.
types- Für jedes Sortierkriterium muss ein Sortiertyp festgelegt werden, der bestimmt, wie sortiert wird. Dabei ist eine Sortierung von Zeichenketten (
text) oder eine Sortierung von Zahlen (number) möglich. Ist kein Sortierkriterium angegeben, muss genau ein Sortiertyp angegeben werden.
locale- Dieses Attribut dient zur Auswahl der zu verwendenden Sprache bei mehrsprachigen Variablen.
Beispiele
Auf- und absteigende Sortierung
Template Quelltext
<sp:collection name="names" action="add" value="Dr. Peter Pan"/> <sp:collection name="names" action="add" value="Karsten Müller"/> <sp:collection name="names" action="add" value="Gaby Schmidt"/> <sp:collection name="names" action="add" value="Dr. Hans-Peter Schlau"/> <sp:collection name="names" action="add" value="Dr. Heinz-Rüdiger Schlauer"/> <sp:collection name="names" action="add" value="Tina Meier"/> <sp:collection name="names" action="add" value="Marion Hempel"/> <sp:collection name="names" action="add" value="Jörg Jürgens"/> <sp:collection name="names" action="add" value="Adam Apfel"/> <sp:collection name="names" action="add" value="100-900"/> <sp:collection name="names" action="add" value="20-30"/> <sp:collection name="names" action="add" value="-"/> <sp:collection name="names" action="add" value="-F"/> <sp:collection name="names" action="add" value="*"/> Unsortierte Liste:<br> <sp:loop collection="names" item="it"> <sp:print name="it"/> </sp:loop> Liste aufsteigend sortieren: <sp:sort name="sortedList" collection="names" sequences="desc"/> <sp:loop collection="sortedList" item="it"> <sp:print name="it"/> </sp:loop> <br> Liste absteigend sortieren: <sp:sort name="sortedList" collection="names"/> <sp:iterator collection="sortedList" item="it"> <sp:print name="it"/> </sp:iterator>
Ausgabe
Unsortierte Liste: Dr. Peter Pan Karsten Müller Gaby Schmidt Dr. Hans-Peter Schlau Dr. Heinz-Rüdiger Schlauer Tina Meier Marion Hempel Jörg Jürgens Adam Apfel 100-900 20-30 - -F * Liste aufsteigend sortieren: Tina Meier Marion Hempel Karsten Müller Jörg Jürgens Gaby Schmidt -F Dr. Peter Pan Dr. Heinz-Rüdiger Schlauer Dr. Hans-Peter Schlau Adam Apfel 20-30 100-900 * - Liste absteigend sortieren: - * 100-900 20-30 Adam Apfel Dr. Hans-Peter Schlau Dr. Heinz-Rüdiger Schlauer Dr. Peter Pan -F Gaby Schmidt Jörg Jürgens Karsten Müller Marion Hempel Tina Meier
Zeichenketten und Zahlen sortieren
Template Quelltext
<sp:collection name="numbers" action="add" value="1092"/> <sp:collection name="numbers" action="add" value="-64"/> <sp:collection name="numbers" action="add" value="16"/> <sp:collection name="numbers" action="add" value="403.56"/> <sp:collection name="numbers" action="add" value="-1056.0998"/> <sp:collection name="numbers" action="add" value="59"/> <sp:collection name="numbers" action="add" value="0.56"/> Unsortierte Liste: <sp:iterator collection="numbers" item="it"> <sp:print name="it"/> </sp:iterator> Liste als Zeichenkette sortieren: <sp:sort name="sortedList" collection="numbers"/> <sp:loop collection="sortedList" item="it"> <sp:print name="it"/> </sp:loop> Liste als Zahlen sortieren: <sp:sort name="sortedList" collection="numbers" types="number"/> <sp:loop collection="sortedList" item="it"> <sp:print name="it"/> </sp:loop>
Ausgabe
Unsortierte Liste: 1092 -64 16 403.56 -1056.0998 59 0.56 Liste als Zeichenkette sortieren: 0.56 -1056.0998 1092 16 403.56 59 -64 Liste als Zahlen sortieren: -1056.0998 -64 0.56 16 59 403.56 1092

