MODx bezeichnet sich bekanntlich als Content Management Framework und kann daher von Haus aus erst mal (fast) gar nichts. Es bietet dem Entwickler nur Tools an, mit denen er selbst etwas bauen kann – zum Beispiel das vollwertige Blogsystem, das in Zukunft bei mir Wordpress ablösen wird. In meinem Fall geht das sogar ganz ohne Extrawürste: einfach die üblichen Module installieren und einrichten, fertig!

Blog-Bausteine

Die MODx-Docs bieten ein offizielles Blog-Tutorial, das im Prinzip alles enthält was man wissen muss. Deshalb hier nur in Kurzfassung die wichtigsten Bausteine:

  • getResources ist ein generelles Ressourcen-Aufliste-Snippet für die Anzeige von mehreren Artikeln auf einmal
  • getPage teilt den Output von getResources in Seiten auf und liefert eine schöne Paginierungs-Leiste
  • Quip implementiert ein Kommentarsystem mit allen Schikanen (Moderationsschleife, Kommentarvorschau, E-Mail-Abo)
  • Simplesearch sorgt für die Suchfunktion

Sobald man sich diese vier Snippets via Paketverwaltung installiert hat, sind alle grundsätzlichen Basics für ein Blog vorhanden. Newsfeeds lassen sich mit Bordmitteln bauen. Tools für Tagclouds, Archive, Breadcrumb-Navis usw. gibt es auch, finden aber in meinem Fall keine Anwendung. Dazu kommen noch ein paar Hilfmittel, die nicht blogspezifisch, aber für jede MODx-Seite nützlich sind:

  • FormIt für den Formularbau (in meinem Fall nur ein einfaches Kontaktformular)
  • Wayfinder erstellt Navigationen
  • If macht die Konstruktion flexibler Templates etwas einfacher

Mit all diesen Snippets (jeweils durch 3 Klicks im Backend zu installieren und mit 3-10 Zeilen Code einzubauen) hat man nun alles, was man für ein Blog braucht, doch das allein reicht ja nicht: wir wollen ein Blog haben, das sich so wordpress-nah wie möglich verhält. Dazu brauchen wir noch eine weitere Komponente.

Wordpressifizierung

Wordpress-Blogposts sind ein einfacher Haufen von Artikeln, MODx-Seiten hingegen sind immer hierarchisch aufgebaut. Das lässt sich auch nicht ändern, aber zumindest für sowohl den CMS-Redakteur als auch für die Welt da draußen verbergen. Autofolders sorgt dafür, dass Artikel, die im Ordner „Weblog“ abgelegt werden, automatisch in Unterordner sortiert werden, die dann zum Beispiel nach Jahr und Monat organisiert sind

Wie genau diese Unter-Einordnung ausfällt, kann man konfigurieren – Turbo-Blogger können auch nach Wochen, selten publizierende Gesellen auch nur nach Jahren sortieren lassen. Für den Frontend-Output weist man dann einfach getResources an, nicht die Ordner, sondern ihren Inhalt auszugeben – fertig! „Richtige“ hierarchiefreie Systeme zur Artikelverwaltung sind dem Vernehmen nach in er Entwicklung, interessieren mich persönlich allerdings nicht so sehr. Für meine Zwecke reicht Autofolders.

Wordpress-URLs enden traditionell mit einem Slash, MODx-URLs mit einer dem jeweiligen Content-Typen angemessenen Dateierweiterung. Das lässt sich aber System → Inhaltstypen umstellen. Damit sich die flache Hierarchie der Blogposts auch in der URL wiederspiegelt, habe ich noch die Alias-Pfade in den Systemeinstellungen deaktiviert. Somit verwendet MODx jetzt die exakt gleichen URLs wie Wordpress, so dass am Ende bei der Umstellung nicht mal 301-Redirects angelegt werden müssen.

Was braucht man noch so? RSS-Feeds sind wie erwähnt mit Bordmitteln zu bauen, Spamschutz ebenfalls, ein Rechtesystem für Gastautoren hat MODx sowieso und einen Kommentarfeed kann man aus den diversen Einzelteilen von Quip und RSS-Bordmitteln schnell zusammenstöpseln. Im Wesentlichen fehlt nur noch der Inhalt, inbesondere natürlich die alten Posts und Kommentare aus Wordpress.

Herausforderung Datenmigration

Die Migration des alten Blog-Contents ist nicht ganz einfach. Natürlich verwenden MODx und Wordpress komplett unterschiedliche Datenbankstrukturen, doch auch der Inhalt des Einen ist nicht unbedingt kompatibel zum Anderen. Die Spezial-Tags von Wordpress wie z.B. Caption kennt MODx nicht, während Wordpress in seinen Datenbanken gar kein richtiges HTML speichert, sondern u.A. <p>-Tags erst bei der Ausgabe einbaut. Das alles unter einen Hut zu kriegen, ist nicht ganz trivial, aber nicht unmöglich.