Wegen seiner Sicherheit, seiner Leistungsfähigkeit und seiner Benutzerfreundlichkeit hat sich Plone als Open-Source-CMS für gehobene Ansprüche etabliert. Die im August erschienene Version 3.0 enthält Verbesserungen, die den Einsatz in Unternehmen, Organisationen und Communities noch besser unterstützen.
Fasst man den Begriff Contentmanagement-Systeme (CMS) weit genug, reicht das Leistungsspektrum von Forensoftware wie PHP-BB über Weblog-Programme wie WordPress bis hin zu komplexen Systemen wie Typo3. Wie diese Beispiele basieren viele andere auf PHP. Da die meisten großen Hosting-Unternehmen diese Skriptsprache unterstützen, sind PHP-Systeme weit verbreitet und für viele Benutzer die erste Begegnung mit Webanwendungen.
Sie stoßen aber schnell an ihre Grenzen, wenn ein hohes Maß an Sicherheit, ein leistungsfähiges Zugriffsmanagement für Benutzer und Arbeitsgruppen sowie ein Workflow-gesteuertes Prozessmanagement erforderlich sind. Als CMS für gehobene Ansprüche hat sich in den letzten Jahren das auf dem Webapplikationsserver Zope basierende Plone etabliert [1].
Basis Zope
Zope ist als professionelles System das Python-Pendant zu den leistungsfähigen Webentwicklungssystemen der Java-Welt, also etwa zu JBoss, Websphere oder Weblogic.
Zope macht mit seiner Komponentenarchitektur als Unterbau Plone für unternehmenskritische Anwendungen erst richtig interessant. Wie Zope selbst basiert es auf Python. Diese objektorientierte Programmiersprache zeichnet sich durch Eleganz und Einfachheit aus.
Aufgrund seiner guten Lesbarkeit eignet sich der Python-Code vor allem für Projekte, in denen Teamarbeit eine große Rolle spielt. Dies mag auch einer der Gründe sein, warum die Plone-Community mit rund 160 Kernelentwicklern und weit über 500 Programmierern von Erweiterungen eine der größten und lebendigsten Open-Source-Entwicklergemeinschaften weltweit ist.
Plone läuft auf allen gängigen Betriebssystemen. Für Windows, Linux und Mac OS X gibt es Installer, die ein komplettes System einrichten. Wer Plone einmal ausprobieren möchte, sollte diesen einfachen Installationsweg wählen, dann bekommt er im Handumdrehen den Plone-Screen zu sehen (Abbildung 1). Beim professionellen Einsatz von Plone empfiehlt es sich jedoch, alle Komponenten – also Python, Zope und Plone – aus den Sourcen zu installieren. Plone 3.0 erfordert Python in der Version 2.4.4 sowie Zope 2.10.4.

