Rheinwerk Computing < openbook > Rheinwerk Computing - Professionelle Bücher. Auch für Einsteiger.
Professionelle Bücher. Auch für Einsteiger.

Inhaltsverzeichnis
Vorwort
1 Einleitung
2 Installation
3 Frontend
4 Backend
5 Inhalte erstellen und verändern
6 Eine erste Webseite
7 Das Website-Design
8 Benutzer und Bereiche
9 Module, Plug-ins, Komponenten
10 Pflege der Webseite
11 Eine Site aufbauen
12 Was macht ein Template aus?
13 Tools zur Template-Erstellung
14 Barrierefreiheit
15 Aus der Trickkiste
16 Joomla! als professionelle Geschäftsplattform
17 Online-Shop: VirtueMart
18 Formulare: BreezingForms und ChronoForms
19 Dokumentenverwaltung: Docman und Attachments
20 Kalender: JEvent und iWebCal
21 Bildergalerien: Zoom Media Gallery und JoomGallery
22 Joomla! als Community-Treff
23 Weblogs: IDoBlog und MMS Blog
24 Wiki: JoomlaWiki
25 Forum: FireBoard
26 Gästebücher
27 Noch mehr Kommunikation
28 Installation beim Webhost
29 Backup und Upgrade
30 Tools
31 Standard-Erweiterungen
32 Mehrsprachigkeit
33 Suchmaschinenoptimierung
34 Statistik
35 Performance
36 Datentransfer und FTP-Modus
37 Sicherheit
38 Troubleshooting
39 Mein erstes Modul
40 Die Joomla!-API
41 Plug-ins erstellen
42 Eine eigene Komponente
A Parameter der unterschiedlichen Menütypen
B Die Joomla!-API
C Glossar
D Inhalt der DVD
Stichwort
Ihre Meinung?

Spacer
<< zurück
Joomla! 1.5 von Anja Ebersbach, Markus Glaser, Radovan Kubani
Das umfassende Handbuch
Buch: Joomla! 1.5

Joomla! 1.5
geb., mit DVD
820 S., 34,90 Euro
Rheinwerk Computing
ISBN 978-3-89842-881-1
Pfeil 40 Die Joomla!-API
Pfeil 40.1 Zugriff auf die Interna von Joomla!
Pfeil 40.2 Informationen über den Benutzer
Pfeil 40.3 HTML-Elemente
Pfeil 40.4 URL-Parameter abfragen
Pfeil 40.5 Parametrisieren
Pfeil 40.6 Auf die Datenbank zugreifen
Pfeil 40.7 Internationalisierung


Rheinwerk Computing - Zum Seitenanfang

40.5 Parametrisieren topZur vorigen Überschrift

Es war schon einige Male die Rede davon, dass Module auch parametrisiert werden können. Dazu sind zwei Schritte notwendig. Zum einen müssen wir in der XML-Datei festlegen, welche Parameter es geben soll und über welche Formularelemente auf sie zugegriffen werden kann. Zum anderen ist der Modul-Code so zu ändern, dass diese Einstellungen auch Wirkung zeigen.

Sehen wir uns zunächst die XML-Datei an. Wir wollen vier Parameter einführen. Mit dem ersten soll man festlegen können, welche Bezeichnung für Gäste ausgegeben wird. Der zweite lässt dem User die Wahl zwischen einem von drei Layouts des Moduls. Der dritte bestimmt, ob ein Tooltip erzeugt wird, und der vierte legt fest, welches Bild als Hotspot für diesen Tooltip angezeigt werden soll.

Die Angabe der Parameter erfolgt über das XML-Tag <params>. Dieses enthält für jede Einstellungsoption ein weiteres Tag <param>, das wiederum einige Attribute hat.


Tabelle 40.6 Attribute von »<param>«

Attribut Beschreibung

name

Name der Variable, über die der Wert später angesprochen werden soll.

type

Art und Weise, wie die Werte des Parameters in der Einstellungsseite angegeben werden können (s. u.).

label

Beschriftung des Eingabefeldes.

description (optional)

Eine Beschreibung der Auswirkung des Parameters. Diese wird als Tooltip hinter dem Eingabefeld ausgegeben.

