Klasa Pagination
Klasa Pagination jest bardzo łatwa w użyciu i w 100% konfigurowalna, zarówno dynamicznie jak i poprzez zapisane preferencje.
Jeśli nie jesteś zaznajomiony z terminem "stronicowania", to odnosi się on do linków, które pozwalają na nawigowanie od strony do strony, jak tutaj:
« First < 1 2 3 4 5 > Last »
Przykład
Oto przykład, w jaki sposób utworzyć stronicowanie w jednej z metod Twojego kontrolera:
$this->load->library('pagination');
$config['base_url'] = 'http://example.com/index.php/test/page/';
$config['total_rows'] = 200;
$config['per_page'] = 20;
$this->pagination->initialize($config);
echo $this->pagination->create_links();
Uwagi:
Tablica $config zawiera Twoje wartości konfiguracyjne. Są one przypisywane do funkcji $this->pagination->initialize jak przedstawiono powyżej. Minimalnie musisz użyć trzech zmiennych. Oto co one sobą reprezentują:
- base_url Jest to pełny adres URL do klasy kontrolera/funkcji zawierającej twoje "stronicowanie". W powyższym przykładzie zmienna kieruje do kontrolera o nazwie "Test" i funkcji o nazwie "page". Pamiętaj, że możesz skorzystać z routowania adresów URL, jeśli chcesz otrzymać inną strukturę linków.
- total_rows Ta liczba reprezentuje liczbę wszystkich rekordów dla której tworzone jest stronicowanie. Zazwyczaj będzie to liczba wszystkich rekordów jaką zwraca zapytanie do bazy danych.
- per_page Liczba elementów jaką chcesz pokazać na jednej stronie. W powyższym przykładzie pokazywane będzie 20 rekordów na stronę.
Funkcja create_links() zwraca pusty ciąg, jeśli nie ma żadnych stron do pokazania.
Ustawianie preferencji za pomocą pliku konfiguracyjnego
Jeśli nie chcesz ustawiać preferencji za pomocą powyższej metody, możesz je umieścić w pliku konfiguracyjnym. Wystarczy, że utworzysz plik o nazwie pagination.php z tablicą $config w środku i zapiszesz go w config/pagination.php, a zostanie on użyty automatycznie. Jeśli Twoje ustawienia preferencji znajdują się w pliku konfiguracyjnym, NIE będziesz musiał korzystać z funkcji $this->pagination->initialize().
Dostosowywanie "stronicowania"
Oto lista wszystkich preferencji jakie można przypisać do funkcji inijalizacji aby dostosować wygląd "stronicowania".
$config['uri_segment'] = 3;
Funkcja "stronicowania" automatycznie określa, który segment adresu URL zawiera numer strony. Jeśli chcesz, możesz określić inną wartość.
$config['num_links'] = 2;
Określa liczbę linków, która ma zostać wyświetlona przed i po wybranym numerze strony. Dla przykładu, liczna 2 umieści dwa linki po obu stronach, tak jak w przykładzie na samej górze tej strony.
$config['page_query_string'] = TRUE
Domyślnie, biblioteka Pagination zakłada, że używasz segmentów URI i budujesz swoje linki w sposób podobny do tego
http://example.com/index.php/test/page/20
Jeśli zmienną $config['enable_query_strings'] masz ustawioną na wartość TRUE, Twoje linki zostaną automatycznie przepisane za pomocą Query Strings. Ta opcja może zostać ustawiona również wprost. Gdy zmienna $config['page_query_string'] jest ustawiona na wartość TRUE, linki "stronicowania" będą miały postać
http://example.com/index.php?c=test&m=page&per_page=20
Zauważ że do zmiennej "per_page" domyślnie przypisywany jest ciąg query, może to zostać zmienione poprzez ustawienie zmiennej $config['query_string_segment'] = 'your_string'
Dodawanie znaczników
Jeśli chciałbyś otoczyć całe "stronicowanie" jakimś znacznikiem, możesz to zrobić za pomocą tych dwóch preferencji:
$config['full_tag_open'] = '<p>';
Tag otwierający lewą stronę znacznika.
$config['full_tag_close'] = '</p>';
Tag zamykający prawą stronę znacznika.
Dostosowywanie linku "pierwszy"
$config['first_link'] = 'First';
Tekst, który chciałbyś umieścić w linku "pierwszy". Jeśli nie chcesz żeby ten link był generowany ustaw wartość FALSE.
$config['first_tag_open'] = '<div>';
Tag otwierający dla linku "pierwszy".
$config['first_tag_close'] = '</div>';
Tag zamykający dla linku "pierwszy".
Dostosowywanie linku "ostatni"
$config['last_link'] = 'Last';
Tekst, który chciałbyś umieścić w linku "ostatni". Jeśli nie chcesz żeby ten link był generowany ustaw wartość FALSE.
$config['last_tag_open'] = '<div>';
Tag otwierający dla linku "ostatni".
$config['last_tag_close'] = '</div>';
Tag zamykający dla linku "ostatni".
Dostosowywanie linku "następny"
$config['next_link'] = '>';
Tekst, który chciałbyś umieścić w linku "następny". Jeśli nie chcesz żeby ten link był generowany ustaw wartość FALSE.
$config['next_tag_open'] = '<div>';
Tag otwierający dla linku "następny".
$config['next_tag_close'] = '</div>';
Tag zamykający dla linku "następny".
Dostosowywanie linku "poprzedni"
$config['prev_link'] = '<';
Tekst, który chciałbyś umieścić w linku "poprzedni". Jeśli nie chcesz żeby ten link był generowany ustaw wartość FALSE.
$config['prev_tag_open'] = '<div>';
Tag otwierający dla linku "poprzedni".
$config['prev_tag_close'] = '</div>';
Tag zamykający dla linku "poprzedni".
Dostosowywanie linku "obecnej strony"
$config['cur_tag_open'] = '<b>';
Tag otwierający dla linku "obecnej strony".
$config['cur_tag_close'] = '</b>';
Tag zamykający dla linku "obecnej strony".
Dostosowywanie linków zawierających numery stron
$config['num_tag_open'] = '<div>';
Tag otwierający dla linku z numerem strony.
$config['num_tag_close'] = '</div>';
Tag zamykający dla linku z numerem strony
Ukrywanie stron
Jeśli nie chcesz wyświetlać linków dla stron (np. chcesz tylko linki "poprzedni" i "następny"), możesz je wyeliminować poprzez dodanie:
$config['display_pages'] = FALSE;
Dodawanie nazwy klasy do każdego linku
Jeśli chesz dodać atrybut klasy do każdego linku w klasie Pagination, możesz ustawić zmienną config "anchor_class" na taką nazwę klasy, na jaką chcesz.