Usar variables de URL en la paginación de las Vistas en CakePHP

En CakePHP, paginar u ordenar un listado en una vista son acciones que vienen ya hechas con el Helper Pagination y la generación desde consola de CRUD.

Pero hay veces que se nos puede quedar corta cuando estamos usando variables en la URL para filtrar los resultados del listado, ya que al usar la paginación u ordenación por defecto, veremos que esas variables desaparecen y nuestro listado deja de funcionar como desearíamos.

Para solucionar eso, no hay más que poner en nuestra vista:

$paginator->options(array('url' => $this->passedArgs));

Más en la documentación oficial sobre paginación en vistas.

Tags: ,

Paginación númerica parcial en CakePHP

La paginación en CakePHP tiene una serie de helpers que hacen muy fácil su uso. Mediante los métodos del helper pagination, prev y next avanzamos o retrocedemos páginas y con el método numbers, nos apareceran números para ir directamente a las páginas que deseemos y avanzar o retroceder más rápido.

Sucede el caso que tengamos un listado muy largo donde la cantidad de números que pueden aparecersean excesivos. Para que sólo nos muestre cierta cantidad de números (al estilo de la paginación de resultados de Google) y que vayan cambiando según nos acercamos al final o al principio, tenemos un parámetro para el método numbers que se llama, modulus.

No hay mejor ejemplo que probarlo uno mismo y más que leerse la documentación (que en este caso es nula) mirarse la API en cuestión.

Tags: ,

Paginación numérica en una lista con CakePHP

Por defecto la páginacció numérica en CakePHP muestra una serie de elementos span con enlaces a cada una de las páginas de un listado.

Si queremos un HTML más semántico y mejor estructurado, es necesario que en vez de mostrar elementos span tengamos elementos de lista, li.

Pese que tras un primer vistazo a la documentación, parece que no es posible, mirando la API, descubro que mediante las opciones que se pasan al método numbers(), es posible especificar que elemento se mostrará antes y después de cada enlace numérico.

$this->numbers( array('tag'=>'li') );

Tags: , ,