Main::setModuleAssets()   A
last analyzed

Complexity

Conditions 4
Paths 3

Size

Total Lines 13
Code Lines 7

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
dl 0
loc 13
rs 9.2
c 0
b 0
f 0
cc 4
eloc 7
nc 3
nop 1
1
<?php
2
3
/**
4
 * @package Summernote
5
 * @author Iurii Makukh
6
 * @copyright Copyright (c) 2017, Iurii Makukh
7
 * @license https://www.gnu.org/licenses/gpl-3.0.en.html GPL-3.0+
8
 */
9
10
namespace gplcart\modules\summernote;
11
12
use gplcart\core\Module;
13
14
/**
15
 * Main class for Summernote 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 "library.list"
36
     * @param array $libraries
37
     */
38
    public function hookLibraryList(array &$libraries)
39
    {
40
        $libraries['summernote'] = array(
41
            'name' => 'Summernote', // @text
42
            'description' => 'Super simple WYSIWYG Editor', // @text
43
            'type' => 'asset',
44
            'module' => 'summernote',
45
            'url' => 'https://github.com/summernote/summernote',
46
            'download' => 'https://github.com/summernote/summernote/archive/v0.8.3.zip',
47
            'version' => '0.8.3',
48
            'files' => array(
49
                'dist/summernote.min.js',
50
                'dist/summernote.css'
51
            ),
52
            'dependencies' => array(
53
                'jquery' => '>= 1.9.0',
54
                'bootstrap' => '>= 3.0.1'
55
            )
56
        );
57
    }
58
59
    /**
60
     * Implements hook "route.list"
61
     * @param array $routes
62
     */
63
    public function hookRouteList(array &$routes)
64
    {
65
        $routes['admin/module/settings/summernote'] = array(
66
            'access' => 'module_edit',
67
            'handlers' => array(
68
                'controller' => array('gplcart\\modules\\summernote\\controllers\\Settings', 'editSettings')
69
            )
70
        );
71
    }
72
73
    /**
74
     * Implements hook "construct.controller.backend"
75
     * @param \gplcart\core\controllers\backend\Controller $controller
76
     */
77
    public function hookConstructControllerBackend($controller)
78
    {
79
        $this->setModuleAssets($controller);
80
    }
81
82
    /**
83
     * Sets module specific assets
84
     * @param \gplcart\core\controllers\backend\Controller $controller
85
     * @return bool
86
     */
87
    protected function setModuleAssets($controller)
88
    {
89
        if (!$controller->isInternalRoute()) {
90
91
            $settings = $this->module->getSettings('summernote');
92
93
            if (!empty($settings['selector']) && is_array($settings['selector'])) {
94
                $controller->setJsSettings('summernote', $settings);
95
                $controller->addAssetLibrary('summernote');
96
                $controller->setJs('system/modules/summernote/js/common.js');
97
            }
98
        }
99
    }
100
101
}
102