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

»Tanz ist Hingabe an die Leidenschaft der Musik.« Helga Schäferling

40 Die Joomla!-API

Unser nächstes Anliegen ist es, nicht nur irgendwelchen Text auszugeben, sondern auch auf die Umgebung von Joomla! zu reagieren. Dazu stellen die Programmierer uns eine Schnittstelle zur Verfügung, über die wir auf die Daten und Funktionen des Systems zugreifen können: die sogenannte API. Damit erhalten wir Informationen über den angemeldeten Benutzer, das aktuelle Dokument, die Datenbank und viele weitere Elemente der Seite. Es ist natürlich auch möglich, diese Daten zu verändern und so die Seite programmiertechnisch zu gestalten. Der Weg dazu wird in diesem Kapitel beschrieben.

Die komplette API ist so umfangreich, dass man über darüber ein eigenes Buch schreiben könnte. Sie ist mittlerweile jedoch auch von den Entwicklern selbst relativ gut beschrieben:

  • Es wurde ein Dokumentations- und Entwicklerportal eingerichtet, das Sie unter der URL developer.joomla.org aufrufen können.
  • Eine Referenz finden Sie unter api.joomla.org. Wählen Sie in der Dropdown-Liste Packages den Eintrag Joomla-Framework, um die im Folgenden beschriebenen Klassen zu finden.

Rheinwerk Computing - Zum Seitenanfang

40.1 Zugriff auf die Interna von Joomla! topZur vorigen Überschrift

Um an die Daten und Funktionen von Joomla! heranzukommen, bietet das System dem Entwickler einige Objekte an. Diese können Sie in Ihren eigenen Programmcode einbinden, um ihre Eigenschaften und Methoden zu verwenden. Es liegt daher nahe, sich mit dem Objektmodell von Joomla! auseinanderzusetzen.

Viele Objekte finden sich im Joomla!-Framework-Paket. Tabelle 40.1 listet die wichtigsten auf. Daneben verwendet Joomla! noch einige externe Bibliotheken, z. B. PEAR oder geshi, die aber im Folgenden weitestgehend keine Rolle spielen.


Tabelle 40.1 Wichtige Objekte des Joomla!-Frameworks

Objekt Aufgabe

Anwendung

JApplication

Stellt den Zugriff auf viele grundlegenden Eigenschaften von Joomla! her.

JModel

Grundlage für ein Model nach der MVC-Architektur.

JView

Grundlage für eine View nach der MVC-Architektur.

JController

Grundlage für einen Controller nach der MVC-Architektur.

JModuleHelper

Bietet einige Hilfsfunktionen für Module an.

Datenbank

JDatabase

Erlaubt Ihnen, auf die Datenbank zuzugreifen, und bietet verschiedene Methoden für Abfragen.

Dokument

JDocument

Zugriff auf das aktuell erstellte Dokument. Das ist die Beschreibung der Ausgabe, bevor sie in HTML gegossen wird.

JDocumentRenderer

Erstellt eine HTML-Ausgabe aus einem Dokument.

Umgebung

JRegistry

Zugriff auf die Konfiguration von Joomla!

JParameter

Bietet den Zugriff auf Einstellungen von Erweiterungen.

JRequest

Schnittstelle für den Zugriff auf die Variablen, die der Seite beim Aufruf vom Browser übergeben werden.

JURI

Damit können Sie gültige URLs erstellen und analysieren.

HTML

JHTML

Diese Klasse stellt Ihnen Methoden zur Verfügung, die komplexe HTML-Bestandteile für die Seite erzeugen.

Sprache

JLanguage

Klasse für die Verwaltung von Sprachen und Internationalisierung.

JText

Gibt einen Text in der aktuellen Sprache aus.

Mail

JMail

Mit diesem Objekt können Sie E–Mails erstellen und versenden.

Benutzer

JAuthentication

Übernimmt die Anmeldung eines Benutzers im System.

JUser

Erlaubt es Ihnen, die Daten eines registrieren Benutzers abzufragen und zu verändern.


Wie sieht nun der Zugriff auf diese Objekte aus? Grundsätzlich sind drei Fälle zu unterscheiden. Haben wir es mit einem statischen Objekt zu tun, dann wird dieses wie eine normale PHP-Funktion verwendet. Diese Aufrufe werden in der Regel verwendet, wenn es sich um Hilfsfunktionen handelt, die keine eigenen Daten verwalten. Das Schema ist:

$variable = Objekt::funktion(argument);

Beispielsweise liefert dieser Aufruf den Inhalt eines Übergabeparameters action und steckt ihn in die Variable mit dem gleichen Namen:

$action = JRequest::get('action');

Das Ergebnis eines solchen Aufrufs ist im Regelfall ein einfacher Datentyp, beispielsweise eine Zeichenkette oder eine Zahl.

Normalerweise hat man es jedoch nicht mit statischen Objekten zu tun, sondern mit Instanzen. Diese müssen nach der objektorientieren Lehre zunächst aus der Klasse erstellt werden, bevor man sie benutzen kann. Das sieht so aus:

$objektvariable = new Objekt(argument);

Das Ergebnis ist eine Referenz auf die Instanz. Man spricht auch von einer Objektvariablen. Der folgende Code liefert beispielsweise den Zugriff auf die Einstellungen, die für ein Plug-in vorgenommen wurden. Als Argument wird eine Eigenschaft des entsprechenden Plug-ins übergeben.

$pluginParams = new JParameter( $plugin->params );

Diese Art des Aufrufs findet man im Joomla!-Code jedoch relativ selten. Ein Grund dafür ist, dass man in der Regel auf Objekte zugreifen will, die es bereits gibt. Der angemeldete Benutzer ist ein Beispiel dafür. Es macht wenig Sinn, diesen im Programm mehrfach zu verwalten. Im Gegenteil, dadurch steigt die Gefahr von Inkonsistenzen enorm. Daher gibt es für diese Objekte in Joomla! einen eigenen Zugriffsmechanismus, die sogenannte Factory. Diese hat wiederum einige statische Methoden, über die Sie auf die entsprechenden Objekte zugreifen können.

$objektvariable =& JFactory::getObject(argument);

Wie Sie sehen, wird wiederum eine Referenz auf ein Objekt erzeugt, dieses Mal jedoch auf ein bereits bestehendes. Daher verwendet man als Zuweisungsoperator auch nicht ein einfaches Gleichheitszeichen, sondern eine Referenzzuweisung. Damit wird sichergestellt, dass das Objekt nicht dupliziert wird. Das folgende Beispiel gibt Ihnen Zugriff auf das Datenbankobjekt:

$db =& JFactory::getDBO();

Wie Sie sich denken können, kommt damit der JFactory eine zentrale Rolle zu. In der Tabelle 40.2 wird aufgelistet, welche Objekte Sie über welche Methoden erreichen können. Zudem sind wichtige Objekte auch in vielen Kontexten direkt über eine Variable erreichbar. Diese finden Sie ebenfalls in der Tabelle.


Tabelle 40.2 Einige Methoden von »JFactory«

Methode Variable Rückgabetyp Anmerkung

getApplication()

$mainframe

JApplication

Rahmenklasse für die Ausführung von Joomla!

getConfig()

JRegistry

Zugriff auf die Einstellungen von Joomla!

getDate()

JDate

Die aktuelle Uhrzeit

getDBO()

JDatabase

Zentraler Zugriff auf die Datenbank

getDocument()

JDocument

Daten der eben erstellten Seite

getMailer()

JMail

Ein Objekt zum Versenden von E–Mails

getTemplate()

JTemplate

Zugriff auf das aktuelle Template

getURI()

JURI

URL, mit der die Seite aufgerufen wurde

getUser()

$my

JUser

Daten zum aktuellen Benutzer

$params

JRequest

Die Parameter, die mit der aktuellen URL übergeben wurden


Eine Übersicht über die Methoden und Eigenschaften der Joomla!-Objekte finden Sie in der Referenz in Anhang B. Um ein Gefühl für die API zu bekommen, wollen wir unser Modul nun dahingehend erweitern, dass als Ausgabe der Name eines eingeloggten Users erscheint. Hinter dem Namen soll ein Info-Icon stehen, das einen Tooltip einblendet, wenn man mit der Maus darüber fährt. Das Ganze wird internationalisiert und reagiert auf Einstellungen im Backend.



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