Joomla - Eigenen Modul Style erstellen
Ich weiss, ich weiss. Ich habe das Thema bereits in meinen “Drei nützliche Joomla Tricks” Beitrag angeschnitten. Allerdings wurden dort etliche Code Elemente nicht angezeigt und der Beitrag war unvollständig. Daher hier ein neuer und so hoffe ich doch besserer Anlauf.
Oft kann es vorkommen, dass wir ein Layout haben, welches spezielle Modul Styles benötigt. Hier meine ich das Markup der Module. Joomla hat von Haus aus sechs verschiedene Modul Style Parameter mitgeliefert. Wir benötigen allerdings unseren eigenen Modul Style. Ich werde euch erklären, wie genau Ihr euren eigenen Modul Style für euer Joomla Template simpel und leicht selber erstellen könnt. Man kann natürlich soviele verschiedene Modul Styles erstellen, wie man möchte.
Parameter | Rückgabe |
---|---|
table | Das Modul wird in einer Tabellenspalte dargestellt |
horz | Das Modul wird horizontal in der Zelle einer umgebenden Tabelle ausgegeben |
xhtml | Das Modul wird in einem div-Element XHTML-konform ausgegeben |
rounded | Die Ausgabe erfolgt in einem Format, mit dem sich runde Ecken darstellen lassen. Die Klasse des div-Elements ändert sich von moduletable zu module. |
beezDivision | Spezieller Schalter für das Beez-Template. Hier besteht die Möglichkeit, die Überschriftengröße (header) zu verändern. Der Schalter steht außerhalb des Beez-Templates nicht zur Verfügung. |
none | Das Modul wird ohne Formatierung ausgegeben |
Die Struktur
Unsere wichtigste und einzige Datei hierbei ist die Datei modules.php. Wir erstellen in unserem Template Ordner einen neuen Ordner, den wir “html” nennen. In diesem Ordner legen wir nun unsere Datei “modules.php” an. Soweit sogut.
Das Markup
Nun kommt der wichtigste Teil. Der PHP sowie HTML Code natürlich. Zu allererst wollen wir natürlich verhindern, dass Joomla fremder Code ausgeführt wird.
< ?php defined('_JEXEC') or die('Restricted access'); ?>
Danach beginnt unser eigentlicher Code. Wir möchten unseren Style nun so formen, dass dieser mit mehreren div`s verschachtelt ist, die eine eigene class besitzen, sowie mit einer Überschrift im h3 format.
Ich werde nun einmal hier den kompletten Code schreiben und ihn später erläutern.
< ?php defined('_JEXEC') or die('Restricted access'); function modChrome_changethis($module, &$params, &$attribs) { $headerLevel = isset($attribs['headerLevel']) ? (int) $attribs['headerLevel'] : 3; if (!empty ($module->content)) : ?>
modChrome_changethis gibt indemfalle den Namen unseres Styles aus. Dieser wäre nun “changethis”
Nun folgt unser HTML Code:
< ?php echo $module->title; ?>
< ?php echo $module->content; ?>
module->content gibt indemfalle unseren Modul Inhalt aus und module->title gibt den Titel des Modules aus. Der params->get Befehl am Anfang gib den Modul Klassen Suffix aus, falls einer im Joomla Backend angegeben wurde.
Zu allerletzt schliessen wir noch die Klammern der Funktion und beenden unser PHP Script.
< ?php endif; } ?>
Die Implementierung
Nun können wir unseren neuen Modul Style nutzen.
< jdoc:include … style=”changethis” / >
Klaus (1 comments)
Hallo Christopher
Herzlichen dank für deine Anleitung !
Sicher ist es nicht immer ganz einfach sich in die Situation eines Anfängers zu versetzen… grins.
Nur ist mir leider noch nicht Klar, wie man den eigenen Style jetzt mit Leben füllt…?
Ich bin noch auf der Suche, wie man geteilte Hintergrundbilder im ein Modul einfügen kann.
Ich möchte eine Hintergrundgrafik mit einer Sprechblase bei einem Joomla 1.7 Newsfeed-modul hinterlegen. Der Haken ist das die Grafik aus entsprechend mehreren Teilen besteht, da die Sprechblase ja gemaess dem Inhalt mit wachsen muss. Also Konkret muss der Mittelteil der Sprechblase einen repeat-Y bekommen.
Leider ist mir die Umsetzung bei Modulen überhaupt nicht klar.
Wäre Klasse, wenn du in einem weiteren Blog so etwas erläutern würdest.
Gruß
Klaus