Filter (SP-Tag): Unterschied zwischen den Versionen

Aus SiteparkWiki
Zur Navigation springen Zur Suche springen
K (hat „Sp:filter“ nach „Filter (SP-Tag)“ verschoben)
Zeile 1: Zeile 1:
 
==Name==
 
==Name==
<sp:filter> - xxx-Tag
+
<sp:filter> - Filtert Elemente aus einer Liste.
  
 
==Syntax==
 
==Syntax==
 
<source lang="xml">
 
<source lang="xml">
<sp:xxx name="variable" encoding="html"/>
+
<sp:filter name="filteredList" collection="listToFilter" attribute="name" filter="*Example*" ic="true" mode="simple"/>
 
</source>  
 
</source>  
  
 
==Beschreibung==
 
==Beschreibung==
xxx
+
Mit diesem Tag können Listen gefiltert werden. Listen-Elemete werden nach bestimmten Kriterien aus der Liste entfernt. Es gibt drei Arten von Filtern: Einen einfachen Wildcard-Filter, der * und ? unterstützt, weiter gibt es für komplexe Anforderungen einen Filter aus regulären Ausrücken sowie einen Bereichsfilter.
  
 
==Attribute==
 
==Attribute==
Zeile 15: Zeile 15:
 
! Name || Type || Required || Default || ab IES Version
 
! Name || Type || Required || Default || ab IES Version
 
|-
 
|-
| <code>xxx</code>
+
| <code>name</code>
| [[Attribute]]
+
| [[Variable]]
 
| Ja
 
| Ja
 
| None
 
| None
 
| 1
 
| 1
 
|-
 
|-
| <code>xxx</code>
+
| <code>collection</code>
 +
| [[Collection]]
 +
| Ja
 +
| None
 +
| 1
 +
|-
 +
| <code>attribute</code>
 +
| [[Text]]
 +
| Nein
 +
| das Element selbst
 +
| 1
 +
|-
 +
| <code>filter</code>
 +
| [[Text]] / [[Regular-Expression]]
 +
| Nein
 +
| None
 +
| 1
 +
|-
 +
| <code>ic</code>
 +
| [[Condition]]
 +
| Nein
 +
| <code>false</code>
 +
| 1
 +
|-
 +
| <code>invert</code>
 +
| [[Condition]]
 +
| Nein
 +
| <code>false</code>
 +
| 1
 +
|-
 +
| <code>mode</code>
 +
| [[Text]]
 +
| Nein
 +
| <code>simple</code>
 +
| 1
 +
|-
 +
| <code>locale</code>
 +
| [[Locale]]
 +
| Nein
 +
| None
 +
| 1
 +
|-
 +
| <code>from</code>
 
| [[Text]]
 
| [[Text]]
 
| Nein
 
| Nein
Zeile 27: Zeile 69:
 
| 1
 
| 1
 
|-
 
|-
| <code>xxx</code>
+
| <code>to</code>
| [[Expression]]
+
| [[Text]]
 
| Nein
 
| Nein
 
| None
 
| None
 
| 1
 
| 1
 
|-
 
|-
| <code>xxx</code>
+
| <code>type</code>
| [[Locale]]
+
| [[Text]]
 +
| Nein
 +
| None
 +
| 1
 +
|-
 +
| <code>format</code>
 +
| [[Text]]
 
| Nein
 
| Nein
 
| None
 
| None
Zeile 40: Zeile 88:
 
|}
 
|}
  
;<code>xxx</code>
+
;<code>name</code>
:xxx.
+
:Name der gefilterten Liste.
 +
 
 +
;<code>collection</code>
 +
:Name der zu filternden Liste.
 +
 
 +
;<code>attribute</code>
 +
:Attribut, auf das der Filter angewendet werden soll.
 +
 
 +
;<code>filter</code>
 +
:Die Filterdefinition für die Filtertypen Wildcard und regulärer Ausdruck. Der mit dem Attribut <code>mode</code> angegebene Modus wird verwendet. Ohne Angabe eines Modus wird <code>simple</code> verwendet.
  
;<code>xxx</code>
+
;<code>ic</code>
:xxx.
+
:Wird Ignore-Case auf <code>true</code> gesetzt, so wird Groß- und Kleinschreibung nicht berücksichtigt. Dieses Attribut gilt nur für die Filtertypen Wildcard und regulärer Ausdruck.
 +
 
 +
;<code>invert</code>
 +
:Invertiet die Logik des Filters. Alle Elemnt die normalerweise herausgefiltert würde, bilden die Filterergebnis.
 +
 
 +
;<code>mode</code>
 +
:Auswahl des Filter-Mechanismus.
 +
:;simple (Wildcard-Filter)
 +
::Der Filter kann die Wildcards * für beliebige Zeichen und ? für ein beliebiges Zeichen enthalten. So würde eine mit
 +
