Das Listenelement besteht aus verschiedenen in XML abgelegten Parametern, die das Verhalten der Liste steuern:
<wd:item name="Liste" en:name="List" icon="/deGlobal/wGlobal/layout/images/element-icons/element_list.gif" type="list.standard"> <wd:fragment id="listtemplate" type="src.file">/deGlobal/wGlobal/layout/templates/lists/default.wFilelist.php</wd:fragment> <wd:fragment id="entriesPage" type="char.text">3</wd:fragment> <wd:fragment id="limitPages" type="char.text">0</wd:fragment> <wd:fragment id="orderBy" type="char.text">/wd:extension/wd:meta/wd:publication/@time</wd:fragment> <wd:fragment id="orderDir" type="char.text">desc</wd:fragment> <wd:fragment id="orderType" type="char.text">nat</wd:fragment> <wd:fragment id="dir" type="src.dir">$wMastertemplateInsert['projectPath']/aktuelles/meldungen</wd:fragment> <wd:fragment id="categories" type="char.text"/> <wd:fragment id="dirRecursive" type="src.default"/> <wd:fragment id="file" type="src.default"/> <wd:fragment id="allowKeywordfilter" type="char.default"/> </wd:item>
Beim Aufruf der Seite, in welcher die Liste integriert ist, wird nun durch das XSL-Stylesheet des Listenelements der Funktionsaufruf der Liste mit den im XML gespeicherten Parametern ausgeführt. Dieser Funktionsaufruf gibt eine Liste aller gefundenen Dateien in einem XML-String zurück und transformiert es mit einem XSL-Stylesheet, dem Listen-Darstellungstemplate:
<?php $version="1.0"; $encoding="UTF-8"; ?> <?php exit; ?> <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:wsl="http://weblication.de/5.0/wsl" xmlns:wd="http://weblication.de/5.0/wd" xmlns:php="http://php.net/xsl" exclude-result-prefixes="wd wsl php" version="1.0"> <xsl:output method="xml" indent="no" omit-xml-declaration="yes" encoding="UTF-8"/> <!-- Hilfe zum Aufbau einer Zeilenvorlage finden Sie unter: http://grid.weblication.de --> <!-- Dieser Block enthält die Information, die im Struktureditor bei der Auswahl der Zeilenvorlage angezeigt wird --> <wd:extension type="weblication" version="5.0"> <wd:meta> <wd:title>Kompakte Darstellung</wd:title> <wd:title_en>Compact view</wd:title_en> <wd:description/> <wd:modification name="admin" time="1277143786"/></wd:meta> <wd:version value="2"/> <wd:cache expires="{wGetValueOfDefaultExtension()}"/> </wd:extension> <!-- Hier werden zentral die benötigten System-Parameter eingebunden --> <xsl:include href="$XSLTPRE[wDocumentRoot]/deGlobal/wGlobal/layout/templates/misc/standard.wParams.php"/> <xsl:template match="/wFilelist"> <ul class="listCompact"> <!-- Zeigt das zu tranformierende XML-Dokument an--> <!--<xsl:copy-of select="/" />--> <!-- Schleife über alle Dateien --> <xsl:for-each select="files/file"> <li> <xsl:choose> <!-- Darstellung einer Meldung --> <xsl:when test="wd:extension/wd:object[@type = 'news']"> <span class="listEntryDate"><xsl:value-of select="php:functionString('wDate::formatDate', 'd.m.Y', wd:extension/wd:meta/wd:publication/@time)"/></span> <p class="listEntryDescription"><a class="listEntryMoreOnly" href="{@path}"><xsl:value-of select="wd:extension/wd:meta/wd:title/text()"/></a></p> </xsl:when> <!-- Darstellung einer Messe oder Veranstaltung --> <xsl:when test="wd:extension/wd:object[@type = 'event']"> <span class="listEntryDate"><xsl:value-of select="substring(wd:extension/wd:object/wd:data[@id='dateFrom'], 9, 2)"/>.<xsl:value-of select="substring(wd:extension/wd:object/wd:data[@id='dateFrom'], 6, 2)"/>. - <xsl:value-of select="substring(wd:extension/wd:object/wd:data[@id='dateTo'], 9, 2)"/>.<xsl:value-of select="substring(wd:extension/wd:object/wd:data[@id='dateTo'], 6, 2)"/>.<xsl:value-of select="substring(wd:extension/wd:object/wd:data[@id='dateTo'], 1, 4)"/> in <xsl:value-of select="wd:extension/wd:object/wd:data[@id='town']"/></span> <p class="listEntryDescription"><a class="listEntryMoreOnly" href="{@path}"><xsl:value-of select="wd:extension/wd:meta/wd:title/text()"/></a></p> </xsl:when> <!-- Darstellung einer Standardseite --> <xsl:when test="wd:stat/@extension = 'php'"> <a href="{@path}"><xsl:value-of select="wd:extension/wd:meta/wd:title/text()"/></a> </xsl:when> <!-- Falls es sich um eine Binärdatei (Bilder, PDFs, usw.) handelt --> <xsl:otherwise> <a href="{@path}" class="noDecoration"><img class="listIcon" src="/devGlobal/wGlobal/layout/images/file-icons/file-{wd:stat/@extension}.gif" alt=""/> <xsl:choose> <xsl:when test="wd:extension/wd:meta/wd:title/text()"> <xsl:value-of select="wd:extension/wd:meta/wd:title/text()"/> </xsl:when> <xsl:otherwise> <xsl:value-of select="wd:stat/@name"/> </xsl:otherwise> </xsl:choose> </a> <span class="listEntrySize">(<xsl:value-of select="php:functionString('intval', wd:stat/@size div 1024)"/> KB)</span> </xsl:otherwise> </xsl:choose> </li> </xsl:for-each> </ul> </xsl:template> </xsl:stylesheet>
Die zur Verfügung stehenden Zeilentemplates werden im globalen Projekt unterhalb folgendem Pfad abgespeichert und stehen danach automatisch bei der Listenkonfiguration zur Verfügung:
/[IHR-LAYOUT-PROJEKT]/wGlobal/layout/templates/lists
Hinweis:
Genau wie Inhaltsdateien haben auch Listen eine wd:extension, in der Metainformationen gespeichert werden können. So wird beispielsweise das XML-Element wd:title verwendet, um dem Redakteur in der Listenkonfiguration einen passenden Namen anzuzeigen.
Listen können auch "manuell" über das PHP-Framework erzeugt werden.
Weitere Informationen finden Sie hier:
PHP-Framework: Listen
PHP in XSL-Stylesheets ausführen