Donnerstag, 9. Februar 2012


Artikel

Juli 2010 | Artikel

MODx: Revolution Fortsetzung, Teil 4

Teil 1   Teil 2   Teil 3   Teil 4   Teil 5   

Und vieles mehr …

Bilder und anderweitige Dateien werden im Filemanager verwaltet und angelegt. Die Verwaltung befindet sich ebenso wie die Ressourcen in der linken Spalte des Backends. Upload und Bearbeitung erfolgen beide über das Kontextmenü – das ist zwar leicht gewöhnungsbedürftig, aber andererseits einfach zu handhaben. Bei Revolution fehlt mir dazu nur noch der in Evolution eingesetzte Bildeditor, ein kleines Tool, mit dem Bilder über die Weboberfläche bearbeitet werden können.

Bei all diesen Punkten, ist es bei genauerer Beobachtung sehr erfreulich zu sehen, dass die Entwickler bereits ein paar Schritte voraus gedacht haben und man darf sich schon auf die nächsten Versionen freuen. Ich könnte hier noch weiter ausholen, z.B. bin ich in der MODx-Dokumentation auf eine Beschreibung gestoßen, wie man mit SVN die in der Datenbank gespeicherten Snippets, Plug-ins o.ä. verwalten kann, aber das würde den Rahmen des Artikels jetzt doch etwas sprengen …

Add-Ons

Wie jedes andere Open-Source-System lebt auch MODx von den Erweiterungen, die durch die Community, aber auch vom Core-Team, beigesteuert werden, erst so richtig auf.

Wie schon zuvor beschrieben, geht ohne die Add-Ons erstmal gar nichts. Bei einem Release Candidate oder einem stable Release werden die Standard-Add-Ons inklusive einer Demosite gleich mitgeliefert und installiert, gerade beim Erlernen eines neuen Systems ist dies sehr hilfreich. Die manuelle Installation erfolgt im Package Manager, hier kann auch geprüft werden, ob eine neue Version eines Add-Ons verfügbar ist. Verwaltet oder bearbeitet werden installierten Erweiterungen aber über das Tag Elemente in der linken Spaltenansicht.

Ein paar "must have" Add-Ons

  • Wayfinder (Snippet): Generiert jegliche Varianten von Menülisten
  • Ditto (Snippet): Verarbeitet Dokumente und Links, begonnen bei der Daten-Filterung, über verschiedene Ansichten Detail-, Listenansichten oder unterschiedliche Datenformate wie HTML, XML, RSS, JSON. Egal wie Ihre Vorstellungen aussehen, Ditto wird sie nicht enttäuschen.
  • Eform (Snippet): Verarbeitet Formulare, prüft die Formulareingaben und lässt eigene Prozesse einbinden.
  • Phx/IF (Plugin): Verarbeitet verschachtelte Platzhalter (zb. IF-Schleifen, String-Modifikationen) innerhalb von Templates und Chunks.
  • RTE (Plugin): Bindet einen Richtexteditor im Backend bei der Dokumentenformularmaske ein. Doc Manager (Komponenten / Module): Ermöglicht Massenoperationen in Dokumenten

MODx hat eine sehr aktive Community (mehr dazu etwas später im Text) und diese hat aktuell ca. 650 Add-Ons, vornehmlich noch für die Evolution-Version, entwickelt. Der Großteil ist leider nicht mit Revolution kompatibel und wird daher weiterentwickelt werden müssen, was ich persönlich gar nicht schlecht finde, denn dann kann ein natürlicher Reinigungsprozess stattfinden. Im Laufe der Jahre haben sich nämlich einige Skripte angesammelt, die es nicht über eine Alpha- oder Betaversion hinaus geschafft haben.

Im Prinzip findet sich für (fast) jede Anforderung ein Add-On. Wobei es auch ein paar Defizite gibt. Zum Beispiel sind einige kleinere Newsletter-Module verfügbar, aber ein wirklich ausgereiftes, mächtiges und stetig weiterentwickeltes Mailing-Tool ist nicht dabei. Ähnlich ist es auch bei Shoplösungen und Foren, wobei es hier aber Schnittstellen zu fremden System gibt. Generell stellt sich bei solchen Modulen bzw. Features ohnehin die Frage, ob für eine professionelle Shoplösung, nicht entsprechende Applikationen wie Magento die bessere Alternative wären.

Die Entwicklung und Einbindung von Add-Ons ist sehr einfach. Bei Templates und Chunks genügt HTML-/CSS-/JavaScript-Know-how und bei Snippets, Plug-ins oder Komponenten ist ein wenig PHP-/MySQL-Know-how erforderlich. Im Allgemeinen kann das System so für jedes denkbare Feature erweitert werden, weil mit der Architektur und dem API alle MODx-Objekte und Datenbankzugriffe zur Verfügung stehen.

Dokumentation

