1
|
|
|
<?php defined('SYSPATH') or die('No direct access allowed.'); |
2
|
|
|
/** |
3
|
|
|
* Digg pagination style |
4
|
|
|
* |
5
|
|
|
* @preview « Previous 1 2 … 5 6 7 8 9 10 11 12 13 14 … 25 26 Next » |
6
|
|
|
*/ |
7
|
|
|
?> |
8
|
|
|
|
9
|
|
|
<p class="pagination"> |
10
|
|
|
|
11
|
|
View Code Duplication |
<?php if ($previous_page): ?> |
|
|
|
|
12
|
|
|
<a href="<?php echo str_replace('{page}', $previous_page, $url) ?>">« <?php echo Kohana::lang('pagination.previous') ?></a> |
13
|
|
|
<?php else: ?> |
14
|
|
|
« <?php echo Kohana::lang('pagination.previous') ?> |
15
|
|
|
<?php endif ?> |
16
|
|
|
|
17
|
|
|
|
18
|
|
|
<?php if ($total_pages < 13): /* « Previous 1 2 3 4 5 6 7 8 9 10 11 12 Next » */ ?> |
19
|
|
|
|
20
|
|
View Code Duplication |
<?php for ($i = 1; $i <= $total_pages; $i++): ?> |
|
|
|
|
21
|
|
|
<?php if ($i == $current_page): ?> |
22
|
|
|
<strong><?php echo $i ?></strong> |
23
|
|
|
<?php else: ?> |
24
|
|
|
<a href="<?php echo str_replace('{page}', $i, $url) ?>"><?php echo $i ?></a> |
25
|
|
|
<?php endif ?> |
26
|
|
|
<?php endfor ?> |
27
|
|
|
|
28
|
|
|
<?php elseif ($current_page < 9): /* « Previous 1 2 3 4 5 6 7 8 9 10 … 25 26 Next » */ ?> |
29
|
|
|
|
30
|
|
View Code Duplication |
<?php for ($i = 1; $i <= 10; $i++): ?> |
|
|
|
|
31
|
|
|
<?php if ($i == $current_page): ?> |
32
|
|
|
<strong><?php echo $i ?></strong> |
33
|
|
|
<?php else: ?> |
34
|
|
|
<a href="<?php echo str_replace('{page}', $i, $url) ?>"><?php echo $i ?></a> |
35
|
|
|
<?php endif ?> |
36
|
|
|
<?php endfor ?> |
37
|
|
|
|
38
|
|
|
… |
39
|
|
|
<a href="<?php echo str_replace('{page}', $total_pages - 1, $url) ?>"><?php echo $total_pages - 1 ?></a> |
40
|
|
|
<a href="<?php echo str_replace('{page}', $total_pages, $url) ?>"><?php echo $total_pages ?></a> |
41
|
|
|
|
42
|
|
|
<?php elseif ($current_page > $total_pages - 8): /* « Previous 1 2 … 17 18 19 20 21 22 23 24 25 26 Next » */ ?> |
43
|
|
|
|
44
|
|
|
<a href="<?php echo str_replace('{page}', 1, $url) ?>">1</a> |
45
|
|
|
<a href="<?php echo str_replace('{page}', 2, $url) ?>">2</a> |
46
|
|
|
… |
47
|
|
|
|
48
|
|
View Code Duplication |
<?php for ($i = $total_pages - 9; $i <= $total_pages; $i++): ?> |
|
|
|
|
49
|
|
|
<?php if ($i == $current_page): ?> |
50
|
|
|
<strong><?php echo $i ?></strong> |
51
|
|
|
<?php else: ?> |
52
|
|
|
<a href="<?php echo str_replace('{page}', $i, $url) ?>"><?php echo $i ?></a> |
53
|
|
|
<?php endif ?> |
54
|
|
|
<?php endfor ?> |
55
|
|
|
|
56
|
|
|
<?php else: /* « Previous 1 2 … 5 6 7 8 9 10 11 12 13 14 … 25 26 Next » */ ?> |
57
|
|
|
|
58
|
|
|
<a href="<?php echo str_replace('{page}', 1, $url) ?>">1</a> |
59
|
|
|
<a href="<?php echo str_replace('{page}', 2, $url) ?>">2</a> |
60
|
|
|
… |
61
|
|
|
|
62
|
|
View Code Duplication |
<?php for ($i = $current_page - 5; $i <= $current_page + 5; $i++): ?> |
|
|
|
|
63
|
|
|
<?php if ($i == $current_page): ?> |
64
|
|
|
<strong><?php echo $i ?></strong> |
65
|
|
|
<?php else: ?> |
66
|
|
|
<a href="<?php echo str_replace('{page}', $i, $url) ?>"><?php echo $i ?></a> |
67
|
|
|
<?php endif ?> |
68
|
|
|
<?php endfor ?> |
69
|
|
|
|
70
|
|
|
… |
71
|
|
|
<a href="<?php echo str_replace('{page}', $total_pages - 1, $url) ?>"><?php echo $total_pages - 1 ?></a> |
72
|
|
|
<a href="<?php echo str_replace('{page}', $total_pages, $url) ?>"><?php echo $total_pages ?></a> |
73
|
|
|
|
74
|
|
|
<?php endif ?> |
75
|
|
|
|
76
|
|
|
|
77
|
|
View Code Duplication |
<?php if ($next_page): ?> |
|
|
|
|
78
|
|
|
<a href="<?php echo str_replace('{page}', $next_page, $url) ?>"><?php echo Kohana::lang('pagination.next') ?> »</a> |
79
|
|
|
<?php else: ?> |
80
|
|
|
<?php echo Kohana::lang('pagination.next') ?> » |
81
|
|
|
<?php endif ?> |
82
|
|
|
|
83
|
|
|
</p> |
Duplicated code is one of the most pungent code smells. If you need to duplicate the same code in three or more different places, we strongly encourage you to look into extracting the code into a single class or operation.
You can also find more detailed suggestions in the “Code” section of your repository.