Joomla Überschreiben von Component Views durch eigene Templatedateien und Modul (Mod)

Gepostet am November 1, 2012

Componente überschreiben

Die Templates einer Komponente kann man in Jommla recht einfach Überschreiben. In meinem Beispiel verändere ich die Rechnung des VirtualMart Onlineshop PlugIns.

Im Verzeichnis „components“ sind alle Komponenten des Systems aufleistet. Dort findet man ein Unterverzeichnis „com_virtuemart/views/“ in diesem Verzeichnis sind alle Template-Dateien enthalten und nach dem View-Controller Prinzip in Unterordner platziert.
Grundsätzlich ist jeder Komponente so aufgebaut.

Also Verzeichnis „components/com_virtuemart/views/“:
Die folgende Ansicht zeigt die Unterordner im Verzeichnis „views“.

1
2
3
4
5
6
askquestion
cart
categories
category
invoice
...

Möchte man nun die Rechnung ändern, wäre das Template logischerweise im Ordner „invoice“ zu finden. Ruft man nun den Ordner „invoice“ auf, ist dort ein Ordner namens „tmpl“. Diesen öffnen wir und sehen php-Dateien, welche das Template darstellen.

Also Verzeichnis „components/com_virtuemart/views/invoice/tmpl“:

1
2
3
4
invoice.php
invoice_history.php
invoice_items.php
...

Die Datei „invoice.php“ stellt dann als Beispiel die Rechnung dar und „invoice_items“ die Liste der Artikel auf der Rechnung. Eigentlich recht logisch.

Template-Dateien überschreibeny

Um nun diese Dateien im Template überschreiben zu können, öffnen wir unser Template unter „templates/TEMPLATENAME/html“. In diesen „html“-Ordner werden die Daten zum überschreiben abgelegt. Dort erstellen wir nun einen Ordner mit dem Komponentennamen, welche wir überschreiben möchten „com_virtuemart“:

1
templates/TEMPLATENAME/html/com_virtuemart

Als nächstes erstellen wir das Verzeichnis des Views, welches wir überschreiben möchten.
Das Verzeichnis „views“ -> „/com_virtuemart/VIEWS/invoice“ in der Komponente wird hier nicht angelegt, also die Struktur zur Komponente ist leicht verändert:

1
templates/TEMPLATENAME/html/com_virtuemart/invoice

Nun Kopieren wir die Template-Datei, welche wir überschreiben möchten, von der Komponente in unser Template-Verzeichnis:
Als Beispiel „invoice_items.php“:

1
templates/TEMPLATENAME/html/com_virtuemart/invoice/invoice_items.php

Wenn wir diese nun Verändern, wird die originale Template-Datei von unserer hier angelegten Datei überschrieben.

Modul überschreiben

Das Prinzip ist grundsätzlich das selbe wie bei der Komponente, nur das die Ordnerstrukur etwas anders ist.

1
modules/MODULNAME/tmpl/templatefile.php

kopieren nach:

1
templates/TEMPLATENAME/html/MODULNAME/templatefile.php

Tags: ,

Leave a Reply

 

Posts of Current Category



Facebook: