Collection (SP-Tag): Unterschied zwischen den Versionen

Aus SiteparkWiki
Zur Navigation springen Zur Suche springen
 
(21 dazwischenliegende Versionen von 7 Benutzern werden nicht angezeigt)
Zeile 8: Zeile 8:
 
==Beschreibung==
 
==Beschreibung==
 
Mit Hilfe von <code>sp:collection</code> können Listen erzeugt und verändert werden. Listen können beliebige Objekte enthalten. Je nach angegebener Aktion können Listenelemente hinzugefügt, ersetzt oder gelöscht werden.
 
Mit Hilfe von <code>sp:collection</code> können Listen erzeugt und verändert werden. Listen können beliebige Objekte enthalten. Je nach angegebener Aktion können Listenelemente hinzugefügt, ersetzt oder gelöscht werden.
 +
 +
Listen können erzeugt werden, indem die einzelnen Einträge über die <code>action</code> <code>add</code>, bzw. <code>addAll</code> hinzugefügt werden. Listen können aber auch über Suchabfragen mit dem Attribut <code>query</code> oder dem Attribut <code>object</code> (wenn ein [[QueryInformation]]-Objekt übergeben wird) erzeugt werden.
 +
 +
 +
'''(Ab Version 2.0.3)'''
 +
 +
Werte können über die Attribute value oder object gesetzte werden. Alternativ ist es auch möglich den Wert im Body des Tags zu setzten. Hierbei wird zunächst der Body ausgeführt und das Ergebnis verwendet
 +
 +
<source lang="xml">
 +
  <sp:collection name="family" action="add"><sp:print name="father"/></sp:collection>
 +
</source>
  
 
==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>
| [[Variable|Variablename]]
+
| [[Variable]]
 
| Ja
 
| Ja
 
| None
 
| None
Zeile 28: Zeile 39:
 
| <code>value</code>
 
| <code>value</code>
 
| [[Text]]
 
| [[Text]]
| Ja, für add und replace
+
| Ja oder object oder im Body des Tags, für add und replace
 
| None
 
| None
 
| 1
 
| 1
Zeile 34: Zeile 45:
 
| <code>object</code>
 
| <code>object</code>
 
| [[Attribute]]
 
| [[Attribute]]
| Ja, für add und replace
+
| Ja oder value oder im Body des Tags, für add und replace
 
| None
 
| None
 
| 1
 
| 1
 +
|-
 +
| <code>expression</code>
 +
| [[Expression]]
 +
| Ja oder value bzw. object bzw. condition oder im Body des Tags
 +
| None
 +
| 2.11
 +
|-
 +
| <code>condition</code>
 +
| [[Condition]]
 +
| Ja oder value bzw. object bzw. expresson oder im Body des Tags
 +
| None
 +
| 2.11
 
|-
 
|-
 
| <code>index</code>
 
| <code>index</code>
Zeile 45: Zeile 68:
 
|-
 
|-
 
| <code>query</code>
 
| <code>query</code>
| [[Query]]
+
| [[SPQL|Query]]
 
| Nein
 
| Nein
 
| None
 
| None
 
| 1
 
| 1
 
|-
 
|-
 +
| <code>default</code>
 +
| [[Text]]
 +
| Nein
 +
| None
 +
| 2.13
 +
|-
 
| <code>publisher</code>
 
| <code>publisher</code>
 
| [[Text]]
 
| [[Text]]
Zeile 73: Zeile 102:
  
 
;<code>action</code>
 
;<code>action</code>
:Aktion, die ausgeführt werden soll. Es existieren die Aktionen add, addAll, remove, clear, new, replace, remoceFirst, removeLast und unique.
+
:Aktion, die ausgeführt werden soll. Es existieren die Aktionen <code>add</code>, <code>addAll</code>, <code>remove</code>, <code>clear</code>, <code>new</code>, <code>replace</code>, <code>removeFirst</code>, <code>removeLast</code> und <code>unique</code>.
 
:;add
 
:;add
::Fügt ein Element an das Ende der Liste. Ist ein index angegeben, so wird das Element an dieser Position eingefügt. Das ursprüngliche Elemente und alle nachfolgenden Elemente werden eine Position weiter geschoben.
+
::Fügt ein Element am Ende der Liste ein. Ist ein <code>index</code> angegeben, so wird das Element an dieser Position eingefügt. Das ursprüngliche Elemente und alle nachfolgenden Elemente werden eine Position weiter geschoben.
 +
:;addNotEmpty
 +
