Completed
Push — master ( cfa416...0cacbb )
by Iurii
03:48 queued 32s
created

Module   A

Complexity

Total Complexity 8

Size/Duplication

Total Lines 55
Duplicated Lines 0 %

Coupling/Cohesion

Components 1
Dependencies 0

Importance

Changes 0
Metric Value
wmc 8
lcom 1
cbo 0
dl 0
loc 55
rs 10
c 0
b 0
f 0

4 Methods

Rating   Name   Duplication   Size   Complexity  
A __construct() 0 4 1
A hookRouteList() 0 9 1
A hookConstructControllerFrontend() 0 4 1
B setModuleAssets() 0 9 5
1
<?php
2
3
/**
4
 * @package Zadarma
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\zadarma;
11
12
use gplcart\core\Module as CoreModule;
13
14
/**
15
 * Main class for Zadarma module
16
 */
17
class Module
18
{
19
20
    /**
21
     * Module class instance
22
     * @var \gplcart\core\Module $module
23
     */
24
    protected $module;
25
26
    /**
27
     * @param CoreModule $module
28
     */
29
    public function __construct(CoreModule $module)
30
    {
31
        $this->module = $module;
32
    }
33
34
    /**
35
     * Implements hook "route.list"
36
     * @param array $routes
37
     */
38
    public function hookRouteList(array &$routes)
39
    {
40
        $routes['admin/module/settings/zadarma'] = array(
41
            'access' => 'module_edit',
42
            'handlers' => array(
43
                'controller' => array('gplcart\\modules\\zadarma\\controllers\\Settings', 'editSettings')
44
            )
45
        );
46
    }
47
48
    /**
49
     * Implements hook "construct.controller.frontend"
50
     * @param \gplcart\core\controllers\frontend\Controller $controller
51
     */
52
    public function hookConstructControllerFrontend($controller)
53
    {
54
        $this->setModuleAssets($controller);
55
    }
56
57
    /**
58
     * Sets module specific assets
59
     * @param \gplcart\core\controllers\frontend\Controller $controller
60
     */
61
    protected function setModuleAssets($controller)
62
    {
63
        if (!$controller->isInternalRoute()) {
64
            $settings = $this->module->getSettings('zadarma');
65
            if (!empty($settings['code']) && (empty($settings['trigger_id']) || $controller->isTriggered($settings['trigger_id']))) {
66
                $controller->setJs($settings['code'], array('position' => 'bottom', 'aggregate' => false));
67
            }
68
        }
69
    }
70
71
}
72