Professionelle Bücher. Auch für Einsteiger.

Inhaltsverzeichnis
Vorwort
1 Einleitung
2 Installation
3 Frontend
4 Backend
5 Eine erste Webseite
6 Inhalte erstellen und verändern
7 Module, Mambots, Komponenten
8 Konfiguration von Joomla!
9 Eine Site aufbauen
10 Der Joomla!-Baukasten
11 Formulare: Facile Forms
12 Benutzer und Bereiche
13 Joomla! als Community-Treff
14 Forum: Simpleboard
15 Blog: WordPress
16 Wiki: MamboWiki
17 Noch mehr Kommunikation
18 Systemwartung
19 Weiterführende Themen
20 Eigene Erweiterungen schreiben
21 Mambots erstellen
22 Eine eigene Komponente
23 Troubleshooting
A Die Joomla!-API
B Glossar
C Inhalt der CD
Index
Index
Download: - ZIP, ca. 19,6 MB
Buch bestellen
Ihre Meinung?
<< zurück | Galileo Computing / <openbook> / Joomla! | vor >>
Joomla! von Anja Ebersbach, Markus Glaser, Radovan Kubani Das Handbuch für Einsteiger
Joomla! 496 S., mit CD, 29,90 Euro Galileo Computing ISBN 3-89842-632-7 |
| Kapitel 20 Eigene Erweiterungen schreiben
|  | 20.1 Hallo Joomla!
|  | 20.2 Die API nutzen
|  | 20.3 Parametrisieren
|  | 20.4 Auf die Datenbank zugreifen
|  | 20.5 Unterschiedliche Layouts mit Templates
## 20.2 Die API nutze n 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 so genannte API. Leider ist diese bisher sehr spärlich dokumentiert. Das soll sich mit Joomla! 1.1 ändern. Hier wurde schon ein Dokumentations- und Entwicklerportal eingerichtet, das Sie unter der URL dev.joomla.org aufrufen können. Generell stellt die API einige allgemeine Funktionen sowie den Zugriff auf bestimmte Objekte zur Verfügung, die das Verhalten von Joomla! bestimmen. Die wichtigsten Objekte sind:
| Mainframe Über dieses Objekt haben Sie Zugriff auf die erstellte Seite.
| Database Regelt die Kommunikation mit der Datenbank.
| patTemplate Eine Template-Engine, die Sie auch für Ihre Erweiterungen nutzen können.
| My Die Daten des angemeldeten Users.
| Params Über dieses Objekt erhalten Sie Informationen aus den Parameterseiten der Erweiterungen.
| mosHTML Gibt HTML-Tags aus.
Eine Übersicht über wichtige Funktionen finden Sie in der Referenz in Anhang A. Um ein Gefühl für die API zu bekommen, wollen wir unser Modul dahingehend erweitern, dass als Ausgabe der Name eines eingeloggten Users erscheint. Hinter dem Namen soll ein Info-Icon stehen, das einen Tooltipp einblendet, wenn man mit der Maus darüber fährt. Informationen über den User stehen im Objekt $my der Klasse mosUser. Dort finden Sie zwei wichtige Eigenschaften: username enthält den Namen des Benutzers, und usertype gibt an, in welcher Gruppe er sich befindet. Zudem haben Sie über id noch Zugriff auf eine Identifikationsnummer, die bei Datenbankabfragen von Bedeutung sein kann (s. u.). Nun können wir schon den ersten Teil der Aufgabe erledigen. Öffnen Sie dazu die Datei joomla/modules/mod_hallojoomla.php, und ersetzen Sie die vierte Zeile, die »Hallo Joomla« ausgibt, durch den folgenden Code. Funktionen der Joomla!-API sind dabei jeweils fett gedruckt:
    3   ...
    4   if ($my->id == 0)
    5   {
    6      $my_name = "Besucher";
    7   } else {
    8      $my_name = $my->username;
    9   }
    10   echo "<H1>$my_name</H1>";
