Completed
Push — master ( 0cacbb...c13357 )
by Iurii
01:17
created

Main::hookRouteList()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 9
Code Lines 5

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
c 0
b 0
f 0
dl 0
loc 9
rs 9.6666
cc 1
eloc 5
nc 1
nop 1
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;
13
14
/**
15
 * Main class for Zadarma module
16
 */
17
class Main
18
{
19
20
    /**
21
     * Module class instance
22
     * @var \gplcart\core\Module $module
23
     */
24
    protected $module;
25
26
    /**
27
     * @param Module $module
28
     */
29
    public function __construct(Module $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