Template-Entwicklung für Joomla! 1.6

Des Kaisers neue Kleider
Kommentare

Overrides: die Ausgabe überschreiben
Der im Frontend ausgegebene Quellcode, der von Joomla! generiert wird, ist bei Weitem nicht perfekt. Das gilt übrigens nicht nur hinsichtlich der vielbeschworenen

Overrides: die Ausgabe überschreiben

Der im Frontend ausgegebene Quellcode, der von Joomla! generiert wird, ist bei Weitem nicht perfekt. Das gilt übrigens nicht nur hinsichtlich der vielbeschworenen Barrierefreiheit (Bis einschließlich Joomla! 1.5 wurden die Inhalte größtenteils mittels Tabellen layoutet). Auch wenn es um die Anpassung der Inhalte an das eigene Corporate-Design oder eine andere Inhaltsaufteilung geht, möchte man am liebsten die Ausgabe umschreiben. Mit den in Joomla! 1.5 eingeführten Overrides last sich exakt so etwas umsetzen. Denn Sie können nun endlich die Ausgabe aktiv beeinflussen. Das Besondere dabei ist Folgendes: Anders als in älteren Joomla!-Versionen müssen dafür nicht mehr die Core-Dateien verändert werden. Gerade diese Core-Anpassung ist äußerst problematisch, da die Änderungen bei jedem Joomla!-Update möglicherweise überschrieben werden. Die Joomla! Overrides basieren auf dem Model View Controller (MVC).

Ermöglicht wird das Überschreiben der Core-Ausgabe durch die Template-Dateien, die mit den Layoutschichten von Komponenten und Modulen korrespondieren. Joomla! überprüft automisch, ob eine Override-Datei vorhanden ist und überschreibt in diesen Fällen die Standardausgabe. Beim Overriding unterscheidet Joomla! zwischen Komponenten und Modulen. Wollen Sie die Ausgabe der Komponenten überschreiben, müssen Sie sich mit deren Strukturen auseinandersetzen. Denn in der Tat spielen hier mehrere unterschiedliche Views bzw. Ansichten eine wichtige Rolle (Listing 2).

Listing 2
/components
  /com_content
       /views
         /articles
                /tmpl
                  default.php 
                  form.php    
               // Das ist die HTM-Ausgabe
                 view.html.php 
               // Das ist die PDF-Ausgabe
                 view.pdf.php  
      /category
      /tmpl
        blog.php    
        blog_items.php 
        default.php    
      view.html.php    
      View.feed.php   

Entscheidend für die Ausgabe sind jeweils die view.x.php-Dateien. Prinzipiell ist immer eine view.html.php vorhanden, die die Standardausgabe wiederspiegelt. Zusätzlich können aber auch noch weitere Dateien existieren. Deren Namensgebung folgt dann jeweils dem Schema views.ansichtstyp.php, wobei ansichtstyp beispielsweise pdf, html oder feed sein kann. Um die Ausgabe im Frontend zu überschreiben, also ein Override zu definieren, verändert man nun allerdings nicht diese Dateien. Stattdessen kopiert man die Dateien, die für die Ausgabe verantwortlich sind, die man verändern will, in sein Template-Verzeichnis (In diesem Zusammenhang darf der Hinweis nicht fehlen, dass die Overrides ausschließlich im jeweils aktuellen Template funktionieren). Die betreffenden Dateien müssen dabei an eine ganz bestimmte Stelle im Template kopiert werden. Legen Sie sich dazu in Ihrem Template-Verzeichnis ein html-Verzeichnis an. Darin muss nun wiederum ein Verzeichnis angelegt werden, das exakt den gleichen Namen hat, den das Verzeichnis der zu verändernden Komponente im Komponentenverzeichnis von Joomla! besitzt. Innerhalb dieses Verzeichnisses muss nun ein Verzeichnis angelegt werden, das den gleichen Namen zugewiesen bekommt, wie die Ansicht, die verändert werden soll. Um die Artikelansicht anzupassen, müssen Sie also das Verzeichnis articles anlegen:

/templates
   /php_magazin
   /html
      /com_content      
      /article  
         default.php   
         form.php

In dieses Verzeichnis werden die kopierten Dateien eingefügt. Angenommen also, Sie wollen das Standardlayout eines Artikels anpassen. Die für diese Anzeige verantwortliche Datei liegt unter /components/com_content/views/article/tmpl/default.php. Diese default.php müssen Sie nun in Ihr Template-Verzeichnis /templates/php_magazin/html/com_content/articel/default.php kopieren. Alternativ dazu können Sie die default.php natürlich auch von Grund auf neu anlegen. Meistens ist das Kopieren und Anpassen der Standard-default.php aber die bessere, da schnellere Wahl. Joomla! greift ab sofort auf diese Datei zu, die Sie nun ganz nach Belieben anpassen können.

Module folgen einem ähnlichen Aufbau wie Komponenten. Auch dort gibt es ein /tmpl-Verzeichnis, in dem die Layoutdateien liegen. Die Struktur für das Komponenten-Override ist dort recht einfach: /html/com_component_name/view_name/layout_datei_name.php. Zum besseren Verständnis folgen hier noch einige Beispiele: Angenommen, Ihr Template php_magazin besitzt kein Layout-Override für Komponenten. Will man nun das Standardlayout für einen Artikel überschreiben, muss zunächst die folgende Datei kopiert werden:/components/com_content/views/article/tmpl/default.phpZusätzlich muss sichergestellt sein, dass im Template die benötigte Verzeichnisstruktur vorhanden ist:/templates/php_magazin/html/com_content/articel/default.phpWill man zusätzlich das Blog-Layout überschreiben, wird die Datei /components/com_content/views/category/tmpl/blog.php nach /templates/php_magazin /html/com_content/category/blog.php

kopiert. Sobald die Dateien kopiert sind, lassen sie sich anpassen. Auf diese Weise können Sie die Ausgabe dann vollständig personalisieren.

Fazit

Es ist nicht schwer, Joomla! Templates zu erstellen. Die Templates-Logik ist wohl durchdacht und ermöglicht ein schnelles Umsetzen des eigenen Wunschlayouts. Lediglich in Sachen Dokumentation hinkt Joomla! anderen Systemen teilweise hinterher. Vor allem die fehlende Übersicht der CSS-Klassennamen ist störend.

alt=“Daniel Koch“ height=“85″ />

AUTORENKURZBIO

Daniel Koch arbeitet als freiberuflicher Programmierer und Autor in Berlin. Er hat mehrere Bücher rund um die Themen Programmierung und Software veröffentlicht. Sie erreichen ihn unter dk@medienwerke.de.

Unsere Redaktion empfiehlt:

Relevante Beiträge

Meinungen zu diesem Beitrag

X
- Gib Deinen Standort ein -
- or -