default (optional)

Vorgabewert, falls nichts geändert wird.

class (optional)

Eine CSS-Klasse, nach der das Element dargestellt wird.


Die Darstellung einer Option auf der Einstellungsseite wird durch das Attribut type festgelegt. Hier haben Sie im Wesentlichen die Möglichkeiten, die man von HTML schon kennt, sowie mehrere Joomla!-spezifische Anzeigen. Bei einigen Feldern müssen oder können zusätzliche Angaben gemacht werden. Informationen dazu finden Sie in Tabelle 40.7. Eine vollständige Auflistung ist unter der URL http://docs.joomla.org/Standard_parameter_types hinterlegt.


Tabelle 40.7 Mögliche Eingabefelder für die Parameteransicht

Attribut Beschreibung

calendar

Ein Datumsfeld. Daneben ist ein Kalender-Button, um das Datum per Klick auszuwählen.

  • format: Spezifiziert das Datumsformat in PHP-Notation.

category

Eine Liste der verfügbaren Kategorien.

  • section: Die ID des Bereichs, innerhalb dessen die Kategorien liegen
  • scope: wie section

editors

Eine Liste der verfügbaren Editoren.

filelist

Eine Liste der Dateien aus einem spezifizierten Verzeichnis.

  • directory: Das Verzeichnis, das ausgelesen werden soll.
  • filter: Ein regulärer Ausdruck, der bestimmt, welche Dateien aufgenommen werden.
  • exclude: Ein regulärer Ausdruck, der bestimmt, welche Dateien nicht aufgenommen werden.
  • stripext: true oder false. Soll die Dateierweiterung angezeigt werden?

folderlist

Eine Liste mit Ordnern aus einem spezifizierten Verzeichnis.

  • directory: Das Verzeichnis, das ausgelesen werden soll.
  • filter: Ein regulärer Ausdruck, der bestimmt, welche Ordner aufgenommen werden.
  • exclude: Ein regulärer Ausdruck, der bestimmt, welche Ordner nicht aufgenommen werden.

helpsites

Eine Liste mit Hilfeseiten für Joomla!

hidden

Ein verstecktes Feld, in dem Sie selbst zusätzliche Informationen unterbringen können. Die Werte können dann nur von einem Systemadministrator direkt in der Konfigurationsdatei geändert werden.

imagelist

Eine Liste mit Bildern aus einem spezifizierten Verzeichnis.

  • directory: Das Verzeichnis, das ausgelesen werden soll.
  • filter: Ein regulärer Ausdruck, der bestimmt, welche Bilder aufgenommen werden.
  • exclude: ein regulärer Ausdruck, der bestimmt, welche Bilder nicht aufgenommen werden.
  • stripext: true oder false. Soll die Dateierweiterung angezeigt werden?

languages

Eine Liste der Sprachen für das Front- oder Backend

  • client: Geben Sie hier site für das Frontend und administrator für das Backend an.

list

Eine Liste mit selbst definierten Werten. Die einzelnen Optionen werden über option-Tags erzeugt, die jeweils das Attribut value besitzen. Ein Beispiel finden Sie in Listing 40.8.

menu

Eine Liste mit den verfügbaren Menüs.

menuitem

Eine Liste mit den verfügbaren Menüeinträgen.

  • state: Sollen alle Einträge gezeigt werden (0) oder nur publizierte (1)?

password

Ein Textfeld zur Eingabe eines Passworts.

size: Die Länge des Textfelds.

radio

Mehrere Radiobuttons. Die einzelnen Optionen werden über option-Tags erzeugt, die jeweils das Attribut value besitzen. Ein Beispiel finden Sie in Listing 40.8.

section

Eine Liste mit den verfügbaren Bereichen.

spacer

Eine Trennlinie. Diese nimmt außer type keine weiteren Optionen entgegen.

sql

Eine Liste mit Ergebnissen einer Datenbankabfrage.

  • query: Ein SQL-Statement. Dabei müssen zwei Spalten erzeugt werden. Die erste hat den gleichen Namen wie das name-Attribut. Aus ihr werden die Werte für die Einträge der Liste erzeugt. Die zweite heißt value. Aus ihr werden die Werte für die Optionen entnommen. Beispiel: SELECT id AS value, title FROM #__content

text

Einzeiliges Textfeld.

  • size: Die Länge des Textfelds.

textarea

Mehrzeiliges Textfeld.

  • cols: Die Breite des Textfelds.
  • rows: Die Höhe des Textfelds.

timezones

Eine Liste mit Zeitzonen.

usergroup

Eine Liste mit Benutzergruppen.


Werden neue Parameter für ein Modul eingeführt, so muss das Modul komplett neu installiert werden, da in diesem Fall zusätzliche Einträge in der Datenbank notwendig sind. Wenn Sie nur die Texte der Anzeige ändern wollen, so können Sie das wieder im joomla/modules-Verzeichnis tun. In unserem Fall könnte die Parameter-Sektion in der Datei mod_api.xml aus dem separaten Verzeichnis so aussehen:

18  ... 
19  <params> 
20     <param name="gast" type="text" 
21            label="Gast" default="Besucher" 
22            description="Bezeichnung für Gast-User"/> 
23     <param name="layout" type="list" 
24            label="Layout" default="layout1" 
25            description="Erscheinungsbild des Moduls"> 
26        <option value="layout1">Layout 1</option> 
27        <option value="layout2">Layout 2</option> 
28        <option value="layout3">Layout 3</option> 
29     </param> 
30     <param type="spacer" /> 
31     <param name="tooltip" type="radio" 
32            label="Tooltip" default="1" 
33            description="Anzeige des Tooltips"> 
34        <option value="1">Ja</option> 
35        <option value="0">Nein</option> 
36     </param> 
37     <param name="hotspot" type="imagelist" 
38            label="Hotspot" default="tooltip.png" 
39            directory="/includes/js/ThemeOffice" 
40            description="Bild für den Hotspot" /> 
41     </params> 
42  </install>

Listing 40.8 Ausschnitt aus »mod_api.xml«

Die Beschreibung des Textfeldes (Zeilen 20 –22) weist keine Besonderheiten auf und ist relativ leicht zu verstehen. Im folgenden Auswahlfeld (Zeilen 23–29) finden Sie die Unter-Tags <option>, die die Werte angeben, die zur Auswahl stehen. Das Attribut value bestimmt in diesem Fall, welcher Wert an das Modul übergeben wird. Dieser Wert muss auch im default-Attribut von <param> angegeben werden, damit dieses richtig umgesetzt wird. Die horizontale Linie (Zeile 30) hat keine weiteren Attribute. Die Auswahl über Radio-Buttons (Zeilen 31–36) funktioniert genauso wie das Auswahlfeld. Der letzte Parameter, die Liste der Bilder (Zeilen 37–40), hat drei zusätzliche Attribute. directory gibt das Verzeichnis an, aus dem die Einträge für die Liste ausgewählt werden sollen. Der Pfad muss relativ zum Joomla!-Verzeichnis sein und mit einem Schrägstrich beginnen.


UTF-8
Achten Sie darauf, dass Ihre XML-Datei in UTF-8 kodiert ist. Ansonsten meldet Joomla! einen Fehler bei der Installation. Ob die Datei insgesamt gültig ist, können Sie herausfinden, indem Sie sie mit dem Internet Explorer öffnen. Wird sie angezeigt, ist sie gültig, ansonsten finden Sie einen Hinweis, wo der Fehler liegen könnte.


Um das Ergebnis zu sehen, deinstallieren Sie das »Hallo Joomla«-Modul und installieren es neu. Wenn Sie nun die Einstellungsseite aufrufen, sollte diese in etwa so aussehen, wie in Abbildung 20.3 dargestellt.

Abbildung 40.2 Die neue Parameter-Seite

Bisher haben die Parameter noch wenige Auswirkungen auf die Darstellung des Moduls. Daher müssen wir die Datei mod_api.php so modifizieren, dass sie die Einstellungen berücksichtigt. Zentral ist natürlich der Zugriff auf die gespeicherten Werte. Dieser wird über das params-Objekt angesprochen. Es besitzt eine Methode get, in der Sie den Namen des Parameters und einen Standardwert angeben müssen. Das Parameterobjekt steht zunächst nur in der Moduldatei mod_api.php zur Verfügung. Die Bestimmung des Gastnamens wird jedoch in der Helper-Datei vorgenommen. Daher müssen wir das Objekt an diese übergeben:

