Joomla ([ʤuːm.lə]; ) (Eigenschreibweise: Joomla!) ist ein freies Content-Management-System (CMS) zur Erstellung von Webseiten.
Joomla steht unter der GNU General Public License. Es ist in PHP geschrieben und verwendet objektorientierte Programmierung (OOP) (ab Version 1.0), Entwurfsmuster, speichert Daten in einer MySQL-, Microsoft SQL Server- (ab Version 2.5) oder PostgreSQL- (ab Version 3.0) Datenbank und beinhaltet Funktionen wie zum Beispiel Cache, RSS-Feeds, druckbare Versionen von Seiten, News-Flashes, Blogs, Suche und Unterstützung für die Sprachinternationalisierung.
Joomla! wurde über 100 Millionen Mal heruntergeladen. Über 8000 kostenlose und kommerzielle Erweiterungen sind im offiziellen Joomla!-Extensions-Directory verfügbar, weitere sind aus anderen Quellen verfügbar.
Zusammen mit WordPress, TYPO3 und Drupal gehört es zu den bekanntesten und meistverwendeten Open-Source-Content-Management-Systemen. Historisch ist Joomla aus dem Open-Source-Projekt Mambo hervorgegangen.
Joomla dient in erster Linie der Erstellung von Webseiten mit veränderlichen, d. h. dynamischen Inhalten, die von mehreren Personen ohne vertiefte Kenntnisse über Webseitenerstellung editiert werden können. Dabei wird innerhalb von Joomla zwischen drei Ebenen streng unterschieden: der funktionellen Struktur, den eigentlichen Seiteninhalten und dem Layout.
Die Einrichtung der funktionellen Struktur, häufig mit dem englischen Begriff management bezeichnet, ist aufwendig und setzt profunde Kenntnisse voraus. Sie liegt daher häufig in den Händen einer entsprechend ausgebildeten Einzelperson, die als Administrator bezeichnet wird. Dieser muss Joomla auf einem Webserver installieren, üblicherweise einem Apache-Webserver, außerdem wird ein MySQL-Datenbank-Server benötigt. In der Regel wird dazu ein fertiges Paket wie XAMPP heruntergeladen und auf einem lokalen Computer ein Webserver installiert. Anschließend kann das gewünschte Joomla-Paket heruntergeladen und offline lauffähig gemacht werden. Erst die fertig eingerichtete Webseite wird anschließend auf einen Webserver hochgeladen.
Die Seiteninhalte, auf Englisch content, können von nun an durch eine beliebig große Anzahl von Autoren über einen leicht bedienbaren Editor wie TinyMCE eingepflegt werden. Der Editor lässt sich mittels eines Webbrowsers aufrufen, so dass die Autoren ihre Inhalte von jedem Ort mit Internetzugang eingeben können. Über eine Benutzerverwaltung lassen sich dabei vom Administrator für jeden Autor und jeden Inhalt individuelle Zugriffs- und Schreibrechte festlegen. Dadurch ist es möglich, dass manche Autoren beispielsweise nur die Inhalte, andere auch die zugrunde liegende funktionelle Struktur beeinflussen können. Um die Identität der Autoren festzustellen, ist der Zugang durch ein Passwort geschützt. Die Autoren müssen dabei – anders als bei der Erstellung von statischen Webseiten – keine Sprachen wie HTML und CSS beherrschen. Durch den Einsatz von JavaScript sehen die Beiträge schon beim Erstellen fast genau so aus wie später im Webbrowser des Besuchers (WYSIWYG-Prinzip).
Aus den beiden erwähnten englischen Begriffen content und management leitet sich die für derartige Software übliche Bezeichnung Content-Management-System (CMS) ab.
Das Layout wird durch sogenannte Templates gestaltet, welche der Webseite unabhängig von Struktur und Inhalt ein einheitliches optisches Erscheinungsbild geben. Die Templates können durch den Administrator einfach ausgewechselt werden, wodurch sich das Aussehen der Webseite bei gleichen Inhalten grundlegend ändert. Da die Herstellung von Templates relativ komplex ist, werden sie in der Regel von Dritten angefertigt. Es existieren etliche kostenlose Templates, die sich in ihrer Farbe an die Bedürfnisse des Benutzers anpassen lassen, dennoch sind sich die Erscheinungsbilder dieser Seiten im Ergebnis erkennbar ähnlich. Es gibt auch kommerzielle Hersteller von Templates, deren individuellere Produkte aber – im Gegensatz zu Joomla – kostenpflichtig sind.
Für kleine und überschaubare Webseiten mit wenigen Unterseiten und weitgehend unveränderlichem Inhalt, die zudem nur von einer einzigen Person gewartet werden, sind Content-Management-Systeme wegen ihrer Komplexität und den höheren Anforderungen an die Server-Hardware ungeeignet. Für solche Aufgaben ist ein Website-Baukasten oder aber ein einfaches CMS besser geeignet. Eine abgespeckte und daher übersichtlichere Version von Joomla ist weder verfügbar noch geplant noch innerhalb des Programmes einstellbar.
Vorteile von Joomla sind:
Nach erheblichen Differenzen mit dem australischen Unternehmen Miro, das die Namensrechte an Mambo besaß, verabschiedete sich am 17. August 2005 der Großteil der damals am Mambo-Projekt beteiligten Entwickler von Mambo. Um das System dennoch weiterentwickeln zu können, wurde der Code von Mambo 4.5.2.3 in ein neues Projekt mit dem Namen Joomla übernommen und zu Joomla 1.0.x (Stable) weiterentwickelt.
Das Entwicklerteam gründete eine Seite mit dem Namen OpenSourceMatters, um die Nutzer, Entwickler, Webdesigner und die Community mit Informationen zu versorgen. Der Teamleiter zu dieser Zeit, Andr