So lesen Sie Inhaltsbilder über ein Listentemplate aus

Dieser Artikel beschreibt, wie Sie innerhalb einer Liste Bilder einlesen, die aus dem Inhaltsbereich der eingelesenen Dateien stammen.

Über Weblication® Listentemplates stehen die Inhalte des wd:extension Blockes der eingelesenen Dateien zur Verfügung.

Um auf andere Daten aus dem Inhaltsbereich einer Seite (z.B. Bilder aus content1) zugreifen zu können, müssen Sie diese Daten direkt auslesen (z.B. über die xPath-Funktion document oder WSL).

Hierzu folgende Beispiele:

Beispiel: Auszug aus default.wFilelist.php mit Auslesen des Bildes aus content1

...
<!-- Pfad zum Vorschaubild (aus Inhalt ausgelesen) bestimmen -->
<xsl:variable name="thumbnailContent">
  <xsl:choose>
    <xsl:when test="wd:stat/@extension = 'jpg' or wd:stat/@extension = 'png' or wd:stat/@extension = 'gif'"><xsl:value-of select="@path"/></xsl:when>
    <xsl:when test="document(concat($wDocumentRoot,@path))//wd:document/wd:group[@id='content1']/wd:item[@type='picture.standard']/wd:fragment[@id='picture']/img/@src"><xsl:value-of select="document(concat($wDocumentRoot,@path))//wd:document/wd:group[@id='content1']/wd:item[@type='picture.standard']/wd:fragment[@id='picture']/img/@src"/></xsl:when>
    <xsl:otherwise/>
  </xsl:choose>
</xsl:variable>
...
<!-- Darstellung -->
  <h2 class="listEntryTitle"><a href="{@path}"><xsl:value-of select="wd:extension/wd:meta/wd:title/text()"/></a></h2>                  
  <wsl:thumbnail class="listEntryThumbnail" src="{$thumbnailContent}" width="60" mode="default" />
...
FAQs
Wie kann ich Inhaltsbilder in einer Liste aus dem Inhaltsbereich der eingelesenen Dateien anzeigen?
Der Artikel beschreibt, dass Sie innerhalb einer Liste Bilder einlesen, die aus dem Inhaltsbereich der eingelesenen Dateien stammen. Dabei stehen über Weblication Listentemplates die Inhalte des wd:extension Blockes zur Verfügung. Für Bilder aus anderen Inhaltsbereichen müssen Sie die Daten jedoch direkt auslesen (z.B. per XPath-Funktion document oder WSL).
Welche Inhalte liefert ein Weblication Listentemplate standardmäßig über den wd:extension Block?
Über Weblication Listentemplates werden die Inhalte des wd:extension Blockes der eingelesenen Dateien bereitgestellt. Das kann z.B. für Titel oder andere Metadaten genutzt werden, die im wd:extension Block enthalten sind.
Wie greife ich auf Bilder aus einem anderen Inhaltsbereich (z.B. content1) zu?
Um auf andere Daten aus dem Inhaltsbereich einer Seite zuzugreifen (zum Beispiel Bilder aus content1), müssen Sie diese Daten direkt auslesen. Der Artikel nennt hierfür u.a. die XPath-Funktion document oder WSL, um gezielt die gewünschten Fragmente (z.B. picture.standard mit fragment id='picture') und deren Bildquelle (img/@src) zu ermitteln.
Welcher Ansatz wird im Beispiel genutzt, um das Vorschaubild aus content1 auszulesen?
Im Beispiel wird eine Variable $thumbnailContent über <xsl:variable> und <xsl:choose> gebildet. Wenn die Dateiendung jpg/png/gif ist, wird der Bildpfad direkt verwendet. Andernfalls wird das Bild über document(concat($wDocumentRoot,@path)) aus dem Inhaltsbereich ausgelesen, insbesondere über wd:group[@id='content1']/wd:item[@type='picture.standard']/wd:fragment[@id='picture']/img/@src. Dieses Ergebnis wird anschließend als src an wsl:thumbnail übergeben.
Wie wird das ausgelesene Bild letztlich in der Listendarstellung verwendet?
Das Beispiel verwendet das ausgelesene Vorschaubild über <wsl:thumbnail ... src="{$thumbnailContent}" ... />. Zusätzlich wird im Beispiel der Listeneintragstext über wd:extension/wd:meta/wd:title ausgegeben, verlinkt mit dem jeweiligen Pfad.