viernes, 23 de marzo de 2012

implementar xajax en modulos de Joomla

Buenas tardes, estos meses estuve a full, pero bueno trataré de compartir más fix.

En esta oportunidad publico sobre una forma de implementar la librería xajax en un modulo de Joomla.

Primero tenemos que tener nuestro modulo de Joomla desarrollado, no voy a entrar en detalles de ello, por que es otro tema, pero desarrollar un modulo en Joomla es relativamente sencillo.

A veces nos piden hacer ciertas tareas en un determinado modulo de Joomla que normalmente se desarrollan con ajax para facilitarnos la vida existe xajax, pero que sucede un modulo de Joomla no se comporta como un componente de Joomla no trabaja con el modelo MVC, asi que es un poco diferente, los modulo de Joomla trabajan con clases abstractas, existen formas de trabajarlo como MVC, pero mayormente encontraremos que no es así y nos piden "right now" resolver el problema.

Nos descargamos la librería XAJAX: http://xajaxproject.org/en/download/

Paso 1: Ubicamos la libreria y lo guardamos en la carpeta "libraries" en la raiz de Joomla.





Paso2: Ubicamos el modulo que deseamos implementar el xajax  a continuación muestro la estructura de un modulo cualquiera que encontré. Solo trabajaremos en el layout  "default.php", si el modulo es trabajado en MVC otra forma sería la configuración. Entonces abrimos el archivo seleccionado a continuación.



Paso 3: Como sabrán el "default.php" normalmente es solo código PHP con algunos PHP's para iterarlos, pero basicamente HTML, así que en esta parte agregamos las siguientes lineas. Donde se ubicarán en la parte superior del archivo.



descripción:
- Las 5 primeras lineas de código  es el requerimiento de la librería, de ahí está la instancia a la clase xajax, la tercera linea es para configurar si queremos que esté en modo de debug (esto hará que salte un pop-up cada vez que se ejecute un método xajax), la sigueinte linea, atención a esto es muy importante aquí es donde se registra los metodos que utilizaras en el HTML debajo, noten que tengo comentado otro tipo de register eso es para cuando trabajemos con el modelo mvc donde nuestra vista sea una clase y no un simple HTML como este, y el último generar todo los metodos registrados al iniciar.

Al final hay un código: $xajax->printJavascript('libraries/xajax/'); esto sirve para mostrar tos javascripts en la vista que se generará.

Observamos el Metodo prueba() y observen que está registrado en la 4ta linea del código.
Lo que tenemos en el método prueba es básicamente lo que tendrán todos los métodos de trabajaremos con xajax
- Una instancia al response, y  este objeto response tiene muchos métodos que trabajarías con JS, en este caso solo usaré un alert xD

y al final retornamos el objResponse.

La llamada a este método dentro del HTML sería:




Siempre prefijado con xajax_mifuncion()

En el evento click este busca a la función JS generada y te salta un alert





Bueno espero que les sirva este pequeño fix.








No hay comentarios:

Publicar un comentario