5  $username = ModAPIHelper::getUserName($params);

Listing 40.9 Auszug aus mod_api.php

In der Klasse ModAPIHelper nehmen wir das Parameterobjekt (Zeile 13) entgegen und lesen den Wert für die Beschriftung des Gastes aus (in Zeile 14):

13    public function getUserName($params) { 
14       $user =& JFactory::getUser(); 
15       if ($user->id == 0) { 
16          return $params->get('gast', 'Besucher'); 
17       } else { 
18          return $user->username; 
19       } 
20    }

Listing 40.10 Auszug aus der Datei »helper.php«

Die Frage, ob der Tooltip angezeigt wird, entscheidet sich in der Modul-Datei:

6  $tt = JRequest::getVar('tooltip', 1, 'get', 'BOOLEAN') 
7        && $params->get('tooltip', 1);

Listing 40.11 Auszug aus »mod_api.php«

Hier dürfen Sie nicht vergessen, dass wir ja schon eine Abfrage des URL-Parameters erstellt haben. Dieses Verhalten soll natürlich nicht verloren gehen. Daher ergänzen wir die Abfrage um die des Parameters. Beide Teile liefern boolesche Werte. Wenn diese mit UND verknüpft werden, dann wird der Tooltip nur angezeigt, wenn sowohl die Modulparameter als auch die URL-Argumente eine Anzeige zulassen.

Um das richtige Bild ausgeben zu lassen, ist noch eine letzte Änderung in default.php nötig. Da diese Datei mit require in die Modulbasis eingebunden wird, ist dort das params-Objekt auch direkt verfügbar:

8  <?php if ($tt) { 
9              echo JHTML::tooltip($my->usertype, 
10                  'Status', 
11                  $params->get('hotspot', 'tooltip.png')); 
12       }

Listing 40.12 Auszug aus der Datei »default.php«

Wie Sie sehen, haben wir an alle Stellen, an denen die Werte der Parameter verwendet werden, einfach die Abfrage des params-Objekts gestellt. Die Änderung der Anzeige in Abhängigkeit von einem bestimmten Layout wird hier nicht ausführlich besprochen. Denkbar ist beispielsweise das Abschalten der zufälligen Farbwahl oder eine Ausgabe ohne Tooltip.



Ihr Kommentar

Wie hat Ihnen das <openbook> gefallen? Wir freuen uns immer über Ihre freundlichen und kritischen Rückmeldungen. >> Zum Feedback-Formular
<< zurück
  Zum Katalog
Zum Katalog: Joomla! 1.5 - Das umfassende Handbuch





Joomla! 1.5 -
Das umfassende Handbuch

Jetzt bestellen


 Ihre Meinung?
Wie hat Ihnen das <openbook> gefallen?
Ihre Meinung

 Buchtipps
Zum Katalog: Joomla! 3.5






 Joomla! 3.5


Zum Katalog: Top-Rankings bei Google und Co






 Top-Rankings bei
 Google und Co


Zum Katalog: Erfolgreiche Websites






 Erfolgreiche Websites


Zum Katalog: WordPress 4






 WordPress 4


Zum Katalog: Webseiten erstellen für Einsteiger






 Webseiten erstellen
 für Einsteiger


 Shopping
Versandkostenfrei bestellen in Deutschland und Österreich
InfoInfo




Copyright © Rheinwerk Verlag GmbH 2009
Für Ihren privaten Gebrauch dürfen Sie die Online-Version natürlich ausdrucken. Ansonsten unterliegt das <openbook> denselben Bestimmungen, wie die gebundene Ausgabe: Das Werk einschließlich aller seiner Teile ist urheberrechtlich geschützt. Alle Rechte vorbehalten einschließlich der Vervielfältigung, Übersetzung, Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen.


[Rheinwerk Computing]

Rheinwerk Verlag GmbH, Rheinwerkallee 4, 53227 Bonn, Tel.: 0228.42150.0, Fax 0228.42150.77, service@rheinwerk-verlag.de