Clase Paginación
La Clase Paginación de CodeIgniter es muy fácil de usar, y es 100% personalizable, ya sea dinámicamente o a través de las preferencias almacenadas.
Si no está familiarizado con el término "paginación", se refiere a los vínculos que le permite navegar de una página a otra, como este:
« First < 1 2 3 4 5 > Last »
Ejemplo
Este es un ejemplo sencillo que muestra cómo crear una de paginación en sus funciones del controller:
$this->load->library('pagination');
$config['base_url'] = 'http://www.your-site.com/index.php/test/page/';
$config['total_rows'] = '200';
$config['per_page'] = '20';
$this->pagination->initialize($config);
echo $this->pagination->create_links();
Notas:
El arreglo $config contiene sus variables de configuración. estas son pasadas a la función $this->pagination->initialize como se muestra arriba. A pesar de que hay una veintena de items que usted puede configurar, el mínimo que necesita son los tres mostrados. Aquí hay una descripción de lo que representan esos items:
- base_url Esta es la URL completa a la clase/función del controlador que contiene su número de páginas. En el ejemplo anterior, ésta apunta a un controlador denominado "Test" y a una función llamada "page". Tenga en cuenta que Ud. puede modificar el trazado de su URI si necesita una estructura diferente.
- total_rows Este número representa la cantidad total de filas en el conjunto de resultados que está creando para el número de páginas. Normalmente, este será el número total de filas que retorno su consulta a la base de datos.
- per_page El número de elementos que tiene intención de mostrar por página. En el ejemplo anterior, Ud. desea mostrar 20 elementos por página.
The create_links() función que retorna un arreglor vacío cuando no hay paginación para mostrar.
Establecer preferencias en un archivo de configuración
Si prefiere no definir las preferencias utilizando el método anterior, puede ponerlas en un archivo de configuración. Basta con crear un nuevo archivo llamado pagination.php, y agregar el arreglo $config en ese archivo. A continuación guarde el archivo en: config/pagination.php y será utilizado automáticamente. Ud. No necesita usar la función $this->pagination->initialize si guarda sus preferencias en un archivo de configuración.
Personalizando la Paginación
La siguiente es una lista de todas las preferencias que se pueden pasar a la función de inicialización para ajustar la pantalla.
$config['uri_segment'] = 3;
La función determina automáticamente cual segmento de su URI contiene el número de página. Si usted necesita algo diferente se puede especificar.
$config['num_links'] = 2;
El número de links en "digitos" que Ud. desea antes y después del número de página seleccionado. Por ejemplo, el número 2 indica que habrá dos dígitos en ambos lados, como en el ejemplo de enlaces en la parte superior de esta página.
Agregando Marcas de Cierre
Si desea rodear toda la paginación con algunas marcas lo puede hacer con estas dos preferencias:
$config['full_tag_open'] = '<p>';
La etiqueta de apertura situada en la parte izquierda de todo el resultado.
$config['full_tag_close'] = '</p>';
La etiqueta de cierre situada en la parte derecha de todo el resultado.
Personalizando el enlace "Primero"
$config['first_link'] = 'First';
El texto que le gustaría que se muestre en el "primer" enlace de la izquierda.
$config['first_tag_open'] = '<div>';
La etiqueta de apertura para el enlace "first".
$config['first_tag_close'] = '</div>';
La etiqueta de cierre para el enlace "first".
Personalizando el enlace "Último"
$config['last_link'] = 'Last';
El texto que le gustaría que se muestre en el "último" enlace de la derecha.
$config['last_tag_open'] = '<div>';
La etiqueta de apertura para el enlace "last".
$config['last_tag_close'] = '</div>';
La etiqueta de cierre para el enlace "last".
Personalizando el enlace "Siguiente"
$config['next_link'] = '>';
El texto que le gustaría que se muestre en el enlace de página "siguiente".
$config['next_tag_open'] = '<div>';
La etiqueta de apertura para el enlace "next".
$config['next_tag_close'] = '</div>';
La etiqueta de cierre para el enlace "next".
Personalizando el enlace "Anterior"
$config['prev_link'] = '<';
El texto que le gustaría que se muestre en el enlace de página "anterior".
$config['prev_tag_open'] = '<div>';
La etiqueta de apertura para el enlace "previous".
$config['prev_tag_close'] = '</div>';
La etiqueta de cierre para el enlace "previous".
Personalizando el enlace "Página Actual"
$config['cur_tag_open'] = '<b>';
La etiqueta de apertura para el enlace "current".
$config['cur_tag_close'] = '</b>';
La etiqueta de cierre para el enlace "current".
Personalizando el enlace "Dígito"
$config['num_tag_open'] = '<div>';
La etiqueta de apertura para el enlace "digit".
$config['num_tag_close'] = '</div>';
La etiqueta de cierre para el enlace "digit".