Joomla! DAY TM AUSTRIA 2015 AJAX Implementierung mit Joomla!
Inhalt AJAX Implementierung mit Joomla!
Inhalt Einleitung Was ist AJAX und wie funktioniert es Joomla! & AJAX AJAX in Templates mit Komponenten AJAX mit Modulen & Plugins AJAX Demo mit Joomla! Fragen und Antworten
Einleitung AJAX Implementierung mit Joomla!
Vorstellung Sprecher: Stefan Polzer Webdesigner Webentwickler Fachtrainer Seit 2012 eigene Firma Polzer Stefan IT - www.posit.at
Grundlagen für den Vortrag Gute HTML & CSS Kenntnisse Erfahrung mit JavaScript und jquery Verständnis von Objektorientiertem PHP Grundverständnis über die Struktur von Joomla! aus Entwicklersicht
Kurze AJAX Einführung AJAX Implementierung mit Joomla!
Kurze AJAX Einführung A.J.A.X. steht für Asynchronous JavaScript and XML Was braucht es grundsätzlich für AJAX Einen Browser mit JavaScript und XMLHttpRequest (XHR) Unterstützung Einen Server der je nach Bedarf XML, JSON oder HTML Fragment liefern kann
Standard Client - Server Kommunikation Webbrowser Server System HTTP-Anfrage Benutzeroberfläche HTML, CSS, usw. Daten Webserver CMS, Datenbank, Datenverarbeitung, Legacy-System, etc.
Standard Client - Server Kommunikation
Standard Client - Server Kommunikation
AJAX Client - Server Kommunikation Webbrowser JavaScript-Aufruf Server System HTTP-Anfrage Benutzeroberfläche JavaScript & XHR HTML, XML oder JSON Webserver und/oder XML-Server CMS, Datenbank, Datenverarbeitung, Legacy-System, etc. HTML & CSS Daten
AJAX Client - Server Kommunikation
AJAX Client - Server Kommunikation
Joomla! & AJAX AJAX Implementierung mit Joomla!
Welche AJAX Anfragen gibt es in Joomla! Komponenten Rückgabedaten sind Komponenten spezifisch Module Rückgabedaten als JSON, Debug oder RAW Plugins Rückgabedaten als JSON, Debug oder RAW
AJAX mit Joomla! Komponenten Template erweitern z.b.: /templates/mytemplate/ajaxdemo.php <?php defined('_jexec') or die;?> <jdoc:include type="component" /> Aufruf mit URL Query Parameter http://example.com/page/?tmpl=ajaxdemo
AJAX mit Joomla! Modulen & Plugins Voraussetzung: com_ajax Komponente Joomla! 3.2.+ GitHub: Joomla-Ajax-Interface/component https://github.com/joomla-ajax-interface/component
AJAX mit Joomla! Modulen com_ajax URL Aufbau für Module + option=com_ajax + module=[<name z.b. ajaxcrumbs>] + format=[json debug <nicht html z.b. raw>] ± method=[<name>] (Standard ist get) index.php?option=com_ajax&module=ajaxcrumbs&format=raw&method=get
AJAX mit Joomla! Modulen Struktur des Modules Der Modulname lautet z.b. mod_ajaxcrumbs Aufruf einer Methode in helper.php Der Methodenname muss mit Ajax enden z.b. getajax() oder mymethodajax() index.php?option=com_ajax&module=ajaxcrumbs&format=raw&method=get
AJAX mit Joomla! Plugins com_ajax URL Aufbau für Plugins + option=com_ajax + plugin=[<name z.b. ajaxdemo>] + format=[json debug <nicht html z.b. raw>] ± group=[<name>] (Standard ist ajax) index.php?option=com_ajax&plugin=ajaxdemo&format=raw&group=system
AJAX mit Joomla! Plugins Struktur des Plugins Aufruf der Ajax Methode in der Plugin Class Die Class lautet z.b. PlgSystemAjaxDemo Der Methodenname muss mit onajax beginnen und dem Plugin-Namen enden z.b. onajaxajaxdemo() index.php?option=com_ajax&plugin=ajaxdemo&format=raw&group=system
Rückgabe an com_ajax Rückgabe bei fomate=json oder debug String, Integer, Floating point und Boolean Ein- und Mehrdimensionale Arrays Assoziative und nicht Assoziative Arrays Objekte Exception
Rückgabe an com_ajax Rückgabe für alle anderen Formate String, Integer und Floating point Numbers Exception Keine Rückgabe (null) Ausgabe direkt im Modul oder Plugin
Was gibt com_ajax an den Browser zurück? Ausgabe bei fomate=json {"success":true,"message":null,"messages":null,"data":null} success: immer true außer bei Exceptions message: immer null außer bei Exceptions messages: immer null außer wenn get Paramter ignoremessages=false data: enthält die Rückgabe der Methoden
Was gibt com_ajax an den Browser zurück? Ausgabe bei fomate=debug Rückgabe wird mit print_r ausgegeben <pre>stdclass Object ( [property1] => value1 [property2] => value2 ) </pre>
Was gibt com_ajax an den Browser zurück? Ausgabe bei allen anderen Formaten Rückgabe wird zu einem String <p>hallo Welt!<p>
AJAX Demo mit Joomla! AJAX Implementierung mit Joomla!
AJAX Demo mit Joomla! Webseite https://joomla.posit.at Direktlink zur Demo Seite cdn.posit.at/92bb Direktlink zu mehr Infos & Downloads cdn.posit.at/c5fb
Fragen und Antworten AJAX Implementierung mit Joomla!
Joomla Day Austria 2015 Danke an unsere Sponsoren