Kategorienfilter - Konfigurationsbeispiel in Listen

Das Weblic® Kategorienfilter ermöglicht eine komfortable Filterung von Dateien nach unterschiedlichen Kategorien. Am Beispiel des Veranstaltungskalenders wird der Einsatzzweck nachfolgend aufgezeigt.

Kategorienfilter im Veranstaltungskalender
Kategorienfilter im Veranstaltungskalender

Im Weblic® Veranstaltungskalender wird der Kategorienfilter zum Filtern der Veranstaltungstermine genutzt. Innerhalb der Anwendung werden zu jedem Veranstaltungstermin zwei Kategorien zur Pflege und Filterung angeboten - die Orte und die Veranstaltungskategorien (Arten/Themen). Diese Kategorien werden für den Veranstaltungsfilter herangezogen, damit Seitenbesucher aus der Menge der Termine die passende Veranstaltung filtern können.

Funktionsweise des Kategorienfilter

Das Weblic® und gleichnamige Strukturelement "Kategorienfilter" ermöglicht die Übergabe von URL-Parametern auf Grundlage einer Kategoriendatei und deren Kategorien. Diese URL-Parameter können für eine Liste zum Filtern der Listendateien nach den übergebenen Kategorienwerte genutzt werden.

Um das Filtern nach Kategorien komfortabel zu ermöglichen, benötigen Sie somit

  1. eine Auswahlmöglichkeit der Kategorien (Screen links)
  2. eine Liste, welche nach diesen Kategorien URL-Parametern filtert (Screen rechts)

Beispielhaft wird dies anhand der Screens am Veranstaltungskalender aufgezeigt.

Strukturelement Kategorienfilter
Strukturelement Kategorienfilter
Kategorienfilter innerhalb Listenkonfiguration
Kategorienfilter innerhalb Listenkonfiguration

Kategorienfilter

Nach Einfügen des Strukturelements "Kategorienfilter" definieren Sie die Parameter für die Auswahl der Kategorien.

'Bezeichnung im Auswahlfeld':

In diesem Feld tragen Sie die Bezeichnung für das Auswahlfeld ein (z.B.: Alle Orte).

'Pfad der Kategoriendatei':

In diesem Feld wählen Sie über das Dateiauswahlsymbol die Kategoriendatei aus, welche für den Kategorienfilter als Grundlage dienen soll.

'Vorausgewählte Kategorie':

Über dieses Auswahlfeld wählen Sie optional die Kategorie, welche im Filter vorausgewählt sein soll.

'Anzuzeigende Level':

Über dieses Auswahlfeld wählen Sie aus, wieviele Unterkategorien-Level der Filter berücksichtigen soll.

'Hauptkategorien als nicht auswählbare Gruppierung nutzen':

Ist dieser Parameter aktiviert, werden die Hauptkategorien als nicht auswählbar gesetzt, wobei die Unterkategorien als Gruppierung gesetzt werden.

'Nur Unterkategorien folgender Wurzelkategorie anzeigen':

Über dieses Auswahlfeld wählen Sie optional aus, auf welche Unterkategorien sich der Filter beschränken soll.

'Name des HTTP-Parameters, der die Wurzelkategorie definiert':

In diesem Feld tragen Sie optional den Namen des HTTP-Parameters ein, der die Wurzelkategorie definiert.

'Name des HTTP-Parameters, der über das Auswahlfeld geändert wird':

In diesem Feld tragen Sie den Namen des HTTP-Parameters ein, der über das Auswahlfeld des Filters geändert wird.

'Parameter auch ergänzen, falls kein Wert ausgewählt ist':

Ist dieser Parameter aktiviert, wird der HTTP-Parameter auch ergänzt, wenn kein Wert ausgewählt ist.

'Beim Ändern zu löschende HTTP-Parameter':

In diesem Feld tragen Sie den bzw. die Namen der HTTP-Parameter ein, die beim Ändern des Filters aus der URL gelöscht werden sollen.
Mehrere Parameter können durch das Pipe-Zeichen | getrennt angegeben werden.

