Collection (SP-Tag)

Aus SiteparkWiki
(Weitergeleitet von Sp:collection)
Zur Navigation springen Zur Suche springen

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'"/>