CMSstash

ProcessWire: CMS-Framework mit API

ProcessWire ist ein modulares und äußerst flexibles Open Source CMS, das sich explizit an Entwickler richtet und auch als Framework verwendet werden kann. Das System wird seit 2007 von Ryan Cramer als Folgeprojekt des DictatorCMS entwickelt.

Die Webseite von ProcessWire

Die Code-Basis von ProcessWire ist modern und basiert auf einer API. Die Usability ist recht gut und das Projekt weist eine hohe Kontinuität auf. Mit der Fokussierung auf Entwickler als Kern-Zielgruppe hat ProcessWire allerdings nie eine vergleichbare Popularität wie WordPress oder Drupal erlangt.

ProcessWire für Content Manager

ProcessWire bietet auf seiner Seite einen Demo-Bereich an, über den man sich einen Eindruck von der Autoren- und Administrations-Oberfläche verschaffen kann.

Nach dem Login wird der User direkt zur Content-Übersicht weitergeleitet und nicht zu einem Dashboard für Administratoren, wie es bei den meisten anderen Systemen der Fall ist. ProcessWire setzt damit den Fokus aus Redaktions-Sicht richtig.

Für die Erstellung von Inhalten arbeitet der Redakteur bei ProcessWire mit einem traditionellen WISYWIG HTML Editor. ProcessWire folgt damit nicht dem Trend zu Markdown wie viele neuere Systeme, sodass Content Manager ihre gewohnte Arbeitsweise beibehalten können.

The ProcessWire Website

Das Media-Management von ProcessWire ist ziemlich ausgefeilt. Es gibt zwei unterschiedliche Wege, Bilder in eine Seite zu integrieren:

  1. Neue Bilder lassen sich traditionell über den HTML-Editor in den Content integrieren.
  2. Falls das Feature implementiert ist, können Bilder auch über ein separates Drag & Drop-Feld hochgeladen und danach in den Content-Bereich integriert werden.

Etwas inkonsequent ist zumindest in der Standard-Installation der Umgang mit Meta-Informationen für Bilder. Über das Drag & Drop Feld kann ein Alternativ-Text unter dem Titel "Description", aber keine Bild-Unterschrift eingefügt werden. Im Media-Manager des WISYWIG-Editors kann dagegen per Checkbox eine Bild-Unterschrift hinzugefügt werden. Für den Alternativ-Text muss man dann allerdings erst einmal den richtigen Button finden.

Etwas eigenwillig ist auch das Asset-Management. ProcessWire fügt die Media-Dateien im Asset Management den Seiten zu, auf denen sie verwendet wurden. Wer also existierende Bilder nutzen will, muss im Media Manager erst einmal die entsprechende Seite finden und auswählen.

ProcessWire für Entwickler

ProcessWire nutzt den AMP-Stack (Apache, MySQL, PHP) und läuft aber der PHP Version 5.3.8 und ab der MySQL-Version 5.0.15.

Der Installationsprozess ist dank eines übersichtlichen Installations-Wizards sehr einfach. Nach der Installation sollte man allerdings sofort das Modul "ProcessForgotPassword" nachinstallieren, das zwar mit der Core-Version geliefert, aber nicht per Default installiert wird. Falls man ohne dieses Modul sein Passwort vergisst, gibt es kaum eine andere Möglichkeit, als das System neu zu installatieren. Das Modul findet man unter "Modules" und "Configure".

Eine Eigenheit von ProcessWire ist der extrem modulare Aufbau und der API-Ansatz, was ProcessWire zu einem guten Kandidaten für eine headless CMS Architektur macht.

Bei der Erstellung von Themes und Templates folgt ProcessWire einem ähnlich wie Craft oder Statamic: Templates können mit Hilfe eines Template- und Fieldset-Managers komplett über die Administrations-Oberfläche erstellt werden, d.h. man kann über die Oberfläche auch die Eingabefelder für die Autoren definieren.

The ProcessWire Website

Die Templates werden mit klassischem HTML und PHP erstellt:

<h1><?php echo $page->title; ?></h1>

Es gibt mehrere spezielle API-Variablen wie $input, $fields, $user oder $templates, aber in den meisten Fällen wird man vermutlich die $page Variable nutzen. Ein vollständiges Beispiel mit einem Title, einem Body und einer Liste aus Seiten mit einem Feature-Flag könnte so aussehen:

<h1><?php echo $page->title; ?></h1>

<div id='bodycopy'>
    <?php echo $page->bodycopy; ?>
</div>
<ul>
    <?php
    $features = $pages->find("featured=1");
    foreach($features as $feature)
       echo "<li><a href='{$feature->url}'>{$feature->title}</a></li>";
    ?>
</ul>

Wem das Konzept zusagt, der kann über die Documentation von ProcessWire tiefer in die Materie einsteigen.

ProcessWire für Nicht-Entwickler

Für ProcessWire gibt es unzählige Module und Plugins, aber ProcessWire bietet keine Möglichkeit, wie bei anderen Content Management Systemen neue Themes per Klick zu installieren. Stattdessen versteht sich ProcessWire eher als Framework, das Entwicklern dabei unterstützt, eigene Webseiten und Themes umzusetzen. Damit richtet sich ProcessWire konsequent an Entwickler als erste Zielgruppe und auf keinen Fall an Autoren, die in Eigenregie eine Webseite aufsetzen möchten.

Wer in das Coden neu einsteigt und lernwillig ist, für den ist ProcessWire sicherlich ein guter Startpunkt, da es zahlreichen Good Practices folgt, einen API-Ansatz fährt und mit sauberem HTML und objektorientiertem PHP arbeitet.

Preise und Lizenzen

ProcessWire ist Open Source und die Kern-Software wird unter der Mozilla Public Licence Version 2.0 (MPL) angeboten. Andere Komponeten stehen unter der MIT-Lizenz.

ProcessWire verfügt über einen eigenen Shop, über den man Komponenten von Dritt-Anbietern erwerben kann.

Empfehlung: Wann macht ProcessWire Sinn?

ProcessWire kann als CMS-Framework von Web-Agenturen und Freelancern verwendet werden. Es gibt eine lange Liste mit Seiten auf Basis von ProcessWire. Die Komplexität reicht dabei von einfach bis mittel aus so ziemlich allen vorstellbaren Branchen und Kategorien: Es gibt Blogs, E-Commerce-Seiten bis hin zu Veranstaltungs-Verzeichnissen. Mit dem API-Konzept ist Process-Wire natürlich auch ein guter Kandidat für Headless-Konzepte oder wenn Inhalte in irgend einer Weise unabhängig von seiner Darstellung ausgeliefert werden sollen.

Tägliche CMS-News für Entwickler, Designer, Projektmanager und Anwender gibt es von @CMSstash auf Twitter. Twitter kann auch gerne für Hinweise zu Texten genutzt werden.

Zuletzt aktualisert: 08.03.2018