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: 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" 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.