Datagrid Gecko Toolbox

Por zsamer en Julio 27, 2008

He tenido la excelente noticia de nuestro distinguido Colega y Moderador de Foros del Web de PHP Christopher Valderrama (GatorV), quien ha liberado su Framework llamado GeckoToolbox que está basado sobre Zend Framework.

He estado analizando y estudiando su Framework y he querido destacar una notable herramiente que sin duda agiliza bastante el desarrollo web (RAD), se trata del componente Datagrid.

Instalación

Descargar el framework GeckoToolbox mediante SVN, más detalle ver enlace.

Una ves que hayan hecho checkout y tengan una copia del repositorio deben copiar GeckoToolbox, carpeta Gecko dentro de la carpeta library de nuestro proyecto (donde mismo está Zend Framework).

Además se debe editar Gecko/Router.php y modificar el paths en las 2 constantes (contants), el segundo corresponde al path físico hacia la library, y el primero es el path para los Assets, las carpetas Assets deben ser accesibles/legibles mediante web ya que estos contienen los archivos JS e imágenes.

Más detalle de instalación.

Ejemplo de uso

Algúna acción con algún modelo:

PHP:
  1. public function listAction()
  2.     {
  3.         $model = new Gecko_DataSource_Table_DBTable(new CommentsTable, array());
  4.        
  5.         Gecko_URL::setDefaultURLEngine(new Gecko_URL_Engine_Zend());
  6.  
  7.         $grid = new Gecko_DataGrid("comments", $model, $settings);
  8.         $formatter = $grid->getFormatter();
  9.         $colNames = array(
  10.                 "comment_id" => "ID",
  11.                 "comments" => "Comments"
  12.         );
  13.        
  14.         $formatter->setColumnNames($colNames);
  15.         $urlRenderer = new Gecko_DataGrid_CellRenderer_URL($this->view->baseUrl . "/blog/comment/view/?id=%VALUE%", "comment_id");
  16.         $formatter->addCellRenderer("comment_id", $urlRenderer);
  17.  
  18.         $grid->buildTable();
  19.        
  20.         $this->view->grid = $grid;
  21.     }

Se puede apreciar lo simple que es tratar con DataGrid con esta potente herramienta. Primero se crea la instancia de nuestro objeto Data Source del tipo DBTable (de Zend), al cual le pasamos al constructor nuestro objeto Modelo (Zend_Db_Table_Abstract).

Luego es notable darse cuenta como se configura la URL, mediante setDefaultURLEngine, la cual le entregamos por defecto un objeto que hace una implementación de Url de Zend Framework, es muy importante este paso ya que nos entrega las url correctas a la hora de paginar y ordenar por columnas en nuestro DataGrid.

Gecko DataGrid hace un muy buen uso de patrones de diseño y interfaces muy bien definidas y utilizadas, lo que hace una elegante implementación y sencilla de usar.

Veamos ahora nuestra vista:

PHP:
  1. <h3><?php echo $this->title; ?></h3>
  2. <?php echo $this->grid->getNavMsg(); ?>
  3. <?php echo $this->grid; ?>
  4. <?php echo $this->grid->getNavLinks(); ?>

Muy simple, ¿no?, bueno aquí primero nos entrega los mensajes del estilo: "Mostrando 1 de 5 páginas".
Luego nos imprime/render el Datagrid mediante (__toString()) .
Por último no entrega el paginador.

Estupendo, que más podríamos querer, para más detalle y uso como por ejemplo decoradores para estilos etc... vean el sitio oficial de GeckoToolbox.

Cualquier dudad, preguntas o sugerencias dirigirse al propio autor en la wiki, hay una sección de comentarios.

Comentarios

6 Responses to “Datagrid Gecko Toolbox”

  1. Enrique Place on Julio 28th, 2008 2:48 am

    Estimado, bienvenidos los post sobre Gecko ;-)

    Estaba probando tu ejemplo, pero me dice que el método Gecko_URL::setdefaulturlengine() no existe… ?

  2. Christopher Valderrama on Julio 28th, 2008 5:11 am

    Pequeño error creo en el update del repositorio, pero ya esta solucionado.

    Gracias por tomarte el tiempo de escribir esto, espero les sirva a muchos para usar el componente Grid.

  3. zsamer on Julio 28th, 2008 1:31 pm

    Gracias a ti Christopher por compartir tu Framework.

  4. Enrique Place on Julio 31st, 2008 2:39 pm

    Gracias a ambos por ser como son y gracias a mi por leerlos a ustedes

    Gracias, “gracias totales”.

    ;-)

  5. zsamer on Julio 31st, 2008 4:24 pm

    ;-)

  6. Aleck on Noviembre 7th, 2008 5:16 am

    joder, no se puede acceder dsd cuba… alguna manera de probar el proyecto?
    USA bloquea algunos sitios de internet a la isla.

    salu2

Deja tu comentario




XHTML: puedes usar estas etiquetas: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>