Wie ein CMS funktioniert
Ein CMS (Content Management System) ist eine Software zur Verwaltung von Inhalten. Wenn es dabei um Web-Inhalte geht, spricht die Fachliteratur von einem WCMS oder einem Web Content Management System. Traditionell wurden Web-CMS hauptsächlich zur Erstellung und Verwaltung von Webseiten genutzt, Beispiele sind bekannte Systeme wie WordPress oder TYPO3. Mit dem Ausdifferenzierung von Kanälen und Ausgabegeräten gibt es heute viele unterschiedliche Content Management Systeme, bei denen nicht immer die Erstellung von Webseiten im Fokus stehen.
Für eine erfolgreiche CMS-Auswahl sollte man ein Verständnis dafür haben, wie ein Content Management System grundsätzlich funktioniert. Denn mit diesem Wissen lassen sich die vielen CMS im Markt schneller Bewerten und mit den eigenen Anforderungen abgleichen.
Wer bei der CMS-Evaluation auf eine externe Unterstützung zurückgreifen will, kann sich an unseren Kooperationspartner SUTSCHE wenden. SUTSCHE hat sich auf die Hersteller-neutrale Beratung bei der Auswahl von Content Management Systemen spezialisiert und evaluiert regelmäßig über 50 relevante Systeme.
Wie ein Content Management System funktioniert
Die Funktionsweise von Content Management Systemen kann man grob in drei bis vier Bereiche unterteilen: Mit einem Content Management System kann man:
- Inhalte speichern,
- Inhalte verwalten,
- Inhalte ausliefern,
- Inhalte darstellen (optional).
Abhängig vom Content Management System gibt es natürlich für jeden Bereich unendlich viele Ausbaustufen, aber auch eine Art Minimal-Set an Funktionalitäten, die jedes CMS mitbringen sollte. Zum besseren Verständnis werden diese Kern-Funktionen etwas genauer erklärt.
Inhalte mit einem CMS speichern
Ein Content Management System speichert Inhalte ab. Und dabei gibt es die unterschiedlichsten Spielarten. Für Autoren und Content Manager sind diese Spielarten nicht sonderlich relevant. Sie können jedoch für Webseiten-Betreiber und IT-Abteilung von großer Bedeutung sein, weil sie unterschiedliche Vor- und Nachteile haben.
Die großen und bekannten CMS wie WordPress, Drupal oder Joomla nutzen zur Speicherung von Inhalten eine klassische relationale Datenbank. Verbreitet sind Datenbanken wie MySQL, MariaDB oder PostgreSQL. Welche Datenbanken von einem CMS unterstützt werden, wird in dessen Systemvoraussetzungen aufgelistet.
Es gibt jedoch auch Content Management Systeme, die ohne eine Datenbank auskommen. Sie speichern die Inhalte stattdessen in Dateien auf dem Server ab und werden deshalb gerne als Flat-File-CMS bezeichnet. Zu den Flat-File-CMS gehören beispielsweise Kirby oder Statamic. Als Datei-Format für die Inhalte hat sich in den letzten Jahren vor allem Markdown durchgesetzt. Es sind jedoch auch andere Formate wie TXT, XML, JSON oder direkt HTML denkbar. Zu den Vorteilen von Flat File CMS zählen unter anderem die tendenziell höhere Sicherheit und die einfachere Handhabung, zum Beispiel bei einem Umzug der Webseite.
Es gibt auch einige komplexe Enterprise-CMS, die auf eine klassische Datenbank verzichten. Dazu gehören Adobe AEM, Magnolia oder auch Sulu. Sie legen die Inhalte in einer Art Baum-Struktur auf dem Server ab und greifen dabei auf bestimmte Standards zurück. Für die Programmiersprache Java gibt es den Standard JCR (Java Content Repository) und für die Sprache PHP gibt es den Standard PHPCR. Diese Systeme können besonders gut mit unstrukturierten Inhalten umgehen und erlauben eine sehr flexible Verwendung des Contents.
Es gibt noch weitere Variationen und Zwischenformen, beispielsweise integrierte Datenbanken wie SQLite oder auch NoSQL-Datenbanken wie MongoDB oder CouchDB, die ebenfalls sehr gut mit unstrukturierten Inhalten umgehen können. Die Details sind jedoch eher für Datenbank-Experten relevant.
Bei der Unterscheidung zwischen klassischen Datenbanken und File-basierten Ablage-Systemen geht es vor allem um die Speicherung von Text-Inhalten. Wenn es sich jedoch um Bilder, Dokumente oder sonstige Dateien handelt, dann werden diese sogenannten "Assets" so gut wie immer auf dem File-System des Servers abgelegt und separat verwaltet.
Inhalte mit einem CMS verwalten
Inhalte müssen verwaltet, also zum Beispiel erstellt, editiert, gelöscht oder publiziert werden. Dazu bieten Content Management Systeme eine Benutzeroberfläche an (ein sogenanntes "User-Interface"). Über die Benutzeroberfläche können die Redakteure den Content "managen" und die Administratoren das CMS konfigurieren.
Diese kleine Feststellung hat es ganz schön in sich, denn für eine sinnvolle Interaktion mit Redakteuren und Administratoren benötigt ein Content Management System zahlreiche Features. Features, die das CMS sehr komplex machen können. Das Minimal-Set an Features für eine brauchbare Benutzeroberflläche sieht etwa wie folgt aus:
- Nutzerverwaltung: Damit sich Nutzer überhaupt anmelden können, benötigt ein CMS eine Nutzerverwaltung. Dort können zum Beispiel neue Nutzer angelegt und Rollen und Rechte zugewiesen werden.
- Rollen und Rechte: Da nicht alle Nutzer die gleichen Aufgaben übernehmen (z.B. Redakteure und Administratoren), muss bzw. sollte es verschiedene Rollen und Rechte geben. Im einfachsten Fall bietet das CMS zwei oder drei feste Rollen an, die man einem Nutzer zuweisen kann. Bei komplexen Content Management Systemen kann man diese Rollen selbst anlegen und Rechte individuell verteilen.
- Seitenverwaltung: Die einzelnen Seiten des Webauftritts müssen in der Benutzeroberfläche natürlich irgendwo angelegt, sortiert und verwaltet werden.
- Editor: Zum erstellen und editieren der Inhalte reicht im einfachsten Fall ein Standard-HTML-Editor. Die Ausbaustufen sind jedoch grenzenlos. Verbreitet sind beispielsweise Inline-Editing-Technologien oder neuerdings auch Block-Editoren.
- Medien-Verwaltung: Medien wie Bilder, Videos, PDFs und sonstige Dateien werden in einem CMS meist separat verwaltet und auch separat auf dem File-System gespeichert. Bei komplexen Content Management Systemen wird für die Medien-Verwaltung eine eigenständige Software integriert, die häufig als Digital Asset Management System (DAM) bezeichnet wird.
- Konfiguration: Selbst das einfachste Content Management System bietet ein paar Grund-Konfigurationen an. Dazu wird ein Konfigurations-Management benötigt, das allerdings nicht zwingend in der Nutzeroberfläche abgebildet sein muss.
Neben solchen Basis-Features hängt die weitere Ausgestaltung der Nutzeroberfläche sehr stark vom jeweiligen Content Management System ab. Ein paar Feature-Beispiele: Viele CMS bieten eine Content-Modellierung an, zum Beispiel mit Hilfe eines Formular-Managers. In diesem Fall erstellt der Redakteur die Inhalte nicht mit einem einzigen Standard-Editor, sondern mit mehreren passgenauen Formularen, die von einem Entwickler je nach Anforderung der Webseite individuell zusammengestellt werden können. Ein CMS kann auch ein konfigurierbares Workflow-Management für die Verwaltung der Inhalte bieten oder Features für den Betrieb von mehrsprachigen Webseiten bereitstellen. Bei einer E-Commerce-Ausprägung kommen noch Payment-Features und eine Produkt-Verwaltung hinzu, wobei auch hier oft separate Systeme wie ein Produkt Informations Management (PIM) zum Einsatz kommen. Diese Feature-Beispiele lassen sich endlos fortsetzen.
Eine hohe Komplexität ist übrigens nicht immer beliebt. Daher verzichten viele Entwickler gerne auf ein CMS mit einer komplexen Verwaltungsoberfläche. Stattdessen nutzen sie zur Erstellung eines Web-Auftritts einen so genannten Static Site Generator. Wie der Name schon sagt kann man mit Static Site Generator wie Jekyll oder Gatsby statische Web-Auftritte generieren. Static Site Generatoren werden nicht über eine Benutzeroberfläche bedient, sondern über Programmier-Befehle, die der Entwickler über die Konsole eingeben kann. Static Site Generatoren werden nicht zu den vollständigen Content Management Systemen gezählt, denn sie können Inhalte nur darstellen (z.B. als HTML-Seite), nicht jedoch speichern, verwalten oder dynamisch ausgeben.
Inhalte mit einem CMS ausgeben
Mit einem Web CMS kann man nicht nur Inhalte verwalten, sondern natürlich auch Inhalte ausgeben. Für diese dritte Kern-Funktion benötigt ein Web Content Management System mindestens zwei Features: Eine Zugriffssteuerung und die Steuerung des Ausgabeformats.
- Zugriffssteuerung: Bei der Zugriffssteuerung geht es um die Frage, wer welche Inhalte wann sehen darf. In der einfachsten Form sollte ein CMS mindestens zwischen nicht öffentlich sichtbaren und öffentlich sichtbaren Inhalten unterscheiden, zum Beispiel zwischen "Draft" und "Publish". Im Detail ist hier jedoch vieles denkbar, beispielsweise die Veröffentlichung für bestimmte Nutzergruppen, die Veröffentlichung für bestimmte Kanäle, ein abgestufter Veröffentlichungs-Prozess mit Workflows oder auch eine zeitgesteuerte Veröffentlichung. Eine hohe Kunst ist die personalisierte Ausgabe von Inhalten, bei der ein komplexes, meist editierbares oder sogar ein selbstlernendes Regelwerk die Ausgabe steuert.
- Ausgabeformate: Im einfachsten Fall bietet ein CMS nur HTML als Ausgabeformat an und generiert schlicht einen HTML-Webauftritt. Komplexere Content Management Systeme bieten jedoch verschiedene Ausgabeformate an, zum Beispiel Datenformate wie XML oder JSON oder Dokumenten-Formate wie PDF.
Traditionell können die Inhalte eines CMS einfach über eine URL mit einem Web-Browser abgerufen und dort als HTML-Seite dargestellt werden. Zunehmend verbreitet ist allerdings auch die Ausgabe (und ggf. auch die Verwaltung) von Daten und Inhalten über ein sogenanntes Application Programming Interface (API). Über die API können Entwickler die Inhalte mit einem eigenen Script abrufen und anschließend weiterverarbeiten. Das dominierende Ausgabe-Format ist dabei JSON.
Inhalte darstellen
Landläufig hält man zwar die Darstellung von Inhalten in Form einer Webseite für die zentrale Aufgabe eines Content Management Systems. Tatsächlich gehört die Darstellung der Inhalte jedoch nicht zwangsläufig zu einem Web CMS. Die neuen Headless-CMS verzichten beispielsweise komplett auf eine Darstellung der Inhalte und beschränken sich auf die Ausgabe bzw. Bereitstellung der Inhalte über eine API (Application Programming Interface). Für die Darstellung ist dann ein anderes System zuständig, das von einem Entwickler an das CMS angebunden werden muss.
Ein traditionelles Content Management System bietet jedoch neben der Auslieferung der Inhalte auch eine Darstellung der Inhalte an, und zwar mindestens eine Darstellung als Webseite (HTML). Dazu sind allerdings wieder einige Features im Hintergrund nötig:
- Template Engine: Die Template-Engine integriert die dynamischen Inhalte und Daten aus dem CMS in ein statisches (HTML-)Dokument. Die Funktion kann man mit einem Seriendruck von Briefen vergleichen, bei dem verschiedene Platzhalter in der Brief-Vorlage mit dynamischen Daten wie der Adresse gefüllt werden. Für diese Funktionen muss man nicht zwangsläufig auf eine eigene Software-Komponente zurückgreifen. Oft kommen jedoch fertige Template Engines wie Twig für PHP, JSP für Java oder Mustache für JavaScript zum Einsatz.
- Themes: Während die Template-Engine die Integration der Inhalte in eine HTML-Seite organisiert, kümmert sich das Theme im Kern um die Gestaltung und das Aussehen der Inhalte: Die statischen HTML-Vorlagen werden gestaltet, die Seite wird in Bereiche wie Header, Footer und Navigationen unterteilt und die entsprechenden CSS-Klassen und IDs werden vergeben. Auch die berühmte Mobile-Optimierung über ein Responsive-Webdesign ist Aufgabe des Themes. So gut wie jedes Content Management System bietet die Möglichkeit an, ein eigenes Theme zu entwickeln und das Theme im Idealfall per Knopfdruck zu wechseln.
Genauso wie bei der Verwaltung der Inhalte kann es auch bei der Darstellung der Inhalte viele zusätzliche Features geben. Zum Beispiel eine Seitenvorschau, der bereits angesprochene Wechsel von Themes, die individuelle Anpassung von Themes über die Nutzer-Oberfläche des CMS oder – eher für Entwickler interessant – die Verwendung unterschiedlicher Template-Engines.
Weitere Features eines CMS
Die oben beschriebenen Features sind Kern-Bestandteile eines vollständigen CMS, sozusagen ein Minimal-CMS. Über diese Kern-Funktionen hinaus sind dem Feature-Reichtum eines CMS keinerlei Grenzen gesetzt. Fast jedes Content Management System bietet beispielsweise die Möglichkeit, eigene Erweiterungen zu entwickeln. Solche Funktionserweiterungen werden dann gerne als Plugins, Extensions oder Module bezeichnet. Welche Features es sonst noch gibt, hängt von der Positionierung des CMS im Markt ab.
Content Management Systeme versuchen sich jedoch nicht nur mit ihrem Feature-Reichtum zu übertreffen, sondern gelegentlich auch mit ihrem Minimalismus zu unterbieten. Denn neben dem Trend hin zu immer komplexerer Technologie vor allem bei den Enterprise CMS kann man auch eine Gegenbewegung beobachten: Flat-File-Systeme, Headless-CMS oder auch Static Site Generatoren sind unter anderem aus dem Wunsch entstanden, das Management von Inhalten und die Erstellung von Webseiten wieder zu vereinfachen.
Beispiele für CMS-Kategorien
Bei der hohen Anzahl an Content Management Systemen, den vielen Trends und den unterschiedlichsten Ausprägungen fällt die Auswahl eines passenden CMS nicht leicht. Um eine möglichst informierte Entscheidung zu treffen, kann eine grobe Kategorisierung der Systeme sehr hilfreich sein.
Die Tabelle soll ein paar Anregungen bieten. Die Tabelle beinhaltet einige gängige Kategorien und auch verschiedene individuelle Kategorien, die in verschiedenen Szenarien Sinn machen können:
Kategorie | Erklärung | Mehr Infos |
---|---|---|
Lizenztyp | Gängig ist die Unterscheidung zwischen Open Source Lizenzen wie MIT oder GPL und proprietären Lizenzen, die in der Regel mit einem einzelnen Unternehmen verbunden sind. | Einführung Open Source CMS |
Programmiersprache | Bei Web Content Management Systemen sind die Programmiersprachen PHP, Java, Python, ASP.NET und JavaScript verbreitet. | Übersicht über PHP CMS, Java CMS, Python CMS und NodeJS CMS |
Framework | Viele CMS bauen auf einem Programmier-Framework auf, allein in PHP gibt es diverse wie Laravel oder Symfony. Manche CMS verstehen sich auch selbst als Framework. | Individuelle CMS-Recherche |
Speicherform | Man kann grob zwischen einer Speicherung in relationalen Datenbanken und einer Speicherung in Dateien (Flat File) unterscheiden. | Übersicht Flat-File-CMS |
Komplexität | Es gibt verschiedene (inoffizielle) Abstufungsmöglichkeiten. Gängig ist die Bezeichnung von sehr komplexen Systemen als Enterprise-CMS. Dagegen gehören die meisten Flat-File-CMS zu den leichtgewichtigeren Lösungen. | Einführung Enterprise CMS |
Bereitstellung | Man kann zwischen selbstgehosteten CMS (on Premise) und zentral bereitgestellten CMS (Cloud- oder SaaS-CMS) unterscheiden. | Überblick Cloud- und SaaS-CMS |
Regionale Verbreitung | Systeme wie WordPress sind weltweit relativ gleichmäßig verbreitet. TYPO3 wird dagegen überwiegend in Deutschland und in den Nachbarländern genutzt. ExpressionEngine ist überwiegend in den USA und England zu Hause. | Individuelle CMS-Recherche |
Kopplung und Modularität | Mit so einer Kategorie könnte man beispielsweise zwischen Headless-CMS und Decoupled CMS oder Hybrid-CMS unterscheiden. Oder man kann generell fragen, wie modular und austauschbar einzelne Komponenten des CMS sind. | Marktüberblick Headless-CMS |
Integration und Scope | Mit so einer Kategorie könnte man den Umfang und die Integrationsfähigkeit eines CMS hinterfragen, beispielsweise ob es sich auf Kern-Funktionen beschränkt und zu einer Best-Of-Breed-Strategie passt oder als DXP gleich eine ganze Suite bereitstellt, die die Bedürfnisse z.B. im Marketing vollständig abdeckt. | Einführung Enterprise-CMS |
Spezialisation | Mit der Kategorie könnte man die Stärken eines CMS herausarbeiten, beispielsweise sind einige CMS wie CoreMedia oder auch CraftCMS besonders für den eCommerce geeignet, andere sind eher auf Marketing-Maßnahmen spezialisiert, wieder andere eignen sich für spezielle Branchen. | Individuelle CMS-Recherche |
Statisch vs Dynamisch | Eine eher ältere Kategorie, die nach der Auslieferung der Webseite unterscheidet. Einige Systeme generieren im Vorfeld fertiges HTML, sodass der Nutzer nur noch eine statische Webseite aufruft. Die meisten CMS generieren das HTML jedoch bei jedem Aufruf einer Seite dynamisch. Die Performance wird dann in der Regel über ein Caching verbessert. | Individuelle CMS-Recherche |
Man kann natürlich unzählige weitere Kategorien aufstellen, um das Angebot an Content Management Systemen zu sortieren und einzugrenzen. Welche Kategorien jedoch im Einzelfall auch sinnvoll sind, entscheidet sich im Verlauf einer oft mehrstufigen CMS-Auswahl.