Linktree (SP-Tag)

Aus SiteparkWiki
(Weitergeleitet von Linktree (SP-Code))
Zur Navigation springen Zur Suche springen

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 (deprecated ab Version 2.1) 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 (deprecated ab Version 2.1)
Eine Kommaseparierte Liste von Attributen, die der Artikel enthalten und auf dessen Änderungen er reagieren soll.
Deprecated. Dieses Attribut wird nicht mehr benötigt. Die Abhängigkeiten werden automatisch erkannt (siehe Dependencies-Service, LinkTree-Service)
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

Navigationsbaum

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>