Passed
Push — dev ( 451d27...7f1499 )
by Someshwer
02:53
created

MyPaginate::getPagination()   A

Complexity

Conditions 3
Paths 4

Size

Total Lines 28
Code Lines 23

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 0
CRAP Score 12

Importance

Changes 0
Metric Value
cc 3
eloc 23
nc 4
nop 5
dl 0
loc 28
ccs 0
cts 27
cp 0
crap 12
rs 9.552
c 0
b 0
f 0
1
<?php
2
3
namespace Someshwer\WorldCountries\Helpers;
4
5
/**
6
 * Created by Someshwer<[email protected]>.
7
 * User: Someshwer
8
 * Date: 07/08/2018
9
 * Time: 12:40 AM IST.
10
 */
11
class MyPaginate
12
{
13
    /**
14
     * @author Someshwer
15
     *
16
     * Makes pagination data and links
17
     *
18
     * @param $request_url
19
     * @param $page_number
20
     * @param $per_page
21
     * @param $ceil_val
22
     * @param $total_records
23
     *
24
     * @return array
25
     */
26
    public static function getPagination($request_url, $page_number, $per_page, $ceil_val, $total_records)
27
    {
28
        $to = $page_number * $per_page;
29
        if ($page_number == 1) {
30
            $from = 1;
31
            $prev_page_url = null;
32
        } else {
33
            $from = ($page_number * $per_page) - $per_page;
34
            $prev_page_url = $request_url.'?page='.($page_number - 1);
35
        }
36
        if ($page_number >= $ceil_val) {
37
            $next_page_url = null;
38
        } else {
39
            $next_page_url = $request_url.'?page='.($page_number + 1);
40
        }
41
42
        return [
43
            'current_page'   => (int) $page_number,
44
            'first_page_url' => $request_url.'?page=1',
45
            'from'           => $from,
46
            'last_page'      => $ceil_val,
47
            'last_page_url'  => $request_url.'?page='.$ceil_val,
48
            'next_page_url'  => $next_page_url,
49
            'path'           => $request_url,
50
            'per_page'       => $per_page,
51
            'prev_page_url'  => $prev_page_url,
52
            'to'             => $to,
53
            'total'          => $total_records,
54
        ];
55
    }
56
}
57