Joomla!

Aus THM-Wiki
Wechseln zu: Navigation, Suche

Joomla! ist ein leistungsfähiges, einfach zu konfigurierendes und populäres Open-Source Web-Content-Managment-System mit dem sich kleinere bis mittlere Webseiten auf einfache Art und Weise gestalten lassen. Nicht nur seine einfache Bedienung führt schnell zum Erfolg beim Anwender, auch seine Flexibilität ist vielversprechend: Durch die Fülle von Erweiterungen lassen sich viele zusätzliche Funktionalitäten in Joomla! integrieren. Das System basiert auf der serverseitigen Skriptsprache PHP, die ebenso wie die, zur Speicherung der Webseiten-Inhalte verwendete, MySQL-Datenbank unter einer Open-Source-Lizenz steht und kostenlos erhältlich ist.

Allgemeines zu Web Content Management Systemen

Feature-Matrix eines WCMS

Das obige Bild stammt von der Homepage. Zu sehen ist eine Feature-Matrix die verdeutlicht, welche Funktionen ein Web Content Management System, wie Joomla! es ist, unterstützen sollte. Die drei Kategorien auf dem Bild sind Must have, Should have und Nice to have.

Entwicklung

Joomla! ist aus dem Open-Source-Projekt Mambo hervorgegangen, welches ursprünglich von der Firma Miro entwickelt wurde. Der Open-Source-Community (Entwickler-Gemeinschaft) wurde eine kostenlose Mambo-Variante zur Weiterentwicklung zur Verfügung gestellt.

Nach erheblichen Differenzen mit der australischen Firma Miro, die die Namensrechte an Mambo besaß, verabschiedete sich der Großteil der damals am Mambo-Projekt beteiligten Entwickler. Um nun das WCMS weiterentwickeln zu können und den Nutzern weiterhin eine professionelle Lösung zu bieten, wurde Joomla! ins Leben gerufen. Der Code von Mambo der Version 4.5.2.3 wurde nahezu identisch übernommen und dann zu 1.0.x (Stable) weiterentwickelt.

Am 22. Januar 2008 wurde das erste Stable-Release von Joomla! 1.5. veröffentlicht. In dieser Version basiert der Quellcode nicht mehr auf Mambo, es wird ein gänzlich neues WCMS entwickelt. Die Kernkomponenten wurden vollständig objektorientiert ausgelegt und ein separates Joomla!-Framework geschaffen.

Joomla ist die englische Schreibweise für das aus dem Suaheli stammende Wort „Jumla“, was übersetzt so viel wie „alle zusammen“ oder „in der Gesamtheit“ bedeutet. Dies steht für die Open-Source-Community.

Das offizielle Logo besteht aus dem Logobild und dem Joomla!-Schriftzug. Das Logobild setzt sich aus vier zueinander gedrehten "J" zusammen und repräsentiert die Vereinigung von Joomla!. Das Joomla!-Logo ist nicht Copyright frei und darf nur unter bestimmten Bedingungen verwendet werden; ein Abändern des Logos ist in den meisten Fällen nicht gestattet.

Version 1.0.x

Joomla! der Version 1.0.x wurde am 19.02.2005 in der Version 1.0.0 das erste Mal freigegeben.

Der Aufbau

Joomla! besteht aus einem Frontend (Webseite) und einem Backend (Verwaltungbereich).

Das Frontend

Das Frontend ist die eigentliche Webseite, wie sie die Benutzer sehen. Das Aussehen und die Anordnung der Inhalte werden über so genannte Templates (vorformatierte Layout-Vorlagen) organisiert. Das Frontend ist in verschiedene Bereiche aufgeteilt, die erweiterbar sind.

Aufbau des Joomla! Backends

  • 01: Top Menu: oberstes Menü
  • 02: Suchfeld
  • 03: Newsflash: Anzeige einer zufälligen Auswahl von dynamischen Inhalten (Artikeleinträgen) auf der Webseite
  • 04: Logo
  • 05: Polls: Modul-Umfrage
  • 06: Who’s online: Anzeige wer gerade die Webseite besucht
  • 07: Popular: Anzeige der beliebtesten Webseiteneinträge
  • 08: Latest News: Anzeige der neuesten Webseiteneinträge
  • 09: Syndicate: Funktion zum Einbinden von Inhalten auf der Webseite in andere Webseiten
  • 10: Login Form: Anmeldeformular für die Anzeige nur für registrierte Benutzer zugänglicher Bereiche
  • 11: Main Menu: Hauptmenü

Das Backend