Abbildung 1: Die Oberfläche des Plone-CMS frisch nach der Installation. Unter dem Punkt »Get started« findet der Admin die wichtigsten Funktionen für die Systemverwaltung.
Eine relationale Datenbank benötigt Plone nicht zwingend, da das System die integrierte Objektdatenbank ZODB von Zope nutzt. Die ZODB ist ACID-konform, hat Undo-, Replikations- und Hot-Backup-Funktionen und kann über Zope Enterprise Objects (ZEO) als zentrale Datenbank-Serverlösung Daten zur Lastverteilung an mehrere parallel laufende Zope-Instanzen ausliefern. Dadurch ist Plone in hohem Maße skalierbar. Wer auf eine SQL-Datenbank nicht verzichten mag, kann diese über objektrelationale Mapper an Plone anbinden.
Einfaches Editieren
Plone besitzt eine recht intuitive Benutzeroberfläche. Selbst Anwender, die noch nie mit einem CMS gearbeitet haben, können Plone in kurzer Zeit produktiv nutzen. So ist zum Beispiel die Bearbeitung in das normale Layout der Site integriert, statt dafür ein getrenntes Editier-Interface vorzuschreiben. Dadurch sieht der Benutzer immer, welche Auswirkung seine Veränderungen haben, und muss sich nicht erst mit der Benutzerführung in einem getrennten Redaktionssystem auseinandersetzen. Wenn er einen Artikel bearbeitet, erhält dieser lediglich einen zusätzlichen Rahmen mit den notwendigen Bearbeitungsmenüs.
Einige Elemente einer Seite, etwa die Überschrift, die einleitende Beschreibung und der Haupttext lassen sich – die entsprechenden Rechte vorausgesetzt – durch einen Mausklick auch isoliert in den Bearbeitungsmodus versetzen und vom übrigen Inhalt der Seite bearbeiten. Das ist besonders praktisch bei schnellen redaktionellen Änderungen. Erzielt wird dieser Effekt durch Ajax, das Plone mit Hilfe des Framework KSS (Kinetic Style Sheets) unterstützt [2].
Informationen speichert Plone als Objekte in Form von so genannten Artikeltypen. Jedem Artikeltyp liegt ein Schema zugrunde, das sich dem Benutzer als Formularsatz darstellt, über den er die Daten eingibt. Dabei kann er ganz unterschiedliche Arten von Informationen verarbeiten. In der Standardversion von Plone gibt es folgende Artikeltypen:
- Ordner: Dienen der Strukturierung der Website.
- Seite: Bestehend aus Titel, Einleser und Haupttext.
- Nachricht: Ähnlich aufgebaut wie eine Seite,
zusätzlich versehen mit einem Bild, das auch auf der
Nachrichten-Übersichtsseite erscheint. - Bild: Zur Speicherung, Skalierung und Anzeige von
Grafikformaten. - Datei: Zur Speicherung von Word-, PDF- oder anderen
Dateiformaten, die als Download angeboten werden. - Link: Für die Speicherung von kommentierten
Verweisen. - Termin: Für Termine, Veranstaltungen und so fort.
- Kollektion: Virtueller Ordner, der Inhalte anhand komplexer
Suchmuster anzeigen kann.
In allen Artikeltypen sind die Inhalte durch Metadaten kategorisiert, die dem Dublin-Core-Schema [3] entsprechen. Über diese Metadaten lassen sich die unterschiedlichen Inhalte in der Website miteinander verknüpfen oder in einem Suchlauf gezielt auffinden. So werden beispielsweise in den Kollektionen Inhalte anhand ihrer Metadaten gemeinsam aufgelistet.
Extensions für Media-Typen
Erweiterungen für Plone stellen zusätzliche Artikeltypen zur Verfügung, zum Beispiel für Umfragen oder für multimediale Inhalte (Video, Audio, Podcast), oder fügen den bestehenden Artikeltypen neue Funktionen hinzu. Über das Framework der so genannten Archetypes können Entwickler – bei Bedarf auch bequem über Webfrontends – eigene, individuelle Artikeltypen definieren.
Die Benutzer können Inhalte nicht nur über den Browser verwalten, sondern auch über Webdav und FTP-Clients. Ein Ordner in Plone kann über Webdav auf den Benutzer-Rechnern als Verzeichnis im Dateisystem erscheinen. Office-Dokumente lassen sich auf diese Weise aus Word oder Open Office heraus direkt in Plone speichern.
Verschiedene Eingabemöglichkeiten
Über Formularfelder, Auswahlmenüs oder Radiobuttons gibt der Anwender – wie bei Webanwendungen üblich – die Informationen ein. Fließtexte mit Überschriften, Aufzählungen, integrierten Bildern und Links lassen sich in Plone über verschiedene Wege erstellen. Plone unterstützt Auszeichnungssprachen wie Restructured Text, Markdown [4] und Textile [5], die es nach dem Speichern in HTML umwandelt. Für technisch versierte Anwender sind diese Eingabeformate sehr bequem, da sie alle Formatierungsbefehle einfach und schnell über die Tastatur eingeben können.
Die meisten Anwender dürften aber den Texteditor Kupu vorziehen, dessen Menüs an die bekannten Textverarbeitungsprogramme erinnern (Abbildung 2). Neben zahlreichen Stilvorgaben verfügt Kupu über Werkzeuge für die Eingabe von Tabellen sowie zur Einbindung von Links, Bildern und Videos. Potenziell schädliche HTML-Tags entfernt Plone vor dem Speichern. Kupu läuft im Internet Explorer und den Mozilla-Browsern. Mit Konqueror, Safari oder Opera funktioniert Kupu leider nicht.

