En ocasiones alguna modificación que hagamos puede requerir mostrar una gran cantidad de información en pantalla, que no sería conveniente mostrarla toda de una vez sino organizarla por páginas. Afortunadamente phpBB trae las herramientas adecuadas para construir una paginación muy efectiva con relativamente pocos pasos. En este artículo planeo explicar el uso de las funciones on_page
y generate_pagination
que son precisamente las que crean la paginación, también pondré un ejemplo de una página personalizada para ver las funciones en acción y explicando como construir un sistema de ordenamiento, todos los pasos van a ser explicados en el código.
Comencemos.... Las funciones
Código: Seleccionar todo
generate_pagination($base_url, $num_items, $per_page, $start_item, $add_prevnext_text = false, $tpl_prefix = '')
Argumentos $base_url (cadena)
La url de la página a la que enlaza la paginación, normalmente es la misma página activa. Se le debe haber pasado la función append_sid
$num_items (entero)
El total de elementos que se mostrarán.
$per_page (entero)
La cantidad de elementos que se mostrarán por página.
$start_item (entero)
El elemento desde donde se comienza a contar para mostrar
$add_prevnext_text (booleano)
Por defecto false, si es true muestra también dos botones para pasar a las páginas anterior y siguiente (siempre que no se esté en la primera o última página respectivamente o que solo sea una página)
$tpl_prefix (cadena)
Por defecto una cadena vacía, es el prefijo que se utilizará en las variables del estilo en caso de que existan mas de una paginación distinta en una página. Normalmente no es necesario utilizarlo.
Devuelve Devuelve una cadena que contiene la paginación para ser asignada a las variables para las plantillas( con $template->assign_vars()
). También crea las siguientes variables para las plantillas que son utilizadas en la función JavaScript jumpto()
(el {PREFIJO} es el que se le pasa a la función como último parámetro): {PREFIJO}BASE_URL
La URL de la páginación, es igual al primer argumento pasado a la función
A_{PREFIJO}BASE_URL
La misma URL anterior pero pasándole la función
addslashes
para se usado en los JavaScript
{PREFIJO}PER_PAGE
El valor del tercer argumento de la función
{PREFIJO}PREVIOUS_PAGE
Un enlace a la página anterior
{PREFIJO}NEXT_PAGE
Un enlace a la página siguiente
{PREFIJO}TOTAL_PAGES
El total de páginas que tiene la paginación
on_page($num_items, $per_page, $start) Argumentos $num_items (entero)
El total de elementos que se mostrarán.
$per_page (entero)
La cantidad de elementos que se mostrarán por página.
$start (entero)
El elemento desde donde se comienza a contar en esa página
Devuelve Devuelve una cadena con un texto indicando la página donde se encuentra y el total de páginas. También crea la siguiente variable para las plantillas utilizada en la función JavaScript jumpto()
ON_PAGE
La página de la paginación en la que se encuentra actualmente
Ejemplo El ejemplo del uso de las funciones se encuentra en el adjunto siguiente, todos los archivos y todos los pasos están comentados. Para verlo funcionando copiar el contenido del adjunto en el índice del foro y luego acceder a el desde la url http://tu_foro/test.php