Collection (Objekt): Unterschied zwischen den Versionen

Aus SiteparkWiki
Zur Navigation springen Zur Suche springen
 
(7 dazwischenliegende Versionen von 2 Benutzern werden nicht angezeigt)
Zeile 33: Zeile 33:
 
| 1
 
| 1
 
| 2.17
 
| 2.17
 +
|-
 +
| translatableSplittedText
 +
| [[TranslatableSplittedText]]
 +
| Kann Strings und TranslatableText enthalten und wird als ein String ausgegeben
 +
| 3.16.3
 +
|
 
|}
 
|}
  
==Methoden==
+
==Übersicht==
 
{| class="prettytable"
 
{| class="prettytable"
 
|- class="hintergrundfarbe1"
 
|- class="hintergrundfarbe1"
Zeile 97: Zeile 103:
 
| <code>toMap([[String]] key)</code>
 
| <code>toMap([[String]] key)</code>
 
| [[String]]
 
| [[String]]
| Erzeugt aus einer Collection eine Map, wobei die Objekte in der Collection ein Feld mit dem übergebenen Name in <code>key</code> besitzten müssen.
+
| Erzeugt aus einer Collection eine Map, wobei die Objekte in der Collection ein Feld mit dem übergebenen Name in <code>key</code> besitzen müssen.
 
| 2.13
 
| 2.13
 
|-
 
|-
Zeile 104: Zeile 110:
 
| Liefert die Anzahl der Werte in der Liste
 
| Liefert die Anzahl der Werte in der Liste
 
| 2.17
 
| 2.17
 +
|-
 +
| <code>pluck([[String]] property)</code>
 +
| [[Collection]]
 +
| Liefert eine Liste mit den, anhand des Keys, ermittelten Eigenschaften der Listen-Items
 +
| 2.38
 +
|-
 +
| <code>reversed()</code>
 +
| [[Collection]]
 +
| Liefert eine neue Liste mit invertierter Reihenfolge zurück
 +
| 3.19.0
 
|-
 
|-
 
|}
 
|}
  
;<code>[[Boolean]] contains(Object o)</code>
+
==Methoden==
 +
===<code>contains(Object o)</code>===
 
:Liefert <code>true</code>, wenn das Objekt in der Collection enthalten ist. Alle Objekte der Liste werden mit <code>o</code> verglichen. Stimmt ein Objekt der Collection mit <code>o</code> überein wird <code>true</code> zurückgeliefert, sonst <code>false</code>. Zu beachten ist, das die Objekte nicht direkt miteinander verglichen werden, sondern zunächst in ein ''Vergleichsobjekt'' umgewandelt werden. Bei Objekten, die eine [[ID]] besitzen wird diese ID als ''Vergleichsobjekt'' verwendet. Daraus folgt, dass nicht die Objekte selber miteinander verglichen werden, sondern lediglich deren IDs.
 
:Liefert <code>true</code>, wenn das Objekt in der Collection enthalten ist. Alle Objekte der Liste werden mit <code>o</code> verglichen. Stimmt ein Objekt der Collection mit <code>o</code> überein wird <code>true</code> zurückgeliefert, sonst <code>false</code>. Zu beachten ist, das die Objekte nicht direkt miteinander verglichen werden, sondern zunächst in ein ''Vergleichsobjekt'' umgewandelt werden. Bei Objekten, die eine [[ID]] besitzen wird diese ID als ''Vergleichsobjekt'' verwendet. Daraus folgt, dass nicht die Objekte selber miteinander verglichen werden, sondern lediglich deren IDs.
:;Parameter
+
:'''Parameter'''
::;<code>Object o</code>
+
::<code>Object o</code> - Objekt, das mit den Objekten der Collection verglichen werden soll.
:::Objekt, das mit den Objekten der Collection verglichen werden soll.
+
:'''Rückgabewert'''
:;Rückgabewert
+
::Boolean - <code>true</code>, wenn das Objekt enhalten ist, sonst <code>false</code>.
::;Boolean
+
 