Jetzt wird es heikel, aber wahrscheinlich auch nicht viel heikler, als bei anderen Systemen auch. Beginnen wir beim Positiven – es gibt eigentlich für alle wichtigen Funktionen eine Dokumentation, sei es das MODx-API, Add-Ons, etc. Allerdings könnten diese durchaus ausführlicher sein und es ist bislang recht unstrukturiert, so gibt es eine eigene komplette Microseite, andere Dokumentationen befinden sich im Wiki, direkt im Installer-Paket oder auf dem Portal MODxcms.com, z.B. im Forum.

Meine persönliche Erfahrung ist, dass es erst schwierig wird, wenn man zum ersten Mal wirklich komplexe und knifflige Anforderungen umsetzen muss. Dann wird es mehr zu einem "Try & Error" Thema, aber in den Foren findet man schnell Hilfe oder Unterstützung.

Ausgehend von Revolution kehrt aber auch hier Ordnung im Hause MODx ein. Dafür wurde eigens das Enterprise-Wiki Confluence für die eigene API-Dokumentation eingesetzt, das jetzt langsam aber sicher mit Inhalten befüllt wird. Vorbildhaft wird auch die Dokumentation für Evolution migriert – denn Dokumentation muss sein. Sie zu schreiben ist wahrscheinlich so beliebt wie ein Fahrrad ohne Sitz, aber um die Lernkurve des Systems für potenzielle neue Anwender zu senken und diese entsprechend zu motivieren, ist dokumentieren einfach unerlässlich.

Teil 1   Teil 2   Teil 3   Teil 4   Teil 5   

Kommentare

Gravatar Marc Hinse 06.07.2010
um 12:01 Uhr
Hallo Stefan,

vielen Dank für den ausführlichen Artikel über MODx und damit auch danke für mehr Reichweite dieses Systems!

Ein paar Anmerkungen zum Artikel:

1. MODx Revo wird MODx Evo nicht "ablösen". Beide Zweige werden weiter parallel gepflegt. Das Hauptaugenmerk liegt dabei in Zukunft natürlich auf Revo. Dennoch wird Evo weiterhin mit Updates und Bugfixes versorgt, das Core Team hat das ganz deutlich herausgestellt. Nicht dass Leute, die Evo benutzen, Angst davor haben, updaten zu MÜSSEN. Das Gegenteil ist der Fall. Evo wird weiterhin das System der Wahl sein, wenn es eher um kleinere Websites geht, bei denen es nicht auf die vorteile von Revo ankommt.

2. Die "must have" Addons auf Seite 4 sind allesamt für MODx Evo. Wayfinder ist auch für Revo erhältlich und wird auch weiterentwickelt. Ditto hingegen ist "depraced". Es existiert zwar eine Revo-Version, die jedoch nicht sonderlich performant ist. Ditto ist generell ein ziemliches Schwergewicht, mit dem sich zwar so gut wie alles anstellen lassen kann, aber eben desöfteren auf Kosten der Performance. In diese Presche springt das Snippet "getResources", das zwar (noch) nicht alle Features von Ditto aufweist, aber deutlich schlanker arbeitet.

Ähnliches gilt für:
eForm -> formIt
phx/If -> Im Core (also Standardparser) eingebaut
Document Manager: Gibt es imho noch nichts vergleichbares. Wobei die Sortierfunktion im Baum direkt funktioniert.

3. Mehrsprachigkeit
Hmmm, das stimmt so nicht ganz. Die Lexicon-Geschichte sorgt für das Übersetzen von einzelnen Strings. Diese werden in der Regel von Backend-Komponenten, Snippets etc verwendet und bei der Installation einer Erweiterung gleich mitinstalliert (bzw. falls nicht vorhanden, selbst übersetzt). Dies ist aber noch keine Frontend-Mehrsprachigkeit im herkömmlichen Sinne. Wie man sich diese einrichtet, bleibt einem selbst überlassen. In der Regel pflegt man einfach mehrere Bäume für die Sprachen, wobei man für die Zuordnung der einzelnen Sprachversionen noch Hand anlegen muss. Für Evo gibt es eine Erweiterung "YAMS", mit der in den Dokumenten selbst die andersprachigen Inhalte eingepflegt werden können. Nachteil: Eine echte 1:1-Übersetzung aller Inhalte ist schon fast ein Muss. Auf der Roadmap steht aber sowohl Versionierung (auch das fehlt bisher) als auch Internationalisierung im Frontend.

Die Community ist zwar eher klein, aber sehr fein. Von in manch anderen Foren üblicher Anfeindung und Arroganz ist hier zum Glück nichts zu spüren. Liegt wohl auch daran, dass es eben kein System für Leute ist, die überhaupt keine Ahnung von HTML+CSS haben. Ein Zusammenklicken des Systems ist kaum möglich, ohne nicht auch selbst zu definieren was man will. Und das ist das Schöne daran.

Danke nochmal für den Artikel!
Gruß Marc Hinse (aka MadeMyDay)
#zitieren
Gravatar Stefan 06.07.2010
um 17:41 Uhr
Hallo Marc,

macht man für MODx gerne und vielen Dank für deinen Input ...

