Completed
Push — master ( 8842a3...a7fd51 )
by Iurii
01:13
created

Zopim::setModuleAssets()   B

Complexity

Conditions 5
Paths 3

Size

Total Lines 10
Code Lines 6

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
dl 0
loc 10
rs 8.8571
c 0
b 0
f 0
cc 5
eloc 6
nc 3
nop 1
1
<?php
2
3
/**
4
 * @package Zopim
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\zopim;
11
12
use gplcart\core\Module,
13
    gplcart\core\Config;
14
15
/**
16
 * Main class for Zopim module
17
 */
18
class Zopim extends Module
19
{
20
21
    /**
22
     * @param Config $config
23
     */
24
    public function __construct(Config $config)
25
    {
26
        parent::__construct($config);
27
    }
28
29
    /**
30
     * Implements hook "route.list"
31
     * @param array $routes
32
     */
33
    public function hookRouteList(array &$routes)
34
    {
35
        $routes['admin/module/settings/zopim'] = array(
36
            'access' => 'module_edit',
37
            'handlers' => array(
38
                'controller' => array('gplcart\\modules\\zopim\\controllers\\Settings', 'editSettings')
39
            )
40
        );
41
    }
42
43
    /**
44
     * Implements hook "construct.controller.frontend"
45
     * @param \gplcart\core\controllers\frontend\Controller $controller
46
     */
47
    public function hookConstructControllerFrontend($controller)
48
    {
49
        $this->setModuleAssets($controller);
50
    }
51
52
    /**
53
     * Sets module specific assets
54
     * @param \gplcart\core\controllers\frontend\Controller $controller
55
     */
56
    protected function setModuleAssets($controller)
57
    {
58
        if (!$controller->isInternalRoute()) {
59
            $settings = $this->config->getFromModule('zopim');
60
            if (!empty($settings['code']) && (empty($settings['trigger_id']) || $controller->isTriggered($settings['trigger_id']))) {
61
                $options = array('position' => 'bottom', 'aggregate' => false);
62
                $controller->setJs($settings['code'], $options);
63
            }
64
        }
65
    }
66
67
}
68