So lesen Sie den Inhalt von Dateien in einer Liste ein

Dieser Artikel beschreibt, wie Sie den Seiteninhalt der aufzulistenden Dateien in die Listenübersicht einlesen.

Um den Seiteninhalt von Dateien in eine Liste einzulesen, müssen Sie im Listentemplate der Liste (z.B.: default.wFilelist.php) die zugehörigen Elemente mit einlesen. Dann können Sie über einen xsl:apply-templates Aufruf die Elemente aus z.B. content1 in die Listenübersicht einlesen.

Im Kopf des Listentemplates müssen Sie hierzu die entsprechenden Namensräume angeben und die globale Includedatei sowie die Elemente-Templates inkludieren! Eine Vorlage finden Sie übrigens im Weblic® Liste im Zeilentemplate full.wFilelist.php!

Beispiel: Auszug aus dem Zeilentemplate full.wFilelist.php

<?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:wslPre="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="yes" omit-xml-declaration="no" encoding="UTF-8"/>

  <!-- Hilfe zum Aufbau einer Zeilenvorlage finden Sie unter: https://weblik.de/liste-darstellungstemplate -->

  <!-- Dieser Block enthält die Information, die im Struktureditor bei der Auswahl der Zeilenvorlage angezeigt wird -->
  <wd:extension type="weblication" version="5.0" uid="7641dc2874e3cb66d662323ab0091812">  
    <wd:meta>
      <wd:title>Vollständige Darstellung</wd:title>
      <wd:title_en>Full view</wd:title_en>      
      <wd:description/>
    <wd:modification name="admin" time="1280351935"/></wd:meta>
    <wd:version value="15"/>
      <wd:cache expires="{wGetValueOfDefaultExtension()}"/>
  </wd:extension> 
  <wd:editmaskExtended>
    <![CDATA[
      <div class="wEditorElementValue"><!-- web:text:start editor="checkbox" values="1" texts="<xsl:value-of select="php:functionString('wTexts::showTextUser', 'Show only first text', 'Nur das erste Textelement anzeigen', 'Afficher seulement le premier élément texte')"/>"--><xsl:value-of select="wd:fragment[@id='showOnlyFirstText']/text()"/><!-- web:text:stop --></div>
      <div class="wEditorElementValue"><!-- web:text:start editor="checkbox" values="1" texts="<xsl:value-of select="php:functionString('wTexts::showTextUser', 'Show number comments', 'Anzahl der Kommentare anzeigen', 'Afficher nombre de commentaires')"/>"--><xsl:value-of select="wd:fragment[@id='showNumberComments']/text()"/><!-- web:text:stop --></div>
      <xsl:if test="php:functionString('wVariables::getValue', 'tweet_news_active', '/[IHR-LAYOUT-PROJEKT]') = 'yes'">
        <div class="wEditorElementValue"><!-- web:text:start editor="checkbox" values="1" texts="<xsl:value-of select="php:functionString('wTexts::showTextUser', 'Show botton to publish on twitter', 'Schaltfläche, um auf Twitter zu veröffentlichen anzeigen', 'Afficher bouton pour publier dans twitter')"/>"--><xsl:value-of select="wd:fragment[@id='showFacebookPublisher']/text()"/><!-- web:text:stop --></div>
      </xsl:if>
      <xsl:if test="php:functionString('wVariables::getValue', 'facebook_news_active', '/[IHR-LAYOUT-PROJEKT]') = 'yes'">
        <div class="wEditorElementValue"><!-- web:text:start editor="checkbox" values="1" texts="<xsl:value-of select="php:functionString('wTexts::showTextUser', 'Show button to publish on Facebook', 'Schaltfläche, um auf Facebook zu veröffentlichen anzeigen', 'Afficher bouton pour publier dans facebook')"/>"--><xsl:value-of select="wd:fragment[@id='showTwitterPublisher']/text()"/><!-- web:text:stop --></div>
      </xsl:if>
    ]]>
  </wd:editmaskExtended> 

  <wslPre:includeXsltItemsProject project="/[IHR-LAYOUT-PROJEKT]" useIndex="0"/>

  <!-- Zentrale Funktionen, Templates und Skripte einbinden -->
  <xsl:include href="$XSLTPRE[wDocumentRoot]/[IHR-LAYOUT-PROJEKT]/wGlobal/layout/templates/misc/includes.global.php"/>

  <!-- Hier wird die Seitennavigation zum Blättern in der Liste eingebunden -->
  <xsl:include href="$XSLTPRE[wDocumentRoot]/[IHR-LAYOUT-PROJEKT]/wGlobal/layout/templates/misc/pagenavi.global.php"/>

  <!-- Hier werden zentral die benötigten System-Parameter eingebunden -->
  <xsl:include href="$XSLTPRE[wDocumentRoot]/[IHR-LAYOUT-PROJEKT]/wGlobal/layout/templates/misc/standard.wParams.php"/>

  <xsl:template match="/wFilelist">
  ...
  ...
              <xsl:choose>
                <xsl:when test="/wFilelist/wData/data[@name = 'showOnlyFirstText']/text() = '1'">
                  <xsl:apply-templates select="document(concat($wDocumentRoot, @path))/wd:document/wd:group[@id = 'content1']/wd:item[@type = 'text.wysiwyg'][1]"/>
                </xsl:when>
                <xsl:otherwise>
                  <xsl:apply-templates select="document(concat($wDocumentRoot, @path))/wd:document/wd:group[@id = 'content1']"/>
                </xsl:otherwise>
              </xsl:choose>