::<source lang="text">
 +
a*
 +
</source>
 +
::gefilterte Liste nur Elemente enthalten die mit a beginnen
 +
:;regex (Reguläre Ausdrücke)
 +
::Für komplexe Filter stehen [[Regular-Expression|Reguläre Ausdrücke]] (POSIX) zur Verfügung. So würde im regex-Filtermode eine mit
 +
::<source lang="text">
 +
[a-dA-D].*
 +
</source>
 +
gefilterte Liste nur Elemente enthalten, die mit dem Buchstaben A, a, B, b, C, c, d oder D beginnen.
 +
 
 +
;<code>locale</code>
 +
:Dieses Attribut dient zur Auswahl der zu verwendenden Sprache bei mehrsprachiger Variablen.
 +
 
 +
;<code>from</code>
 +
:Der Wert für den Beginn eines Bereiches, z.B. "Aa" oder "100". Ob der Wert als Text, Zahl oder Datum interpretiert wird, kann mit dem Attribut type angegeben werden.
 +
 
 +
;<code>to</code>
 +
:Der Wert für das Ende eines Bereiches, z.B. "Zz" oder "999". Ob der Wert als Text, Zahl oder Datum interpretiert wird, kann mit dem Attribut <code>type</code> angegeben werden.
 +
 
 +
;<code>type</code>
 +
:Der Typ für die <code>from</code> und <code>to</code> Attribute: <code>number</code>, <code>text</code>, <code>date</code>.
 +
:;number
 +
::Das Elemet oder Attribut wird als Zahl interpretiert. Es wird nicht herausgefiltert, wenn es innerhalb des Zahlenbereiches liegt, der mit <code>from</code> und <code>to</code> definiert wurde.
 +
:;text
 +
::Das Elemet oder Attribut wird als Text interpretiert. Es wird nicht herausgefiltert, wenn der Text mit den Zeichen beginnt, die in dem mit <code>from</code> und <code>to</code> definierten Bereich liegen.
 +
:;date
 +
::Das Elemet oder Attribut wird als Datum interpretiert. Es wird nicht herausgefiltert, wenn es innerhalb des Datumbereiches liegt, der mit <code>from</code> und <code>to</code> definiert wurde.
 +
 
 +
;<code>format</code>
 +
:Das Format des Datums, wenn die <code>from</code> und <code>to</code> Werte als Datum interpretiert werden sollen.
  
 
==Beispiele==
 
==Beispiele==
  
====Beispiel A====
+
====Filtern einer Liste====
  
 
Template Quelltext
 
Template Quelltext
 
<source lang="xml">
 
<source lang="xml">
xxx
+
<%-- zu filternde Liste erzeugen --%>
</source>
+
<sp:list name="names" action="add" value="Christian"/>
 +
<sp:list name="names" action="add" value="Karsten"/>
 +
<sp:list name="names" action="add" value="Gaby"/>
 +
<sp:list name="names" action="add" value="Markus"/>
 +
<sp:list name="names" action="add" value="Tina"/>
 +
<sp:list name="names" action="add" value="Marion"/>
 +
<sp:list name="names" action="add" value="Jörg"/>
  
Ausgabe
+
<%-- Einfacher Filter --%>
<source lang="text">
+
Liste filtern (Filter ?ar* - simple-mode):<br>
xxx
+
<sp:filter name="filteredList" collection="names" filter="?ar*" mode="simple"/>
</source>
+
<sp:loop collection="filteredList" item="it">
 +
  <sp:print name="it"/><br>
 +
</sp:loop>
  
====Beispiel B====
+
<br>
  
Template Quelltext
+
<%-- Filter mit regulärem Ausdruck --%>
<source lang="xml">
+
Liste filtern (Filter [a-lA-L].* - regex-mode):<br>
xxx
+
<sp:filter name="filteredList" collection="names" filter="[a-lA-L].*" mode="regex"/>
 +
<sp:loop collection="filteredList" item="it">
 +
  <sp:print name="it"/><br>
 +
</sp:loop>
 
</source>
 
</source>
  
 
Ausgabe
 
Ausgabe
 
<source lang="text">
 
<source lang="text">
xxx
+
Liste filtern (Filter ?ar* - simple-mode):
 +
Karsten
 +
Markus
 +
Marion
 +
 
 +
Liste filtern (Filter [a-lA-L].* - regex-mode):
 +
Christian
 +
Karsten
 +
Gaby
 +
Jörg
 
</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_des_Inhalts_prüfen]]
 
