Drupal in der Praxis: Sobio-Produktkatalog - Teil III

Bild des Benutzers Regina Oswald

Drupal in der Praxis: Sobio-Produktkatalog - Teil I
Drupal in der Praxis: Sobio-Produktkatalog - Teil II

Taxonomie-Menü

Eine besondere Herausforderung war das Menü, das in einer Hierarchie die Produkt-Kategorien anzeigen soll.

Es liegt ja nahe, diese Aufgabe mit dem Modul Taxonomie-Menü durchzuführen.
Nur hat dieses einige Nachteile:

  • Alle Begriffe der Taxonomie werden angezeigt. Wir haben aber Begriffe, die für die Verwaltung verwendet werden, diese sollen nicht angezeigt werden.

  • Die Menübegriffe werden nicht sortiert.
    D.h. wenn ein neuer Taxonomie-Begriff angelegt und das Menü aktualisiert wurde, müßte man den Begriff im Menü händisch an die gewünschte Stelle im Alphabet verschieben.

  • Es wird nicht die Anzahl der Produkte pro Kategorie angezeigt

Der erste Versuch, war eine eigene Funktion zu schreiben, die mit der Drupal API rekursiv den Datenbaum durchgeht und die gewünschten Daten holt, bzw. die unerwünschten Begriffe ausschließt.

Diese Funktion war allerdings eine Performance-Mißgeburt.

Inzwischen wird das mit einer Tree-View gelöst.

Folgende Schritte sind nötig:

1. Modul Views Tree installieren http://drupal.org/project/views_tree

2. Taxonomy Tree-View anlegen nach dieser Anleitung: http://drupal.org/node/495960#comment-5334648

3. Zusätzliche Beziehung anlegen Taxonomie-Begriff: Inhalt using Produkt-Kategorie

4. Zusätzliches Feld anlegen: Titel des Inhalts, der über Beziehungen verknüpft wurde mit Count -Aggregation hinzufügen.

5. zwei Filtergruppen anlegen:

1. Gruppe

ID des Vokabulars

UND ungewünschte Taxonomie-Begriffe ausschließen

UND 2. Gruppe

Nodes muß veröffentlicht sein

ODER Node-Titel is NULL

Der aufwändige Filter ist notwendig, damit Überbegriffe des Terms angezeigt werden, auch wenn damit keine Nodes verknüpft sind, sondern nur mit deren Unter-Kategorien.

6. Sortierung: Taxonomie-Begriff: Name


So sind fast alle Anforderungen an das Menü erfüllt.

Unerfüllt blieb der Wunsch, Kategorien ohne Produkte von der Ansicht auszuschließen.
Wenn man das über den Filter der Tree-View regelt, werden auch solche Kategorien ausgeblendet, die selbst keine Produkte enthalten, aber Unterkategorien mit Produkten.

Für diese Anforderung wurde ein JQuery-Script geschrieben, das auch noch weitere Aufgaben bezüglich Aufklapp-Menü löst.

Die Darstellung solcher Menüs ist in erster Linie eine Frage der Usability.
Hier werden noch User-Meinungen eingeholt und evt. weitere Anpassungen vorgenommen.

Suche in Produkten mit Views ersetzt die globale Suche mit Modul

Da es in der View für Drupal 7 nun auch ohne Zusatzmodul die schöne Möglichkeit gibt, Suchfilter zu kombinieren, haben wir kurzerhand das Suchmodul ersetzt durch eine entsprechende View.

Da es nur einen Inhaltstyp gibt, den wir für die Suche als relevant erachten, ist der Filter einfach zu setzen.
Zusätzlich gibt es den hervorgeobenen Filter mit der Kombisuche in Titel und Body des Nodes.

Die Suche gibt es als einfache und als erweiterte Suche.
Bei lezterer kann der User die Option selbst auswählen.
Per Default ist eingestellt, daß der Suchbegriff im Text enthalten sein soll.
Während die einfache Modul-Suche von Drupal nur die Möglichkeit bietet, nach ganzen Worten zu suchen, kann man über diese Optionen steuern, daß auch "Getreidemühle" gefunden wird, wenn nach "Getreide" gesucht wird.

Die Ausgabe erfolgt in Tabellenform.

Mit dem Template der View werden noch Verschönerungen vorgenommen.
Es soll nicht der ganze Beschreibungstext angezeigt werden, sondern es wird ermittelt an welcher Stelle der Suchbegriff gefunden wird.
Dann werden davor und danach 10 Worte ausgegeben und das Suchwort wird farbig markiert.

Diese Suche per View ist bislang in 6000 Produkten schneller, als die Suche via Modul.
Dieses wird ausgeschaltet, damit der Aufbau des Index via Cron auch entfällt.

Ausblick

Bei der Webseite www.sobio.de handelt es sich um ein Eigenprojekt, das nach und nach mit weiteren Funktionen versehen werden soll.

Angedacht ist die Möglichkeit, auch solche Händler zu integrieren, die noch keinem Affiliate-Netzwerk beigetreten sind. Mit diesen wird dann eine per-Click Vergütung vereinbart.
Die technischen Möglichkeiten für das Tracking der Clicks werden noch geprüft.

Weiter sollen sich User benachrichtigen lassen können, wenn es in einer bestimmten Kategorie neue Produkte gibt, oder bei evt. Preissenkungen.

Falls Sie zu diesem Projekt Fragen haben, kontaktieren Sie uns gerne über das Kontaktformular.

Da es sich um ein eigenes Projekt handelt, probieren wir ständig neue Module und Techniken aus und die hier genannten Module sind evt. nicht mehr aktuell.

Drupal in der Praxis: Sobio-Produktkatalog - Teil I
Drupal in der Praxis: Sobio-Produktkatalog - Teil II