Kampagnenbasierte Segmentierung mit Magnolia – Teil 1 – Use Case

User Journey Abbildung

Schaut man sich die Entwicklungs-Roadmaps erfolgreicher Content Management Systeme der letzten und kommenden Jahre an, so nimmt das medienübergreifende, integrierte digitale Marketing einen immer grösseren Stellenwert ein. Ebenso laut wird von den CMS Herstellern die Werbetrommel für die neuen Möglichkeiten gerührt. … Weiterlesen

Einfache Favoritenverwaltung mit Magnolia 5 – Produktivitäts-Kurztip

Favoritenverwaltung einfach gemacht

Seit Magnolia 5 existiert die Möglichkeit unter anderem Seiten, Assets und Konfigurationseinträge welche man häufig benötigt sehr schnell wiederfinden zu können. Hierzu wurde in Version 5 neu die Favoritenverwaltung eingeführt welche an zentraler Stelle des Startbildschirms erreichbar ist.

Favoriten Verwaltung

Aufruf der Favoriten Verwaltung

Die Favoritenverwaltung ist beim ersten Aufruf noch leer.

Leere Favoritenverwaltung

Leere Favoritenverwaltung

Gliederung der Favoriten Bereiche

Am Besten fängt man mit einer Gliederung der Hauptbereiche an, im aktuellen Beispiel erstellen wir 2 Bereiche für Pages und Assets:

Favoritenverwaltung - Anlegen von Gruppen

Favoritenverwaltung – Anlegen von Bereichen

(mehr …)

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 …)

LanguageCopy-Funktion in AdminCentral

Vor einigen Monaten bekam ich die Aufgabe eine Funktion im Magnolia-Backend umzusetzen, die es dem Autor erlaubt, eine Seite (wahlweise rekursiv) einer Sprache in alle anderen gewünschten und verfügbaren Sprachen zu kopieren. In diesem Beitrag werde ich erläutern, welche Komponenten für die Umsetzung nötig waren und den dazugehörigen Code liefern. Der Code ist ausschliesslich für Magnolia 4.5.x und kann nicht 1:1 auf Magnolia 5 angewendet werden. Der Dialog sieht am Schluss so aus:

LanguageCopy-Dialog

(mehr …)

Umgebungsspezifische Konfigurationen in Magnolia CMS

Einführung

Wenn ich ein grösseres Magnolia Projekt mit verschiedensten Instanzen aufsetze (local development, development, staging, integration, production), stellt sich früher oder später die Frage,  wie ich verschiedene Konfigurationen kontrolliert auf die verschiedenen Instanzen installieren kann.

In diesem Blog Post zeige ich einen einfachen Lösungsansatz auf, der sich beliebig erweitern und auf projektspezifische Bedürfnisse abstimmen lässt.

Problemstellung

Magnolia bringt out-of-the-box bereits einen Mechanismus mit, der umgebungsspezifisches Einspielen von XML Bootstrap Files erlaubt. Dieser Mechanismus ist aber beschränkt auf die Initialisierung des JCR Repositories und erlaubt deshalb weder das Einspielen von Updates via XML Files, noch eine Interaktion mit Java Code.

Im Laufe eines Projektes kommt oft der Punkt, an dem ich ein Update / Delta Task nur auf einem oder mehreren bestimmten Systemen ausführen möchte. Dazu zählen zum Beispiel das Ändern des SMTP Server im Mail Modul, oder das Aktualisieren eines Subscribers. Zudem kann es auf der lokalen Entwicklungsumgebung sinnvoll sein, bei jedem Neustart des Systems einen Teil der Konfigurationen neu zu schreiben, um die Entwicklung auf einem sauberen Stand zu starten oder Änderungen von anderen Entwicklern im eigenen Repository zu sehen.

Lösungsansatz

Im magnolia.properties File wird ein neues Property magnolia.environment definiert, welches den Namen der Umgebung beinhalten wird.

magnolia.properties

...
magnolia.environment = <env_name>
...

Dieser Lösungsansatz erfordert lediglich, dass für jede zu unterscheidende Umgebung ein eigenes magnolia.properties File existiert, was aber in grösseren Projekten weitgehend der Fall sein sollte.

Das neue Property wird durch eine simple Java Hilfsklasse ausgelesen, und erlaubt auf einfache Weise das Unterscheiden der verschiedenen Umgebungen, insbesondere der lokalen Entwicklungsumgebung. 

(mehr …)

Informationsquellen von und zu Magnolia

Wer kennt diese Situation nicht? Man sucht nach einer Information, weiss aber nicht wo die Suche danach am Besten beginnen soll. Oder aber man weiss, man hat diese Information schon mal irgendwo gesehen – findet sie aber nicht mehr. Klar, Google ist dein Freund (und z.B. Evernote, um Texte/Inhalte jederzeit im Zugriff zu haben). Aber wenn es um Magnolia geht oder es sich um ein spezifisches Problem handelt, kann es ja nachdem sinnvoll sein, ein paar Einstiegspunkte für die Recherche zur Hand zu haben. Genau das möchte ich mit diesem Post gerne versuchen.

(mehr …)