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]=nameformat=[json|debug|raw]
Opcional
method=[custom fragment]por defectogetsi 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=mySuperAwesomeMethodToTriggerse 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:
- The plugin class name following the
plgAjax[Name]convention. - The plugin function name following the
onAjax[Name]convention. - The default plugin group is
ajax. You can change it specifying thegrouprequest parameter. (From 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:
jsonpara formato JSONdebugpara salida de los resultados legible para los humanos.