• Erweiterungen für Joomla Joomla Komponenten, Module, Plugins - sketch.media

Dieser Beitrag soll als Wegweiser durch die Strukturen hinter den Kulissen von Joomla dienen und die Geheimnisse der Joomla Datenbank lüften.

Installation der Joomla Datenbank

Bereits bei der Installation von Joomla! wird eine Datenbank für den Installationsvorgang benötigt. Ohne eine angelegte Datenbank ist es nicht möglich, Joomla! zu installieren.

Die Datenbank ist der Dreh- und Angelpunkt in jedem Content-Management-System. Hier werden die Einstellungen, die man im Backend vornimmt, gespeichert und an einer anderen Stelle wieder abgerufen. Die Beiträge, die man verfasst, die Kategorisierung, jeder Zusammenhang zwischen Beiträgen und Menüpunkten – all das wird in der Joomla Datenbank gespeichert.

Beim Installationsvorgang von Joomla müssen Sie eine Joomla Datenbankverbindung angeben. Die Zugangsdaten variieren zwischen den Providern. In der Regel wird dazu eine MySQL Datenbank verwendet, die man mit PHPMyAdmin auf einer - für Menschen lesbaren Oberfläche – auch manuell verwalten kann.

Wenn man auf "Installieren" klickt, erfolgt im Hintergrund nichts anderes, als dass die leere Datenbank mit Grundinformationen gefüllt wird und alle für den Joomla! Core benötigten Datenbanktabellen gefüllt werden.

Bestandteile der Joomla! Datenbank

Zur Basisinstallation gehören aktuell folgende Tabellen, auf die in dieser Beitragsreihe im Einzelnen eingegangen wird.

Die Joomla Datenbank teilt sich inhaltlich in zwei verschiedene Bereiche auf

Inhaltlich kann man die Joomla Datenbank in zwei Bereiche aufteilen. Der erste Teil sind Joomla eigene Komponenten, wie z.B. COM_CONTENT, in welcher der Inhalt der Beiträge gespeichert wird. Der zweite Teil besteht aus übergreifenden Tabellen, wie z.B. Assets und Extensions, in welchen alle installierten Komponenten und Plugins usw. aufgelistet sind.

Im Folgenden wird die Joomla Datenbank in ihre Tabellen aufgeschlüsselt. Das vorangestellte #_ im Tabellennamen ist ein Platzhalter für das sogenannte Tabellenpräfix, welches in jeder Joomla! Datenbank anders lauten kann. Durch verschiedene Präfixe wäre es z.B. möglich mehrere Joomla! Installationen innerhalb einer Datenbank zu führen.

#__assets

Mit #_assets kommt man in der Praxis am wenigsten in Berührung. Hier werden alle Zugriffsrechte der einzelnen Komponenten und Modules gespeichert. Wenn man innerhalb einer Komponente im Backend auf die Optionen klickt, kommt man auf diese Zugangsberechtigungen.

#__associations

Hier wird die Beziehung zum Kontext hergestellt. Ist der Beitrag ein Menüpunkt oder nicht.

#__banners, #__banner_clients, #__banner_tracks

Die Joomla! native Bannerkomponente ist hier zu Hause. Jede Zeile dieser Tabelle in der Joomla! Datenbank steht für einen Banner. Die Kategorisierung der Banner erfolgt über die Spalte ### . Die zugehörigen Kategorien selbst findet man wie in jeder Joomla! Kategorisierung in com_categories. An welcher Stelle die Banner im Template ausgegeben werden, wird über module geregelt. Es muss im Backend ein Modul dazu erstellt werden, welches in der  Datenbanktabelle #__modules hinterlegt wird.

Die Bannerkomponente kann auch Kunden verwalten, die „Anzeigen“ schalten können. Diese Kunden sind in #__banner_clients hinterlegt.

In #__banner_tracks werden die Klicks auf die Banner verzeichnet. Immer wenn ein Besucher einen Banner anklickt, wird die Zahl aktualisiert.

#__categories

In der Tabelle #__categories wird die Joomla! native Kategorisierung gemanaged. Nicht nur die Beiträge von Joomla sind hier zu finden. Jeder Komponente steht es frei, die Joomla Kategoriesierung zu nutzen. Die Spalten "extension" regelt dann die Zuweisung zur jeweiligen Komponente

#__contact_details