Listing 20.3 Auszug aus mod_api_1.php In Zeile 4 wird überprüft, ob die User-ID 0 ist. In diesem Fall gibt es keinen angemeldeten Benutzer und wir müssen unseren Gast neutral ansprechen. Dazu speichern wir die Ausgabe in eine Zwischenvariable (Zeile 6). Hat sich ein User angemeldet, so können wir ihn mit seinem Usernamen begrüßen, der dann in Zeile 8 in die Ausgabevariable geschrieben wird. Die Ausgabe selbst erfolgt ganz unspektakulär in Zeile 10.
Hinweis: Zum Testen können Sie dieses Modul wieder installieren. Die XML-Datei können Sie aus mod_hallojoomla.xml übernehmen. Vergessen Sie nicht, den Eintrag <filename> in der zugehörigen XML-Datei anzupassen. Dies gilt auch für die folgenden Programme.
Die Ausgabe eines Tooltips wird von der Funktion mosToolTip übernommen. Da die Tooltip-Funktionalität in HTML mithilfe eines JavaScripts realisiert wird, muss die Datei joomla/includes/js/overlib_mini.js noch in die Seite eingebunden werden. mosToolTip nimmt in unserem Fall vier Parameter entgegen. Der erste enthält den auszugebenden Text, also die Usergruppe. Dann folgt ein Text, der im Titel der Anzeige erscheinen soll. Der nächste Wert ist die Mindestbreite in Pixel, und zuletzt geben wir eine Grafik an, die als Basis für den Tooltip dienen soll. Die Abfrage des Usernamens im obigen Listing muss jeweils um die des Usertyps ergänzt werden.
    3   ...
    4   if ($my->id == 0)
    5   {
    6      $y_name = "Besucher";
    7      $my_grp = "Gast";
    8   } else {
    9      $my_name = $my->username;
    10     $my_grp = $my->usertype;
    11  }
    12  echo '<script type="text/javascript"
    13          src="includes/js/overlib_mini.js"></script>';
    14  echo "<H1>$my_name";
    15  echo mosToolTip($my_grp, 'Gruppe', '30', 'tooltip.png');
    16  echo "</H1>";
    17  ?>
Listing 20.4 Auszug aus mod_halloapi_2.php In den Zeilen 12 und 13 wird die JavaScript-Datei eingebunden. Sie sehen, dass der Pfad relativ zum Host angegeben wird. Der eigentliche Tooltip-Code wird in Zeile 15 erzeugt. Das Bild tooltip.png wird von Joomla! mitgeliefert und liegt im Verzeichnis includes/js/ThemeOffice. Nehmen wir an, Sie hätten gern die Möglichkeit, wieder auf den Tooltip zu verzichten. Dazu wollen wir in der URL die Möglichkeit bieten, einen weiteren Parameter tooltip=no anzugeben, der die Anzeige unterdrückt. URL-Parameter werden über den Befehl mosGetParam entgegengenommen. Dieser benötigt zwei Angaben. Die erste besagt, auf welche Art der Parameter übergeben wurde. Für URL-Parameter benötigen Sie $_GET, für Daten aus HTML-Formularen wird häufig $_POST verwendet. Wenn Sie nicht sicher sind, so verwenden Sie $_REQUEST. Die zweite Angabe enthält den Namen des Parameters, der abgefragt werden soll.
    11   ...
    12   if (!$tt = mosGetParam($_GET, 'tooltip')) $tt = 'yes';
    13   if ($tt == "yes") echo '<script type="text/javascript"
    14       src="includes/js/overlib_mini.js"></script>';
    15   echo "<H1>$my_name";
    16   if ($tt == "yes") echo
    17       mosToolTip($my_grp, 'Gruppe', '30', 'tooltip.png');
    18   echo "</H1>";
    19   ?>
Listing 20.5 Ausschnitt aus mod_halloapi_3.php In Zeile 12 wird der Wert des Parameters tooltip ausgelesen und in die Variable $tt gespeichert. Wenn kein Parameter übergeben wurde, so wird $tt auf yes gesetzt. Damit die Einstellung Wirkung zeigt, müssen wir die Ausgabe der Zeilen, die für den Tooltip verantwortlich sind, vom Wert des Parameters abhängig machen. Das passiert in den Zeilen 13 und 16.
Hier klicken, um das Bild zu vergrößern Abbildung 20.2 Das Benutzer-Modul
<< zurück | <top> | vor >>
Zum Katalog
Joomla! bestellen
Ihre Meinung?
Wie hat Ihnen das <openbook> gefallen? Ihre Meinung
Buchtipps
| NEU: Joomla! 1.5 - für Einsteiger
| Einstieg in Joomla! - Das Video-Training
| CSS-Layouts
| Webseiten erstellen für Einsteiger
| Suchmaschinen-Optimierung für Webentwickler
| Professionelles Webdesign mit (X)HTML und CSS
| Einstieg in osCommerce/xt:Commerce
Shopping
Versandkostenfrei bestellen in Deutschland und Österreich Info

Copyright © Galileo Press 2006
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.

[Galileo Computing]
Galileo Press, Rheinwerkallee 4, 53227 Bonn, Tel.: 0228.42150.0, Fax 0228.42150.77, info@galileo-press.de