Radiant: Das WebWorker CMS (Teil 1)


Noch ein CMS

Die erste Version von Radiant wurde 2006 von John W. Long vorgestellt und von Anfang an zum Betrieb der Ruby Website genutzt. Es ist kein Zufall, dass Radiant auf der Basis von Ruby on rails erstellt wurde. Radiant basiert auf einer Datenbank zum Speichern der Inhalte, aktuell werden MySQL, PostgreSQL, SQLite 3, SQL Server und DB2 unterstützt. Vor allem die sqlite3-Variante ermöglicht es, mit minimalem Aufwand ein Radiant-Projekt zu starten und lokal zu betreiben.

Radiant Features

Radiant definiert sich selbst als schlankes Content-Management für kleine Teams. Den Zugang regelt ein rollenbasiertes Rechtesystem mit 3 Rollen: Benutzer, Entwickler & Administrator. Die Benutzeroberfläche des Systems kommt entsprechend spartanisch daher:

radiant-admin Inhalt wird in Seiten strukturiert. Eine Seite kann Unterseiten haben, spezielle Ordner gibt es nicht. Jeder Inhalt der sichtbaren Website entspricht genau einer Seite. Seiten haben Attribute und Inhalt. Zu den Attributen gehören Titel, Slug (Kurzform der URL), Breadcrumb-Text, Beschreibung und Schlüsselworte.

Der Inhalt der Seite organisiert sich in Seitenteilen, original page parts. Eine Seite kann beliebig viele parts haben, jeder Part besitzt einen für die Seite eindeutigen Namen und filterbaren Inhalt. Neben der Eingabe von reinem HTML kann der Autor der Seite Filter verwenden, zum Standard gehören Markdown und Textile.

Die Behandlung von Dateiuploads wie Grafiken und PDF regelt eine Erweiterung, die Funktion gehört nicht zu den Kernfeatures.

Layouts und Snippets

radiant-layouts Jeder Seite ist genau ein Layout zugeordnet. Ein Layout definiert das Ausgabeformat der Seite, beispielsweise HTML oder auch XML für RSS-Feeds. Mit Layouts kann jedes textbasierte Format erzeugt werden.1 Die Zuordnung zu Layouts kann auf Unterseiten vererbt werden, somit genügt es im einfachsten Fall, der obersten Startseite ein Layout zuzuweisen, das dann von allen tieferen Seiten übernommen wird.

Dem Prinzip DRY folgend kann Radiant Textblöcke in Form von Snippets speichern, die auf beliebigen Seiten eingebunden werden können.

Radius-Tags

Radiant verwendet Radius tags um serverseitige Funktionalität mit dem Inhalt zu vermischen. Radius tags entsprechen im Aufbau XML-Tags und sind somit XHTML-kompatibel. Art und Anzahl der zur Verfügung stehenden Tags hängen vom Typ der Seite ab, so bietet der FileNotFound-Typ mehr Tags als der Standardtyp der Seite. Radiant bietet eine integrierte Dokumentation über zur Verfügung stehende Tags, diese wird dynamisch erzeugt und somit automatisch erweitert, wenn durch Extensions neue Tags hinzukommen oder verändert werden.

Prozesse

Radiant bietet keine echte Workflow-Unterstützung. Eine Seite hat einen Status, der manuell vergeben wird. Der Status ist Entwurf, Korrektur, Veröffentlicht oder Versteckt. Die Philosophie des editing for small teams erfordert keine Workflow-Steuerung und Freigabeprinzipien wie in großen ECM Systemen.

Usability

Radiant erwartet vom Benutzer, zu wissen, was er tun will. Es gibt keine code completion, keine Wizards oder Assistenten. Im Layout schreibt man reines HTML, CSS oder Javascript (je nach Zielformat). Die erste Inbetriebnahme erfordert Kenntnisse auf Entwickler-Niveau, danach können Redakteure Inhalt pflegen und ergänzen, auch ohne programmieren zu können. Radiant bietet jedoch keine Fehlerkontrolle.

Erweiterbarkeit

Radiant bietet eine exzellente Unterstützung für Erweiterungen und ist somit eine solide Basis für eigene Entwicklungen. Der Aufbau einer Erweiterung gleicht dem einer normalen Rails-Anwendung, und kann alles beinhalten, was mit Rails möglich ist: Datenbankklassen, UI, Controller, rake-Tasks, Unittests und Dokumentation, um nur die wichtigsten Teile zu nennen. Erweiterungen können ruby-typisch Standardklassen von Radiant beeinflussen, ihnen Funktion hinzufügen oder Standardfunktionen überschreiben. Es gibt einen Katalog von aktuell 213 Radiant Erweiterungen die sich mit einem einfachen Befehl installieren und auch wieder entfernen lassen.

Die herausragende Erweiterbarkeit und die wenig an Endbenutzer angepasste Arbeitsweise lässt die Zielgruppe von Radiant deutlich werden: Die Software wendet sich an professionelle Designer und Webworker, die für ihre Kunden kleine und mittlere Websites mit kundenspezifischer Funktion planen, erstellen und einrichten, damit diese anschließend den Inhalt selbst pflegen können. Diese Projekte profitieren von der praxisrelevanten Basis der Software und von der Eleganz, mit der sich Erweiterungen als Rails-Applikationen konzipieren lassen. Dabei darf die Website durchaus ernsthaften Zugriffszahlen ausgesetzt sein: Radiant, Rails und die darunter liegenden Bibliotheken lassen performantes, hoch-verfügbares Hosting zu. Radiant ist jedoch für Websites mit tausenden von hierarchischen Seiten weniger geeignet, weil das Admin-Interface dafür nicht ausgelegt ist.

To be continued

1 Diese Website erzeugt zB RTF-Dokumente mithilfe von Radiant Layouts.


blog comments powered by Disqus