:::<code>true</code>, wenn das Objekt enhalten ist, sonst <code>false</code>.
+
===<code>intersect(Collection c)</code>===
;<code>[[Collection]] intersect(Collection c)</code>
 
 
:Liefert die Schnittmenge der aktuellen List mit der übergebenen. Alle Objekte der Liste werden mit den Objekten von <code>c</code> verglichen. Stimmt ein Objekt der Collection mit <code>o</code> überein, ist es in der zurück gegebenen liste einthalten. Zu beachten ist, das die Objekte nicht direkt miteinander verglichen werden, sondern zunächst in ein ''Vergleichsobjekt'' umgewandelt werden. Bei Objekten, die eine [[ID]] besitzen wird diese ID als ''Vergleichsobjekt'' verwendet. Daraus folgt, dass nicht die Objekte selber miteinander verglichen werden, sondern lediglich deren IDs.
 
:Liefert die Schnittmenge der aktuellen List mit der übergebenen. Alle Objekte der Liste werden mit den Objekten von <code>c</code> verglichen. Stimmt ein Objekt der Collection mit <code>o</code> überein, ist es in der zurück gegebenen liste einthalten. Zu beachten ist, das die Objekte nicht direkt miteinander verglichen werden, sondern zunächst in ein ''Vergleichsobjekt'' umgewandelt werden. Bei Objekten, die eine [[ID]] besitzen wird diese ID als ''Vergleichsobjekt'' verwendet. Daraus folgt, dass nicht die Objekte selber miteinander verglichen werden, sondern lediglich deren IDs.
:;Parameter
+
:'''Parameter'''
::;<code>Object o</code>
+
::<code>Object o</code> - Objekt, das mit den Objekten der Collection verglichen werden soll.
:::Objekt, das mit den Objekten der Collection verglichen werden soll.
+
:'''Rückgabewert'''
:;Rückgabewert
+
::Collection - Schnittmenge der beiden Collections.
::;Collection
+
 
:::Schnittmenge der beiden Collections.
+
===<code>toMap([[String]] key)</code>===
;<code>[[Map]] toMap([[String]] key)</code>
 
 
:Erzeugt aus einer Collection eine Map, wobei die Objekte in der Collection ein Feld mit dem übergebenen Name in <code>key</code> besitzten müssen. Der Wert des Feldes wird als Key der Map verwendet.
 
:Erzeugt aus einer Collection eine Map, wobei die Objekte in der Collection ein Feld mit dem übergebenen Name in <code>key</code> besitzten müssen. Der Wert des Feldes wird als Key der Map verwendet.
:;Parameter
+
:'''Parameter'''
::;<code>[[String]] key</code>
+
::<code>[[String]] key</code> - Feldname dessen Wert als Key für die Map verwendet wird.
:::Feldname dessen Wert als Key für die Map verwendet wird.
+
:'''Rückgabewert'''
:;Rückgabewert
+
::Map - Map mit den Einträgen der Liste gemappt auf des Feld <code>key</code>
::;Map
+
 
:::Map mit den Einträgen der Liste gemappt auf des Feld <code>key</code>
+
===<code>toJson([[Number]] indentFactor, [[Number]] indent, [[String]] indentChar)</code>===
;<code>[[String]] toJson([[Number]] indentFactor, [[Number]] indent, [[String]] indentChar)</code>
 
 
:Erzeugt aus den Daten der Map einen String in JSON, der mit sp:print ausgegeben werden kann.
 
:Erzeugt aus den Daten der Map einen String in JSON, der mit sp:print ausgegeben werden kann.
:;Parameter
+
:'''Parameter'''
::;<code>[[Number]] indentFactor</code>
+
::<code>[[Number]] indentFactor</code> - Anzahl der Einrückungen pro Ebene. Optional (Default-Wert: 0).
:::Anzahl der Einrückungen pro Ebene. Optional (Default-Wert: 0).
+
::<code>[[Number]] indent</code> - Initiale Anzahl der Einrückungs-Zeichen. Optional (Default-Wert: 0).
::;<code>[[Number]] indent</code>
+
::<code>[[String]] indentChar</code> - Zeichen, das als Einrückungszeichen verwendet werden soll. Optional (Default-Wert: ' ').
:::Initiale Anzahl der Einrückungs-Zeichen. Optional (Default-Wert: 0).
+
:'''Rückgabewert'''
::;<code>[[String]] indentChar</code>
+
::String - JSON als String.
:::Zeichen, das als Einrückungszeichen verwendet werden soll. Optional (Default-Wert: ' ').
+
 