::Fügt ein Element am Ende der Liste ein, wenn der Wert nicht null oder ein Leerstring ist. Ist ein <code>index</code> angegeben, so wird das Element an dieser Position eingefügt. Das ursprüngliche Elemente und alle nachfolgenden Elemente werden eine Position weiter geschoben.
 
:;addAll
 
:;addAll
::Mit dieser Aktion können mehrere Elemente der Liste hinzugefügt werden. Dazu muß <code>object</code> vom Typ [[Collection]] sein.
+
::Mit dieser Aktion können mehrere Elemente der Liste hinzugefügt werden. Dazu muss <code>object</code> vom Typ [[Collection]] sein.
 
:;remove
 
:;remove
::Löscht ein Element aus der List. Ist index angegeben, wird das Element an der Index-Position gelöscht und alle nachfolgenden Elemente rutschen eine Position na oben. Ist object  bzw. value angegeben wird das Element in der Liste gesucht und gelöscht.
+
::Löscht ein Element aus der Liste. Ist <code>index</code> angegeben, wird das Element an der Index-Position gelöscht und alle nachfolgenden Elemente rutschen eine Position nach oben. Ist <code>object</code> bzw. <code>value</code> angegeben, wird das Element in der Liste gesucht und gelöscht.
 
:;clear
 
:;clear
 
::Löscht alle Elemente aus der Liste.
 
::Löscht alle Elemente aus der Liste.
Zeile 85: Zeile 116:
 
::Erzeugt eine neue leere Liste.
 
::Erzeugt eine neue leere Liste.
 
:;replace
 
:;replace
::Ersetzt ein Element der Liste. <code>index</code> gibt hierbei die Position des Elementes an, das durch <code>object</code> bzw. <code>value</code> ersetzt werden soll.
+
::Ersetzt ein Element der Liste. <code>index</code> gibt hierbei die Position des Elements an, das durch <code>object</code> bzw. <code>value</code> ersetzt werden soll.
 
:;removeFirst
 
:;removeFirst
 
::Löscht das erste Element der Liste.
 
::Löscht das erste Element der Liste.
Zeile 92: Zeile 123:
 
:;unique
 
:;unique
 
::Entfernt alle mehrfach vorkommenden Elemente aus der Liste.
 
::Entfernt alle mehrfach vorkommenden Elemente aus der Liste.
 +
:;insert
 +
::Fügt ein Element ein und verschiebt alle nachfolgenden Elemente um eine Position. Wenn in eine Position eingefügt wird, die noch nicht belegt ist, wird das delta mit <code>null</code> aufgefüllt.
  
 
;<code>value</code>
 
;<code>value</code>
Zeile 98: Zeile 131:
 
;<code>object</code>
 
;<code>object</code>
 
:Ein [[Object|Objekt]] das mit der Liste verarbeitet werden soll. Ist <code>object</code> vom Typ [[QueryInformation]], so gilt das gleiche wie beim Attribut <code>query</code>.
 
:Ein [[Object|Objekt]] das mit der Liste verarbeitet werden soll. Ist <code>object</code> vom Typ [[QueryInformation]], so gilt das gleiche wie beim Attribut <code>query</code>.
 +
 +
;<code>expression</code>
 +
:Die [[Expression]] wird ausgewertet und als Wert in die Variable geschrieben.
 +
 +
;<code>condition</code>
 +
:Die [[Condition]] wird ausgewertet und als Bedingung in die Variable geschrieben.
  
 
;<code>index</code>
 
;<code>index</code>
Zeile 104: Zeile 143:
 
;<code>query</code>
 
;<code>query</code>
 
:Fügt in die Collection die Ergebnisse der übergebenen [[SPQL|Suchabfrage]] ein. Ist dieses Attibut gesetzt, ist kein <code>action</code> nötig. Die Aktion entspricht einem <code>addAll</code>. Es kann jedoch eine andere Aktion angegeben werden.
 
:Fügt in die Collection die Ergebnisse der übergebenen [[SPQL|Suchabfrage]] ein. Ist dieses Attibut gesetzt, ist kein <code>action</code> nötig. Die Aktion entspricht einem <code>addAll</code>. Es kann jedoch eine andere Aktion angegeben werden.
 +
 +
;<code>default</code>
 +
:Der Text, der verwendet wird, wenn die Inhalte von value, expression und body leer sind.
 +
 +
;<code>publisher</code>
 +
:Wird der Collection-Tag in Verbindung mit Suchabfragen verwendet (durch <code>query</code> oder <code>object</code>), ist ein Publikationsbereich erforderlich, mit der die Suchabfrage ausgeführt werden soll. Mit diesem Attribut können ein oder mehrere Publikationsbereiche angegeben werden (durch Kommata getrennt). Entweder werden die Publikationsbereiche durch ihren Anchor angegeben, oder folgende Schlüsselwörter verwendet:
 
