Passed
Push — master ( 1d068a...ac1bb1 )
by Struan
10:55 queued 04:23
created

TermView::get_next_prev()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 21
Code Lines 15

Duplication

Lines 0
Ratio 0 %

Importance

Changes 1
Bugs 0 Features 1
Metric Value
cc 1
eloc 15
c 1
b 0
f 1
nc 1
nop 1
dl 0
loc 21
rs 9.7666
1
<?php
2
3
namespace MySociety\TheyWorkForYou\GlossaryView;
4
5
class TermView extends BaseView {
6
    public function display(): array {
7
        $data = [
8
            'title' => 'Glossary',
9
            'page_title' => 'Glossary Index',
10
            'this_page' => 'glossary',
11
            'template_name' => 'term',
12
        ];
13
14
        $gl = filter_input(INPUT_GET, 'gl', FILTER_VALIDATE_INT);
15
16
        $az = 'A';
17
        $glossary = new \GLOSSARY(['sort' => 'regexp_replace', 'glossary_id' => $gl]);
18
        if ($glossary->current_term) {
19
            $data['notitle'] = 1;
20
            $data['title'] = $glossary->current_term['title'];
21
            $data['definition'] = $this->format_body($glossary->current_term['body']);
22
23
            $data['contributing_user'] = $glossary->current_term['user_id'] ? $glossary->current_term['firstname'] . " " . $glossary->current_term['lastname'] : '';
24
            $az = strtoupper($glossary->current_term['title'][0]);
25
26
            $data['nextprev'] = $this->get_next_prev($glossary);
27
            $data['this_page'] = 'glossary_item';
28
            $data['page_title'] = $data['title'] . ': Glossary Item';
29
        }
30
31
        if ($this->has_edit_access()) {
32
            $url = new \MySociety\TheyWorkForYou\Url('glossary_addterm');
33
            $data['add_url'] = $url->generate('url');
34
        }
35
36
        $glossary->current_letter = $az;
37
38
        $data['glossary'] = $glossary;
39
        return $data;
40
    }
41
42
    private function get_next_prev($glossary): array {
43
        $url = new \MySociety\TheyWorkForYou\Url('glossary');
44
        $url->insert(['gl' => $glossary->previous_term['glossary_id']]);
45
        $previous_link = $url->generate('url');
46
        $url->insert(['gl' => $glossary->next_term['glossary_id']]);
47
        $next_link = $url->generate('url');
48
49
        $nextprev =  [
50
            'next'	=>  [
51
                'url'	=> $next_link,
52
                'title'	=> 'Next term',
53
                'body'	=> $glossary->next_term['title'],
54
            ],
55
            'prev'	=>  [
56
                'url'	=> $previous_link,
57
                'title'	=> 'Previous term',
58
                'body'	=> $glossary->previous_term['title'],
59
            ],
60
        ];
61
62
        return $nextprev;
63
    }
64
}
65