:;Rückgabewert
+
===<code>toPhpArray([[Number]] indentFactor, [[Number]] indent, [[String]] indentChar)</code>===
::;String
 
:::JSON als String.
 
;<code>[[String]] toPhpArray([[Number]] indentFactor, [[Number]] indent, [[String]] indentChar)</code>
 
 
:Erzeugt aus den Daten der Map einen String in PHP-Array-Notation, der mit sp:print ausgegeben werden kann.
 
:Erzeugt aus den Daten der Map einen String in PHP-Array-Notation, der mit sp:print ausgegeben werden kann.
:;Parameter
+
:'''Parameter'''
::;<code>[[Number]] indentFactor</code>
+
::<code>[[Number]] indentFactor</code> - Anzahl der Einrückungen pro Ebene. Optional (Default-Wert: 0).
:::Anzahl der Einrückungen pro Ebene. Optional (Default-Wert: 0).
+
::<code>[[Number]] indent</code> - Initiale Anzahl der Einrückungs-Zeichen. Optional (Default-Wert: 0).
::;<code>[[Number]] indent</code>
+
::<code>[[String]] indentChar</code> - Zeichen, das als Einrückungszeichen verwendet werden soll. Optional (Default-Wert: ' ').
:::Initiale Anzahl der Einrückungs-Zeichen. Optional (Default-Wert: 0).
+
:'''Rückgabewert'''
::;<code>[[String]] indentChar</code>
+
::String - PHPArray als String.
:::Zeichen, das als Einrückungszeichen verwendet werden soll. Optional (Default-Wert: ' ').
+
 
:;Rückgabewert
+
===<code>join([[String]] separator)</code>===
::;String
 
:::PHPArray als String.
 
;<code>[[String]] join([[String]] separator)</code>
 
 
:Erzeugt aus der Collection einen String, bei dem zwischen jedem Element die angegebene Zeichenkette eingefügt wird.
 
:Erzeugt aus der Collection einen String, bei dem zwischen jedem Element die angegebene Zeichenkette eingefügt wird.
:Beispiel:
+
:'''Parameter'''
 +
::<code>[[String]] separator</code> - Zeichen, das zwischen die verketteten Elemente der Liste eingefügt wird.
 +
:'''Rückgabewert'''
 +
::String - String aus den Elementen der Collection.
 +
:'''Beispiel'''
 +
<source lang="xml">
 
  <sp:collection name="myList" action="add" value="peter"/>
 
  <sp:collection name="myList" action="add" value="peter"/>
 
  <sp:collection name="myList" action="add" value="paul"/>
 
  <sp:collection name="myList" action="add" value="paul"/>
Zeile 164: Zeile 177:
 
wird zu
 
wird zu
 
  peter or paul or mary  
 
  peter or paul or mary  
:;Parameter
+
</source>
::;<code>[[String]] separator</code>
+
 
:::Zeichen, das zwischen die verketteten Elemente der Liste eingefügt wird.
+
 
:;Rückgabewert
+
===<code>pluck([[String]] property)</code>===
::;String
+
:Liefert eine Liste mit den, anhand des Keys, ermittelten Eigenschaften der Listen-Items
:::String aus den Elementen der Collection.
+
:'''Parameter'''
 +
::<code>[[String]] property</code> - Argument welches von jedem Listen-Element abgefragt werden soll
 +
:'''Rückgabewert'''
 +
::Collection - Liste der ermittelten Eigenschaften
 +
:'''Beispiel'''
 +
<source lang="xml">
 +
<sp:set name="pathNames" object="system.information.path.pluck('name')">
 +
<sp:loop collection="pathNames" item="_name">
 +
    <sp:print name="_name" />
 +
</sp:loop>
 +
</source>
 +
 
  
 
<noinclude>
 
<noinclude>
 
[[Category:Objekte]]
 
[[Category:Objekte]]
 
</noinclude>
 
</noinclude>

