»Mensch, lerne Tanzen, sonst wissen die Engel mit dir nichts anzufangen!« Hl. Augustinus
1 Einleitung
Vielleicht waren Sie schon einmal in der Situation, eine Homepage für eine Gruppe von Leuten, einen Verein, einen Betrieb oder eine öffentliche Einrichtung gestalten zu dürfen. Sie erstellen also ein Design, überlegen sich eine Struktur, tragen die Inhalte zusammen und versuchen mithilfe von Webskripten, die nötige Funktionalität zu erreichen. Sie haben noch keine fünf Seiten erstellt, und schon tauchen die ersten Schwierigkeiten auf. Da muss ein Wort in der Fußzeile, die Sie mit Copy & Paste in alle Seiten übernommen haben, ausgetauscht werden. In der Navigation stellt sich heraus, dass der Punkt »Aktivitäten« wichtiger ist als der Punkt »Berichte«. Die Verlinkungsstruktur muss also geändert werden. Eine seitenweite Suchfunktion ist fast nicht zu realisieren, und die Verwaltung des Zugangs zu einem Mitgliederbereich entpuppt sich als aufwendige Angelegenheit. Zu allem Überfluss klingelt jede halbe Stunde das Telefon, weil einer Ihrer Inhaltslieferanten einen Rechtschreibfehler entdeckt hat.
Gefragt sind aktuelle Inhalte, geschützte Bereiche, Beteiligung der Benutzer und vor allem die Möglichkeit, gemeinsam an Texten und Artikeln zu arbeiten. Aus der Homepage wird die Webanwendung, die die Möglichkeiten der Technik ausnutzt, um attraktive Orte im Internet zu schaffen. Nun sind (zum Glück) nicht alle Menschen, die der Öffentlichkeit etwas mitzuteilen haben, Informatiker oder Computerspezialisten, die Spaß daran finden, sich die nötigen Werkzeuge für so eine Seite selbst zusammenzubasteln. Die Frage ist also, wie kommen Sie und ich an die nötige Technik, wie können wir hier »auch mitmachen«?
Zum Glück gibt es Joomla!. Diese Webanwendung ist genau auf Homepages zugeschnitten, die eine hohe Dynamik aufweisen und von mehreren Menschen in unterschiedlichen Rollen betreut werden. Joomla! ist Teil der Entwicklung, die von statischen Webseiten, die vornehmlich Informationen bereitstellen sollen, hin zu dynamischen Homepages führt, die als Kommunikationsbasis für eine Online-Gemeinde dienen. Typisch für solche Homepages sind folgende Merkmale:
- Die Aufgaben bei der Erstellung und Wartung der Seite verteilen sich auf mehrere Personen. Einige Leute liefern nur die Inhalte. Das Layout wird von einem Webdesigner erstellt. Die Funktionalität als ein eigener Bereich wird von einem Administrator betreut.
- Die Art der Inhalte ändert sich. Viele Beiträge haben einen aktuellen Bezug und sind nach einer gewissen Zeit nicht mehr so interessant. Andere müssen kategorisiert werden, um schnell auffindbar zu sein.
- Ein System der Qualitätssicherung wird benötigt. Die Rolle des Redakteurs, der Beiträge freischalten muss, wird erforderlich. Ratings werden eingeführt, mit deren Hilfe die Leser die Güte eines Artikels bewerten können.
- Die Community muss gepflegt werden. Ein interner Bereich ermöglicht es, sich zwanglos über das Netz auszutauschen. Über Foren, Blogs und Wikis werden auch die Besucher der Seite mit eingebunden.
All dies und viel mehr kann in einer Joomla!-gestützten Seite relativ einfach realisiert werden.
Das hat natürlich seinen Preis. Joomla! weist eine gewisse Komplexität auf, so dass Sie mit etwas Einarbeitungsaufwand rechnen müssen. Die Organisation der Inhalte unterscheidet sich von der Art, wie Sie eine normale Homepage aufbauen würden. Viele Rädchen greifen ineinander. Wenn Sie daher eine Änderung vornehmen wollen, müssen Sie wissen, an welcher Stelle diese am besten durchzuführen ist. Die Hard- und Softwareanforderungen sind höher als bei einer statischen HTML-Seite, und die Dynamisierung bringt gewisse Sicherheitsrisiken mit sich, die Sie bei reinem HTML nicht haben. Die Vorteile des Systems wiegen diese Schwierigkeiten jedoch mehr als auf. Unser Buch soll Ihnen helfen, sich schnell und fundiert in Joomla! zurechtzufinden.
1.1 Content-Management 