Die Joomla! eigenen Kontakt-Profile. 

#__content

Der Dreh- und Angelpunkt der Joomla! Datenbank. Hier werden alle Joomla! Beiträge gespeichert. Über intro_text und full_text wird gesteuert, ob ein Beitrag einen Weiterlesen-Button besitzt oder nicht. 

#__contentitem_tag_map, #__content_frontpage,  #__content_types

Die Sortierung der Beiträge und die Möglichkeit verschiedene Content Typen zu definieren findet man in diesen Joomla! Tabellen.

#__content_rating

Das Joomla! native Bewertungssystem für Beiträge ist hier aufgeführt. Standardmäßig ist diese Funktion deaktiviert (zu finden in den Beitragsoptionen im Backend)

#__core_log_searches

Hier kann man bei Aktivierung im Backend, die Suchanfragen indexieren lassen

#__extensions

In der Joomla! Datenbank installierte Erweiterungen und ebenso die Core-Erweiterungen vom Joomla! Installer haben ihren Platz hier.

#__finder_filters, #__finder_links, #__finder_links_terms (0-9), #__finder_links_terms (a-f), #__finder_taxonomy, #__finder_taxonomy_map

#__finder_terms, #__finder_terms_common, #__finder_tokens, #__finder_tokens_aggregate, #__finder_types

Die Finder-Tabellen sind alle Bestandteil der Joomla! Komponente "Suchindex". 

#__languages

Hier werden die installierten Sprachen der Joomla Installation gelistet.

#__menu, #__menu_types

Verschiedene Menüs und ihre Typenbezeichnung (Menüname, Typ, etc.) werden in diesen beiden Tabellen erstellt.

#__messages, #__messages_cfg

Das Joomla interne Nachrichten System für Administratoren.

#__modules, #__modules_menu

Alle angelegten Frontend und Backend Module - zu finden in "Erweiterungen" -> Module

#__newsfeed

Newsfeeds werden gerne für RSS-Reader angeboten. Wenn die zugehörige Komponente aktiviert ist, werden die Feeds hier erzeugt.

#__overrider

In Joomla ist es möglich, Sprachvariablen nach Belieben zu überschreiben. Angenommen "Weiterlesen" soll durch "Mehr" ersetzt werden, kann dies im Backend unter Erweiterungen->Sprachen->Overrides geändert werden. Diese Overrides werden in der Joomla! Datenbank unter der Tabelle #__overrider gespeichert.

#__postinstall_messages

Nachinstallationshinweise von Joomla! Updates werden hier gelistet.

#__redirect_links

Hier kann man seit einiger Zeit sogenannte Redirects aus dem Backend setzen. Wenn man das zugehörige Plugin aktiviert, werden Fehlerseiten dokumentiert und können durch Zuweisung einer neuen URL überschrieben werden.

#__schemas

Hier werden Versionsnummern verschiedener Extensions gesammelt.

#__session

Hier werden Session IDs verwaltet, wenn die Speicherung im Backend auf "Datenbank" gestellt ist.

#__tags

Das interne Tagging System in Joomla.

#__template_styles

Verschiedene Templates können verschiedene Stile vorgeben, die die Benutzer aussuchen können. Die Stile eines Joomla Templates werden hier gespeichert.

#__ucm_base, #__ucm_content, #__ucm_history

UCM Tabellen speichern die Versionen eines Joomla Beitrags, wenn diese Funktion aktiviert ist.

#__updates, #__update_sites, #__update_sites_extensions

Hier werden die Update-Server verschiedener Extensions gespeichert. Seit Joomla! 3.4 kann man diese auch im Backend deaktivieren (Erweiterungen->Updateserver).

#__usergroups, #__users, #__user_keys, #__user_notes, #__user_profiles, #__user_usergroup_map

Die umfangreiche Benutzerverwaltung in Joomla. Jeder registrierte Benutzer wird in der Joomla Datenbank in der Tabelle #__users gespeichert. Ob dieser ein Super-User, Administrator, Redakteur oder Gast ist, wird über a) die #__usergroups geregelt und b) über die #__user_usergroup_map zugewiesen. Eine 8 in der Usergroupmap steht beispielsweise standardmäßig für den Super User.

#__viewlevels

Hier werden zu guter Letzt die Zugriffsebenen der jeweiligen Benutzergruppen gespeichert.