IDLink (Objekt): Unterschied zwischen den Versionen
Frankl (Diskussion | Beiträge) |
Ole (Diskussion | Beiträge) |
||
Zeile 70: | Zeile 70: | ||
</sp:loop> | </sp:loop> | ||
</ul></sp:if> | </ul></sp:if> | ||
+ | </code> | ||
+ | </div> | ||
+ | |||
+ | |||
+ | * <code>referenceLinks</code>-Attribute der Objekte [[Article]], [[Resource]], [[Media]] | ||
+ | * <code>referenceLinks()</code>-Methode der Objekte [[Article]], [[Resource]], [[Media]] | ||
+ | <div class="note">'''''1. Beispiel:''' | ||
+ | Es existieren Artikel, die über einen Link mit dem aktuellen Artikel verknüpft sind. | ||
+ | Nun sollen auf einer Seite alle von diesem Artikel verknüpften Artikel gelistet werden. | ||
+ | <code> | ||
+ | <%-- Sammle alle CityGov-Seiten, die von dem aktuellen Artikel über die Variable "sp_page" (vom Typ Link) verlinkt sind, ein. CityGov-Seiten haben die Variable sp_vv_objectType gesetzt. --%> | ||
+ | <%-- wenn diese Seite eine CityGov-Seite inkludiert, dann zusätzlich VV-Styles und Scripte laden --%> | ||
+ | <sp:filter name="vvPage" collection="system.information.referenceLinks('sp_page.link')" attribute="child.sp_vv_objectType" filter="*"/> | ||
+ | <sp:if name="vvPage.size" gt="0"> | ||
+ | </code> | ||
+ | </div> | ||
+ | |||
+ | <div class="note"> ''''' 2. Beispiel:''' | ||
+ | Der Slider-Abschnitt besitzt ein Linkfeld "sp_page". Hierüber findet eine Verknüpfung zu einer anderen Seite statt. Nur wenn dieses Feld gefüllt ist, wird ein Slider angezeigt. Da nun "sp_page" nicht eindeutig ist (andere Templateabschnitte können auch so ein Feld beinhalten), muss zusätzlich geprüft werden, ob sp_page ein Link-Object innerhalb des Template-Abschnitts "Slideshow" ist. Das kann wiederum über das Templateauswahlfeld "sp_iterateType" geprüft werden. | ||
+ | |||
+ | <code> | ||
+ | <%-- wenn diese Seite vom Typ "content" einen Slider inkludiert, dann zusätzliche Scripte laden --%> | ||
+ | <sp:filter name="sliderPage" collection="system.information.referenceLinks('sp_page.link')" attribute="item.parent.parent.parent.sp_iterateType" filter="${!{template.g09.snip.slideshow}}"/> | ||
+ | <sp:if condition="${sp_infoLevel.contains('content')} && ${sliderPage.size} > 0"> | ||
</code> | </code> | ||
</div> | </div> |
Aktuelle Version vom 11. September 2012, 15:45 Uhr
Name
IDLink - Verknüpfung zwischen zwei Elementen
Beschreibung
Der IDLink beschreibt die Verknüpfung zweier Elemente. Elemente können über Links, Systemlinks und Navlinks miteinander verbunden werden. Diese Links werden über Artikelfelder definiert. Mit diesem Objekt können Informationen über die Verknüpfung erfragt werden. Beispielsweise über welches Feld, in welchem Iterator-Element die Verknüpfung definiert ist.
Beispiel: Artikel (A) besitzt einen Link auf Artikel (B)
(A) ----(sp_myiterator[2].sp_mylink.link
)----> (B)
Ein IDLink-Objekt für diese Verknüpfung würde folgende Informationen bereitstellen:
(A) <--(parent
)-- (IDLink) --(child
)--> (B)
(IDLink).type
=link
(IDLink).field
=sp_myiterator[2].sp_mylink
(IDLink).item
= SimpleInformation von (A):sp_myiterator[2].sp_mylink
(IDLink).name
=sp_mylink.link
.item.parent
verwendet werden. (Liefert in diesem Fall das ListItemInformation-Objekt (A):sp_myiterator[2]
)Über folgende Objekte ein ein IDLink Objekt erlangt werden:
link
-Attribut des ElementNode-ObjektesreferrerLinks
-Attribute der Objekte Article, Resource, MediareferrerLinks()
-Methode der Objekte Article, Resource, Media
Es existieren Einrichtungen, die über einen Link ein oder mehreren Kategorien zugeordnet sind.
Nun sollen auf einer Seite "Kategorie" alle mit dieser Kategorie verknüpften Einrichtungen gelistet werden.
<%-- Alle Einrichtungen listen, welche diese Kategorie verwenden --%>
<ul>
<sp:loop collection="!{informationpool.einrichtungen}.sortedElements" item="e">
<sp:condition>
<sp:if name="parent.anchor" eq="informationpool.themen">
<sp:loop collection="e.themenliste" item="it">
<sp:if name="it.sp_link.link.name" eq="${name}">
<li><a href="<sp:print name="e.relativeUrl" />"><sp:print name="e.name" /></a></li>
<sp:break />
</sp:if>
</sp:loop>
</sp:if>
<sp:elseif name="parent.anchor" eq="informationpool.zielgruppen">
<sp:loop collection="e.zielgruppen" item="it">
<sp:if name="it.sp_link.link.name" eq="${name}">
<li><a href="<sp:print name="e.relativeUrl" />"><sp:print name="e.name" /></a></li>
<sp:break />
</sp:if>
</sp:loop>
</sp:elseif>
<sp:elseif name="parent.anchor" eq="informationpool.therapieformen">
<sp:loop collection="e.therapieformen" item="it">
<sp:if name="it.sp_link.link.name" eq="${name}">
<li><a href="<sp:print name="e.relativeUrl" />"><sp:print name="e.name" /></a></li>
<sp:break />
</sp:if>
</sp:loop>
</sp:elseif>
</sp:condition>
</sp:loop>
</ul>
ersetzen durch
<%-- Alle Einrichtungen listen, welche diese Kategorie verwenden --%>
<sp:sort name="sortedList" collection="referrerLinks('sp_link.link')" keys="parent.name"/><sp:if name="sortedList.size" gt="0">
<ul>
<sp:loop collection="sortedList" item="it">
<li><a href="<sp:print name="it.parent.url"/>"><sp:print name="it.parent.name"/></a></li>
</sp:loop>
</ul></sp:if>
referenceLinks
-Attribute der Objekte Article, Resource, MediareferenceLinks()
-Methode der Objekte Article, Resource, Media
Es existieren Artikel, die über einen Link mit dem aktuellen Artikel verknüpft sind.
Nun sollen auf einer Seite alle von diesem Artikel verknüpften Artikel gelistet werden.
<%-- Sammle alle CityGov-Seiten, die von dem aktuellen Artikel über die Variable "sp_page" (vom Typ Link) verlinkt sind, ein. CityGov-Seiten haben die Variable sp_vv_objectType gesetzt. --%>
<%-- wenn diese Seite eine CityGov-Seite inkludiert, dann zusätzlich VV-Styles und Scripte laden --%>
<sp:filter name="vvPage" collection="system.information.referenceLinks('sp_page.link')" attribute="child.sp_vv_objectType" filter="*"/>
<sp:if name="vvPage.size" gt="0">
Der Slider-Abschnitt besitzt ein Linkfeld "sp_page". Hierüber findet eine Verknüpfung zu einer anderen Seite statt. Nur wenn dieses Feld gefüllt ist, wird ein Slider angezeigt. Da nun "sp_page" nicht eindeutig ist (andere Templateabschnitte können auch so ein Feld beinhalten), muss zusätzlich geprüft werden, ob sp_page ein Link-Object innerhalb des Template-Abschnitts "Slideshow" ist. Das kann wiederum über das Templateauswahlfeld "sp_iterateType" geprüft werden.
<%-- wenn diese Seite vom Typ "content" einen Slider inkludiert, dann zusätzliche Scripte laden --%>
<sp:filter name="sliderPage" collection="system.information.referenceLinks('sp_page.link')" attribute="item.parent.parent.parent.sp_iterateType" filter="${!{template.g09.snip.slideshow}}"/>
<sp:if condition="${sp_infoLevel.contains('content')} && ${sliderPage.size} > 0">
Attribute
Attribut | Type | Beschreibung | ab IES Version |
---|---|---|---|
parent | ID | ID des Elementes, das als übergeordnet gilt, wenn die Verknüpfung einen Teil einer Baumstruktur abbildet. | 1 |
child | ID | ID des Elementes, das als untergeordnet gilt, wenn die Verknüpfung einen Teil einer Baumstruktur abbildet. | 1 |
type | String | Linktyp (z.B. link , systemlink , ...)
|
1 |
field | String | Variablenname über den der Link erzeugt wurde | 1 |
locale | Locale | Verwendete Sprache | 1 |
item | SimpleInformation | Item über die der Link erzeugt wurde. | 2.1.0 |
name | String | Name des Links | 2.1.0 |