Plone: Das Python Enterprise CMS

Plone ist neben Django-CMS das bekannteste Open Source Enterprise CMS auf Python-Basis. Plone bietet sich vor allem als Python-Alternative zu den großen Java-Systemen und den gängigen Enterprise-Systemen aus der PHP-Welt an. Zu den Stärken von Plone zählt vor allem die sehr hohe Sicherheit. Auch beim Thema Barrierefreiheit macht Plone eine gute Figur.

Die Startseite von Plone

Plone wird seit 2001 entwickelt und ist erstmals 2003 als Open Source Software erschienen. Seit 2004 wird das Projekt von der Plone Foundation getragen. In nahezu allen Ländern gibt es Organisationen, in denen sich die Plone-Community versammelt. In Deutschland dürfte der Python Software Verband die wichtigste Organisation sein.

#Plone für Autoren

Bei den meisten Content Management Systemen entscheidet die Version und die Konfiguration über Wohl und Wehe der Autorenoberfläche. Für Plone gilt diese Regel in besonderem Maße. Es gibt ältere Demo-Installationen, die für Autoren eher schwierig sind. Andere Demo-Installationen wirken durchdacht und hinterlassen einen positiven Eindruck. Ein Grund mehr, sich als Content-Verantwortlicher bei der Integration von Plone einzumischen und die Konfiguration nicht allein der IT zu überlassen.

Plone hat von Version 4 auf Version 5 eine deutliche Verbesserung der Autorenoberfläche vorgenommen. Während in älteren Versionen ein etwas umständlich zu bedienender grüner Balken über dem editierbaren Content-Bereich thronte, hat sich Plone in Version 5 für eine konfigurierbare Menü-Leiste am linken Seitenrand entschieden.

Die Autorenoberfläche von Plone

Bei Plone navigiert der Autor im Admin-Bereich durch die fertige Webseite. Anders als zu erwarten bietet Plone jedoch kein Incontent-Editing an, sondern setzt auf eine klassische Formular-Eingabe, sobald man in den Edit-Modus wechselt. Zusätzlich zu den Formularen für die Bearbeitung der Inhalte findet der Autor über dem editierbaren Bereich eine Tab-Leiste, über die verschiedene Meta-Informationen wie Kategorien, Veröffentlichungs-Zeiträume oder andere Einstellungen bearbeitet werden können.

Dieser eigenwillige Kompromiss zwischen Frontend-Ansicht und formular-basierter Eingabe ist durchaus gelungen. Allerdings wirkt der Editor gerade bei mehrspaltigen Layouts etwas gedrungen. Noch kleinteiligere Layouts (beispielsweise mit Kacheln) dürften mit diesem Prinzip nur schwer zu bearbeiten sein.

Verglichen mit einigen anderen Enterprise Systemen älteren Baujahrs ist Plone mit der Autoren-Oberfläche jedoch immer noch ein Kunststück gelungen. Denn gemessen an dem enormen Funktionsumfang wirkt die Oberfläche vergleichsweise reduziert und intuitiv. Zu dieser Reduktion trägt auch das Konzept unterschiedlicher Nutzerrollen bei: So lassen sich beispielsweise die Rollen zwischen Administrator, Chefredakteur und normalem Redakteur unterteilen und so verschiedene Funktionstiefen anbieten. Die Konfigurationsmöglichkeiten als Administrator sind dabei enorm. Allein für die Content-Eingabe lassen sich ein knappes Dutzend Variationen von HTML über Textile bis Markdown auswählen.

#Plone für Entwickler

Plone basiert auf dem Application-Server und Web-Framework Zope und gilt als das erfolgreichste Zope-Projekt. Im Vergleich zu dem Web-Framework Django und Django-CMS gelten Zope und Plone als etwas schwieriger zu erlernen.

Wie bei den meisten großen Enterprise-Systeme ist bereits die Installation von Plone etwas komplexer. Für Linux- und Unix-Systeme gibt es einen Unified Installer, für Windows-Systeme wird eine Virtual Machine empfohlen. Wer sich erst einmal nur einen Überblick verschaffen will, kann eine der vielen Demo-Installationen nutzen und die Dokumentation von Plone konsultieren.

