Issues (2407)

application/controller/account/reward.php (3 issues)

1
<?php
2
3
/* 	Divine CMS - Open source CMS for widespread use.
4
    Copyright (c) 2019 Mykola Burakov ([email protected])
5
6
    See SOURCE.txt for other and additional information.
7
8
    This file is part of Divine CMS.
9
10
    This program is free software: you can redistribute it and/or modify
11
    it under the terms of the GNU General Public License as published by
12
    the Free Software Foundation, either version 3 of the License, or
13
    (at your option) any later version.
14
15
    This program is distributed in the hope that it will be useful,
16
    but WITHOUT ANY WARRANTY; without even the implied warranty of
17
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
18
    GNU General Public License for more details.
19
20
    You should have received a copy of the GNU General Public License
21
    along with this program. If not, see <http://www.gnu.org/licenses/>. */
22
23
class ControllerAccountReward extends \Divine\Engine\Core\Controller
0 ignored issues
show
Coding Style Compatibility introduced by
PSR1 recommends that each class must be in a namespace of at least one level to avoid collisions.

You can fix this by adding a namespace to your class:

namespace YourVendor;

class YourClass { }

When choosing a vendor namespace, try to pick something that is not too generic to avoid conflicts with other libraries.

Loading history...
24
{
25
    public function index()
0 ignored issues
show
Expected 2 blank lines before function; 0 found
Loading history...
26
    {
27
        if (!$this->customer->isLogged()) {
28
            $this->session->data['redirect'] = $this->url->link('account/reward', '', true);
29
30
            $this->response->redirect($this->url->link('account/login', '', true));
31
        }
32
33
        $this->load->language('account/reward');
34
35
        $this->document->setTitle($this->language->get('heading_title'));
36
37
        $data['breadcrumbs'] = array();
0 ignored issues
show
Comprehensibility Best Practice introduced by
$data was never initialized. Although not strictly required by PHP, it is generally a good practice to add $data = array(); before regardless.
Loading history...
38
39
        $data['breadcrumbs'][] = array(
40
            'text' => $this->language->get('text_home'),
41
            'href' => $this->url->link('common/home')
42
        );
43
44
        $data['breadcrumbs'][] = array(
45
            'text' => $this->language->get('text_account'),
46
            'href' => $this->url->link('account/account', '', true)
47
        );
48
49
        $data['breadcrumbs'][] = array(
50
            'text' => $this->language->get('text_reward'),
51
            'href' => $this->url->link('account/reward', '', true)
52
        );
53
54
        $this->load->model('account/reward');
55
56
        $data['heading_title'] = $this->language->get('heading_title');
57
58
        $data['column_date_added'] = $this->language->get('column_date_added');
59
        $data['column_description'] = $this->language->get('column_description');
60
        $data['column_points'] = $this->language->get('column_points');
61
62
        $data['text_total'] = $this->language->get('text_total');
63
        $data['text_empty'] = $this->language->get('text_empty');
64
65
        $data['button_continue'] = $this->language->get('button_continue');
66
67
        if (isset($this->request->get['page'])) {
68
            $page = $this->request->get['page'];
69
        } else {
70
            $page = 1;
71
        }
72
73
        $data['rewards'] = array();
74
75
        $filter_data = array(
76
            'sort'  => 'date_added',
77
            'order' => 'DESC',
78
            'start' => ($page - 1) * 10,
79
            'limit' => 10
80
        );
81
82
        $reward_total = $this->model_account_reward->getTotalRewards();
83
84
        $results = $this->model_account_reward->getRewards($filter_data);
85
86
        foreach ($results as $result) {
87
            $data['rewards'][] = array(
88
                'order_id'    => $result['order_id'],
89
                'points'      => $result['points'],
90
                'description' => $result['description'],
91
                'date_added'  => date($this->language->get('date_format_short'), strtotime($result['date_added'])),
92
                'href'        => $this->url->link('account/order/info', 'order_id=' . $result['order_id'], true)
93
            );
94
        }
95
96
        $pagination = new \Divine\Engine\Library\Pagination();
97
        $pagination->total = $reward_total;
98
        $pagination->page = $page;
99
        $pagination->limit = 10;
100
        $pagination->url = $this->url->link('account/reward', 'page={page}', true);
101
102
        $data['pagination'] = $pagination->render();
103
104
        $data['results'] = sprintf($this->language->get('text_pagination'), ($reward_total) ? (($page - 1) * 10) + 1 : 0, ((($page - 1) * 10) > ($reward_total - 10)) ? $reward_total : ((($page - 1) * 10) + 10), $reward_total, ceil($reward_total / 10));
105
106
        $data['total'] = (int)$this->customer->getRewardPoints();
107
108
        $data['continue'] = $this->url->link('account/account', '', true);
109
110
        $data['column'] = $this->load->controller('common/column');
111
        
112
        $data['content_top'] = $this->load->controller('common/content_top');
113
        $data['content_bottom'] = $this->load->controller('common/content_bottom');
114
        $data['footer'] = $this->load->controller('common/footer');
115
        $data['header'] = $this->load->controller('common/header');
116
117
        $this->response->setOutput($this->load->view('account/reward', $data));
118
    }
119
}
120