/
Pager.php
77 lines (60 loc) · 1.46 KB
/
Pager.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
<?php
namespace Bolt;
use Silex;
/**
* Class Pager
*
* @author Rix Beck <rix@neologik.hu>
*
* @deprecated
*/
class Pager extends \ArrayObject
{
public $for;
public $count;
public $totalpages;
public $current;
public $showing_from;
public $showing_to;
public $link;
protected $app;
public function __construct($array, Silex\Application $app)
{
foreach ($array as $key => $value) {
if (is_array($value)) {
$value = new static($value, $app);
}
$this->$key = $value;
}
$this->app = $app;
}
/**
* Used for calling from template to build up right paginated URL link.
*
* @return string
*/
public function makelink()
{
/*
* If link set directly that forces using it rather than build
*/
if ($this->link) {
return $this->link;
}
$pageid = static::makeParameterId($this->for);
$parameters = $this->app['request']->query->all();
if (array_key_exists($pageid, $parameters)) {
unset($parameters[$pageid]);
} else {
unset($parameters['page']);
}
$parameters[$pageid] = '';
$link = '?' . http_build_query($parameters);
return $link;
}
public static function makeParameterId($suffix)
{
$suffix = ($suffix !== '') ? '_' . $suffix : '';
return 'page' . $suffix;
}
}