Main::hookRouteList()   A
last analyzed

Complexity

Conditions 1
Paths 1

Size

Total Lines 9
Code Lines 5

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
dl 0
loc 9
rs 9.6666
c 0
b 0
f 0
cc 1
eloc 5
nc 1
nop 1
1
<?php
2
3
/**
4
 * @package Currency
5
 * @author Iurii Makukh <[email protected]>
6
 * @copyright Copyright (c) 2017, Iurii Makukh <[email protected]>
7
 * @license https://www.gnu.org/licenses/gpl-3.0.en.html GNU General Public License 3.0
8
 */
9
10
namespace gplcart\modules\currency;
11
12
use gplcart\core\Container;
13
use gplcart\core\Module;
14
15
/**
16
 * Main class for Currency module
17
 */
18
class Main
19
{
20
21
    /**
22
     * Module class instance
23
     * @var \gplcart\core\Module $module
24
     */
25
    protected $module;
26
27
    /**
28
     * @param Module $module
29
     */
30
    public function __construct(Module $module)
31
    {
32
        $this->module = $module;
33
    }
34
35
    /**
36
     * Implements hook "route.list"
37
     * @param array $routes
38
     */
39
    public function hookRouteList(array &$routes)
40
    {
41
        $routes['admin/module/settings/currency'] = array(
42
            'access' => 'module_edit',
43
            'handlers' => array(
44
                'controller' => array('gplcart\\modules\\currency\\controllers\\Settings', 'editSettings')
45
            )
46
        );
47
    }
48
49
    /**
50
     * Implements hook "cron.run.after"
51
     */
52
    public function hookCronRunAfter()
53
    {
54
        $this->updateCurrencyRates();
55
    }
56
57
    /**
58
     * Update currency rates
59
     */
60
    protected function updateCurrencyRates()
61
    {
62
        $settings = $this->module->getSettings('currency');
63
        if (!empty($settings['status'])) {
64
            $this->getCurrencyModel()->update($settings);
65
        }
66
    }
67
68
    /**
69
     * Returns Currency model instance
70
     * @return \gplcart\modules\currency\models\Currency
71
     */
72
    protected function getCurrencyModel()
73
    {
74
        /** @var \gplcart\modules\currency\models\Currency $instance */
75
        $instance = Container::get('gplcart\\modules\\currency\\models\\Currency');
76
        return $instance;
77
    }
78
79
}
80