Joomla 1.5 Templates Dokumentation
Es gab schon einigen Hickhack mit Joomla 1.5 Templates. Erst wurde auf die patTemplate - Engine geschworen, dann hat man sie wieder abgeschaft. Hier ist der Versuch etwas Licht in das Dunkel von Joomla 1.5 Templates zu bringen. Leider gibt es immer noch keine offizielle Dokumentation.
Konzeptionell wird zwischen Site - Templates und Extension Templates unterschieden. Das Site - Template bestimmt das Layout der gesamten Site, wohingegen ein Extension - Templates lediglich Einfluss auf den Output einer Komponente oder eines Modules hat. Ein Site - Template kann Einstellungen eines Extension Templates überschreiben.
Was ist neu in Joomla 1.5 Templates
| Joomla 1.0x / Mambo 4.5.3ff | Joomla 1.5 |
|---|---|
| mosCountModules(); | $this->countModules() |
| mosShowHead(); | <jdoc:include type="head" /> |
| $mosConfig_live_site; | $this->template |
| mosLoadModules ( 'user3', -1); | <jdoc:include type="modules" name="user3" style="raw" /> |
| mosMainBody(); | <jdoc:include type="component" /> |
Joomla 1.5 mosCount Modules()
Die mosCountModules() - Funktion wurde ersetzt durch $this->countModules() - Funktion. Als neues Feature gibt es jetzt Unterstützung für Bedingungen. Die noch in vielen Foren erwähnten Bedingungen <jdoc:exists /> und <jdoc:empty /> wurde in Joomla 1.5 komplett durch mosCountModules() ersetzt.
Beispiel:
- countModules('user1 and user2'), gibt 1 zurück wenn es ein Modul im user1 - UND user2 - Bereich gibt
- countModules('user1 or user2'), gibt 1 zurück wenn es Modul im user1 ODER user2 - Bereich gibt
- countModules('user1 + user2'), gibt die Anzahl der Module im user1 UND user2 - Bereich an
Die Funktion gibt die Anzahl der Module in einem Bereich zurück. So erhalten Sie mit $this->countModules('user1 +user2') die Anzahl der Module im Bereich user1 und user2.
Die mosLoadModules()-Funktion mit denen der eigentliche Content geladen wurde, wird durch die neue Funktion <jdoc: include typo3=“modules“ name=“right“ /> z. B. ersetzt.
Joomla 1.5 Template Parameter
Template Parameter gibt es erst seit Joomla 1.5. Mit Hilfe dieser Parameter hat der Sitebetreiber größere Flexibilität über den Output des Templates. Der Template Entwickler kann im Template XML-File nun Parameter angeben aus den der Sitebetreiber im Templatemanager auswählen kann. So kann man sich vorstellen, das ein Template gleichzeitig ein zwei- und dreispaltiges Layout unterstüzt. Der Sitebetreiber bzw. Admin der Site kann dann im Template Manager auswählen ob er zweispaltiges oder dreispaltiges Layout wünscht.
Auf die Template Parameter kann zugegriffen werden mittels:
<? if($this->params->get('showComponent')) : ?>
<jdoc:include type="component" />
<? endif; ?>
Ferner hat man im Template Zugriff auf die Variablen:
$this->language - der Language tag
$this->direction - die Language direction
$this->template - der Template Name
Darüberhinaus hat man auch Zugriff auf $option, $mainframe und $Itemid.
Joomla 1.5 Content - Rendering Prozess
Ganz wichtig und dringend notwendig war eine Möglichkeit zu schaffen mehr Kontrolle über den Content – Output zu bekommen. Dies ist nun Joomla 1.5 möglich. So kann beispielsweise das Rendering eines Artikels geändert werden, wenn Sie anstelle eines Table-Outputs, die Ausgabe in DIVs bevorzugen. Genauso können Sie jetzt auch die Namen der CSS – Klassen oder Ids ändern.
Der Renderingprozess ist sehr simple und besteht lediglich aus 2 Schritten:
Alle PHP-Funktionen im Template werden ausgeführt, natürlich werden auch alle Variablen durch Ihre Werte ersetzt.
Das System sucht nach allen <jdoc:include />- Statements ersetzt diese mit dem Output des jeweiligen Modules, Komponente, ...
Joomla 1.5 Template CSS
Auch im Bereich CSS gibt es einige Änderungen. So werden jetzt erstmals nativ mehrere CSS Files unterstützt. Der Name des Master-CSS – File hat sich von template_css.css in template.css geändert. Neu ist ebenfalls die Unterstützung für den WYSIWG-Editor durch ein eigenes CSS File, editor.css, das bei jedem Editoraufruf geladen wird.
Editor Aufruf im Joomla 1.5 Template
In Joomla 1.0x ebenso wie in Mambo musste der Editor noch direkt im Template – File geladen. Das entfällt in Joomla 1.5. Sobald das System die Seite rendert wird automatisch erkannt ob der Editor geladen werden muss oder nicht.
Joomla 1.5 Template <jdoc:include Statement
Übersicht
<jdoc:include<jdoc:include type="component" />
<jdoc:include type="head" />
<jdoc:include type="installation" />
<jdoc:include type="message" />
<jdoc:include type="module" name="breadcrumbs" />
<jdoc:include type="module" name="menu" />
<jdoc:include type="module" name="submenu" style="rounded" id="submenu-box" />
<jdoc:include type="modules" name="debug" />
<jdoc:include type="modules" name="icon" />
<jdoc:include type="modules" name="left" style="rounded" />
<jdoc:include type="modules" name="left" style="xhtml" />
<jdoc:include type="modules" name="right" style="xhtml" />
<jdoc:include type="modules" name="status" />
<jdoc:include type="modules" name="syndicate" />
<jdoc:include type="modules" name="title" />
<jdoc:include type="modules" name="toolbar" />
<jdoc:include type="modules" name="top" />
<jdoc:include type="modules" name="top" style="xhtml" />
<jdoc:include type="modules" name="user1" style="xhtml" />
<jdoc:include type="modules" name="user2" style="xhtml" />
<jdoc:include type="modules" name="user3" />
<jdoc:include type="modules" name="user4" />
Das type Attribut spezifiziert den Contenttyp der gerendert werden soll.
component
Das component-Element sollte nur einmal im <body>-Element eines Joomla 1.5 - Templates erscheinen. Damit wird der eigentliche Content einer Seite gerendert.
head
Ebenso sollte das head-Element nur einmal erscheinen. Dadurch werden die im <head> - Bereich benötigten Styles,Scripts und Meta Elemente der aktuellen Seite gerendert
installation
Das Installations-Element wird nur im Joomla Installer Template gebraucht und wird weder für den Frontend noch für den Backend benötigt.
message
Auch das message-Element wird nur einmal im Template benötigt um System und Fehlermeldungen zu rendern die beim Aufruf der Seite auftraten.
module
Das module-Element erzeugt die Ausgabe eines einzigen Modules. Der Modultyp wird durch das name-attribut mitgeteilt. Der Modul der gerendert werden soll muss natürlich für den aktuellen Benutzer zugänglich und er muss publiziert sein. Zusätzliche Attribute für das Layout des Modules können in Abhängigkeit des Modultyps zur Verfügung stehen.
Das style Attribut ist optional. Es kann für einzelne Modultypen zur Verfügung stehen. Die Attribute - Werte werden als "chrome" - Styles bezeichnet. Steht kein Style-Attribut zur Verfügung so lautet der Default 'none'.
Standard Module 'chrome' - Namen finden Sie im File /templates/system/html/modules.php
Die da sind:
table
horz
xhtml
rounded
outline

