jueves, 7 de junio de 2007

¿Una forma de pasar información de paginación?

Acabo de probar una forma de pasar información de paginación desde una vista de resultados paginada a través de las sesión, para poder crear URL de regreso adecuadas en las vistas de edición o detalle de los modelos, a fin de que el usuario pueda volver a la página correcta y no se pierda por el camino, el pobre.

De momento, es simple de más, pero el esquema viene siendo el siguiente:
  • En el controlador añadir Session al array de components y al de Helpers.
  • En el controlador, capturar la información de página que debería venir en $this->params['pass']['page'] y guardar en la sesión, por ejemplo, con $this->session->write ('pagina', $this->params['pass']['page'])
  • En la vista, leer el valor 'pagina' de la sesión y usarlo para construir la url de regreso. Por ejemplo: array ('action' => 'index', 'page' => $session->read ('pagina')).
Posibles fallos: hay que controlar que se guarde la variable de modo que pueda identificar qué controlador la ha guardado, así, podría llevar la pista de diferentes paginaciones.

También habría que poder usar el valor de la sesión si no se ha proporcionado otro por la URL en las vistas de index, aunque esto ya no lo tengo tan claro como hacerlo.

Otra cosa chula sería calcular en qué página tendría que verse un registro concreto, por ejemplo uno recién añadido, sobre todo si el nuevo registro provoca que se añada una página.

Luego lo pienso.

No hay comentarios: