Im letzten Teil von „Joomla und AJAX“ möchte ich euch zeigen was ihr sonst noch so mit der Komponente com_ajax und unserem Joomla Modul mod_ajax machen könnt.
Rückgabeformate von com_ajax
Wenn ihr euch den Quellcode der Komponente com_ajax anseht, ja sie besteht wirklich nur aus einer einigen PHP Datei, so fällt auf das die Komponente auser dem JSON-Format noch zwei weitere Formate kennt. Für JSON haben fir den Parameter ‚format‘ auf ‚json‘ gesetzt und wir haben die Daten im JSON Format zurück bekommen. Der Parameter „format“ kann auch auf ‚debug‘ gesetzt werden oder ganz weggelassen werden. Mit „debug“ wird die Rückgabe aus dem Modul mit echo ‚<pre>‘ . print_r($results, true) . ‚</pre>‘; an den Browser zurück gesendet. Wird der Parameter „format“ weggelassen so wir die Rückgabe in abhänigkeit von Typ der Rückgabe als RAW-Daten gesendet. Ist die Rückgabe ein Skalar (String, Integer oder Float) so wird der Wert direkt gesendet. Wir können damit im Modul z.B. eine Rückgabe in HTML, XML oder einem beliebigen anderen Format erzeugen und com_ajax wird es genau so an den Browser senden.
Ist die Rückgabe aus dem Modul jedoch ein Array so wird es mit Implode, ohne Trennzeichen zusammen gefügt und erst dann gesendet. Wenn wir die Daten anschliesend im Browser verarbeiten möchten, so müssen wir selbst für Trennzeichen um die Werte sorgen.
com_ajax und Plugins
Auser Module kann com_ajax auch Joomla Plugins aufrufen. Hierzu wird das Plugin geladen und dann der Event onAjaxPluginname ausgelöst. Am besten schaut ihr euch hierzu den Code bzw. die Dokumentation der Komponente an.
Mehrere AJAX Methoden
Zum schluss möchte ich euch noch die vielleicht wichtigste Möglichkeit von com_ajax und dem Modul Helpern zeigen. Es ist nämlich möglich nicht nur eine Verarbeitungs Funktion getAjax() aufzurufen sondern beliebig viele. Im JavaScript wird hierfür ein weiterer Parameter „method“ eingefügt. Aus dem Wert des Parameters wird von com_ajax der Funktionsname zusammen gesetzt.
Hat z.B. der Parameter „method“ den Wert „sendAnfrage“ so ruft com_ajax im der Helper Klasse die Funktion sendAnfrageAjax() auf. Wir müssen also die Funktion im Helper so anlegen
public static function sendAnfrageAjax() { ... }
Für was ist das nützlich?
Eine Anwendung ist zum Beispiel ein mehrstufiger Dialog. Jeder Schritt kann dann in einer eigenen Funktion abgearbeitet werden. Der Code den wir hierfür schreiben müssen bleibt somit übersichtlicher.
Joomla und AJAX: Teil 1 – Grundlagen
Joomla und AJAX: Teil 2 – Das Modul im Frontend
Joomla und AJAX: Teil 3 – Modul Helper
Joomla und AJAX: Teil 4 – Modul Parameter
Joomla und AJAX: Teil 5 – Weitere Möglichkeiten
Weblinks
Joomla Dokumentation: What is The Joomla Ajax Interface (com_ajax)