Plone arbeitet mit der hauseigenen Theme-Engine Diazo. Anders als die meisten anderen Template-Engines arbeitet Diazo nicht mit einer Mischung aus HTML und speziellen Tags. Stattdessen nutzt Diazo reine HTML-Mockups und eine davon komplett getrennte XML-Datei mit sogenannten Rules. Die Rules funktionieren ähnlich wie CSS-Selektoren und ermöglichen eine Dynamisierung des HTML-Mockups. Sprich, man kann mit den Rules im HTML-Mockup IDs oder Klassen auswählen und die ausgewählten Elemente durch den Content aus Plone ersetzen. Die Auswahl der Elemente funktioniert entweder über den CSS Expression Selector "css:" oder über XPath.

Als einfaches Beispiel kann man einen simplen Div-Tag mit der ID "header" im HTML-Mockup erstellen:

<div id="header">
    // this is a placeholder
</div>

Anschließend kann man die ID wie folgt mit einer XML-Rule auswählen und durch dynamische Inhalte aus Plone ersetzen:

<?xml version="1.0" encoding="UTF-8"?>
<rules
    xmlns="http://namespaces.plone.org/diazo"
    xmlns:css="http://namespaces.plone.org/diazo/css"
    xmlns:xsl="http://www.w3.org/1999/XSL/Transform">`

    <theme href="theme.html" />
    <replace css:content="#header" css:theme="#header" />

</rules>

Mit theme lassen sich die Elemente aus dem HTML-Mockup ansprechen, mit content die Inhalte aus Plone. Neben <replace /> gibt es noch <drop />, <before />, <after />, <strip />, <merge /> und <copy />. Zusätzlich gibt es noch Conditionals wie if, if-content oder if-not sowie method. Für Loops und andere komplexere Logiken kann man auf XSL-Anweisungen zurückgreifen.

Das Konzept wirkt erst einmal sehr smart, allerdings merkt man schon bei diesem sehr oberflächlichen Blick, dass man sich auf eine eigene Plone-Welt einlassen muss. Der Theming-Ansatz unterscheidet sich deutlich von dem, was man von anderen Template-Sprachen mit der üblichen Mustache-Syntax gewohnt ist (beispielsweise Twig oder auch DTL von Django-CMS). Eine große Rolle dürfte das bei einem Enterprise-System wie Plone allerdings nicht spielen, da im Enterprise-Bereich eigenwillige Abstraktions-Schichten und komplexere Entwicklungs-Ansätze eher die Regel als die Ausnahme sind.

#Plone für Nicht-Entwickler

Für Nicht-Entwickler oder Code-Einsteiger ist ein Enterprise-System wie Plone natürlich gänzlich ungeeignet. Auch Themes gibt es für Plone so gut wie nicht, da ein großes Unternehmen kaum ein Design von der Stange nehmen wird. Wer in den Python-Bereich einsteigen will und eher schlankere Alternativen sucht, kann es zum Beispiel mit Django-CMS oder noch besser mit einem Static Site Generator wie Lektor versuchen.

#Kosten

Plone ist Open Source und steht unter GPL-Lizenz. Kosten entstehen durch die Integration und die individuelle Anpassung der Webseite. Plone ist zwar mit Django-CMS das bekannteste Python-CMS. Allerdings dürfte die Verbreitung auch im Enterprise-Bereich im Vergleich zu anderen bekannten Enterprise-Systemen aus der Java- und PHP-Welt relativ gering sein. Dienstleister findet man über das Anbieter-Verzeichnis von Plone.org, über die deutsche Plone-Seite, über den deutschen Python-Verband oder ganz einfach per Suchmaschine.

#Einsatzmöglichkeiten für Plone

Aufgrund der recht komplexen Technologie und des enormen Feature-Umfangs macht ein Einsatz von Plone eher bei großen Mittelständlern, Konzernen und großen Organisationen Sinn, besonders wenn es um Sicherheit und Barrierefreiheit geht. Eingesetzt wird Plone zum Beispiel bei den UN, von der Stadt Bern oder von der Euorpäischen Umwelt-Agentur. Für schlankere Anforderungen und kleinere Unternehmen sollte man im Falle eines Python-CMS Plone mit Django-CMS oder Wagtail vergleichen und ggf. die Usability entscheiden lassen.

© by Sebastian Schürmanns, 2017 - 2024. All Rights Reserved. Built with Typemill.