Ein Content-Management-System (CMS) ist eine Software, die eine gemeinschaftliche Arbeit an verschiedenen Inhalten ermöglicht und organisiert. Unter dem Begriff »Inhalt« ist dabei eine in sich geschlossene Einheit zu verstehen. Das kann ein Text oder ein Bild sein, aber auch andere Medientypen (Audio, Video etc.) sind denkbar.
Die Aufgaben eines CMS lassen sich in mehrere Bereiche einteilen.
Die Darstellung der Inhalte wird vom System übernommen. Das bedeutet zum einen, dass das Layout getrennt von den Daten verwaltet wird, damit alle angezeigten Daten einheitliche Formatierungen aufweisen. Zum anderen können durch ein gutes CMS Inhalte in verschiedenen Medien wiedergegeben werden, beispielsweise auf dem Bildschirm oder Drucker. Um die Daten zugänglich zu machen, muss die Darstellung eines Beitrags um Hilfsmittel ergänzt werden, die zeigen, wie die Einträge im CMS zu finden sind. Dazu dienen Navigationselemente und Suchfunktionen.
Es werden Möglichkeiten zur Bearbeitung von Inhalten zur Verfügung gestellt. Diese bieten nur die Formatierungs- und Auszeichnungsoptionen an, die erlaubt sind und vom System verarbeitet werden können. Des Weiteren gibt es Mechanismen, die Unstimmigkeiten vermeiden, wenn mehrere Leute gleichzeitig an einem Inhalt arbeiten. Unter Umständen werden verschiedene Versionen des Inhalts aufbewahrt und somit die Änderungen protokolliert, um den Entstehungsprozess transparent zu machen.
Die zentrale Dienstleistung eines CMS ist die Organisation von Inhalten. Diese werden in Kategorien und Bereiche unterteilt und mit Stichwörtern für die Suche versehen. Dokumente unterliegen auch einem Lebenszyklus. Sie haben beispielsweise ein Verfallsdatum, müssen archiviert oder auch gelöscht werden. Dies alles wird teils automatisch erledigt, teils werden den Benutzern die entsprechenden Werkzeuge angeboten.
Arbeiten mehrere Menschen an einem Inhalt, so ist häufig ein Workflow vonnöten. Ein Autor schreibt beispielsweise einen Beitrag, der von einem Redakteur Korrektur gelesen wird. Der Artikel geht zur Überarbeitung zurück an den Autor und dann an den Verantwortlichen der Seite, der den Beitrag freischaltet. Der Weg des Beitrags zu den verschiedenen Personen wird vom CMS organisiert, und das Dokument wird mit einem entsprechenden Status gekennzeichnet.
Je nachdem, welchen Status ein Benutzer im System hat, werden ihm bestimmte Inhalte oder Möglichkeiten der Bearbeitung gewährt oder vor ihm verborgen. Diese Zugriffssteuerung ist ein wichtiger Bestandteil eines jeden CMS und sorgt für die nötige Sicherheit, wenn viele Menschen gemeinsam an einem Projekt arbeiten.
Joomla! gehört zur Gruppe der webbasierten Content-Management-Systeme (WCMS). Diese zeichnen sich dadurch aus, dass das Medium der Darstellung wie auch das Medium für die Verwaltung das WWW ist. Meistens werden WCMS dazu eingesetzt, größere Homepages zu verwalten, die entweder als Wissensbasis oder als Nachrichtendienst einer hohen Dynamik unterliegen. Die Multimedialität der Darstellung ist hier beispielsweise gegeben, wenn zu einem Inhalt eine spezielle Druckversion oder die Ausgabe als PDF-Dokument verfügbar ist. Auch eine Zusammenfassung der Seite in einem RSS-Feed ist hier zu nennen. Design und Navigationsstruktur werden automatisch erzeugt. Die Bearbeitung erfolgt über ein HTML-Formular. Mittlerweile findet sich in jedem State-of-the-art-System auch ein Editor, der das Layout in etwa so darstellen kann, wie es später angezeigt wird (WYSIWYG; What You See Is What You Get). Die Möglichkeit der Querverlinkung zwischen Dokumenten wird ebenfalls vom WCMS bereitgestellt. Eine Besonderheit der inhaltlichen Organisation von Joomla! besteht darin, dass neue Beiträge unproblematisch auf der Titelseite ausgegeben werden können. Ähnlichkeiten zu Blogs sind hier unverkennbar. Eine Einteilung der Benutzer in Autoren, Redakteure oder Administratoren ermöglicht eine breite Beteiligung der Allgemeinheit an der Erstellung einer Seite, ohne auf eine gewisse Sicherheit verzichten zu müssen.
Eine Spezialität von WCMS ist die Integration vieler Zusatzdienste, die nicht direkt mit den eigentlichen Inhalten zusammenhängen. So bietet Joomla! beispielsweise die Möglichkeit, Umfragen durchzuführen, Nachrichtenticker zu integrieren, über Foren und Wikis als Kommunikationsplattform zu dienen oder Formulardaten abzufragen.