Aktuelle Version vom 14. August 2024, 15:56 Uhr

Name

Collection - Liste beliebiger Objekte

Beschreibung

Eine Collection enthält eine beliebige Liste von Objekten. In einer Collection können Objekte hinzugefügt, geändert und gelöscht werden (siehe sp:collection). Auf einzelne Objekte der Collection kann mit Hilfe eines Index zugegriffen werden. Dazu steht folgende Syntax zur Verfügung.

myCollection[3]

Bei der Angabe des Index 3 wird das 4. Element der Collection zurückgeliefert, da die Collection mit dem Index 0 beginnt. Bei der Angabe eines negativen Index können die letzten Objekte der Collection erfragt werden, ohne das die Länge der Collection bekannt sein muß.

myCollection[-1]

Bei der Angabe des Index -1 wird das letzte Objekt der Collection zurückgeliefert. Bei einem Index von -2 würde das zweitletzte Objekt zurückgeliefert werden usw.

Um alle Objekte einer Collection nacheinander in einer Schleife zu durchlaufen kann der Tag sp:loop verwendet werden.

Ausgabe

Bei der Ausgabe dieses Objektes werden alle Einträgen kommasepariert ausgebeben.

Sonderregelung

Um den Umgang mit Collections zu vereinfachen gilt folgende Sondereregelung:

Wird auf die Collection ein Attribut abgefragt, das die Collection nicht besitzt, so wird dieses Attribut von dem ersten Eintrag der Liste abgefragt. Besitzt auch das erste Element der Liste dieses Attribut nicht, wird nichts zurück geliefert.

Attribute

Attribut Type Beschreibung ab IES Version veraltet ab IES Version
size Number Anzahl der Objekte in der Collection 1 2.17
translatableSplittedText TranslatableSplittedText Kann Strings und TranslatableText enthalten und wird als ein String ausgegeben 3.16.3

Übersicht

Methode Rückgabewert Beschreibung ab IES Version
contains(Object o) Boolean Liefert true, wenn das Objekt in der Liste enthalten ist. 1
toJson() String Erzeugt aus den Daten der Map einen String in JSON, der mit sp:print ausgegeben werden kann. 2.9
toJson(Number indentFactor) String Erzeugt aus den Daten der Map einen String in JSON, der mit sp:print ausgegeben werden kann. 2.9
toJson(Number indentFactor, Number indent) String Erzeugt aus den Daten der Map einen String in JSON, der mit sp:print ausgegeben werden kann. 2.9
toJson(Number indentFactor, Number indent, String indentChar) String Erzeugt aus den Daten der Map einen String in JSON, der mit sp:print ausgegeben werden kann. 2.9
toPhpArray() String Erzeugt aus den Daten der Map einen String in PHP-Array-Notation, der mit sp:print ausgegeben werden kann. 2.9
toPhpArray(Number indentFactor) String Erzeugt aus den Daten der Map einen String in PHP-Array-Notation, der mit sp:print ausgegeben werden kann. 2.9
toPhpArray(Number indentFactor, Number indent) String Erzeugt aus den Daten der Map einen String in PHP-Array-Notation, der mit sp:print ausgegeben werden kann. 2.9
toPhpArray(Number indentFactor, Number indent, String indentChar) String Erzeugt aus den Daten der Map einen String in PHP-Array-Notation, der mit sp:print ausgegeben werden kann. 2.9
join(String separator) String Erzeugt aus der Collection einen String, bei dem zwischen jedem Element die angegebene Zeichenkette eingefügt wird. 2.13
intersect(Collection c) Collection Liefert die Schnittmenge der aktuellen List mit der übergebenen. 2.13
toMap(String key) String Erzeugt aus einer Collection eine Map, wobei die Objekte in der Collection ein Feld mit dem übergebenen Name in key besitzen müssen. 2.13
length() Number Liefert die Anzahl der Werte in der Liste 2.17
pluck(String property) Collection Liefert eine Liste mit den, anhand des Keys, ermittelten Eigenschaften der Listen-Items 2.38
reversed() Collection Liefert eine neue Liste mit invertierter Reihenfolge zurück 3.19.0

Methoden

contains(Object o)

