Filter für den Weblication® Dateiexplorer

Nutzbar ab: Version

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.

Dateiexplorer - Aktuelle Meldungen ohne Filter
Dateiexplorer - Aktuelle Meldungen ohne Filter
Dateiexplorer - Aktuelle Meldungen mit Filter (Kategorie "Unternehmen")
Dateiexplorer - Aktuelle Meldungen mit Filter (Kategorie "Unternehmen")

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;

}

?>
Das Beispiel geht davon aus, daß mindestens eine Datei in einer der per URL übergebenen Kategorien sein muß und die KategorienIDs nicht vom Standard abweichen. Passen Sie die Pfade an Ihre individuellen Projektpfade an.