Link Here
|
|
|
1 |
[%# this is template for generating pagination %] |
2 |
[%# it needed an array named "pagination" with this structure: %] |
3 |
[%# pagination.pages => total number of pages %] |
4 |
[%# pagination.base_url => url with all needed parameters and with parameter specifiyng page at the end %] |
5 |
[%# pagination.current_page => number of current active page %] |
6 |
|
7 |
[% IF pagination && ( pagination.pages > 1 ) %] |
8 |
|
9 |
<nav><ul class="pagination"> |
10 |
[% IF pagination.current_page != 1 %] |
11 |
<li><a href="[% pagination.base_url %][% pagination.current_page - 1 %]">« Previous</a></li> |
12 |
[% END %] |
13 |
|
14 |
[% IF pagination.pages > 8 %] |
15 |
[% start_page = pagination.current_page - 3 %] |
16 |
[% end_page = pagination.current_page + 4 %] |
17 |
[% IF start_page < 1 %] |
18 |
[% start_page = 1 %] |
19 |
[% end_page = 8 %] |
20 |
[% END %] |
21 |
[% IF end_page > pagination.pages %] |
22 |
[% start_page = pagination.pages - 7 %] |
23 |
[% end_page = pagination.pages %] |
24 |
[% END %] |
25 |
[% ELSE %] |
26 |
[% start_page = 1 %] |
27 |
[% end_page = pagination.pages %] |
28 |
[% END %] |
29 |
|
30 |
[% IF start_page > 1 %] |
31 |
<li><a href="[% pagination.base_url %]1">1</a></li> |
32 |
[% IF start_page != 2 %] |
33 |
<li class="disabled"><span>…</span></li> |
34 |
[% END %] |
35 |
[% END %] |
36 |
|
37 |
[% page_number = start_page %] |
38 |
[% WHILE page_number <= end_page %] |
39 |
[% IF page_number == pagination.current_page %] |
40 |
<li class="active"><a href="[% pagination.base_url %][% page_number %]">[% page_number %]</a></li> |
41 |
[% ELSE %] |
42 |
<li><a href="[% pagination.base_url %][% page_number %]">[% page_number %]</a></li> |
43 |
[% END %] |
44 |
[% page_number = page_number + 1 %] |
45 |
[% END %] |
46 |
|
47 |
[% IF end_page < pagination.pages %] |
48 |
[% IF end_page != pagination.pages - 1 %] |
49 |
<li class="disabled"><span>…</span></li> |
50 |
[% END %] |
51 |
<li><a href="[% pagination.base_url %][% pagination.pages %]">[% pagination.pages %]</a></li> |
52 |
[% END %] |
53 |
|
54 |
[% IF pagination.current_page != pagination.pages %] |
55 |
<li><a href="[% pagination.base_url %][% pagination.current_page + 1 %]">Next »</a></li> |
56 |
[% END %] |
57 |
|
58 |
</ul></nav> |
59 |
|
60 |
[% END %] |