Paginador con drupal 7

RC Rodrigo Cubillos Rodrigo Cubillos

Rodrigo Cubillos

Software Engineer
1 min read.

El uso de listas es muy común en los desarrollos Web y en ocasiones estas pueden llegar a tener muchos elementos.  Una solución simple es la implementación de un paginador. Este podría ser del lado del Cliente (javascritpt) o del lado de Servidor, en este caso a través del motor de Base de Datos y la ayuda de algunas funciones que nos ofrece Drupal 7 para este propósito.

Si nuestro listado es muy extenso (mas de 100 filas) o se espera que crezca demasiado, lo mejor es realizar la paginación del lado del Servidor.  Lo primero que debemos realizar es una simple consulta que nos ayude a obtener los datos y una forma de mostrarlo es a través de otra funcionalidad que ofrece drupal que es el uso de la función theme_table().  Para poder visualizar mejor este ejemplo vamos a realizar un listado que nos muestre los nodos asociados a un tipo de contenido, como se muestra a continuación:


https://gist.github.com/337899... La función anterior nos trae los nodos que necesitamos en grupos de 10 por página.  Es muy aconsejable el uso de variables de sesión para poder modificar en un momento determinado la cantidad de paginas que deseamos mostrar en cada consulta con una vista sencilla de una página de administración sin necesidad de modificar el código.  Quedaría así:


https://gist.github.com/337900... Luego de tener nuestra consulta lista debemos mostrar los datos de forma organizada.  En este caso lo que vamos a utilizar es el theme_table() (en la próxima entrada de blog detallaremos más esta funcionalidad) y realizaremos algunos ajustes a nuestra función:


https://gist.github.com/337901... Después de hacer este llamado, deberíamos poder ver la siguiente tabla:

theme_table

Pero como podemos ver, aún no está el paginador, por lo cual debemos invocar la función theme(), que es la que nos muestra la paginación.  Debemos pasar como parametro el "Hook pager" (theme_pager()), y opcional un arreglo con parámetros que deseamos configurar. Finalmente nuestra función quedaría de la siguiente manera:

y" class="redactor-autoparser-object">https://gist.github.com/350476... nos generaría el siguiente listado:



 

De esta forma tenemos de manera rápida y fácil un listado páginado el cual podemos parametrizar y personalizar.

 


Written by Rodrigo Cubillos

RC Rodrigo Cubillos Rodrigo Cubillos

Rodrigo develops and optimizes software solutions, focusing on functionality and user experience. His expertise in coding and problem-solving ensures the creation of efficient and reliable applications.

Newsletter

Subscribe to our newsletter:

Read more

Imagen gris con CSS

Lograr que una imagen sea gris o de color cuando se pasa el mouse por encima de ella es realmente sencillo en un navegador co...

1 min read.

Build Once. Own Forever.