:;current
 
:;current
::Der aktuelle Publikationsbereich. Dieser steht im out- und preview-Modus zur Verfügung.
+
::Der aktuelle Publikationsbereich. Dieser steht im <code>out</code>- und <code>preview</code>-Modus als default-Wert zur Verfügung.
 
:;ignore
 
:;ignore
::Ignoriert die Publikationsberech und liefert die Treffer unabhängig davon, ob sie publiziert sind oder nicht.
+
::Ignoriert die Publikationsbereiche und liefert die Treffer unabhängig davon, ob sie publiziert sind oder nicht.
 
:;all
 
:;all
::Alle Publikationsbereiche des Mandanten.
+
::Liefert die Treffer, wenn sie in irgendeinem der dem Mandanten zugewiesenen Publikationsbereiche publiziert sind.
 
:;auto
 
:;auto
::Entspricht im out- und preview-Modus dem Schlüsselwort <code>current</code> und im in-Moduls <code>ignore</code>.
+
::Entspricht im <code>out</code>- und <code>preview</code>-Modus dem Schlüsselwort <code>current</code> und im <code>in</code>-Modus <code>ignore</code>.
 
 
;<code>publisher</code>
 
:Wird der Collection-Tag in Verbindung mit Suchabfragen verwendet (durch query oder object), ist ein Publikationsbereicht erforderlich, mit der die Suchabfrage ausgeführt werden soll. Mit diesem Attribute können ein oder mehrer Publikationsbereiche angegeben werden (durch Kommata getrennt). Entweder werden die Publikationsbereiche durch ihren Anchor angegeben oder folgende Schlüsselwörter verwentet:
 
  
 
;<code>locale</code>
 
;<code>locale</code>
:Dieses Attribut dient zur Auswahl der zu verwendende Sprache bei mehrsprachiger Variablen.
+
:Dieses Attribut dient zur Auswahl der zu verwendende Sprache bei mehrsprachigen Variablen.
  
 
;<code>scope</code>
 
;<code>scope</code>
Zeile 159: Zeile 201:
 
<noinclude>
 
<noinclude>
 
[[Category:SP-Tags]]
 
[[Category:SP-Tags]]
[[Category:Qualität_der_Sprache_prüfen]]
 
 
[[Category:Qualität_des_Codes_prüfen]]
 
[[Category:Qualität_des_Codes_prüfen]]
 
[[Category:Beispiel_überarbeiten_testen]]
 
[[Category:Beispiel_überarbeiten_testen]]
 
</noinclude>
 
</noinclude>

Aktuelle Version vom 13. November 2015, 14:04 Uhr

Name

<sp:collection> - Erzeugt oder ändert eine Liste

Syntax

<sp:collection name="variable" action="add" value="come back at ${myTime}" index="2" />

Beschreibung

Mit Hilfe von sp:collection können Listen erzeugt und verändert werden. Listen können beliebige Objekte enthalten. Je nach angegebener Aktion können Listenelemente hinzugefügt, ersetzt oder gelöscht werden.

Listen können erzeugt werden, indem die einzelnen Einträge über die action add, bzw. addAll hinzugefügt werden. Listen können aber auch über Suchabfragen mit dem Attribut query oder dem Attribut object (wenn ein QueryInformation-Objekt übergeben wird) erzeugt werden.


(Ab Version 2.0.3)

Werte können über die Attribute value oder object gesetzte werden. Alternativ ist es auch möglich den Wert im Body des Tags zu setzten. Hierbei wird zunächst der Body ausgeführt und das Ergebnis verwendet

  <sp:collection name="family" action="add"><sp:print name="father"/></sp:collection>

Attribute

