Utiliser l'interface Ajax de Joomla!
From Joomla! Documentation
Qu'est-ce que l'interface Ajax de Joomla! (com_ajax) ?
C'est un composant léger et extensible qui agit comme un point d'entrée pour les requêtes HTTP pour les modules autonomes et les plug-ins, permettant ainsi de bénéficier du potentiel des fonctionnalités Ajax. Com_ajax est généralement utilisé lorsque vous n'êtes pas le développeur du composant en interaction avec le module ou plug-in utilisé.
NOTE : si vous êtes développeur de composants, il ne vous est pas nécessaire d'utiliser com_ajax afin d'y implémenter les fonctionnalités Ajax. Vous pouvez le faire directement dans votre composant.
Les exemples de cas d'utilisation incluent, (liste non exhaustive) :
- un module qui récupère des données à partir d'une API externe,
- un module qui interagit avec un composant que vous n'avez pas développé vous-même,
- un plugin qui implémente l'API comme des fonctionnalités permettant l'utilisation de données à partir de votre site.
Anatomie d'une requête Ajax
Requis
option=com_ajax
[module|plugin]=name
format=[json|debug|raw]
Optionnel
method=[custom fragment]
par défaut,get
si omis.
Vue d'ensemble
Toutes les requêtes commencent par ?option=com_ajax
, ce qui appelle cette extension, et doit indiquer le type de l'extension à appeler, ainsi que le format des données à retourner.
Les autres variables et valeurs utilisées par votre extension peuvent également être incluses dans l'URL.
Par exemple, la requête ?option=com_ajax&module=session
va appeler mod_session
avec les résultats retournés dans le format par défaut. En revanche,?option=com_ajax&plugin=session&format=json
déclenchera le groupe de plug-in onAjaxSession
avec les résultats retournés en JSON.
Module de support
Résumé
Le support de module est déclenché par l'appel d'une méthode dans le fichier helper.php
du module.
Détails
La requête de module doit inclure la variable module
dans l'URL, de paire avec le nom du module (ex : module=session
pour mod_session
).
Cette valeur est également utilisée pour :
- Le nom du répertoire à vérifier pour le fichier helper, par exemple :
/modules/mod_session/helper.php
- Le nom de la classe à appeler, par exemple :
modSessionHelper
En option, la variable method
peut être intégrée pour remplacer le préfixe de la méthode par défaut get
.
- NOTE : toutes les méthodes doivent se terminer par
Ajax
. Par exemple : method=mySuperAwesomeMethodToTrigger
appelleramySuperAwesomeMethodToTriggerAjax
Le Module de Session Ajax est un module d'exemple qui illustre cette fonctionnalité.
Plug-in de réponse
Résumé
Le support de plug-in est réalisé par le déclenchement de l'événement de plug-in onAjax[Nom]
.
Détails
Les requêtes plug-in doivent inclure la variable plugin
dans l'URL, de paire avec le nom de l'événement du plug-in, comme par exemple, plugin=session
pour onAjaxSession
.
Cette valeur est également utilisée pour :
- Le nom de la classe de plug-in par convention
plgAjax[Nom]
. - Le nom de la fonction de plug-in par convention
onAjax[Nom]
. - Le groupe de plugin par défaut est
ajax
. Vous pouvez le modifier en utilisant le paramètregroup
. (Depuis Joomla! 3.4)
Le plug-in Ajax Latest Articles est un exemple de plug-in qui illustre cette fonctionnalité.
Format de réponse
format=[json|debug]
est un argument optionnel pour le format des résultats :
json
pour un format JSONdebug
pour un rendu de sortie des résultats lisible par l'homme.