Linktree (SP-Tag)
Name
<sp:linktree> — erzeugt Baumstrukturen aus Verlinkungen
Syntax
<sp:linktree name="sp_sitemap" attributes="sp_headline, sp_teaser" parentlink="sp_parent.link" rootElement="${!{myroot}}" />
Beschreibung
Der linktree
-Tag kann zur Definition einer Baumstruktur verwendet werden, die sich z.B. aus der Verlinkung von Artikeln über Systemlinks ergibt. Dieser Tag kann nur im in
-Modus betrieben werden, da er nur zur Definition des Baumes dient. Anhand der Definition wird im Server der Baum aufgebaut und bei Änderungen der einzelnen Artikel aktuell gehalten. Ein Anwendungsfall für sp:linktree
sind Sitemaps. Für die Ausgabe wird der Baum als Liste von ElementNode-Objekten mit sp:loop
ausgegeben. Die in dem Baum enthaltenen Artikel enthalten nicht den vollständigen Datensatz, sondern nur die in attributes
definierten Felder. Artikel die diesen Tag verwenden, werden auch nur aktualisiert, wenn sich Felder von Artikeln des Baums ändern, die in attributes
definiert wurden.
Attribute
Name | Type | Required | Default | ab IES Version |
---|---|---|---|---|
name
|
Variable | Ja | None | 1 |
rootelement
|
ID | Nein | ID des Artikels | 1 |
attributes
|
Text | Nein | None | 1 |
parentlink
|
Text | Nein | None | 1 |
localelink
|
Condition | Nein | false | 1 |
sortkeys
|
Text | Nein | None | 1 |
sortsequences
|
Text | Nein | asc | 1 |
sorttypes
|
Text | Nein | text | 1 |
locale
|
Locale | Nein | None | 1 |
name
- Name der Variable für das LinkTree-Objekt.
rootelement
- Das Root-Element des Baums. Ist kein Root-Element angegeben, wird der dazugehörige Artikel als Root-Element verwendet.
attributes
- Eine Kommaseparierte Liste von Attributen, die der Artikel enthalten und auf dessen Änderungen er reagieren soll.
parentlink
- Name des Links, der auf einen, in der zu erstellenden Struktur, übergeordneten Artikel verweist.
localelink
- Mit diesem Attribut kann angegeben werden, ob ein Linktree sprachabhängig aufgebaut werden soll. Ist localelink auf
true
gesetzt, wird die Sprache des Publikationsbereichs für den Tree verwendet. Die Parentlinks die den Baum ergeben, müssen dann mit einer Sprache definiert werden.
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 mehrsprachigen Variablen.
Beispiele
Template Quelltext
<sp:io type="in">
<sp:linktree
name="linktree"
attributes="sp_title"
parentlink="linktree_parent.navlink"
rootelement="${!{linktree.root}.id}"
sortkeys="name"/>
</sp:io>
<sp:io type="out">
<sp:collection
name="treelist"
object="linktree"
action="addAll"/>
<%-- Ausgabe des Baums mit sp:loop als unordered-list --%>
<ul>
<sp:loop collection="treelist" item="line">
<sp:if name="lastLevel" gt="${line.level}">
<sp:set name="i" expression="${lastLevel} - ${line.level}"/>
<sp:for index="j" from="1" to="${i}">
</ul></li>
</sp:for>
</sp:if>
<sp:set name="lastLevel" value="${line.level}"/>
<li>
<sp:print name="line.title"/><br>
<sp:if condition="${line.hasNodes} == false"></li></sp:if>
<sp:if condition="${line.hasNodes} == true"><ul></sp:if>
</sp:loop>
<sp:for index="j" from="0" condition="${lastLevel} > 0 && ${j} < ${lastLevel}">
</ul></li>
</sp:for>
</ul>
</sp:io>