Usar la interfaz Ajax de Joomla
From Joomla! Documentation
¿Qué es la Interfaz Ajax de Joomla? (com_ajax)
Es un componente liviano y extensible diseñado para actuar como un punto de entrada a las peticiones HTTP para módulos y plugins independientes, lo que les permite utilizar el potencial de la funcionalidad Ajax. Generalmente se utiliza com_ajax cuando no se es el desarrollador del componente con el que el módulo o plugin está interactuando.
NOTA: Si es un desarrollador de componentes, no necesita usar com_ajax para implementar la funcionalidad Ajax en sus extensiones. Puede hacerlo directamente.
Ejemplos de lo que incluyen los casos de uso, pero que no se limitan a:
- Un módulo que recupera los datos de una API externa
- Un módulo que interactúa con un componente que no se desarrolló
- Un plugin que implementa una API como funcionalidad para permitir la utilización de datos de un sitio web
Anatomía de una petición Ajax
Requerido
option=com_ajax
[module|plugin]=name
format=[json|debug|raw]
Opcional
method=[custom fragment]
por defectoget
si se omite.
Vista general
Todas las peticiones comienzan con ?option=com_ajax
, que llama a esta extensión, y debe indicar el tipo de extensión a llamar y el formato de los datos a ser devueltos.
Las variables adicionales y los valores utilizados por la extensión también pueden incluirse en la URL.
Por ejemplo, una petición a ?option=com_ajax&module=session
llamaría a mod_session
devolviendo los resultados en el formato predeterminado. Por contra, ?option=com_ajax&plugin=session&format=json
dispararía el grupo de plugins onAjaxSession
, devolviendo los resultados en JSON.
Soporte para módulos
Resumen
Módulo de ayuda se consigue llamando a un método en los archivos del módulo helper.php
.
Detalles
Las solicitudes de plugin deben incluir la variable plugin
en la URL, junto con el nombre del evento de plugin, por ejemplo, plugin=session
para onAjaxSession
.
Este valor se utiliza también para:
- El nombre del directorio para comprobar si el archivo de ayuda, por ejemplo,
/modules/mod_session/helper.php
- El nombre de la clase a llamar, por ejemplo
modSessionHelper
Opcionalmente el method
variable puede incluirse para reemplazar el método por defecto con el prefijo get
.
- "'NOTA"': Todos los métodos deben terminar en
Ajax
. Por ejemplo: method=mySuperAwesomeMethodToTrigger
se llamarámySuperAwesomeMethodToTriggerAjax
El Ajax Session Module es un módulo de ejemplo que demuestra esta funcionalidad.
Respuesta del plugin
Resumen
El soporte para plugin se realiza mediante la activación de la etiqueta onAjax[Name]
evento de plugin.
Detalles
Las solicitudes de plugin deben incluir la variable plugin
en la URL, junto con el nombre del evento de plugin, por ejemplo, plugin=session
para onAjaxSession
.
Este valor también se utiliza para:
- El nombre de clase del plugin siguiendo la convención
plgAjax[Nombre]
. - El nombre de la función del plugin siguiendo la convención
onAjax[Nombre]
. - El grupo de plugin por defecto es
ajax
. Puedes cambiarlo especificando el parámetrogroup
de la petición. (Desde Joomla! 3.4)
El Ajax Latest Articles plugin es un ejemplo de plugin que demuestra esta funcionalidad.
Formato de la respuesta
format=[json|debug]
es un argumento opcional para el formato de resultados:
json
para formato JSONdebug
para salida de los resultados legible para los humanos.