'Beim Ändern zusätzlich zu berücksichtigende Felder':

In diesem Feld tragen Sie die zusätzlich zu berücksichtigenden Felder ein, die beim Ändern des Filters genutzt werden sollen.
Mehrere Parameter können durch das Pipe-Zeichen | getrennt angegeben werden.

'Beim Ändern zu ladende Seite':

In diesem Feld tragen Sie optional die URL der Seite ein, welche beim Ändern des Filters geladen werden soll. Das kann z.B. auch ein Anker innerhalb der Seite sein, um bei Filterauswahl in dem Seitenbereich zu bleiben, in dem der Filter hinterlegt ist.
z.B.: #anchor_038d2bef_Veranstaltungen

'Beim Ändern einen Quickfilter auf folgendes Listenelement ausführen':

In diesem Feld tragen Sie optional die Listen-ID ein, wenn ein Quickfilter auf die entsprechende Liste ausgeführt werden soll.
Mögliche Listen-IDs werden als Schaltflächen angezeigt und setzen den gewünschten Wert per Klick in das Feld.

'Beim Ändern sofort neu laden':

Ist dieser Parameter aktiviert, wird die Seite nach Ändern des Filters neu geladen.

'Beim erneuten Klick auf Schaltfläche deaktivieren':

Ist dieser Parameter aktiviert, wird bei erneutem Klick auf eine Kategorien-Schaltfläche dieser Kategorie wieder deaktiviert, also also als URL-Parameter gelöscht.

'Als Auswahlfelder anzeigen':

Über dieses Auswahlfeld legen Sie fest, wie der Kategorienfilter dem Seitenbesucher angezeigt wird:

  • Auswahlfelder (select)
  • Auswahlboxen (checkbox)
  • Schaltflächen

'Mehrfachauswahl erlauben':

Ist dieser Parameter aktiviert, kann ein Seitenbesucher auch mehrere Kategorien gleichzeitig auswählen und somit nach diesen filtern.

'Sortierung':

Über dieses Auswahlfeld legen Sie fest, wie die Sortierung der Kategorien eingestellt ist:

  • Keine Sortierung
  • Nach Bezeichnungen sortieren

'Darstellung':

Über dieses Auswahlfeld legen Sie die Darstellung des Kategorienfilters fest. Diese können über CSS-Only-Varianten individuell definiert werden.

Liste - Kategorien über URL-Parameter

Nach Einfügen des Strukturelements "Liste von Dateien" definieren Sie für das Filtern nach Kategorien, welche vom Kategorienfilter übergeben werden, den Filter "Nach Kategorien über URL-Parameter filtern" (Titel nach Einfügen: "Kategorien über Parameter definieren"), siehe auch Onlinedoku-Artikel.

'Name des Parameters':

In dieses Feld tragen Sie optional den Namen des Parameters ein, welcher aus der URL gefiltert werden soll. Dies ist nur erforderlich, wenn der URL-Parameter nicht - wie standardmäßig abgefragt - "categories" lautet, sondern anders.
Sieht eine URL bei Aufruf z.B. so aus:
     https://www.domain.dd/de/themen/index.php?cat[]=1251969641249
geben Sie im Feld "cat" (ohne Anführungszeichen) ein.

'ID des Kategorienfeldes':

In dieses Feld tragen Sie optional die id des Kategorienfeldes ein, in welchem die Kategorien-Angabe der aufzulistenden Dateien abgelegt ist. Dies ist nur erforderlich, wenn die Kategorienzuweisung in den Dateien nicht standardmäßig über die Metadaten erfolgt (/wd:extenion/wd:meta/wd:categories/), sondern im Objekt (z.B. /wd:extension/wd:object/wd:data[@id = 'categories']). In diesem Beispiel geben Sie "categories" (ohne Anführungszeichen) im Feld ein.

'Unterkategorien mit berücksichtigen':

Ist dieser Parameter aktiviert, werden Unterkategorien der angesprochenen Kategorien-ID mit im Filter berücksichtigt.

'Pfad der Kategoriendatei':