Abbildung 2: Der eingebaute Editor Kupu ermöglicht auch Anwendern ohne HTML-Kenntnisse das Eingeben von Inhalten. Potenziell schädliches HTML filtert das System aus.
Rollenbasiertes Zugriffsmanagement
Mit Hilfe seines durchdachten Zugriffsmanagements ermöglicht Plone größeren Benutzergruppen kollaboratives Arbeiten in einer sicheren Webumgebung. Das gemeinsame Bearbeiten von Informationen auf der einen und Vertraulichkeit auf der anderen Seite sind Anforderungen, die bei größeren Websites vom CMS große Flexibilität erfordern. Plone hat dafür ein rollenbasiertes Zugriffsmanagement, das einzelnen Benutzern beziehungsweise Gruppen global für die gesamte Website oder lokal für einzelne Bereichen sehr fein abgestimmte Zugriffsrechte einräumen kann.
Rollen stellen – vereinfacht gesprochen – eine Sammlung spezifischer und feinkörniger Berechtigungen dar, die Zope und Plone 3.0 auf unterer Ebene bereitstellen. Da sich mit diesen zahlreichen Einzelberechtigungen im Alltag schlecht arbeiten lässt, sind sie in intuitiv erfassbaren Rollen zusammengefasst. Der Administrator kann Berechtigungen in den einzelnen Rollen jederzeit ein- oder ausschalten und so die Konfiguration ändern. Folgende Rollen sind in Plone 3.0 standardmäßig vorhanden:
- Mitglied ist ein registrierter Benutzer.
- Leser darf Inhalte lesen.
- Beitragender darf Inhalte hinzufügen.
- Bearbeiter darf Inhalte bearbeiten.
- Redakteur darf Inhalte veröffentlichen.
- Manager darf die Struktur der Website verändern.
- Besitzer ist der Benutzer, der einen Inhalt ursprünglich
angelegt hat.
Rollen lassen sich einzelnen Benutzern oder Gruppen entweder global oder für einzelne Bereiche der Site zuweisen.
Wichtig: Workflows
Eng verflochten mit dem Zugriffsmanagement auf der einen und der Redaktion von Inhalten auf der anderen Seite ist die Abbildung von Arbeitsabläufen. In Plone dienen Arbeitsabläufe dazu, Inhalte in einem geordneten redaktionellen Prozess zu bearbeiten, zu veröffentlichen und je nach Bedarf wieder zu löschen oder zu archivieren. Inhalte liegen in Plone dazu in verschiedenen Zuständen vor, zum Beispiel als private oder veröffentlichte. Private Inhalte kann – vereinfacht gesprochen – nur einsehen, wer sie erstellt hat, während veröffentlichte Inhalte allen Besuchern der Website zugänglich sind. Dazu berechtigte Personen können die Inhalte von einem Zustand in den nächsten überführen. Dieser Ablauf wird Übergang genannt.
Fertige Abläufe
Alle Zustände und Übergänge zusammengenommen ergeben den gesamten Workflow. Plone 3.0 kennt vier unterschiedliche, bereits vorkonfigurierte Arbeitsabläufe:
- Arbeitsablauf mit einem Zustand: Inhalte sind sofort zu
veröffentlichen und für alle Besucher sichtbar. - Einfacher Publikationsarbeitsablauf: Der Besitzer darf Inhalte
selbst veröffentlichen. - Intranet-Arbeitsablauf: Inhalte sind nur für registrierte
Benutzer sichtbar. Redakteure können intern
veröffentlichen, die Inhalte bei Bedarf aber auch anonymen
Besuchern der Website zugänglich machen. - Community-Arbeitsablauf: Inhalte werden von Redakteuren
für die Öffentlichkeit freigegeben.
Mit diesen Arbeitsabläufen lassen sich sowohl private Websites als auch große unternehmensweite Intranetlösungen effizient betreiben. Innerhalb einer Website können gleichzeitig mehrere Arbeitsabläufe zur Anwendung kommen: So ist es möglich, einen Workflow global für die ganze Website festzulegen, man kann ihn aber auch einzelnen Artikeltypen (zum Beispiel Nachrichten, Bildern oder Terminen) zuordnen oder nur für bestimmte Bereiche der Website lokal einrichten.
Der Site-Administrator hat damit viele Freiheiten, auf die Anforderungen seiner Benutzer einzugehen. Er kann beispielsweise einem Bereich, der sowieso nur einer internen Arbeitsgruppe zugänglich ist, den “Arbeitsablauf in einem Zustand” zuordnen, sodass alle Benutzer sofort Zugriff auf neue Informationen haben. Den Bereich für die Pressemitteilungen unterwirft er dagegen dem mehrstufigen Intranet- oder Community-Arbeitsablauf, sodass berechtigte Personen alle Inhalte vor der Veröffentlichung freigeben müssen.
Versionen und Ereignisse
Plone 3.0 verfügt über eine Versionierung. Will ein Benutzer einen bestehenden Artikel überarbeiten, erzeugt er zunächst eine Arbeitskopie und bearbeitet den Inhalt im Hintergrund, während die Öffentlichkeit noch die ursprüngliche Version zu Gesicht bekommt (Staging). Wenn die Bearbeitung abgeschlossen ist, schaltet er die neue Version frei. Er kann die Versionen miteinander vergleichen und bei Bedarf eine neue Version auch wieder durch eine ältere ersetzen. Gerade bearbeitete Artikel sind für die Bearbeitung durch andere Personen gesperrt (Locking).
Cron für Plone
Eine wichtige Neuheit in Plone 3.0 ist die Ereignissteuerung, die zahlreiche Vorgänge automatisiert. So kann der Admin mit dem Erstellen, Verändern und Löschen von Inhalten, aber auch mit bestimmten Stationen im Workflow weitere Aktionen verknüpfen. Dazu gehören das Erzeugen von Kopien oder das Versenden von Benachrichtigungen per E-Mail. Die Regeln, nach denen diese Aktionen ablaufen, dürfen weitere Bedingungen enthalten. Man formuliert sie über ein Menü und weist sie einzelnen Artikeln oder Ordnern zu.
Link-Management: Warnung und Redirect
Verschobene oder gelöschte Inhalte haben oft tote Links zur Folge. Plone 3.0 löst das Problem mit einer automatischen Integritätsprüfung. Bei verschobenen Inhalten, leitet Plone Browseranfragen an den neuen Ort weiter. Wer einen Artikel löscht, auf den andere Seiten verweisen, erhält eine Warnung. Der Benutzer kann dann die Operation abbrechen oder die referenzierenden Dokumente zur Überarbeitung aufrufen.
Suchfunktionen helfen beim Auffinden relevanter Informationen. Inhalte und ihre Metadaten speichert Zope in verschiedenen, einzeln durchsuchbaren Indizes. Der Anwender kann eine Schnellsuche benutzen, die in allen Katalogen sucht und bei Javascript-fähigen Browsern die passenden Treffer bereits bei der Eingabe der Zeichen anzeigt.
Führt dies nicht zum gewünschten Ergebnis, kann er in einer erweiterten Suche komplexe Suchmuster einstellen und die Treffer etwa nach Zeit, Status, Stichwort, Autor oder Artikeltyp eingrenzen. In beiden Fällen dienen »*« als Wildcard und »AND« sowie »OR« als logische Operatoren. Wenn auf dem Server die Pakete »wvware« beziehungsweise »xpdf/pdftotext« installiert sind, durchsucht Zope auch Word- und PDF-Dateien.
Google-Sitemaps
Da Plone 3.0 den Sitemap-Protocol-Standard unterstützt, der von namhaften Suchmaschinen wie Google, Yahoo oder MSN eingesetzt wird, um neue Seiten schneller und effizienter zu erfassen, ist ein gutes Zusammenspiel von Plone-Sites mit Suchmaschinen gewährleistet.
Eine HTML-Seite in Plone lässt sich mit Hilfe der Zope Page Templates (ZPT, Listing 1) modular aufbauen [6]. Zope verwendet Page Templates seit einigen Jahren, um dynamische Webseiten zu erzeugen. Sie sind gut dokumentiert. Wer eigene Templates schreiben will, findet im Internet zahlreiche Anleitungen und Hilfen. Schon eine Standardseite setzt sich aus mehreren Templates zusammen. Um eine individuelle Anpassung zu erreichen, sind die Templates selbst veränderbar, aber auch die Art, wie sie zusammengesetzt sind.
|
Listing 1: Page |
|---|
01 <table border="1" width="100%"> 02 <tr> 03 <th>#</th><th>Id</th><th>Meta-Type</th><th>Title</th> 04 </tr> 05 <tbody tal:repeat="item container/objectValues"> 06 <tr bgcolor="#EEEEEE" tal:condition="repeat/item/even"> 07 <td tal:content="repeat/item/number">#</td> 08 <td tal:content="item/id">Id</td> 09 <td tal:content="item/meta_type">Meta-Type</td> 10 <td tal:content="item/title">Title</td> 11 </tr> 12 <tr tal:condition="repeat/item/odd"> 13 <td tal:content="repeat/item/number">#</td> 14 <td tal:content="item/id">Id</td> 15 <td tal:content="item/meta_type">Meta-Type</td> 16 <td tal:content="item/title">Title</td> 17 </tr> 18 </tbody> 19 </table> 20 |
Die Templates sind dabei nur für die Repräsentation der Inhalte verantwortlich, die Anwendungslogik, zum Beispiel ein Suchlauf zur Auflistung bestimmter Inhalte, ist in Skripte ausgelagert, sodass eine klare Trennung zwischen Inhalten, Anwendungslogik und Repräsentation in Plone gewährleistet ist.
Das Layout von Plone ist XHTML-konform, CSS-basiert und barrierefrei. Es erfüllt den internationalen W3C-Standard WAI-AA/WCAG 1.0 [7] sowie die Anforderungen der US-Gesetzgebung (Section 508, [8]) an die Barrierefreiheit von Websites. Bis hinunter zu den kleinsten Einheiten einer Seite kann der Webdesigner sämtliche Elemente der Website über Cascading Stylesheets in ihrem Aussehen verändern. Schon mit Hilfe einer Anpassung der Stylesheets kann er eine Plone-Site von der Stange sehr frei gestalten.
Mit Hilfe eines gesonderten Stylesheet kann der Anwender Plone-Seiten ohne störende Navigationselemente ausdrucken. In Version 3.0 gibt es zudem ein S5-Stylesheet, das Inhalte im Browser für eine Beamerpräsentation aufbereitet. Die Benutzeroberfläche von Plone ist in mehr als 50 Sprachen übersetzt. Mit der Erweiterung Linquaplone pflegen Redakteure mehrsprachige Inhalte. Dabei legt Plone für jede Übersetzung eine Kopie an, die mit dem Original verknüpft ist.
Single Sign-on
Plone verfügt über einen eigenen Authentifizierungsmechanismus. Um Single-Sign-on-Lösungen zu verwirklichen, kann man Plone mit einer LDAP- oder OpenID-Erweiterung ausrüsten. Weitere zentrale Authentifizierungsmechanismen sind mit etwas Anpassungsaufwand ebenfalls einsetzbar.
Registrierten Benutzern präsentiert Plone 3.0 eine personalisierbare Startseite, im Plone-Jargon Dashboard genannt. Von dort können sie auf individuelle Weise auf Informationen in der Website zugreifen und sich beispielsweise die neuesten Nachrichten oder alle neu hinzugekommenen Inhalte anzeigen lassen.
Trotz der neuen Funktionen ist Plone schneller geworden. Tests mit dem Apache Benchmark ergaben im Vergleich zu 2.5.3 durchweg bessere Werte für Plone 3.0. Alexander Limi, einer der Gründer von Plone, hat in seinem Blog Testergebnisse veröffentlicht, nach denen das Anzeigen einer Seite gegenüber dem Vorgänger weniger als die Hälfte der HTTP-Requests braucht [9]. Außerdem sind die HTML-Seiten, die Plone 3.0 generiert, kleiner als die Seiten der Vorgängerversion.
Schneller mit Cache
Dynamische Seitenaufrufe, bei denen Skripte ablaufen und die endgültige HTML-Seite aus verschiedenen Templates zusammensetzen, beanspruchen natürlich beträchtliche Ressourcen. Plone stellt deshalb verschiedene Caching-Funktionen bereit, die zeitaufwändige Routinen reduzieren.
Obwohl Zope einen eigenen Webserver besitzt, wird Plone in der Praxis meist hinter Apache oder einem Proxy-Cache wie Squid oder Varnish betrieben. Mit Hilfe der Zope Enterprise Option (ZEO) lässt sich die Datenbank und somit die Last auf mehrere Zope-Server verteilen, um Plone-Sites ohne Eingriff in ihre Struktur zu skalieren.
Die Komplexität und Leistungsfähigkeit von Plone schließt einfache Anwendungsfälle nicht aus. Insbesondere die Sicherheit, die der Applikationsserver Zope gewährleistet, macht Plone selbst für kleine Vereinsseiten interessant, zumal mit Plone quasi auf Knopfdruck ein professionelles CMS zur Verfügung steht. Alle seine Stärken kann Plone jedoch erst bei große Websites von Unternehmen oder Institutionen ausspielen. Als Beispiel dafür sind die Websites von Novell, der Humboldt-Universität Berlin oder der TU München zu nennen.
Plone ist unter der GNU Public License (GPL) lizenziert. Die Marke Plone und der Programmcode gehören der Plone Foundation. Für Anwender bedeutet dies ein hohes Maß an Investitionssicherheit.
Updaten oder warten?
Plone 3.0 enthält viele neue Funktionen, die anspruchsvollen Nutzern die Arbeit mit dem CMS spürbar erleichtern. Das ohnehin schon gute Zugriffsmanagement für Benutzer und Gruppen haben die Entwickler noch einmal deutlich verbessert. Mit Plone 3.0 lassen sich komplexere Anwendungsszenarien sehr viel einfacher realisieren als mit der Vorgängerversion. Beim Thema Sicherheit ist Plone als Zope-Anwendung sowieso seit Jahren auf der Höhe der Zeit.
Wer mit einem neuen Projekt beginnt, sollte daher zum neuen Plone 3.0 greifen. Die Aktualisierung eines wenig angepassten Systems dürfte keine größeren Probleme bereiten. Wer jedoch Third-Party-Erweiterungen in einer bestehenden 2.5.3-Instanz einsetzt, sollte mit dem Upgrade warten, bis diese mit der neuen Version kompatibel sind. (ofr)
|
Infos |
|---|
|
[1] Plone: [http://plone.org] [2] KSS-Projekt: [http://kssproject.org] [3] Dublin Core: [http://dublincore.org] [4] Markdown: [http://daringfireball.net/projects/markdown] [5] Textile: [http://hobix.com/textile] [6] Page Templates: [http://zpt.sourceforge.net] [7] W3C-Standard WAI: [http:/www.w3.org/TR/WAI-WEBCONTENT] [8] Section 508: [http://www.section508.gov] [9] Benchmarks: [http://limi.net/articles/some-preliminary-plone-3.0-benchmark-results] |
|
Der Autor |
|---|
|
Jan-Ulrich Hasecke ist selbstständiger Werbefachmann, Mitglied der Plone Foundation und Vorstandsmitglied des DZUG e.V. (Deutschsprachige Zope User Group). |





