Filter für den Weblication® Dateiexplorer
Veröffentlichungsdatum: 20. August 2014
Änderungsdatum: 12. März 2019
weblication cms dateiexplorer fileselector individuell filter filemanagercustomized
Für den Weblication® Dateiexplorer können Sie individuelle Filter nutzen, um die Ausgabe der Dateien innerhalb des Verzeichnisinhaltes zu beeinflussen.
Für den Weblication® Dateiexplorer können Sie individuelle Filter nutzen, um die Ausgabe der Dateien innerhalb des Verzeichnisinhaltes zu beeinflussen. Hierfür steht Ihnen ab CMS-Version 009.002.028.000 innerhalb der Box "Häufig benötigt" eine Filtermöglichkeit zur Verfügung.
Sinn macht eine Filterfunktion speziell bei Verzeichnissen, in denen viele Dateien liegen (z.B. Meldungen, Shop-Produkte, etc.). Über definierte Filter können Sie den Verzeichnisinhalt auf die zum Filter passenden Dateien reduzieren, um einen besseren und schnelleren Überblick zu haben.


Beispiel: Filter anhand der Standard-Kategorien
Über das Template default.wFileselector.php setzen Sie innerhalb des "Häufig benötigt" Bereiches Ihren gewünschten Verzeichnisverweis. Im Beispiel wird einmal das Meldungen-Verzeichnis ohne URL-Parameter und zweimal mit unterschiedlichem URL-Parameter Wert gesetzt (?customFilterFiles=...). Als Werte wird jeweils die Kategorien-ID der gewünschten Kategorie aus der Standard Kategoriendatei der BASE gesetzt (z.B. 1177055143578 für Kategorie "Unternehmen").
Der URL-Parameter (im Beispiel customFilterFiles) steht für die Filter-Funktion, die in der post.include.php Datei mit gleichem Namen definiert sein muß. Falls das Verzeichnis /explorer im genannten Verzeichnispfad Ihres globalen Projektes noch nicht besteht, legen Sie dies entsprechend an.
Auszug aus /[IHR-LAYOUT-PROJEKT]/wGlobal/layout/fileselector/default.wFileselector.php mit Verzeichnisaufruf per Filter
<?php $version="1.0"; $encoding="UTF-8"; ?> <?php exit; ?> <wFileselector xmlns:de="http://weblication.de/5.0/lang/de" xmlns:en="http://weblication.de/5.0/lang/en" xmlns:fr="http://weblication.de/5.0/lang/fr" xmlns:wsl="http://weblication.de/5.0/wsl"> ... <wDirs _display="select" de:captionSelect="Bitte wählen" en:captionSelect="Please select" open="1" caption="Häufig benötigt" en:caption="Frequently required" fr:caption="Souvent nécessaire"> ... <dir icon="/[IHR-LAYOUT-PROJEKT]/wGlobal/layout/images/dir-icons/dir-content.gif" caption="Alle Meldungen" path="/base/aktuelles/meldungen"/> <dir icon="/[IHR-LAYOUT-PROJEKT]/wGlobal/layout/images/dir-icons/dir-content.gif" caption="Meldungen Unternehmen" path="/base/aktuelles/meldungen?customFilterFiles=1177055143578"/> <dir icon="/[IHR-LAYOUT-PROJEKT]/wGlobal/layout/images/dir-icons/dir-content.gif" caption="Meldungen Kunden" path="/base/aktuelles/meldungen?customFilterFiles=1177055180125"/> </wDirs> ... ... </wFileselector>
Auszug aus /[IHR-LAYOUT-PROJEKT]/wGlobal/layout/explorer/post.include.php mit definiertem Filter
<?php
// Filter für Weblication Dateiexplorer (ab CMS 009.002.028.000)
function customFilterFiles($files, $filterID){
$returnFiles = array();
foreach($files as $file){
$domObject = wDOM::parseFile($file);
// Ermittelt alle Kategorieneintraege der Datei (wd:category-Nodes)
$categoriesNodes = wDOM::executeXPath($domObject,'wd:extension/wd:meta/wd:categories/wd:category');
$check = false;
if($categoriesNodes->length > 0){
foreach($categoriesNodes as $categoriesNode){
// Ermittelt die KategorienID der einzelnen wd:category-Eintraege
$categoryID = $categoriesNode->nodeValue;
// Falls eine der gesetzten Kategorien der mitgegebenen Kategorien-ID entspricht, wird die Datei aufgelistet
if($categoryID == $filterID){
$check = true;
}
}
}
if($check === true){
$returnFiles[] = $file;
}
}
return $returnFiles;
}
?>