Livetree (SP-Tag)

Aus SiteparkWiki
Zur Navigation springen Zur Suche springen

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 wenn sp: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