So verwenden Sie ein eigenes Skript zur Auswahl der Listen-Templates

Dieser Artikel beschreibt, wie Sie eine eigene Auswahlliste für die Zeilentemplates der Listen umsetzen.

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.

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

...
  <div class="wEditorElementLabel"><xsl:value-of select="php:functionString('wTexts::getTextUser', 'editor_list_list_template')"/></div>
  <div class="wEditorElementValue"><table width="100%" cellpadding="0" cellspacing="0"><tr><td style="width:90%"><!-- web:text:start editor="select" script="/weblication/grid5/snippets/wGetListTemplates.php?pathProject=/[IHR-LAYOUT-PROJEKT]" inputStyle=""--><xsl:value-of select="wd:fragment[@id='listtemplate']/text()"/><!-- web:text:stop --></td><td style="width:24px;padding:0 0 0 2px"><wsl:buttonFilemanager path="/[IHR-LAYOUT-PROJEKT]/wGlobal/layout/templates/lists" showInEditor="1" icon="folder" caption="" title="{php:functionString('wTexts::getTextUser', 'editor_list_list_template_edit')}" style="" width="" height="" favorites="0" menubar="0"/></td></tr></table></div>
...

Die Auswahlbox liefert in der Bearbeitung der Listenoptionen die zur Verfügung stehenden Darstellungstemplates (Zeilentemplates).
Beispiel:

Liste - Auswahl Darstellungs-Template
Liste - Auswahl Darstellungs-Template

Eigenes Skript zur Auswahl der Darstellungstemplates nutzen

Um die Auswahl an Zeilentemplates individuell zu beeinflussen, bietet sich ein eigenes Skript zur Auswahl an. Als Grundlage können Sie das von der Software gelieferte Skript verwenden.

/weblication/grid5/snippets/wGetListTemplates.php

Kopieren Sie dies manuell in Ihr globales Projekt, z.B. wie folgt:

/[IHR-LAYOUT-PROJEKT]/wGlobal/scripts/php/wGetListTemplates.php

Nun können Sie in diesem Skript eine individuelle Auswahl umsetzen bzw. beliebig anders filtern. Das nachfolgende Beispiel zeigt Ihnen, wie Sie für Pflegebenutzer das Zeilentemplate für die Suche (search.wFilelist.php) in der Auswahl ausblenden / filtern.

Beispiel: Auszug aus /[IHR-LAYOUT-PROJEKT]/wGlobal/scripts/php/wGetListTemplates.php

//...
$query = array();
$query['dir'] = wRequest::getParameterPathSecure('pathProject').'/wGlobal/layout/templates/lists';
// Standardumsetzung:
//$query['filterset'] = array('type' => 'and', array('wPath' => '/wd:stat/@name', 'operator' => 'contains', 'condition' => '.wFilelist.php'));
// Filterset mit Beschränkung für Pflegebenutzer:
$query['filterset'] = array('type' => 'and');
$query['filterset'][] = array('wPath' => '/wd:stat/@name', 'operator' => 'contains', 'condition' => '.wFilelist.php');
if(
$userType != 'admin'){
// Fuer Nicht-Administratoren (also Pflegebenutzer) wird das Suche-Template nicht zur Auswahl angeboten:
$query['filterset'][] = array('wPath' => '/wd:stat/@name', 'operator' => '!contains', 'condition' => 'search');
}
//...

Hinweise

  • Die Auswahl der Zeilentemplates können Sie z.B. auch über das Zusatzmodul "Personalisierte Ausgabe" einschränken. Bei vorhandener Lizenz können Sie im Zeilentemplate das Ansichtsrecht für bestimmte Benutzer bzw. Gruppen setzen, was dann auch in der Auswahl berücksichtigt wird.
  • Im genannten Skript können Sie die Auswahlbox auch selber zusammensetzen und konkrete Zeilentemplates nur zur Auswahl anbieten.