Im Backend, dem Verwaltungsbereich von Joomla!, können alle Einstellungen, welche die Webseite betreffen, vorgenommen werden. Das Backend ist über die URL der Webseite gefolgt von „/administrator“ erreichbar. Die folgende Grafik zeigt den Aufbau der Verwaltungsoberfläche.

Aufbau des Joomla! Backends

  • 01: Menüleiste
  • 02: Anzeigebereich für die Anzahl neuer Nachrichten und am Frontend angemeldeter Benutzer
  • 03: Reiter der Control-Panels, die Auskunft über den Zustand der Webseite geben
    • Logged: Überblick über die gerade angemeldeten Benutzer
    • Components: Überblick über die installierten Komponenten
    • Popular: Überblick über die am häufigsten besuchten Seiten
    • Latest Items: Überblick über die neuesten Inhalte
    • Menu Stats: Überblick über die Anzahl der Menüeinträge in jedem Menü
  • 04: Schnellzugriffsleiste für die wichtigsten Einstellungen des Backends

Die wichtigsten Funktionen von Joomla!

Im Folgenden werden nur einige wichtige Funktionen von Joomla! beschrieben, da alle Funktionalitäten den Wiki-Artikel sprengen würden.

Global Configuration

In der Global Configuration, einer Webseite des Backends von Joomla!, können grundlegende Einstellungen vorgenommen werden, die für die gesamte Webseite gültig sind, wie z.B. der Seitentitel und die Benutzerregistrierung.

User Manager

Jedem Benutzer muss eine Benutzergruppe mit bestimmten Zugriffsrechten zugewiesen werden. Im User Manager können diese Benutzergruppen verwaltet, so wie neue Benutzerkonten angelegt werden.

Im Folgenden befindet sich eine Übersicht über der verschiedenen Zugriffsrechte.

Frontend
  • Registered: Anmeldung auf der Webseite und Zugang zu nicht allgemein sichtbaren Funktionen
  • Author: Erstellung neuer Inhalte, Bearbeitung eigener Inhalte
  • Editor: Erstellung neuer Inhalte, Bearbeitung aller vorhandenen Inhalte
  • Publisher: Erstellung, Bearbeitung und Veröffentlichung von Inhalten
Backend
  • Manager: Bearbeitung und Veröffentlichung aller Artikel, Bearbeitung von Menüs
  • Administrator: Die Rechte des Managers und zusätzlich die Einrichtung und Verwaltung von Komponenten, Modulen, Mambots und Benutzern
  • Super Administrator: Die Rechte der Administrators und zusätzlich die Verwaltung der Globalen Configuration, Sprachen, Templates und des Papierkorbes

Modul Manager

Die Oberfläche von Joomla! wird durch Module gestaltet. Module sind Elemente, aus denen sich im Baukastenverfahren die Joomla! Webseite aufbaut. Diese Module können im Modul Manager aktiviert, deaktiviert, verändert und an verschiedene Positionen geschoben werden. Außerdem können neue Module angelegt und ältere gelöscht werden.

Static Content Manager

Im Static Content Manager kann der statische Inhalt der Webseite angelegt werden.

Content Items Manager

Im Content Items Manager kann der dynamische Inhalt der Webseite verändert werden. Dazu steht ein WYSIWYG-Editor (WYSIWYG - What you see is what you get) zur Verfügung. Der erstellte Inhalt kann per Menüs bzw. Untermenüs den Benutzern zugänglich gemacht werden.

Sicherheit

Joomla!-Installationen werden immer wieder zur Zielscheibe von Angriffen, vor allem von so genannten Defacements. Dies lässt sich auf die Popularität, sowie auf die bekannten Sicherheitsprobleme zurückführen. Meistens ist es aber nicht das Kernsystem selbst, sondern Drittkomponenten, die den Angreifern die Tore öffnen. Erweiterungen benötigen z.B. oftmals sehr weitgehende Rechte auf dem Server, welche allerdings nicht explizit angegeben sind. Um nun jedoch die ganzen Fehlermeldungen zu umgehen werden oftmals Sicherheitseinstellungen sehr weit zurückgeschraubt bzw. ganz deaktiviert. Programmierbedingte Sicherheitsmängel werden in aller Regel recht schnell beseitigt.

Version 1.5.x

Am 22. Januar 2008 wurde das erste Stable-Release von Joomla! 1.5. veröffentlicht. Mit der Version 1.5.x wurde ein multilinguales (utf-8 basiertes), objektorientiertes Framework ausgeliefert. Der Code wurde grundlegend überarbeitet, verbessert und die Komponenten folgen nun dem Model-View-Controller-Entwurfsprinzip.