...
...
Ersetzen Sie im Quelltextbeispiel den Pfad /[IHR-LAYOUT-PROJEKT] durch den globalen Projektpfad Ihres Projektes (z.B. /de-wGlobal)!
Alternativ installieren Sie einfach das Liste-Weblic®, um die Zeilenvorlage full.wFilelist.php nutzen zu können.
FAQs are only visible for Weblication ai search and editors!
Wie lese ich den Seiteninhalt von Dateien in einer Listenübersicht ein?
Im Listentemplate der Liste (z. B. default.wFilelist.php) müssen die zugehörigen Elemente eingelesen werden. Anschließend können Sie per *xsl:apply-templates* die Elemente (z. B. aus *content1*) in die Listenübersicht übernehmen.
Was muss ich im Kopf (Head) des Listentemplates angeben?
Im Kopf des Listentemplates müssen die entsprechenden Namensräume angegeben sowie die globale Includedatei und die Elemente-Templates inkludiert werden.
Wo finde ich eine passende Beispielvorlage für die Zeilendarstellung?
Eine Vorlage finden Sie in der Liste im Zeilentemplate *full.wFilelist.php*.
Wie wird in der Vorlage *xsl:apply-templates* verwendet, um Inhalte aus einer Datei einzulesen?
Im Beispiel wird per *document(concat($wDocumentRoot, @path))* auf die jeweilige Datei zugegriffen. Danach werden über einen *xsl:apply-templates*-Aufruf die gewünschten Elemente (z. B. aus *wd:group[@id = 'content1']*) verarbeitet und in die Listenübersicht übernommen.
Wie kann ich im Beispiel steuern, dass nur das erste Textelement angezeigt wird?
Im Zeilentemplate wird geprüft, ob *showOnlyFirstText* auf '1' gesetzt ist. Dann wird nur das erste passende Textelement ausgewählt, z. B. über *wd:item[...] [1]*, und nur dieses per *xsl:apply-templates* ausgegeben.
Muss ich im Beispiel den Projektpfad anpassen?
Ja. Ersetzen Sie im Quelltextbeispiel den Pfad */[IHR-LAYOUT-PROJEKT]* durch den globalen Projektpfad Ihres Projektes (z. B. */de-wGlobal*).
Gibt es eine Alternative, um die Zeilenvorlage *full.wFilelist.php* zu nutzen?
Ja. Alternativ können Sie einfach das Liste-Weblic® installieren, um die Zeilenvorlage *full.wFilelist.php* nutzen zu können.