Liefert true, wenn das Objekt in der Collection enthalten ist. Alle Objekte der Liste werden mit o verglichen. Stimmt ein Objekt der Collection mit o überein wird true zurückgeliefert, sonst false. Zu beachten ist, das die Objekte nicht direkt miteinander verglichen werden, sondern zunächst in ein Vergleichsobjekt umgewandelt werden. Bei Objekten, die eine ID besitzen wird diese ID als Vergleichsobjekt verwendet. Daraus folgt, dass nicht die Objekte selber miteinander verglichen werden, sondern lediglich deren IDs.
Parameter
Object o - Objekt, das mit den Objekten der Collection verglichen werden soll.
Rückgabewert
Boolean - true, wenn das Objekt enhalten ist, sonst false.

intersect(Collection c)

Liefert die Schnittmenge der aktuellen List mit der übergebenen. Alle Objekte der Liste werden mit den Objekten von c verglichen. Stimmt ein Objekt der Collection mit o überein, ist es in der zurück gegebenen liste einthalten. Zu beachten ist, das die Objekte nicht direkt miteinander verglichen werden, sondern zunächst in ein Vergleichsobjekt umgewandelt werden. Bei Objekten, die eine ID besitzen wird diese ID als Vergleichsobjekt verwendet. Daraus folgt, dass nicht die Objekte selber miteinander verglichen werden, sondern lediglich deren IDs.
Parameter
Object o - Objekt, das mit den Objekten der Collection verglichen werden soll.
Rückgabewert
Collection - Schnittmenge der beiden Collections.

toMap(String key)

Erzeugt aus einer Collection eine Map, wobei die Objekte in der Collection ein Feld mit dem übergebenen Name in key besitzten müssen. Der Wert des Feldes wird als Key der Map verwendet.
Parameter
String key - Feldname dessen Wert als Key für die Map verwendet wird.
Rückgabewert
Map - Map mit den Einträgen der Liste gemappt auf des Feld key

toJson(Number indentFactor, Number indent, String indentChar)

Erzeugt aus den Daten der Map einen String in JSON, der mit sp:print ausgegeben werden kann.
Parameter
Number indentFactor - Anzahl der Einrückungen pro Ebene. Optional (Default-Wert: 0).
Number indent - Initiale Anzahl der Einrückungs-Zeichen. Optional (Default-Wert: 0).
String indentChar - Zeichen, das als Einrückungszeichen verwendet werden soll. Optional (Default-Wert: ' ').
Rückgabewert
String - JSON als String.

toPhpArray(Number indentFactor, Number indent, String indentChar)

Erzeugt aus den Daten der Map einen String in PHP-Array-Notation, der mit sp:print ausgegeben werden kann.
Parameter
Number indentFactor - Anzahl der Einrückungen pro Ebene. Optional (Default-Wert: 0).
Number indent - Initiale Anzahl der Einrückungs-Zeichen. Optional (Default-Wert: 0).
String indentChar - Zeichen, das als Einrückungszeichen verwendet werden soll. Optional (Default-Wert: ' ').
Rückgabewert
String - PHPArray als String.

join(String separator)

Erzeugt aus der Collection einen String, bei dem zwischen jedem Element die angegebene Zeichenkette eingefügt wird.
Parameter
String separator - Zeichen, das zwischen die verketteten Elemente der Liste eingefügt wird.
Rückgabewert
String - String aus den Elementen der Collection.
Beispiel
 <sp:collection name="myList" action="add" value="peter"/>
 <sp:collection name="myList" action="add" value="paul"/>
 <sp:collection name="myList" action="add" value="mary"/>
 <sp:print name="myList.join(' or ')"/>
wird zu
 peter or paul or mary


pluck(String property)

Liefert eine Liste mit den, anhand des Keys, ermittelten Eigenschaften der Listen-Items
Parameter
String property - Argument welches von jedem Listen-Element abgefragt werden soll
Rückgabewert
Collection - Liste der ermittelten Eigenschaften
Beispiel
 <sp:set name="pathNames" object="system.information.path.pluck('name')">
 <sp:loop collection="pathNames" item="_name">
    <sp:print name="_name" />
 </sp:loop>