[[Category:Qualität_der_Sprache_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>
-->
 

Version vom 7. Juni 2008, 12:49 Uhr

Name

<sp:filter> - Filtert Elemente aus einer Liste.

Syntax

<sp:filter name="filteredList" collection="listToFilter" attribute="name" filter="*Example*" ic="true" mode="simple"/>

Beschreibung

Mit diesem Tag können Listen gefiltert werden. Listen-Elemete werden nach bestimmten Kriterien aus der Liste entfernt. Es gibt drei Arten von Filtern: Einen einfachen Wildcard-Filter, der * und ? unterstützt, weiter gibt es für komplexe Anforderungen einen Filter aus regulären Ausrücken sowie einen Bereichsfilter.

Attribute

Name Type Required Default ab IES Version
name Variable Ja None 1
collection Collection Ja None 1
attribute Text Nein das Element selbst 1
filter Text / Regular-Expression Nein None 1
ic Condition Nein false 1
invert Condition Nein false 1
mode Text Nein simple 1
locale Locale Nein None 1
from Text Nein None 1
to Text Nein None 1
type Text Nein None 1
format Text Nein None 1
name
Name der gefilterten Liste.
collection
Name der zu filternden Liste.
attribute
Attribut, auf das der Filter angewendet werden soll.
filter
Die Filterdefinition für die Filtertypen Wildcard und regulärer Ausdruck. Der mit dem Attribut mode angegebene Modus wird verwendet. Ohne Angabe eines Modus wird simple verwendet.
ic
Wird Ignore-Case auf true gesetzt, so wird Groß- und Kleinschreibung nicht berücksichtigt. Dieses Attribut gilt nur für die Filtertypen Wildcard und regulärer Ausdruck.
invert
Invertiet die Logik des Filters. Alle Elemnt die normalerweise herausgefiltert würde, bilden die Filterergebnis.
mode
Auswahl des Filter-Mechanismus.
simple (Wildcard-Filter)
Der Filter kann die Wildcards * für beliebige Zeichen und ? für ein beliebiges Zeichen enthalten. So würde eine mit
a*
gefilterte Liste nur Elemente enthalten die mit a beginnen
regex (Reguläre Ausdrücke)
Für komplexe Filter stehen Reguläre Ausdrücke (POSIX) zur Verfügung. So würde im regex-Filtermode eine mit
[a-dA-D].*

gefilterte Liste nur Elemente enthalten, die mit dem Buchstaben A, a, B, b, C, c, d oder D beginnen.

locale
Dieses Attribut dient zur Auswahl der zu verwendenden Sprache bei mehrsprachiger Variablen.
from
Der Wert für den Beginn eines Bereiches, z.B. "Aa" oder "100". Ob der Wert als Text, Zahl oder Datum interpretiert wird, kann mit dem Attribut type angegeben werden.
to
Der Wert für das Ende eines Bereiches, z.B. "Zz" oder "999". Ob der Wert als Text, Zahl oder Datum interpretiert wird, kann mit dem Attribut type angegeben werden.
type
Der Typ für die from und to Attribute: number, text, date.
number
Das Elemet oder Attribut wird als Zahl interpretiert. Es wird nicht herausgefiltert, wenn es innerhalb des Zahlenbereiches liegt, der mit from und to definiert wurde.
text
Das Elemet oder Attribut wird als Text interpretiert. Es wird nicht herausgefiltert, wenn der Text mit den Zeichen beginnt, die in dem mit from und to definierten Bereich liegen.
date
Das Elemet oder Attribut wird als Datum interpretiert. Es wird nicht herausgefiltert, wenn es innerhalb des Datumbereiches liegt, der mit from und to definiert wurde.
format
Das Format des Datums, wenn die from und to Werte als Datum interpretiert werden sollen.

Beispiele

Filtern einer Liste

Template Quelltext

<%-- zu filternde Liste erzeugen --%>
<sp:list name="names" action="add" value="Christian"/>
<sp:list name="names" action="add" value="Karsten"/>
<sp:list name="names" action="add" value="Gaby"/>
<sp:list name="names" action="add" value="Markus"/>
<sp:list name="names" action="add" value="Tina"/>
<sp:list name="names" action="add" value="Marion"/>
<sp:list name="names" action="add" value="Jörg"/>

<%-- Einfacher Filter --%>
Liste filtern (Filter ?ar* - simple-mode):<br>
<sp:filter name="filteredList" collection="names" filter="?ar*" mode="simple"/>
<sp:loop collection="filteredList" item="it">
  <sp:print name="it"/><br>
</sp:loop>

<br>

<%-- Filter mit regulärem Ausdruck --%>
Liste filtern (Filter [a-lA-L].* - regex-mode):<br>
<sp:filter name="filteredList" collection="names" filter="[a-lA-L].*" mode="regex"/>
<sp:loop collection="filteredList" item="it">
  <sp:print name="it"/><br>
</sp:loop>

Ausgabe

Liste filtern (Filter ?ar* - simple-mode):
Karsten
Markus
Marion

Liste filtern (Filter [a-lA-L].* - regex-mode):
Christian
Karsten
Gaby
Jörg