Liste mit frei definierbarem Filter

Nutzbar ab: Version 10.x

23. Nov 2017

Mit dem frei definierbarem Filter können Sie eine Weblication® Liste in der Ausgabe individuell filtern.

Die Möglichkeiten der Weblication® Listenfunktionen und Filtermöglichkeiten sind bereits im Standard sehr vielseitig. Anhand des Filters "Frei definierbarer Filter" zeigen wir Ihnen ein Beispiele auf, welche Möglichkeiten Ihnen darüber zur Verfügung stehen.

Um dies realisieren zu können, sollte eine CMS-Version ab 10.x vorhanden und das aktuelle Listen-Element (Weblic® "Liste Standard") installiert sein.

Beispiel 1: Liste auf Gruppenzugehörigkeit des aktuellen Benutzers filtern

Dieses Beispiel zeigt, wie Sie eine Dateiliste nach aktueller Gruppe des eingeloggten Benutzer filtern.

Listenoptionen mit "Frei definierbarem Filter"zoom
Listenoptionen mit "Frei definierbarem Filter"

Setzen Sie eine eigene Funktion über die wMyProject.php Datei, welche mit der BASE mitgeliefert wird und über die pre.php des globalen Projektes eingelesen wird. Diese Funktion steuern Sie über den Filter "Frei definierbarer Filter" und Operator "PHP Callback-Funktion" an, welcher in den Listenoptionen über die "Filter für die aufzulistenden Dateien" ausgewählt werden kann. Im Feld tragen Sie die entsprechende Funktion ein, z.B. wMyProject::listFilterIsInGroup('kunden').
Als wPath, welcher geprüft werden soll, geben Sie den Knoten an, in welchem Sie die Information für die Gruppe in den Dateien hinterlegt haben, z.B. im Objekt:
/wd:extension/wd:object/wd:data[@id = 'viewGroup']/text()

Beispiel: Auszug aus /IhrGlobalesProjekt/wGlobal/scripts/php/wMyProject.php zum Filter listFilterIsInGroup

//*********************************************************************************/
/*
* @method String listFilterIsInGroup(String $value, String $file)
*
* @description Callback Funktion für Operator bei frei definierbarem Listenfilter
*
* @param value value Wert, der über den wPath-Ausdruck des Filters für die aktuelle Datei ermittelt wurde
*
* @param file jeweilige Datei
*
* @return String
*
*/
//*********************************************************************************/

public static function listFilterIsInGroup($value$file){

  
//print $value.":".$file."<br/>";

  // Prüft beispielsweise, ob der aktuelle Benutzer in der Gruppe ist, die als Bedingung mitgegeben wurde
  
if(wUserCur::isInGroup($value)){
    return 
true;
  }
  else{
    return 
false;
  }
}

Beispiel 2: Liste auf erstellte Dateien des aktuellen Benutzers filtern

Dieses Beispiel zeigt, wie Sie eine Dateiliste nach den Dateien filtern können, welcher der eingeloggten Benutzer erstellt hat.

Listenoptionen mit "Frei definierbarem Filter"zoom
Listenoptionen mit "Frei definierbarem Filter"

Setzen Sie eine eigene Funktion über die wMyProject.php Datei, welche mit der BASE mitgeliefert wird und über die pre.php des globalen Projektes eingelesen wird. Diese Funktion steuern Sie über den Filter "Frei definierbarer Filter" und Operator "PHP Callback-Funktion" an, welcher in den Listenoptionen über die "Filter für die aufzulistenden Dateien" ausgewählt werden kann. Im Feld tragen Sie die entsprechende Funktion ein, z.B. wMyProject::listFilterIsCurrentUser.
Als wPath, welcher geprüft werden soll, geben Sie den Knoten an, in welchem Sie die Information für die Gruppe in den Dateien hinterlegt haben, z.B. im Objekt:
/wd:extension/wd:meta/wd:creation/@name

Beispiel: Auszug aus /IhrGlobalesProjekt/wGlobal/scripts/php/wMyProject.php zum Filter listFilterIsInGroup

//*********************************************************************************/
/*
* @method String listFilterIsCurrentUser(String $value, String $file)
*
* @description Callback Funktion für Operator bei frei definierbarem Listenfilter
*
* @param value value Wert, der über den wPath-Ausdruck des Filters für die aktuelle Datei ermittelt wurde
*
* @param file jeweilige Datei
*
* @return String
*
*/
//*********************************************************************************/

public static function listFilterIsCurrentUser($value$file){

  
//print $value.":".$file."<br/>";
  //print wUserCur::getName();

  // Prüft ob der übergebene Wert (wPath-Ausdruck) mit dem Usernamen des aktuell angemeldeten Users übereinstimmt.
  
if(wUserCur::getName() == $value){
    return 
true;
  }
  else{
    return 
false;
  }
}

Beispiel 3: Liste auf Zeitraum der Veröffentlichung filtern

Dieses Beispiel zeigt, wie Sie eine Dateiliste nach den Dateien filtern können, welche im definierten Zeitraum der Veröffentlichung liegen.

Listenoptionen mit "Frei definierbarem Filter"zoom
Listenoptionen mit "Frei definierbarem Filter"

Als wPath, welcher geprüft werden soll, geben Sie den Knoten an, in welchem der Zeitstempel für das Veröffentlichungsdatum hinterlegt ist:
/wd:extension/wd:meta/wd:publication/@time

Als Operator wählen Sie: pregiMatch - regulärer Ausdruck passt

Die Bedingung befüllen Sie durch Angabe eines regulären Ausdruckes mit dem Zeitraum, auf welchen Sie filtern wollen, z.B.:

  • nur Dateien von Januar bis September 2015:
    2015-0[1-9]
  • nur Dateien von Januar bis Dezember 2015:
    2015-(0[1-9]|1[0-2])
    oder einfach:
    2015-


Ähnliche Seiten

Entwicklerbereich Weblication® CMS - © Scholl Communications AG