Features

Plone — Das ultimative Open Source Enterprise CMS

Plone ist ein Open-Source Enterprise-CMS. Es ist in Python geschrieben und verwendet das Web-Framework Zope als Basis.

Zur Datenhaltung wird in erster Linie die objektorientierte „Zope Object Database“ (ZODB) verwendet. Zudem kann man Plone mit Hilfe objekt- relationaler Mapper auch mit relationalen Datenbanken wie MySQL, PostgreSQL oder Oracle betreiben.

Es kann auf Linux, Mac OS, BSD, Solaris, NixOS und Windows betrieben werden, sowie auf Virtual Machines.

Herausragende Eigenschaften von Plone sind

  • Das ausgefeilte und sichere Zugangsmanagement für Benutzer und Gruppen, die Qualitätssicherung im Content-Management,
  • die Workflow-gesteuerte, kollaborative Verwaltung der Inhalte,
  • die universale Benutzerfreundlichkeit sowie
  • die leistungsfähigen Werkzeuge zur Systemadministration.

Außerdem zeichnet sich Plone durch nahezu grenzenlose Erweiterbarkeit aus. Die modulare und offene Architektur erlaubt es, alle Funktionen in Plone zu erweitern oder zu verändern und damit nahezu beliebige Anforderungen umzusetzen.

Im Folgenden werden die Kernfunktionen von Plone beschrieben.

REST API

Plone verfügt über eine RESTful hypermedia API, die es erlaubt mit beliebigen Anwendungen über diesen offenen Standard zu kommunizieren. Moderne Javascript-Anwendungen oder Mobile Apps können Plone z.B. als Backend verwenden.

Inhaltstypen

Plone bietet eine Reihe vordefinierter Standard-Inhaltstypen wie Seite, Ordner, Nachricht oder Bild. Weitere Typen können über das Framework „Dexterity“ erstellt werden. Typ-übergreifend lassen sich Funktionalitäten über sogenannte Behaviors entwickeln, die für Inhalte aktiviert und deaktiviert werden. Inhaltstypen können auch im User-Interface ohne Programmierkenntnisse angelegt und verändert werden.

Dateneingabe

Zur Eingabe von Daten für diese Inhalte werden automatisch aus dem Schema der Inhalte generierte Formulare verwendet. Die Eingabe wird entsprechend der im Schema eines Inhaltstypen definierten Einschränkungen validiert.

Layout

Für die Darstellung eines Inhalts kann entweder eine Standarddarstellung verwendet oder frei definiert werden, indem Daten aus den Schema- Feldern sowie frei hinzufügbare Daten (Text, Bilder, andere Inhaltsobjekte etc.) frei in einem Gridsystem positioniert werden können. Manuell erstellte Layouts lassen sich als wiederverwendbare Ansichten für bestimmte Inhaltstypen speichern.

Ansichten

Für Inhaltstypen lassen sich beliebige viele Ansichten definieren, die den Redakteuren zur Verfügung stehen. Bei dem Standardtyp Ordner werden z.B. Ansichten als Tabelle, Liste, Gallerie oder Vorschau angeboten. Alternativ kann ein Inhaltsobjekt als Darstellung für einen Ordner ausgewählt werden - dieser Inhalt ersetzt dann die Ordnerdarstellung.

Kollektionen / gespeicherte Suchen

Auflistungen von Inhalten lassen sich über Kollektionen generieren wobei Redakteure frei definieren können, welche Inhalte angezeigt werden. Diese Kriterien kann man in einem intuitiven Frontend mit Vorschaufunktion erstellen.

Metadaten

Alle Inhaltstypen können mit umfangreichen Metadaten nach dem Dublin-Core-Schema versehen werden. Dazu gehören u.a. Schlagworte, Beschreibung, Freigabedatum, Ablaufdatum, Autoren u.v.a

Benutzer, Gruppen, Rollen und Rechte

Plone bietet eine ausgefeilte Benutzer- und Gruppenverwaltung, die sich gut mit LDAP verbinden lassen. Berechtigungen sind an Rollen gebunden und werden für jede einzelne Aktion an einem Inhaltsobjekt anhand der Rollen des aktuellen Benutzers geprüft. Benutzer werden normalerweise in Gruppen verwaltet. Diesen Gruppen werden dann gewisse Rollen zugestanden mit denen die Benutzer entsprechende Berechtigungen bekommen. Zusätzlich können Rollen einzelnen Benutzern gegeben werden.

Auch auf einzelnen Inhalten oder auf ganzen Inhaltsbäumen können Rollen als lokale Rollen an Gruppen und Benutzer vergeben werden. Zusätzliche Flexibilität gewinnt Plone indem einzelne Rollen je nach Workflowstatus und Typ eines Inhaltes bestimmte Rechte haben können oder nicht. Letztlich lassen sich Rollen auch dynamisch per Code definieren, z.B. könnte ein User abhängig davon ob der Name im Feld 'Teilnehmer' einer Veranstaltung steht darauf Lesezugriff haben oder eben nicht.

Workflow

Plone verfügt über mehrere eingebaute Arbeitsabläufe, die eine arbeitsteilige Erstellung und Verwaltung von Inhalten ermöglichen.

Die eingebauten Arbeitsabläufe regeln die Art und Weise, wie Inhalte in Plone veröffentlicht werden. Wird kein Arbeitsablauf verwendet, sind neu angelegte Artikel sofort für jedermann zugänglich, wenn sie sich in einem öffentlichen Bereich (Ordner) befinden. Beim den meisten Arbeitsabläufen entscheidet eine Redaktion darüber, ob ein Artikel öffentlich zugänglich sein soll.

