TraitPaging   A
last analyzed

Complexity

Total Complexity 14

Size/Duplication

Total Lines 66
Duplicated Lines 0 %

Importance

Changes 0
Metric Value
eloc 36
dl 0
loc 66
rs 10
c 0
b 0
f 0
wmc 14

3 Methods

Rating   Name   Duplication   Size   Complexity  
A paging() 0 22 5
A jump() 0 8 3
A jumps() 0 23 6
1
<?php
2
3
trait TraitPaging
4
{
5
    protected static function paging(&$vars)
6
    {
7
        if (self::$t['pages'] > 1) {
8
            $vars['pages'] = self::$t['pages'];
9
            $vars['page'] = self::$t['page'];
10
            $vars['jumpL'] = self::jumps();
11
            $vars['jumpR'] = self::jumps();
12
            $vars['arrowL'] = self::config('UTF8_LEFT_SYMBOL');
13
            $vars['arrowR'] = self::config('UTF8_RIGHT_SYMBOL');
14
15
            $limit = 10;
16
17
            $vars['start'] = $vars['page'] > ($limit / 2) ?
18
                ($vars['page'] - $limit / 2) :
19
                1;
20
21
            if ($vars['page'] > ($vars['pages'] - ($limit / 2))) {
22
                $vars['final'] = $vars['pages'];
23
            } elseif ($vars['page'] > ($limit / 2)) {
24
                $vars['final'] = $vars['start'] + $limit;
25
            } else {
26
                $vars['final'] = $limit;
27
            }
28
        }
29
    }
30
31
    /** Jump links -1M|-100K|-10K|-1K|100|{paging}|100|+1K|+10K|+100K|+1M
32
     * @param string   $html       Code to show
33
     * @param null|int $multiplier Multiplier
34
     *
35
     * @return string */
36
    protected static function jumps($html = '', $multiplier = null)
37
    {
38
        static $direction;
39
40
        if (is_null($multiplier)) {
41
            $direction = !isset($direction) ? '-' : '+';
42
            $multiplier = 100;
43
        }
44
45
        $jump = self::jump($multiplier, $direction);
46
        $add = '<li class="jump"><a>'.$jump.'</a></li>';
47
48
        $jumpExists = $direction === '-' ?
49
            (self::$t['page'] - $multiplier) > 0 :
50
            (self::$t['page'] + $multiplier) <= self::$t['pages'];
51
52
        if ($jumpExists) {
53
            $html = $direction === '-' ? $add.$html : $html.$add;
54
55
            return self::jumps($html, ($multiplier * 10));
56
        }
57
58
        return $html;
59
    }
60
61
    private static function jump($multiplier, $direction)
62
    {
63
        if ($multiplier >= 1000000) {
64
            return $direction.($multiplier / 1000000).'M';
65
        } elseif ($multiplier >= 1000) {
66
            return $direction.($multiplier / 1000).'K';
67
        } else {
68
            return $direction.$multiplier;
69
        }
70
    }
71
}
72