Im Folgenden werden die wichtigsten Neuerungen angegeben:

  • Erweiterungen können nun per Administrator direkt über FTP eingespielt werden.
  • Ein Datenbank-Abstraktions-Layer ermöglicht die Nutzung alternativer Datenbanken, wie z.B. MySQLi oder MySQL5
  • Durch eine neue Plugin Schnittstelle wird die Einbindung externer Webanwendungen in die vorhandene Seite vereinfacht
  • Eine eingebaute Volltextsuche ermöglicht schnelle und einfache Textsuchen
  • Der eingebaute Caching-Mechanismen sorgt für eine gute Performance

Installation

Achtung: Generelles! Für die Arbeit mit Joomla! ist es erforderlich, dass JavaScript in Ihrem Browser aktiviert ist.


Nachdem die Joomla!-Daten auf dem Server abgelegt wurden, die richtigen Rechte gesetzt wurden, muss Joomla noch installiert werden. Diese Installation einer Joomla! Instanz geschieht über einen grafischen Installer, der in sieben Schritte unterteilt ist. Die obige Bildergalerie zeigt eine solche Installation.


1. Schritt

Der erste Schritt ist die Sprachauswahl, in der die Installation durchgeführt werden soll und wie die Joomla! Instanz im Anschluss konfiguriert sein soll. Hier gibt es eine Liste, aus der man sich die gewünschte Sprache auswählt.

2. Schritt

Im zweitem Schritt erfolgt eine Überprüfung der Serverumgebung. Das System wird mit den Voraussetzungen von Joomla verglichen, die zur Arbeit mit Joomla! erforderlich sind. Im ersten Kasten sind Komponenten vermerkt, die zur Ausführung des CMS unbedingt vonnöten sind. Außerdem werden im zweiten Kasten Einstellungen des Web-Servers (in diesem Beispiel und meistens: apache2) empfohlen.

3. Schritt

Im nun Folgendem Schritt, wird die Lizenz angezeigt unter der Joomla! steht. Dies ist die GNU Public License (GPL).

4. Schritt

Im vierten Schritt der Installation geht es um die Datenbank. Hier gibt man seine Zugangsdaten für

  • Datenbanktyp
  • Servername
  • Benutzername
  • Passwort
  • Datenbankname

ein.

5. Schritt

Auf dieser Seite können Einstellungen zur Datenübertragung per FTP vorgenommen werden. Bei einer lokalen Installation ist dies nicht nötig, auf einem Webserver sollte aber, wenn möglich dieses Feature aktiviert und Zugangsdaten eingegeben werden.

6. Schritt

Der vorletzte Schritt dient der Konfiguration der Homepage. Hier werden nun ein Titel der Seite eingegeben, es wird der Zugang des Super Administrators festgelegt (Benutzername und Passwort). Auch kann man sich hier entscheiden, ob man Beispieldaten installieren möchte oder nicht.

7. Schritt

Dieser ist zugleich der letzte Schritt, bevor die neue Seite begutachtet werden kann. Auf dem Server muss zum Abschluss das Installationsverzeichnis gelöscht werden. Ist dieser Schritt vollendet, kann man sowohl das Front-, als auch das Backend von Joomla aufrufen.

Aufbau

Auch in Joomla 1.5.x hat sich am generellen Aufbau nichts verändert. Es gibt weiterhin die Untergliederung zwischen Front- und Backend. Ins Backend dürfen nur bestimmte Benutzer (mit bestimmter Benutzerrolle). In den folgenden Abschnitten werden das Front-, sowie Backend von Joomla 1.5.x vorgestellt.

Frontend

Joomla Frontend Ansicht mit FH Style Template

Backend

Backend Ansicht Joomla 1.5

Joomla! Erweiterungen

Die Grundfunktionalität von Joomla! kann leicht erweitert werden. Hierfür gibt es drei Arten von Erweiterungen:

  • Plugins / Mambots
  • Module
  • Komponenten

Diese Erweiterungen werden meistens als .zip-Pakete, zum Beispiel bei JoomlaOS, verteilt. Mögliche Erweiterungen hier sind zum Beispiel Gästebuch, Photogalerie, Forum oder Blogkomponenten. Dies sind allerdings nur Beispiele, es gibt eine Vielzahl weiterer Entwicklungen, sei es als Komponente, Modul oder Plugin (in Version 1.0.x Mambots genannt). Eine weitere Möglichkeit die Webseite zu verändern ist über Templates. Diese beschreiben in CSS, HTML und PHP das Design der Webseite. Auch hier gibt es bereits viele mögliche Vorlagen, um die Seite an seine Wünsche anzupassen.

Wenn man nicht fündig wird, hat man zum Schluss noch die Möglichkeit selbst Hand anzulegen und eigene Erweiterungen zu schreiben. Hier ist zu beachten, dass für die Entwicklung seit Joomla 1.5.x ist, dass das Model-View-Controller (MVC)-Muster verwendet wird.

