Joomla Tutorials

Folge uns auf Twitter



Folge uns auf Twitter

Es lohnt sich, Ahadesign aufTwitterzu folgen, um keine Neuigkeiten zu Bildbearbeitung, Webdesign Tutorials, Reviews, Testberichte, News, Downloads und Verlosungen zu verpassen. Wer Twitter nicht mag oder eine zusätzliche Möglichkeit sucht, um immer auf dem neuesten Stand zu sein, kann auch gerne denAhadesign-RSS-Feedkostenfrei abonnieren.

Luminar 2018 Gutscheincode

Ahadesign Hochbanner

SeedingUp


Ahadesign Tutorial

Seit Joomla Version 1.5 hat man den totalen Einfluss auf die Ausgabe von Erweiterungen wie Module, Komponenten oder die Pagination. Und auch die Sprachausgabe lässt sich den eigenen Wünschen anpassen. Obwohl mit Overrides die Core-Daten von Joomla verändert werden, bleiben diese auch nach Updates erhalten.

Kerndaten überschreiben!

Um ein individuelles Aussehen für eine Joomla-Seite zu erreichen, kann man aus einer Vielzahl von Templates wählen und diese zb. via Cascading Stylesheets anpassen. Jedoch sind hier manchmal auch Grenzen gesetzt.

Nicht jede Erweiterung passt sich genau so in das Layout der Seite ein, wie man das vielleicht gerne hätte. Möglicherweise möchte man einer Erweiterung auch noch ein paar zusätzliche Features beibringen, oder überflüssige Dinge einfach entfernen.

Natürlich lässt sich alles ändern, indem man direkt in den Joomla-Code oder in den Code einer Extension eingreift. Bei einem Update von Joomla bzw. einer Erweiterung ist die gemachte Änderung allerdings wieder verloren. Das macht natürlich keinen Sinn.

Seit Joomla 1.5 gibt es aber die Overrides, was eine ideale Lösung darstellt. Bei richtiger Vorgehensweise werden ebenfalls die Core-Daten geändert, welche aber auch nach Updates weiter vorhanden sind.

Möglich ist das alles durch das Model/View/Controller-Konzept, welchem Joomla folgt. Auch bei Drittanbieter-Erweiterungen funktionieren die Overrides, sofern der Entwickler diesem Konzept und den Joomla-Konventionen gefolgt ist.

Wichtig für die Overrides ist der Bereich "View", also die Schicht für die Präsentation einer Extension auf der Frontpage. So könnte man zb. die Ausgabe der generierten Inhalte komplett beeinflussen.

Dafür zuständig ist die Komponente "com_content". Diese ist zu finden unter /components/com_content und dort gibt es einen weiteren Unterordner "views". Auf genau diesen Ordner kommt es bei jeder Erweiterung an.

Der Ordner "views" enthält je nach Erweiterung oft weitere Unterverzeichnisse. Wir gehen hier einmal von Joomla 2.5 aus. Bei com_content sind das archive, article, categories, category, featured und form.

Die Bezeichnungen dieser Verzeichnisse geben bereits einen guten Hinweis darauf, was damit verändert werden kann. In diesem Beispiel soll die Ausgabe von Artikeln angepasst werden. Also werden die Dateien aus dem Ordner article/tmpl kopiert. Das müssen allerdings nicht unbedingt sämtliche Dateien sein. In diesem Beispiel reicht die Datei "default.php".

Als erstes muss aber im Template-Verzeichnis der leere Ordner mit der Bezeichnung "html" angelegt werden. Natürlich ohne Anführungszeichen. In diesem Ordner wird dann für dieses Beispiel ein weiteres Unterverzeichnis mit der Bezeichnung der Komponente, also "com_content" und noch ein weiteres Unterverzeichnis "article" angelegt, worin dann die Dateien der Erweiterung hineinkopiert werden können.

Für den Content könnte hier also zb. die Datei default.php aus /components/com_content/views/article/tmpl kopiert werden nach /templates/name-des-templates/html/com_content/article.

Übrigens sollte sich in jedem Verzeichnis aus Sicherheitsgründen unbedingt eine leere Datei mit der Bezeichnung "index.html" befinden, um den direkten Zugriff auf den Ordner zu verhindern.

