Livetree (SP-Tag)
Name
<sp:livetree> - Mit diesem Tag lassen sich Bäume erzeugen, verändern und in ihnen suchen.
Syntax
<sp:livetree name="tree"
name="livetree"
parentlink="myparent"
rootElement="${!{myroot}}"
node="node"
sortkeys="created, name"
sortsequences="desc, asc"
sorttypes="date, text"
action="${action}"/>
Beschreibung
Der Livetree-Tag dient zur Ausgabe und Steuerung von Bäumen, die sich durch Verknüpfungen von Artikeln über Links ergeben. Im Gegensatz zu sp:linktree
, der die Baumstruktur zwischenspeichert, werden bei sp:livetree
bei jedem Aufruf alle Verknüpfungen, mit dem im parentlink
angegebenen Namen, gesucht und der Baum daraus erstellt.
Mit rootElement
wird der Startpunkt des Baumes definiert. Alle Artikel, die über parentlink
mit dem rootElement
verknüpft sind bilden die erste Unterebene. Alle Artikel die mit den Artikel dieser Unterebene verknüpft sind bilden die zweite Unterebene und so weiter. Es werden nur Aritkel in dem Baum aufgenommen, die in dem Publisher publisher
publiziert sind. Mit Hilfe von sortkeys
, sortsequences
und sorttypes
können die Elemente des Baumes sortiert werden.
Im Initialzustand ist der Baum geschlossen. Das bedeutet das sp:livetree
nur das rootElement
zurückliefert. Erst durch die Angabe von einem node
und der Aktion open
wird der Baum geöffnet. Liegt node in einer tieferen Ebene werden alle Elemente geöffnet, die zu node
führen. node
ist ein Variablenname dessen Wert eine ID sein muß. Solange für node
der gleiche Variablenname verwendet wird, bleiben die geöffneten Elemente offen, auch wenn sp:livetree
erneut aufgerufen wird.
Attribute
Name | Type | Required | Default | ab IES Version |
---|---|---|---|---|
name
|
Variable | Ja | None | 1 |
action
|
Text | Nein | flip | 1 |
node
|
Variable | Ja | None | 1 |
rootElement
|
ID | Ja | None | 1 |
publisher
|
ID | Ja | None | 1 |
parentlink
|
Text | Ja | None | 1 |
sortkeys
|
Text | Nein | None | 1 |
sortsequences
|
Text | Nein | asc für alle Sortierkriterien
|
1 |
sorttypes
|
Text | Nein | text für alle Sortierkriterien
|
1 |
locale
|
Locale | Nein | None | 1 |
name
- Name der Variable für die Collection, die den Baum in Form von ElementNodes enthält.
action
- Das Kommando, das auf das Element in
node
angewendet werden soll.- flip
- Offenen Node schliessen / Geschlossenen Node öffnen.
- open
- Node öffnen.
- close
- Node schliessen.
- expand
- Node und den gesamten Pfad öffnen.
- none
- Es wird keine Aktion ausgeführt.
node
- Der Name der Variablen, Element dessen Wert eine Element-ID des Elementes sein muß, auf die sich
action
bezieht. Solange der gleiche Variablenname verwendet wird, bleiben die geöffneten Elemente offen, auch wennsp:livetree
erneut aufgerufen wird (innerhalb einer Session).
rootElement
- Das Root-Element des Baumes.
parentlink
- Name des Links, der auf einen, in der zu erstellenden Struktur, übergeordneten Artikel verweist.
publisher
- ID des Publishers, in dem die Artikel des Baumes publiziert sein müssen.
sortkeys
- Attribute des Artikels, nach denen der Baum sortiert werden soll. Jede Ebene des Baums wird für sich sortiert.
sortsequences
- Für jedes Sortierkriterium muss eine Sortierreihenfolge festgelegt werden, mit der bestimmt wird ob mit dem Sortierkriterium aufsteigend (
desc
), absteigend (asc
) oder zufällig (random
) sortiert wird.
sorttypes
- Für jedes Sortierkriterium kann ein Sortiertyp festgelegt werden, der bestimmt, wie sortiert wird. Dabei ist eine Sortierung von Zeichenketten (
text
) oder eine Sortierung von Zahlen (number
) möglich.
locale
- Dieses Attribut dient zur Auswahl der zu verwendende Sprache bei mehrsprachiger Variablen.
Beispiele
Livetree mit Parameterübergabe
sp:livetree
verwendet zwei Parameter. Zum einen myNode, welches den Artikel angibt, auf die die Aktion angewendet werden soll. Zum anderen myAction in der die auszuführende Aktion steht. Nach der Aktion wird der Baum ausgegeben.
Template Quelltext
<sp:livetree
name="myTree"
rootElement="${!{linktree.root}}"
node="myNode"
action="${action}"/>
parentlink="linktree_parent.navlink"
publisher="${!{publisherAnchor}}"
sortkeys="name"
Artikel-Baum:<br>
<sp:loop collection="myTree" item="it">
<sp:for index="i" from="0" to="${it.level}">.</sp:for> <sp:print name="it.name"/>
</sp:loop>
Ausgabe
. Root Artikel
.. Sub Artikel 1
... Sub-Sub Artikel 1
.. Sub ARtikel 2
... Sub-Sub Artikel 2
.... Sub-Sub-Sub Artikel 1