So filtern Sie die Auswahl der Listen-Templates

Nutzbar ab: Version

Dieser Artikel beschreibt, wie Sie die zur Verfügung stehenden Zeilentemplates von Listen in der Auswahl beschränken.

Das Weblication® CMS Listen-Element (list.standard.wItem.php) nutzt in der Projektbasis BASE zur Auswahl der Zeilenvorlagen standardmässig ein Skript (wGetListTemplats.php). Über dieses Skript werden die vorhandenen Zeilentemplates eingelesen und in der Auswahlbox gelistet.

Ab Weblication® CMS Version 005.065.014.000 wird das wGetListTemplates.php Skript mit Filtermöglichkeit ausgeliefert.

Beispiel: Auszug aus /[IHR-LAYOUT-PROJEKT]/wGlobal/layout/templates/items/list.standard.wItem.php zur Auswahl der Zeilentemplates

...
<xsl:if test="php:functionString('wEnv::getGlobalValue', concat('wEditor.wOptionsEditmaskExtended.', @uid, '.showInputTemplate')) != 'no'">
  <div class="wEditorElementLabel"><xsl:value-of select="php:functionString('wTexts::showTextUser', 'Template list', 'Darstellungs-Template für die Ergebnisliste', 'Trame pour liste de résultats')"/> <xsl:if test="$wUsertype = 'admin'"><span>(<xsl:value-of select="php:functionString('wTexts::showTextUser', 'Provided types', 'Angebotene Typen', 'Types proposés')"/><!-- web:text:start editor="select" onchange="wEditor.saveDraftAndReload()" values="|default|teaser.standard|search|gallery.standard" texts="<xsl:value-of select="php:functionString('wTexts::showTextUser', 'all', 'alle', 'tous')"/>|<xsl:value-of select="php:functionString('wTexts::showTextUser', 'file lists', 'Dateilisten', 'Listes fichier')"/>|<xsl:value-of select="php:functionString('wTexts::showTextUser', 'teaser', 'Teaser', 'Accroche')"/>|<xsl:value-of select="php:functionString('wTexts::showTextUser', 'search results', 'Suchergebnisse', 'Résultats de recherche')"/>|<xsl:value-of select="php:functionString('wTexts::showTextUser', 'images', 'Bildstrecken', 'Images')"/>" inputStyle="height:15px;font-size:11px;width:auto;background:none;border:none"--><xsl:value-of select="wd:fragment[@id='listTemplatesClass']/text()"/><!-- web:text:stop -->)</span></xsl:if></div>
  <div class="wEditorElementValue"><table width="100%" cellpadding="0" cellspacing="0"><tr><td style="width:80%"><!-- web:text:start editor="select" onchange="wEditor.saveDraftAndReload()" script="/weblication/grid5/snippets/wGetListTemplates.php?pathProject=/[IHR-LAYOUT-PROJEKT]&amp;listTemplatesClass=<xsl:value-of select="wd:fragment[@id='listTemplatesClass']/text()"/>" inputStyle="" ifNotSelectable="add"--><xsl:value-of select="wd:fragment[@id='listtemplate']/text()"/><!-- web:text:stop --></td><td style="width:50px;padding:0 0 0 2px"><wsl:buttonFilemanager path="/[IHR-LAYOUT-PROJEKT]/wGlobal/layout/templates/lists" showInEditor="1" icon="folder" caption="" title="{php:functionString('wTexts::showTextUser', 'Manage list template', 'Templates verwalten', 'gérer des trames')}" style="" width="" height="" favorites="0" menubar="0"/><wsl:buttonEdit path="{wd:fragment[@id='listtemplate']/text()}" showInEditor="1" icon="edit" caption="" title="{php:functionString('wTexts::showTextUser', 'Edit list template', 'Templates bearbeiten', 'Editer trames')}" style="" width="" height="" favorites="0" menubar="0"/></td></tr></table></div>
</xsl:if>
...

Die Auswahlbox liefert in der Bearbeitung der Listenoptionen die zur Verfügung stehenden Darstellungs-Templates (Zeilentemplates). Die Erweiterung eines Filters ermöglichst es einem Administrator, für das entsprechende Listenelement nur bestimmte Listen-Typen zur Auswahl anzubieten.
Beispiel:

Gefilterte Auswahl der Listen Darstellungstemplates