@1: "Ablöse" ist vielleicht unglücklich ausgedrückt, aber so gemeint wie du es beschreibst. Wobei künftig hoffentlich nur mehr Revo verwendet wird ;-)

@2: Stimmt natürlich, war nicht so einfach zwischen Evo und Revo zu switchen … sind meines Erachtens trotzdem die besten Beispiele :-)

@3: Aus meiner Sicht schon, denn sobald sich mehrsprachige Seiten (sogar auf mehrere Arten) einrichten lasssen, ist ja die Möglichkeit gegeben und mit einer fixen Funktion oä. würden sich nicht mehr verschiedene Varianten (über Baumstruktur oder Templatevariablen) abbilden lassen.

@4: Bei Revolution wäre es, meines Erachtens, schon möglich ohne „HTML+CSS“ Kenntnisse eine Seite zusammenzuklicken (mit vorhandenen freien Templates über den Packagemanager), es wird natürlich nicht soweit gehen wie bei Wordpress.


Schöne Grüße,
Stefan
#zitieren
Gravatar Phoenix 15.07.2010
um 08:13 Uhr
Hallo

sehr schöner Artikel! Ich hatte auch einmal Kontakt mit ModX, allerdings war mir das Publizieren von verschiedenen Inhaltssituationen einfach zu kompliziert.
Ein Beispiel wäre:
Ich habe auf einer Seite oben Text, dann folgt ein Downloadblock mit 3-4 PDFs, danach kommt wieder einfacher Text und abschließend eine Galerie oder ein individuelles Kontaktformular.

Solche Situationen konnte ich nicht mit Modx lösen, sollte es aber machbar sein, wäre es schön wenn es auch noch genannt wird, denn meist scheiden Systeme bei einer Auswahl schon aus, da die Art und Weise Inhalte zu publizieren einfach zu schwer ist.

Danke ;)
#zitieren
Gravatar Marc 15.07.2010
um 08:46 Uhr
@Phoenix: So etwas lässt sich auf verschiedene Weise erzeugen. Es gibt das durchaus mächtige Instrument der Template Variablen (TVs) sowie die HTML-Fragmente namens Chunks. Diese lassen sich gegenseit referenzieren und einbinden. Also Könntest Du entweder mittels TV sagen, welche Elemente Du auf der Seite haben willst (Einfache Checkboxen zum Beispiel für Galerie, Formular etc.) oder diese direkt per Chunks im Contentfeld einbinden. Eine völlig flexible und sortierbare Inhaltsverwaltung (im Sinne von jetzt ein Formularblock, jetzt ein Textabsatz, dann wieder ein Formular) gibt es allerdings nicht. In der deutschen Community haben wir so etwas in der Mache (bloX/Xedit) inklusive Frontend-Editing, ist aber noch nicht so ganz fertig. #zitieren
Gravatar Sebastian 30.07.2010
um 19:34 Uhr

Phoenix:
Hallo

sehr schöner Artikel! Ich hatte auch einmal Kontakt mit ModX, allerdings war mir das Publizieren von verschiedenen Inhaltssituationen einfach zu kompliziert.

Ein Beispiel wäre:

Ich habe auf einer Seite oben Text, dann folgt ein Downloadblock mit 3-4 PDFs, danach kommt wieder einfacher Text und abschließend eine Galerie oder ein individuelles Kontaktformular.



Solche Situationen konnte ich nicht mit Modx lösen, sollte es aber machbar sein, wäre es schön wenn es auch noch genannt wird, denn meist scheiden Systeme bei einer Auswahl schon aus, da die Art und Weise Inhalte zu publizieren einfach zu schwer ist.



Danke ;)


Das tolle an MODx ist, dass du viele auf viele Wege lösen kannst. Z. B. könntest du die PDFs und die Galerie auch direkt im Dokument per Snippet (PHP-Schnipsel) aufrufen.
Dafür gibt es Snippets, die Dokumente zum Download anbieten - der Pfad zum Dokument könnte beispielsweise über die Parameter geliefert werden - und für Galerien gibt es ein paar Snippets. Es gibt welche, die sich automatisch aus einem Datei-Ordner generieren, und welche bei denen du über das Front-End Bilder einpflegen lassen kannst.

Insgesamt kannst du das ganze sicher sowohl über das Backend als auch über das Frontend lösen.

Ich habe bisher nur mit Evo(lution) produktiv gearbeitet, in Revo(lution) nur reingeschnuppert. Aber was bei Evo geht, geht bei Revo auch und eher einfacher (soweit ich das bisher beurteilen kann). Bei Revo kann es allerdings sein, dass noch ein paar Erweiterungen "fehlen" die Sachen flott lösbar machen - die werden aber wohl bald alle kommen - jetzt stürzen sich alle auf Revolution.

Insgesamt gilt bei sowas: Einfach mal im Forum fragen - in der Regel kommen innerhalb weniger Stunden oder weniger Tage Antworten, die in der Qualität zwischen Tipps, Links zu anderen Beiträgen und kompletten Lösungen variieren.

MODx rockt!
#zitieren