Linktree (SP-Tag): Unterschied zwischen den Versionen

Aus SiteparkWiki
Zur Navigation springen Zur Suche springen
K (hat „Sp:linktree“ nach „Linktree (SP-Code)“ verschoben)
Zeile 8: Zeile 8:
  
 
==Beschreibung==
 
==Beschreibung==
Der <code>linktree</code>-Tag kann zur Definition einer Baumstruktur verwendet werden, die sich aus der Verlinkung von Artikeln über z.B. System-Links 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 aktuallisiert, wenn sich Felder von Artikeln des Baums ändern, die in attributes definiert wurden.
+
Der <code>linktree</code>-Tag kann zur Definition einer [[Baum|Baumstruktur]] verwendet werden, die sich aus der Verlinkung von Artikeln über z.B. [[sp:link|Systemlinks]] ergibt. Dieser Tag kann nur im <code>in</code>-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 <code>sp:linktree</code> sind Sitemaps. Für die Ausgabe wird der Baum als Liste von [[ElementNode]]-Objekten mit <code>[[sp:loop]]</code> ausgegeben. Die in dem Baum enthaltenen Artikel enthalten nicht den vollständigen Datensatz sondern nur die in <code>attributes</code> definierten Felder. Artikel, die diesen Tag verwenden, werden auch nur aktuallisiert, wenn sich Felder von Artikeln des Baums ändern, die in <code>attributes</code> definiert wurden.
 
 
Weitergehende Information zu Bäumen sind unter ??? zu finden.
 
  
 
==Attribute==
 
==Attribute==
Zeile 17: Zeile 15:
 
! Name || Type || Required || Default || ab IES Version
 
! Name || Type || Required || Default || ab IES Version
 
|-
 
|-
| <code>xxx</code>
+
| <code>name</code>
| [[Attribute]]
+
| [[Variable]]
 
| Ja
 
| Ja
 
| None
 
| None
 
| 1
 
| 1
 
|-
 
|-
| <code>xxx</code>
+
| <code>rootElement</code>
 +
| [[ID]]
 +
| Nein
 +
| ID des Artikels
 +
| 1
 +
|-
 +
| <code>attributes</code>
 +
| [[Text]]
 +
| Nein
 +
| None
 +
| 1
 +
|-
 +
| <code>parentlink</code>
 
| [[Text]]
 
| [[Text]]
 
| Nein
 
| Nein
Zeile 29: Zeile 39:
 
| 1
 
| 1
 
|-
 
|-
| <code>xxx</code>
+
| <code>localelink</code>
| [[Expression]]
+
| [[Condition]]
 +
| Nein
 +
| false
 +
| 1
 +
|-
 +
| <code>sortkeys</code>
 +
| [[Text]]
 
| Nein
 
| Nein
 
| None
 
| None
 
| 1
 
| 1
 
|-
 
|-
| <code>xxx</code>
+
| <code>sortsequences</code>
 +
| [[Text]]
 +
| Nein
 +
| asc
 +
| 1
 +
|-
 +
| <code>sorttypes</code>
 +
| [[Text]]
 +
| Nein
 +
| text
 +
| 1
 +
|-
 +
| <code>locale</code>
 
| [[Locale]]
 
| [[Locale]]
 
| Nein
 
| Nein
Zeile 42: Zeile 70:
 
|}
 
|}
  
;<code>xxx</code>
+
;<code>name</code>
:xxx.
+
:Name der Variable für das LinkTree-Objekt.
 +
 
 +
;<code>rootElement</code>
 +
:Das Root-Element des Baums. Ist kein Root-Element angegeben wird der dazugehörige Artikel als Root-Element verwendet.
 +
 
 +
;<code>attributes</code>
 +
:Eine Kommasepariete Liste von Attributen, die der Artikel enthalten und auf dessen Änderungen er reagieren soll.
 +
 
 +
;<code>parentlink</code>
 +
:Name des Links, der auf einen, in der zu erstellenden Struktur, übergeordneten Artikel verweist.
 +
 
 +
;<code>localelink</code>
 +
:Mit diesem Attribut kann angegeben werden, ob ein Linktree Sprachabhängig aufgebaut werden soll. Wird localelink auf <code>true</code> 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.
 +
 
 +
;<code>sortkeys</code>
 +
:Attribute des Artikels, nach denen der Baum sortiert werden soll. Jede Ebene des Baums wird für sich sortiert.
  
;<code>xxx</code>
+
;<code>sortsequences</code>
:xxx.
+
:Für jedes Sortierkriterium muss eine Sortierreihenfolge festgelegt werden, mit der bestimmt wird, ob mit dem Sortierkriterium aufsteigend (<code>desc</code>), absteigend (<code>asc</code>) oder zufällig (<code>random</code>) sortiert wird.
 +
 
 +
;<code>sorttypes</code>
 +
: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.
 +
 
 +
;<code>locale</code>
 +
:Dieses Attribut dient zur Auswahl der zu verwendende Sprache bei mehrsprachigen Variablen.
  
 
==Beispiele==
 
==Beispiele==
  
====Beispiel A====
+
====Navigationsbaum====
  
 
Template Quelltext
 
Template Quelltext
 
<source lang="xml">
 
<source lang="xml">
xxx
+
<sp:io type="in">
</source>
+
  <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>
  
Ausgabe
+
  </sp:loop>
<source lang="text">
 
xxx
 
</source>
 
  
====Beispiel B====
+
  <sp:for index="j" from="0" condition="${lastLevel} > 0 && ${j} < ${lastLevel}">
 +
    </ul></li>
 +
  </sp:for>
  
Template Quelltext
+
  </ul>
<source lang="xml">
+
</sp:io>
xxx
 
 
</source>
 
</source>
  
Ausgabe
 
<source lang="text">
 
xxx
 
</source>
 
  
<!--
 
bitte die passenden Kategorien auswählen und Kommentar entfernen
 
--------------------------------------------------------------
 
 
<noinclude>
 
<noinclude>
 
[[Category:SP-Tags]]
 
[[Category:SP-Tags]]
[[Category:SPT-Tags]]
 
 
[[Category:Qualität_des_Inhalts_prüfen]]
 
[[Category:Qualität_des_Inhalts_prüfen]]
 
[[Category:Qualität_der_Sprache_prüfen]]
 
[[Category:Qualität_der_Sprache_prüfen]]
 
[[Category:Qualität_des_Codes_prüfen]]
 
[[Category:Qualität_des_Codes_prüfen]]
 
</noinclude>
 
</noinclude>
-->
 

Version vom 7. Juni 2008, 23:33 Uhr

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 aus der Verlinkung von Artikeln über z.B. 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 aktuallisiert, 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 Kommasepariete 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. Wird 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>