Ein Pflegebenutzer bekommt bei gesetztem Filter nur die Darstellungs-Templates zur Auswahl, die dem Filter entsprechen (z.B. nur Darstellungs-Templates für Dateilisten).

Um diese Filtermöglichkeit zu nutzen, müssen Sie die Darstellungstemplates (xxx.wFilelist.php) um das listTemplate-Objekt erweitern (siehe nachfolgendes Beispiel). Dies ist im aktuellen BASE Projekt bereits so umgesetzt. Für eigene Darstellungs-Templates gehen Sie entsprechend vor.

Beispiel: Auszug aus dem Kopf von /[IHR-LAYOUT-PROJEKT]/wGlobal/layout/templates/lists/default.wFilelist.php zur Kategorie

<?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="yes" omit-xml-declaration="yes" 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>Normale Darstellung</wd:title>
      <wd:title_en>Default view</wd:title_en>
      <wd:description/>
    </wd:meta>
    <!-- Kategorie zum Filtern der Darstellungstemplates: -->
    <wd:object type="listTemplate">
      <wd:data id="class" type="categorie.default">
        <wd:category>default</wd:category>
      </wd:data>
    </wd:object>    
    <wd:version value="19"/>
      <wd:cache expires="{wGetValueOfDefaultExtension()}"/>
  </wd:extension>
...

Folgende Typen sind in der BASE Projektbasis bereits vordefiniert:

  • default
    Definiert Dateilisten.
  • teaser.standard
    Definiert Teaser-Listen (z.B. Teaser-Banner, Teaser-Slider)
  • search
    Definiert Suche-Listen.
  • gallery.standard
    Definiert Bilder-Listen (z.B. Bildergalerien)

Diese Typen können Sie individuell erweitern bzw. anpassen.

FAQs
Worum geht es bei „So filtern Sie die Auswahl der Listen-Templates“?
Der Artikel erklärt, wie Sie die Auswahl der Zeilentemplates (Darstellungstemplates) von Listen im Weblication CMS so einschränken, dass nur passende Templates in der Auswahlbox angezeigt werden.
Welche Komponenten steuern standardmäßig die Anzeige der Zeilentemplates?
In der Projektbasis nutzt das Listen-Element (*list.standard.wItem.php*) standardmäßig das Skript *wGetListTemplats.php*, über das vorhandene Zeilentemplates eingelesen und in der Auswahlbox gelistet werden.
Welche Neuerung gab es ab Weblication® CMS Version 005.065.014.000?
Ab dieser Version wird das Skript *wGetListTemplates.php* mit Filtermöglichkeit ausgeliefert.
Wie wirkt sich ein gesetzter Filter auf die Auswahl der Templates aus?
Mit gesetztem Filter erhält ein Benutzer (z. B. ein Pflegebenutzer) nur die Darstellungs-Templates zur Auswahl, die dem Filter entsprechen. Beispiel: Nur Darstellungs-Templates für Dateilisten.
Wie kann ich die Filtermöglichkeit im Layout-Projekt nutzen?
Um die Filtermöglichkeit zu verwenden, müssen Sie das Darstellungstemplates-Objekt (z. B. *xxx.wFilelist.php*) um das *listTemplate*-Objekt erweitern. In einem aktuellen Projekt ist diese Erweiterung bereits umgesetzt; eigene Darstellungstemplates sollten entsprechend angepasst werden.
Wo finde ich ein Beispiel dafür, wie *listTemplate* in einem Darstellungstemplate eingebunden wird?
Im Beispiel wird ein Auszug aus dem Kopf von /[IHR-LAYOUT-PROJEKT]/wGlobal/layout/templates/lists/default.wFilelist.php gezeigt, in dem der Block <code class="codeInline"><wd:object type="listTemplate"></code> sowie u. a. die Kategorie für das Filtern der Templates definiert wird.
Welche vordefinierten Template-Typen sind in der Projektbasis vorhanden?
Bereits vordefiniert sind u. a. folgende Typen: *default* (Dateilisten), *teaser.standard* (Teaser-Listen wie Teaser-Banner/Teaser-Slider), *search* (Suche-Listen) und *gallery.standard* (Bilder-Listen wie Bildergalerien).
Kann ich die vordefinierten Template-Typen individuell anpassen oder erweitern?
Ja. Die vordefinierten Typen können Sie individuell erweitern bzw. anpassen.