lunes, 10 de junio de 2013

Para los que necesitamos de un Grid PHP

Jeje... ya me había tardado en escribir algo por acá, así que al grano.

En un proyecto personal me ví en la necesidad de mostrar datos obtenidos desde mysql, pero me dió flojera hacer una clase o algo para construir un grid, así que me puse a buscar en san Google, y encontré varias opciones.

Lo que me interesaba era un grid en php, y encontré dos buenos candidatos:

phpGrid: http://phpgrid.com/ (al cual llamaré de ahora en adelante GRID 1).
PHP GRID CONTROL: http://www.phpgrid.org/ (al cual llamaré de ahora en adelante GRID 2).

Ambos tienen buenas opciones, y las versiones pagadas se ven mejores, aunque las gratuitas son suficientes para mis propósitos.

No utilizaré este post para enseñar cómo probarlos o utilizarlos, porque eso se explica en sus correspondientes páginas; simplemente me limitaré a hablar de mi experiencia al implementarlos.

Los probé en una página creada a partir de una plantilla web (ojo con esto).

El GRID 1 no me dió ningún problema al utilizarlo, pero no me gustó el mensaje de "Usted está utilizando la versión gratuita, etc. etc. etc. " así que probé con el GRID 2.

Con el GRID 2 el inconveniente que surgió fué que no aparecía el grid (nada, absolutamente nada); sin embargo, observé que sí se generaba el código fuente para desplegar al grid.

Después de darle algunas vueltas al asunto y googlear un poco, observé bien el código de salida del grid, y encontré que lo que hace es generar las instrucciones para mostrar el grid en la famosa función de JQuery "$(document).ready" (ya que el grid se genera por medio de una clase de php que utiliza JQGrid, el cual es un api javascript para trabajar con grids); encontré que la plantilla también definía esa misma función (2 veces) y me imaginé que había un conflicto entre ellas, así que borré la de la plantilla y... ¡Voila! El grid funcionó sin problemas.

También hay que tomar en cuenta que la plantilla que usé y el PHPGrid utilizan JQuery (por si no se lo habían imaginado antes, jeje), por lo que ambos traen consigo una versión del JQuery; con esta cuestión recomiendo utilizar solo la versión más actualizada, que en mi caso, fué la de la plantilla.

¿Que aprendí? que pueden haber elementos que causen conflictos entre sí cuando se utilizan varios componentes de distintos autores; lo importante es ver qué librerías se utilizan en común para poder descartar o solucionar esos conflictos.

Dejo abiertos los comentarios para aquellos que prueben la herramienta, en el caso de que encuentren un problema y logren solucionarlo, para que nos cuenten cómo lo han hecho, y mantener un registro para todos aquellos que puedan tener algunos problemas implementando estos mismos componentes.

Espero que esta información sirva de algo a alguien, saludos y hasta la próxima.