Filter (SP-Tag): Unterschied zwischen den Versionen
Zur Navigation springen
Zur Suche springen
K (hat „Sp:filter“ nach „Filter (SP-Tag)“ verschoben) |
|||
Zeile 1: | Zeile 1: | ||
==Name== | ==Name== | ||
− | <sp:filter> - | + | <sp:filter> - Filtert Elemente aus einer Liste. |
==Syntax== | ==Syntax== | ||
<source lang="xml"> | <source lang="xml"> | ||
− | <sp: | + | <sp:filter name="filteredList" collection="listToFilter" attribute="name" filter="*Example*" ic="true" mode="simple"/> |
</source> | </source> | ||
==Beschreibung== | ==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== | ==Attribute== | ||
Zeile 15: | Zeile 15: | ||
! Name || Type || Required || Default || ab IES Version | ! Name || Type || Required || Default || ab IES Version | ||
|- | |- | ||
− | | <code> | + | | <code>name</code> |
− | | [[ | + | | [[Variable]] |
| Ja | | Ja | ||
| None | | None | ||
| 1 | | 1 | ||
|- | |- | ||
− | | <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> | + | | <code>to</code> |
− | | [[ | + | | [[Text]] |
| Nein | | Nein | ||
| None | | None | ||
| 1 | | 1 | ||
|- | |- | ||
− | | <code> | + | | <code>type</code> |
− | | [[ | + | | [[Text]] |
+ | | Nein | ||
+ | | None | ||
+ | | 1 | ||
+ | |- | ||
+ | | <code>format</code> | ||
+ | | [[Text]] | ||
| Nein | | Nein | ||
| None | | None | ||
Zeile 40: | Zeile 88: | ||
|} | |} | ||
− | ;<code> | + | ;<code>name</code> |
− | : | + | :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> | + | ;<code>ic</code> |
− | : | + | :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== | ||
− | ==== | + | ====Filtern einer Liste==== |
Template Quelltext | Template Quelltext | ||
<source lang="xml"> | <source lang="xml"> | ||
− | + | <%-- 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> | ||
</source> | </source> | ||
Ausgabe | Ausgabe | ||
<source lang="text"> | <source lang="text"> | ||
− | + | Liste filtern (Filter ?ar* - simple-mode): | |
+ | Karsten | ||
+ | Markus | ||
+ | Marion | ||
+ | |||
+ | Liste filtern (Filter [a-lA-L].* - regex-mode): | ||
+ | Christian | ||
+ | Karsten | ||
+ | Gaby | ||
+ | Jörg | ||
</source> | </source> | ||
− | + | ||
− | |||
− | |||
<noinclude> | <noinclude> | ||
[[Category:SP-Tags]] | [[Category:SP-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 wirdsimple
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
undto
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
undto
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
undto
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
undto
definiert wurde.
format
- Das Format des Datums, wenn die
from
undto
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