An der Fachhochschule Gießen-Friedberg werden im Rahmen der Joomla-Programming-Weeks Joomla!-Erweiterungen geschrieben. Dozent der Veranstaltung ist Prof. Dr. P. Kneisel. Die Veranstaltung wird halbjährlich als Blockveranstaltung in den Semesterferien angeboten und kann sowohl von Bachelor-, als auch Masterstudenten besucht werden. Der Aufwand für Masterstudenten ist natürlich höher als der, für Bachelorstudenten.

Model-View-Controller

Unter einem Model-View-Controller (MVC) versteht man ein Architekturmuster zur Strukturierung von Software in die drei Einheiten Datenmodell (engl. Model), Präsentation (engl. View) und Programmsteuerung (engl. Controller). Ziel des Musters ist es, einen flexiblen Programmentwurf zu machen, der unter Anderem eine spätere Änderung oder Erweiterung erleichtert und eine Wiederverwendbarkeit der einzelnen Erweiterungen ermöglicht.

Plugins / Mambots

Plugins hießen in den Vorgängerversionen, Joomla 1.0.x und Mambo, Mambots. Die Namensänderung soll offiziell die tiefe Integration dieser Erweiterungen in das Kernsystem verdeutlichen.

Plugins sind die kleine Erweiterungen, die den Seiteninhalt verändern. Das besondere ist, dass der Seiteninhalt erst vor der Anzeige verändert wird. Plugins verrichten oft systemnahe Aufgaben, so zum Beispiel die Anmeldung der Benutzer am System, eMail-Cloaking (eMail Adressen werden für Bots unzugänglich gemacht). Als Beispiele für Plugins seien an dieser Stelle unter anderem der TinyMCE-Editor oder die Authentifizierung genannt.

Module

Über das Template, werden Modulpositionen bestimmt. Im Standardfall sind im linken und rechten Bereich Module positioniert, wie Beispielsweise das Menü-Modul oder das Login-Modul. Module zeigen also einen bestimmten Inhalt an, wobei dieser Inhalt nicht auf das Frontend beschränkt ist. Es kann auch das Backend ergänzt werden. Wo genau die Module angezeigt werden sollen, wird in der Modulverwaltung angegeben.

In der Grundinstallation von Joomla! werden bereits einige Module mitgeliefert. Hierzu zählen unter anderem die oben genannten Module für das Login oder für das Menü. Allerdings können Module auch dekorative Zwecke erfüllen, zum Beispiel Banner oder Logo.

Komponenten

Komponenten stellen die komplexeste Art der Joomla!-Erweiterungen dar. Sie verwalten eigene dynamische Inhalte, die über das Backend gesteuert und/oder konfiguriert werden. Meist wird bei der Installation einer Komponente die Datenbank um weitere Tabellen erweitert, die für die Komponente benötigt werden. Gängig ist, dass Komponenten im Contentbereich einer Joomla!-Seite angezeigt werden. Zunehmend werden einer Komponente auch weitere Module oder Plugins zugeordnet, die für die Darstellung bestimmter Inhalte verantwortlich sind. Beispiele für Komponenten sind:

  • Photogalerien
  • Shop-Systeme
  • Wiki
  • Foren
  • Gästebuch
  • Giessen_Staff (Komponente zur Anzeige von Mitarbeiter und Dozenten)
  • ...

Joomla!-Benutzerrollen

Joomla! sieht acht Benutzerrollen vor - wobei es eigentlich sieben sind, denn eine dieser acht ist keine Rolle sondern reine Ausgabe der Webseite, die jeder Browser ohne registriert zu sein, begutachten kann. Jeder Benutzerrolle sind verschiedene Rechte zugeordnet. Grundsätzlich gilt: die Benutzerrechte bauen aufeinander auf, d.h. die Rechte "niedrigerer" Gruppen werden an höhere Gruppen vererbt


Die Rollen der Reihe nach sind:

  • public

sieht Content im Frontend

  • registered

darf sich im Frontend einloggen und alles sehen und tun, was für registrierte Benutzer erlaubt wurde

  • author

darf im Frontend content schreiben und seinen eigenen content bearbeiten

  • editor

darf im Frontend content von anderen authors bearbeiten

  • publisher

darf im Frontend content freischalten (veröffenbtlichen)

  • manager

darf im Backend Dateien hochladen, Inhalte strukturiert ablegen und archivieren

  • administrator

darf im Backend Menüs, Inhaltstrukturen, Komponenten, Module und Designs verwalten und Benutzer anlegen

  • superadministrator

darf im Backend Administratoren verwalten

Weblinks