Sort (SP-Tag): Unterschied zwischen den Versionen

Aus SiteparkWiki
Zur Navigation springen Zur Suche springen
K (Schützte „Sp:sort“ [edit=autoconfirmed:move=autoconfirmed])
 
(10 dazwischenliegende Versionen von 7 Benutzern werden nicht angezeigt)
Zeile 8: Zeile 8:
  
 
==Beschreibung==
 
==Beschreibung==
Der Sort-Tag sortiert eine Liste nach den angegeben Sortierkriterien (<code>keys</code>). Zu jedem Sortierkriterium kann eine Sortierreihenfolge (<code>sequences</code>) angegben werden, die bestimmt ob auf- oder absteigend sortiert werden soll. Weiter kann für jedes Sortierkriterium ein Sortiertyp (<code>types</code>) angegeben werden, um zu bestimmen, ob Zeichenketten oder Zahlen sortiert werden sollen.
+
Der Sort-Tag sortiert eine Liste nach den angegeben Sortierkriterien (<code>keys</code>). Zu jedem Sortierkriterium kann eine Sortierreihenfolge (<code>sequences</code>) angegeben werden, die bestimmt ob auf- oder absteigend sortiert werden soll. Weiter kann für jedes Sortierkriterium ein Sortiertyp (<code>types</code>) 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ß- Kleinbuchstaben gilt folgende Reihenfolge: a, A, ä, Ä, aa, Aa, äa, Äa, ad, Ad, ae, Ae
+
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==
 
==Attribute==
{| class="prettytable"
+
{| class="prettytable sortable"
 
|- class="hintergrundfarbe1"
 
|- class="hintergrundfarbe1"
 
! Name || Type || Required || Default || ab IES Version
 
! Name || Type || Required || Default || ab IES Version
 
|-
 
|-
 
| <code>name</code>
 
| <code>name</code>
| [[Attribute]]
+
| [[Variable]]
 
| Ja
 
| Ja
 
| None
 
| None
Zeile 24: Zeile 24:
 
|-
 
|-
 
| <code>collection</code>
 
| <code>collection</code>
| [[Text]]
+
| [[Collection]]
| Nein
+
| Ja
 
| None
 
| None
 
| 1
 
| 1
 
|-
 
|-
 
| <code>keys</code>
 
| <code>keys</code>
| [[Expression]]
+
| kommaseparierte Liste von [[Text|Texten]]
 
| Nein
 
| Nein
| None
+
| das Element selbst
 
| 1
 
| 1
 
|-
 
|-
 
| <code>sequences</code>
 
| <code>sequences</code>
| [[Locale]]
+
| kommaseparierte Liste von [[Text|Texten]]
| Nein
+
| <code>asc</code> für alle Sortierkriterien
 
| None
 
| None
 
| 1
 
| 1
 
|-
 
|-
 
| <code>types</code>
 
| <code>types</code>
| [[Locale]]
 
 
| kommaseparierte Liste von [[Text|Texten]]
 
| kommaseparierte Liste von [[Text|Texten]]
 +
| <code>text</code> für alle Sortierkriterien
 
| None
 
| None
 
| 1
 
| 1
Zeile 52: Zeile 52:
 
| None
 
| None
 
| 1
 
| 1
 +
|-
 +
| <code>scope</code>
 +
| [[Text]]
 +
| Nein
 +
| None
 +
| 2.13
 
|}
 
|}
  
;<code>xxx</code>
+
;<code>name</code>
:xxx.
+
:Name der sortierten Liste.
 +
 
 +
;<code>collection</code>
 +
:Name der zu sortierenden Liste.
 +
 
 +
;<code>keys</code>
 +
: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.
 +
 
 +
;<code>sequences</code>
 +
:Für jedes Sortierkriterium muss eine Sortierreihenfolge festgelegt werden, mit der bestimmt wird, ob mit dem Sortierkriterium aufsteigend (<code>asc</code>), absteigend (<code>desc</code>) oder zufällig (<code>random</code>) sortiert wird. Ist kein Sortierkriterium angegeben muss genau eine Sortierreihenfolge angegeben werden.
 +
 
 +
;<code>types</code>
 +
:Für jedes Sortierkriterium muss ein Sortiertyp festgelegt werden, der bestimmt, wie sortiert wird. Dabei ist eine Sortierung von Zeichenketten (<code>text</code>) oder eine Sortierung von Zahlen (<code>number</code>) möglich. Ist kein Sortierkriterium angegeben, muss genau ein Sortiertyp angegeben werden.
  
;<code>xxx</code>
+
;<code>locale</code>
:xxx.
+
:Dieses Attribut dient zur Auswahl der zu verwendenden Sprache bei mehrsprachigen Variablen.
 +
 
 +
;<code>scope</code>
 +
:Gültigkeitsbereich, in dem die Variable definiert ist. Möglich sind: page|request|session.
  
 
==Beispiele==
 
==Beispiele==
  
===Beispiel A===
+
===Auf- und absteigende Sortierung===
  
 
Template Quelltext
 
Template Quelltext
 
<source lang="xml">
 
<source lang="xml">
xxx
+
<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>
 
</source>
 
</source>
  
 
Ausgabe
 
Ausgabe
 
<source lang="text">
 
<source lang="text">
xxx
+
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
 
</source>
 
</source>
  
===Beispiel B===
+
===Zeichenketten und Zahlen sortieren===
  
 
Template Quelltext
 
Template Quelltext
 
<source lang="xml">
 
<source lang="xml">
xxx
+
<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>
 
</source>
 
</source>
  
 
Ausgabe
 
Ausgabe
 
<source lang="text">
 
<source lang="text">
xxx
+
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
 
</source>
 
</source>
  
<!--
+
 
bitte die passenden Kategorien auswählen und Kommentar entfernen
 
--------------------------------------------------------------
 
 
<noinclude>
 
<noinclude>
 
[[Category:SP-Tags]]
 
[[Category:SP-Tags]]
[[Category:SPT-Tags]]
 
[[Category:Qualität_des_Inhalts_prüfen]]
 
[[Category:Qualität_der_Sprache_prüfen]]
 
 
[[Category:Qualität_des_Codes_prüfen]]
 
[[Category:Qualität_des_Codes_prüfen]]
 
</noinclude>
 
</noinclude>
-->
 

Aktuelle Version vom 7. Oktober 2015, 16:29 Uhr

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
scope Text Nein None 2.13
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 (asc), absteigend (desc) 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.
scope
Gültigkeitsbereich, in dem die Variable definiert ist. Möglich sind: page|request|session.

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