Name Type Required Default ab IES Version
name Variable Ja None 1
action Text Ja außer für query None 1
value Text Ja oder object oder im Body des Tags, für add und replace None 1
object Attribute Ja oder value oder im Body des Tags, für add und replace None 1
expression Expression Ja oder value bzw. object bzw. condition oder im Body des Tags None 2.11
condition Condition Ja oder value bzw. object bzw. expresson oder im Body des Tags None 2.11
index Expression Ja, für remove und replace None 1
query Query Nein None 1
default Text Nein None 2.13
publisher Text Nein auto 1
locale Locale Nein None 1
scope Scope Nein request 1
name
Name der Liste.
action
Aktion, die ausgeführt werden soll. Es existieren die Aktionen add, addAll, remove, clear, new, replace, removeFirst, removeLast und unique.
add
Fügt ein Element am Ende der Liste ein. Ist ein index angegeben, so wird das Element an dieser Position eingefügt. Das ursprüngliche Elemente und alle nachfolgenden Elemente werden eine Position weiter geschoben.
addNotEmpty
Fügt ein Element am Ende der Liste ein, wenn der Wert nicht null oder ein Leerstring ist. Ist ein index angegeben, so wird das Element an dieser Position eingefügt. Das ursprüngliche Elemente und alle nachfolgenden Elemente werden eine Position weiter geschoben.
addAll
Mit dieser Aktion können mehrere Elemente der Liste hinzugefügt werden. Dazu muss object vom Typ Collection sein.
remove
Löscht ein Element aus der Liste. Ist index angegeben, wird das Element an der Index-Position gelöscht und alle nachfolgenden Elemente rutschen eine Position nach oben. Ist object bzw. value angegeben, wird das Element in der Liste gesucht und gelöscht.
clear
Löscht alle Elemente aus der Liste.
new
Erzeugt eine neue leere Liste.
replace
Ersetzt ein Element der Liste. index gibt hierbei die Position des Elements an, das durch object bzw. value ersetzt werden soll.
removeFirst
Löscht das erste Element der Liste.
removeLast
Löscht das letzte Element der Liste.
unique
Entfernt alle mehrfach vorkommenden Elemente aus der Liste.
insert
Fügt ein Element ein und verschiebt alle nachfolgenden Elemente um eine Position. Wenn in eine Position eingefügt wird, die noch nicht belegt ist, wird das delta mit null aufgefüllt.
value
Ein Text, der mit der Liste verarbeitet werden soll.
object
Ein Objekt das mit der Liste verarbeitet werden soll. Ist object vom Typ QueryInformation, so gilt das gleiche wie beim Attribut query.
expression
Die Expression wird ausgewertet und als Wert in die Variable geschrieben.
condition
Die Condition wird ausgewertet und als Bedingung in die Variable geschrieben.
index
Listen-Position mit der eine Aktion ausgeführt werden soll.
query
Fügt in die Collection die Ergebnisse der übergebenen Suchabfrage ein. Ist dieses Attibut gesetzt, ist kein action nötig. Die Aktion entspricht einem addAll. Es kann jedoch eine andere Aktion angegeben werden.
default
Der Text, der verwendet wird, wenn die Inhalte von value, expression und body leer sind.
publisher
Wird der Collection-Tag in Verbindung mit Suchabfragen verwendet (durch query oder object), ist ein Publikationsbereich erforderlich, mit der die Suchabfrage ausgeführt werden soll. Mit diesem Attribut können ein oder mehrere Publikationsbereiche angegeben werden (durch Kommata getrennt). Entweder werden die Publikationsbereiche durch ihren Anchor angegeben, oder folgende Schlüsselwörter verwendet:
current
Der aktuelle Publikationsbereich. Dieser steht im out- und preview-Modus als default-Wert zur Verfügung.
ignore
Ignoriert die Publikationsbereiche und liefert die Treffer unabhängig davon, ob sie publiziert sind oder nicht.
all
Liefert die Treffer, wenn sie in irgendeinem der dem Mandanten zugewiesenen Publikationsbereiche publiziert sind.
auto
Entspricht im out- und preview-Modus dem Schlüsselwort current und im in-Modus ignore.
locale
Dieses Attribut dient zur Auswahl der zu verwendende Sprache bei mehrsprachigen Variablen.
scope
Namensraum, in dem die Variable definiert ist. Für diesen Tag ist der Page- und Request-Scope möglich (page, request).

Beispiele

Eine Liste von Strings erstellen

Template Quelltext

<sp:collection name="myList" action="add" value="peter"/>
<sp:collection name="myList" action="add" value="paul"/>
<sp:collection name="myList" action="add" value="mary"/>

Zwei Listen zu einer Liste vereinen

Template Quelltext

<sp:collection name="family" action="add" value="father"/>
<sp:collection name="family" action="add" value="mother"/>
<sp:collection name="family" action="add" value="sister"/>
<sp:collection name="family" action="add" value="brother"/>

<sp:collection name="friends" action="add" value="girl friend"/>
<sp:collection name="friends" action="add" value="boy friend"/>

<sp:collection name="nice_people" action="addAll" object="family"/>
<sp:collection name="nice_people" action="addAll" object="friends"/>

Suchabfrage ausführen

Template Quelltext

<sp:collection name="queryResult" query="infolevel = 'content'"/>