In dieses Feld tragen Sie optional den Pfad der Kategoriendatei ein, welche für den Abgleich des Filters verwendet werden soll. Wählen Sie die entsprechende Datei über die Dateiauswahl aus.
Die Angabe ist nur erforderlich, wenn Unterkategorien mit berücksichtigt werden sollen oder eine Kategorie vorausgewählt werden soll.

'ODER/UND verknüpfen':

Über dieses Auswahlfeld legen Sie fest, ob dieser Filter mit anderen Filtern UND oder ODER verknüpft sein soll.

Zusammenspiel von Kategorienfilter und Listenfilter

Der Kategorienfilter bildet die Grundlage zum Filtern von Inhalten (meist eine Liste) nach Kategorien. Im Filter wird definiert, welche Kategoriendatei verwendet wird und wie der URL-Parameter und auch die Auswahlbox benannt sind.

Hier beginnt das Zusammenspiel mit dem Filtern nach Kategorien, was in der Regel über eine Weblication® Liste erfolgt.
Über eine Liste erfolgt dies durch den Einsatz das Listen-Filters "Nach Kategorien über URL-Parameter filtern". Dieser muss zum einen den korrekten URL-Parameter abfragen und sich auch die Kategorien-ID aus dem richtigen XML-Baum der Dokumente ziehen.

Am Beispiel des Veranstaltungskalenders und den Orte-Kategorien (siehe Quelltext-Beispiel nachfolgend) sieht wie folgt aus:

Der Name des HTTP-Parameters, welcher über das Auswahlfeld geändert werden soll, ist mit "location" angegeben. Als Kategoriendatei ist die Datei "locations.wCategories.php" hinterlegt, womit die Kategorien-IDs dieser Datei verwendet wird. Als URL-Parameter kann das somit z.B. wie folgt aussehen:
  ...?location[]=815208815208

Die Liste der Veranstaltungstermine kann sich nun diesen URL-Parameter zunutze machen, um die Termine nach dem Ort "Bremburg" (Kategorien-ID 815208815208) zu filtern. Der Listen-Filter "Nach Kategorien über URL-Parameter filtern" hat daher als Name des Parameters "location" angegeben und nutzt auch zur Angabe "ID des Kategorienfeldes" den Wert "location". Die Angabe erfolgt aus dem Grund, da zu den Veranstaltungsterminen die Orte nicht im wd:meta Bereich als Kategorien-ID abgelegt werden, sondern im wd:object Bereich mit der wd:data id="location".

Beispiel: Auszug aus der Orte-Kategoriendatei locations.wCategories.php

<!-- ... -->
<categories>
  <!-- ... -->
  <category id="815208815208" text="Bremburg" link="" title_de="" title_en="">
    <category id="788496788496" text="Bremburgweiler" link=""/>
    <category id="181557181557" text="Bremburgerhöfe" link=""/>
  </category>
  <category id="248671248671" text="Weblingen" link="" title_de="" title_en=""/>
  <category id="713667813667" text="Hatemlach" link="" title_de="" title_en=""/>
  
</categories>

Beispiel: Auszug aus der Orte-Kategoriendatei locations.wCategories.php

<!-- ... -->
    <wd:object type="eventMulti">
      <!-- ... -->
      <wd:data id="location" type="char.default">
        <wd:category>815208815208</wd:category>
      </wd:data>
      <!-- ... -->
    </wd:object>

Filter erhalten bei Wechsel von Detailseite zurück zur Listenseite

Mit aktuellstem Kategorienfilter Weblic® besteht ab CMS-Version 15 die Möglichkeit, die Option "Beim Ändern die URL anpassen" zu aktivieren.
Ist im Objekt beim zurück-Link die Option "Zuvor aufgerufene Seite" eingestellt, merkt sich das System den zuvor in der Liste gesetzten Filter (ausgewählte Kategorie).

Weitere Informationen

Weitere Informationen finden Sie auch über die weiterführenden Links. z.B. findet sich hier auch ein Beispiel zur Umsetzung eines Listen-Elements, um die Anzahl der Kategorien einer Auswahlbox hinzuzufügen.