Die Arbeitsabläufe können global für die gesamte Website, für bestimmte Bereiche der Website und für einzelne Artikeltypen gesondert eingerichtet werden. über das User-Interface können individuelle Workflows modelliert werden um spezielle Nutzeranforderungen zu erfüllen.

Versionierung

Inhalte und Metadaten unterliegen einer Versionierung, so dass Änderungen nachvollzogen und bei Bedarf zurückgenommen werden können. Bei jeder Speicherung wird eine neue Version angelegt.

Arbeitskopien

Bereits existierende Artikel können in einer Arbeitskopie bearbeitet werden, die erst später den alten Artikel ersetzt.

Locking

Ein Locking-Mechanismus sorgt dafür, dass nicht zwei Benutzer gleichzeitig an ein und demselben Artikel arbeiten und ihre Änderungen gegenseitig überschreiben.

Linkintegritätsprüfung

Soll ein Artikel gelöscht werden, auf den intern von anderen Artikeln aus verwiesen wird, gibt Plone eine Warnung und Hinweise zum weiteren Vorgehen aus.

Dynamische Navigation

Die Navigation wird dynamisch aus denjenigen Inhalten generiert, die an einer bestimmten Stelle im Inhaltsbaum existieren und auf die der aktuelle Benutzer Zugriff hat.

Mehrsprachigkeit

Das User-Interface von Plone ist in ca. 50 Sprachen übersetzt. Inhalte können übersetzt und übersetzungen miteinander verbunden werden. Bei der übersetzung werden Redakteure u.a. durch eine Ansicht unterstützt, die die Texte des Originals und die Eingabefelder der Zielsprache nebeneinander anzeigt. Einzelne Felder auf Inhaltstypen können auch als sprachunabhängig definiert werden und werden automatisch zwischen den verschiedenen Sprachen synchronisiert.

Interne Suchmaschine

Plone verfügt über einen integrierten Catalog, der in diversen Indexen Metadaten über die Inhalte speichert um diese schnell verfügbar zu machen. Diese Indexe werden für die interne Suchmaschine verwendet und lassen sich beliebig erweitern. Zusätzlich kann Apache Solr oder Elasticsearch angebunden werden, was es erlaubt, erweiterte Suchfunktionen wie Fuzzy Search oder systemübergreifende Suche umzusetzen.

Valides und sicheres XHTML

Bei der Eingabe von Text lässt Plone dem Benutzer viele Freiheiten. Inhalte können über Formulare mit Widgets eingepflegt werden. Zur Eingabe von HTML wird TinyMCE als WYSIWYG-Editor verwendet. Optional kann auch reines HTML RestructuredText oder Markdown für die Eingabe verwendet werden. Plone sorgt automatisch dafür, dass unerwünschte HTML-Tags und -Attribute vor der Speicherung entfernt werden und die angezeigten Seiten valides XHTML enthalten. Die entsprechenden Filterregeln sind frei konfigurierbar.

CSRF Schutz

Plone beinhaltet automatischen integriertem CSRF (Cross-Site Request Forgery) Schutz bis in die Datenbankschicht, der sich auch auf installierte Add-ons erstreckt.

Objektbasierte Sicherheit

Bei jedem Zugriff auf einen Inhalt, sei es bei der direkten Ansicht, beim Bearbeiten oder beim Auflisten in der Suche oder in Kollektionen wird geprüft ob der aktuelle Nutzer Zugriff auf dieses Objekt hat. Dabei wird der Workflowzustand des Inhalts, der Kontext und die Ansicht für die verwendet wird sowie die Rollen (globale, lokale und aus Gruppen vererbte) des Benutzers berücksichtigt. Dies garantiert, dass Benutzer keine Inhalte zu sehen bekommen oder Aktionen durchführen können für die sie nicht berechtigt sind.

Portlets

Portlets sind von Redakteuren je nach Berechtigungen bearbeitbare Informationsblöcke, die an beliebigen Inhalten angelegt werden können. Diese können sortiert und in der Seitenhierarchie nach unten vererbt werden. Es steht ein Vielzahl von Portlets zur Verfügung, z.B. ein Portlet mit Freitext, der in TinyMCE bearbeitbar ist, ein Portlet mit Links zu Inhalten, die für Reviewer zur Freigabe eingereicht wurden.

Theming

Das Design von Plone ist frei definierbar. Mittels der Theming Engine können z.B. statische html-templates mit dynamischen Inhalten verbunden werden oder die serverseitig gerenderte html-Struktur nach Belieben modifiziert werden. Die Theming Engine unterstützt LESS und SASS und ermöglicht das Kompilieren der Regeln direkt im Browser.

Events und Content Rules

Bei Plone basieren viele Funktionen auf einem System an internen Ereignissen. Wird z.B. ein Objekt neu erstellt oder bearbeitet werden eine Reihe von Events getriggert. Auf diese Ereignisse 'hören' andere Funktionen und reagieren z.B. mit dem Anlegen einer neuen Version oder der Neuindizierung des geänderten Inhalts.

Plone bietet zudem ein User-Interface über das man auf viele dieser Ereignisse automatisch eigene Aktionen folgen lassen kann. So kann z.B. ein Redakteur eine Email erhalten nachdem ein Inhalt zur Veröffentlichung eingereicht wurde.

Konfiguration

Über ein zentrales Controlpanel sind die meisten Funktionen vom Plone konfigurierbar.