Usar la interfaz Ajax de Joomla

From Joomla! Documentation

This page is a translated version of the page Using Joomla Ajax Interface and the translation is 100% complete.
Joomla! 
≥ 3.2
versiones

¿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 defecto get 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ámetro group 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 JSON
  • debug para salida de los resultados legible para los humanos.