Magnolia CMS und Apache Solr Facettensuche – Teil 2 (Technische Perspektive)

Ausgangslage

Wie in Teil 1 bereits beschrieben, ist es manchmal erforderlich, dass eine gewisse Menge an Informationsitems angezeigt werden muss. Um dem Benutzer hier die Möglichkeit zu geben, die für ihn relevanten Informationen zu filtern sollen mehrere unterschiedliche Filter aus verschiedenen Kategorien gewählt werden können. Die Filter sollen sich beliebig kombinieren lassen, so dass am Ende nur die für den Benutzer wirklich relevanten Informationen angezeigt werden. (In diesem Fall zu sehen bei: www.famigros.ch)

Den Teasern können beliebige Fakten aus beliebigen Kategorien zugewiesen werden. Ein Beispiel wäre „location/Ostschweiz“.

Grundidee

Für die Lösung des Problems wird die Facettensuche des Apache Solr Servers verwendet. Um den Solr Server mit Daten zu versorgen benutzen wir Magnolias Aktivierungs Workflow und pushen beim Aktivieren die entsprechenden Daten. Die Abfrage der Ergebnissmenge erfolgt aus dem Frontend. Der Ablauf für das Bereitstellen der Solr-Dokumente ist also dieser:

  1. Es wird ein neues Informationsitem (z.B. Teaser) in Magnolia erfasst.
  2. Der Benutzer kann diesem aus einem Katalog Ausprägungen verschiedener Kategorien zuweisen
  3. Der Benutzer aktiviert den Content
  4. Während der Aktivierung wird das Informationsitem an den SOLR gepusht

Im Frontend ist der Ablauf dieser:

  1. Besucher gehen auf die Seite mit den Items
  2. Besucher wählen einen Filter
  3. Es gibt einen Request auf den Solr, der die gefilterten Ergebnisse in Form eines JSON zurückgibt
  4. Das Frontend stellt die gefilterten Items dar

(mehr …)

Design Pattern – Dependency Injection

Zur Freude von vielen Entwicklern setzt Magnolia ab Version 4.5 auf das Dependency Injection Design-Pattern (oder Inversion of Control). Dieses Pattern gibt es jetzt schon eine ganze Weile und hat sich spätestens mit dem Spring Framework für Java bei vielen Projekten bewährt.
(mehr …)

Magnolia Conference 2013: Partnertag und Konferenz

Namics hat die vergangenen Tage als Magnolia Partner an der Magnolia Conference 2013 in Basel teilgenommen, in diesem Jahr in entspannter Kino-Atmosphäre im Pathé Küchlin. Vorneweg: ein grosses ‚Dankeschön‘ an das gesamte Magnolia-Team für die reibungslose Organisation. Von den einzelnen Vorträgen und Keynotes, über das Catering zwischendrin, die Mittags- und Abendverpflegung sowie die Party in der Elisabethenkirche ein voller Erfolg!

(mehr …)

Label- und Konfigurations-Verwaltung in Magnolia

In vielen Namics-Projekten steht die Anforderung im Raum, Übersetzungs-Labels und andere Kongifurations-Werte direkt im CMS anpassen zu können – ohne dass dazu ein Deployment resp. eine Änderung am Code stattfinden muss. Obendrauf muss es vorallem in Multisite-Auftritten möglich sein, einzelne global definierte Default-Werte bei Bedarf für z.B. eine Länder-Site anzupassen.

Alle diese Anforderungen haben uns dazu gebracht, ein Magnolia Modul zu entwickeln dass einfach zu einem Projekt (im Maven pom.xml oder direkt JAR File) hinzugefügt werden kann.
(mehr …)