Liegt die Datei "default.php" jetzt an richtiger Stelle im HTML-Ordner des Templates, wird sie von Joomla gegenüber der originalen Datei sozusagen bevorzugt. Bei einem Joomla-Update wird nur die originale Datei verändert. Eigene Anpassungen bleiben ab jetzt also dauerhaft bestehen.

Um das zu testen, kann die default.php jetzt mit einem Editor geöffnet werden und zb. nach Zeile 22 mit dem PHP-Befehl "echo" ein eigener Text eingefügt werden, welcher dann bei jedem Artikel angezeigt wird.

Hier könnte man jetzt auch Div-Klassen verändern oder erweitern und dadurch noch mehr Möglichkeiten mit CSS haben und viele Dinge mehr. Das Prinzip ist immer gleich. Es funktioniert mit Modulen also ganz genauso. Nur mit Plugins geht das so nicht.

Zum Beispiel soll das in der vertikalen Ansicht in einer Sidebar des Templates dargestellte Newsflash-Modul verändert werden. Dort erscheint normalerweise immer eine ungeordnete Liste als Aufzählungszeichen, also ein "ul". Dies soll jetzt in eine geordnete Liste, also ein "ol" geändert werden, womit eine Nummerierung zwischen den einzelnen Beiträgen realisiert wird.

Dazu wird also im HTML-Ordner des Templates das Verzeichnis "mod_articles_news" angelegt. Dann wird die Datei vertical.php und die leere index.html aus /modules/mod_articles_news in dieses Verzeichnis kopiert.

In der eben kopierten vertical.php wird jetzt in Zeile 12 und 22 aus dem ul einfach ein ol gemacht und schon erscheint auf der Frontpage die Aufzählung wie 1., 2., 3. usw. und nicht mehr das Listensymbol. Nun kann das ol natürlich noch mit CSS weiter definiert werden.

Output Overrides!

Neben diesen Beispielen, kann auch generell die Ausgabe eines Moduls gezielt gesteuert werden. Im Prinzip geht es darum, wie das Modul gerendert wird. Auch dazu wird wieder der Ordner html verwendet, diesmal allerdings keine Unterverzeichnisse. Es wird dort einfach die Datei modules.php hineinkopiert, welche man sich am besten aus /templates/system/html holt.

Dort befinden sich verschiedene Bereiche wie zb. function modChrome_xhtml oder function modChrome_rounded usw. Diese Funktionsblöcke lassen sich ganz nach Wunsch verändern.

Es lassen sich auch zusätzlich eigene Funktionen anlegen. Zb. wird für das Template Aha Money J17 mit function modChrome_ahatml eine eigene Bezeichnung verwendet.

Eine solche Funktion kann dann in der index.php des Templates verwendet werden und sieht zb. so aus:

<jdoc:include type="modules" name="left" style="ahatml" />

Neben der modules.php kann an gleicher Stelle auch eine pagination.php verwendet werden, um die Darstellung der Seitenzahlen und die "Start" und "Ende"-Links in der Content-Ansicht zu verändern. Diese originale Datei ist zu finden unter /libraries/joomla/html.

Diese Datei ist allerdings ziemlich unübersichtlich und vieles daraus darf man auch nicht verändern. Übersichtlicher ist zb. die pagination.php eines Templates wie Aha Elite für Joomla 2.5, welches hier im Downloadbereich kostenfrei heruntergeladen werden kann.

Sinnvoll sind hier die Funktionen pagination_list_footer(), pagination_list_render(), pagination_item_active() und pagination_item_inactive().

Neben diesen Möglichkeiten lässt sich auch noch die Sprachausgabe ganz frei überschreiben. Zu diesem Thema wurde bereits das Tutorial Joomla Sprache anpassen veröffentlicht.

Es gibt also sehr viele effiziente Möglichkeiten, um Joomla ganz nach seinen Bedürfnissen zu gestalten. Natürlich sind dafür auch gute Kenntnisse in PHP und CSS angebracht. Viele dazu wichtige Informationen sind auch bei docs.joomla.org zu finden.

Cookies erleichtern die Bereitstellung unserer Dienste. Über deren Verwendung kann hier frei entschieden werden.
Datenschutzerklärung Ok Ablehnen