Besonders die Anzeige und Erstellung von HTML-Seiten, -Teilen oder –Dialogen ist eine der Stärke vom Content-Management-Systemen. Auch Joomla bietet hierfür eine besondere Klasse an.
Der Sinn einer solchen Klasse ist sehr leicht verständlich: Einerseits soll das Erscheinungsbild der Website immer einheitlich sein. Und das erreicht man nur mit einheitlichen Methoden und Klassen für deren Erstellungen. Andererseits soll der Entwickler von der Erstellung in HTML entlastet werden. Auch das erreicht man mit dem Angebot von einheitlichen Klassen und Methoden.
Die Elemente der Klasse JHTML haben an sich keine direkte Verbindung zum Framework von Joomla, sie werden einfach zur Ein- bzw. Ausgabe von Informationen genutzt.
Basismethoden von JHTML
Die am öftesten benutzen HTML-Elemente werden über sogenannte Basismethoden schnell und komfortabel angeboten:
[array] addIncludePath([array/string] $path)
Pfad als Zeichenkette oder ein Array mit Pfaden, welche die Klasse für zusätzliche HTML-Elemente durchsuchen soll.
[void] calendar([string] $value, [string] $name,
[string] $id, [string] $format,
[array] $attribs)
Zeigt ein Kalendersteuerelement an. In $value können wir ein anzuzeigendes Datum übergeben. Um das Datum weiterverarbeiten zu können, geben wir in $name den Namen und in $id die ID des Textfeldes für das ausgewählte Datum ein. Um das Datum in einem bestimmten Format darstellen zu können, verwendet wir den Parameter $format. Und in $attribs können wir ein assoziatives Array (Schlüsselname = HTML-Attribut, der Wert des Array-Elements entspricht dem Wert des Attributs) mit weiteren Attributen übergeben. Zum Beispiel können wir ein alt-Attribut und ein maxlength-Attribut an das Eingabefeld anfügen, indem wir $attribs so definieren und als Parameter übergeben:
$attribs = array('alt'=>'Geben sie das (TT-MM-JJJJ) ein, oder klicken Sie auf den Kalender', 'maxlength'=>'10');
[string] date([string] $date, [string] $format,
[bool] $offset)
Formatiert das im US-Format angegebene Datum ($date) mit dem Formatstring in $format. Wenn ein Offset für die lokale Zeitzone hinzugefügt werden soll, müssen wir $offset auf true, sonst auf false setzen.
[void] iframe([string] $url, [string] $name,
[array] $attribs, [string] $noFrames)
Erzeugt ein iframe-Element. In $url können wir den Wert für das src-Attribut angeben und $name enthält den Namen des Elements. In $attribs können wir ein assoziatives Array mit zusätzlichen Werten für das Element angeben. Falls das iframe-Element nicht unterstützt wird, können wir in $noFrames eine entsprechende Meldung ausgeben.
[void] image([string] $url, [string] $alt, [array] $attribs)
Fügt ein img-Element ein. Mit diesem Element können wir ein Bild in HTML anzeigen. In der $url wird der Pfad zum Bild und in $alt der Alternativtext des Elements übergeben. In $attribs können wir ein assoziatives Array mit zusätzlichen Werten für das Element angeben. Hier können wir zum Beispiel die Größe des angezeigten Bildes übergeben. Wir definieren dazu ein assoziatives Array, welches wir in der Folge in der Methode mitgeben:
$attribs = array('height'=>'350', width=>'425');
[void] link([string] $url, [string] $text, [array] $attribs)
Fügt ein a-Element ein. In $url wird der Pfad des Hyperlinks und in $text der Wert für das target-Attribut des Elements übergeben. In $attribs können wir ein assoziatives Array mit zusätzlichen Werten für das Element angeben.
[void] script([string] $filename, [string] $path,
[bool] $mootools)
Fügt ein script-Element ein. In $filename wird der Name der Skriptdatei angegeben und in $path der relative oder absolute Pfad zur Datei übergeben. Wenn die JavaScript-Bibliothek MooTools geladen werden sollen, geben wir in $mootoolstrue an, sonst false.
[void] stylesheet([string] $filename, [string] $path,
[array] $attribs)
Fügt ein Element für eine CSS-Datei ein (Cascading Style Sheet). In $filename wird der Name des Stylesheets angegeben und in $path der relative oder absolute Pfad zur Datei übergeben. In $attribs können wir ein assoziatives Array mit zusätzlichen Werten für das Element angeben.
[void] tooltip([string] $tooltip, [string] $title,
[string] $image, [string] $text,
[string] $href)
Erstellt einen Hinweistext (Tooltip) mit einem Bild als Anker. In $tooltip wird der Text für den Hinweis und in $title der Titel des Tipps angegeben. Falls kein $tooltip angegeben wird, können wir in $image einen Pfad und einen Dateinamen zu einem Bild angeben, der als Hinweis angezeigt wird. In $text wird der eigentliche Text für den Tooltip angeben. In $href können wir einen URL für die Erstellung des Tooltips angeben.
Elemente mit JavaScript einbinden
Zusätzlich bietet uns Joomla in der Klasse JHTMLBehavior eine zusätzliche Funktionalität an. Wir können dynamische HTML-Elemente mit JavaScript einfügen. Mit diesen sogenannten Behaviors können wir zusätzliche Funktionalitäten erzeugen. Joomla fügt ein HTML-Element (oder eine Gruppe von Elementen, wie etwa beim folgenden Kalender-Beispiel) ein und verknüpft diese mit Funktionen aus JavaScript. Damit erhalten diese Elemente für den Benutzer ein auf der Webseite dynamisches Verhalten (Behavior). Dazu benötigen wir die Methode _() der Klasse JHTML. Mit der Kommandomethode können wir weitere (abhängige) Klassen von JHTML aufrufen und in einem View einsetzen.
Ein Beispiel: Der Aufruf JHTML::_('behavior.calendar') zeigt einen Kalender mit Datumsauswahl an.
...
...
Dieser Text ist dem Buch “Joomla!-Extensions mit PHP entwickeln” von Clemens Gull entnommen, das im Franzis-Verlag erschienen ist. Es ist hier direkt bestellbar.
Clemens Gull
Lernen Sie die ganze Vielfalt vom Franzis Buch- und Softwareverlag kennen