Completed
Push — master ( 12b4b8...4705de )
by Iurii
01:22
created

AutocompleteSearch   A

Complexity

Total Complexity 5

Size/Duplication

Total Lines 56
Duplicated Lines 0 %

Coupling/Cohesion

Components 0
Dependencies 0

Importance

Changes 0
Metric Value
wmc 5
lcom 0
cbo 0
dl 0
loc 56
rs 10
c 0
b 0
f 0

4 Methods

Rating   Name   Duplication   Size   Complexity  
A __construct() 0 4 1
A hookConstructControllerFrontend() 0 4 1
A hookRouteList() 0 15 1
A setModuleAssets() 0 10 2
1
<?php
2
3
/**
4
 * @package Autocomplete search
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 GPL-3.0+
8
 */
9
10
namespace gplcart\modules\autocomplete_search;
11
12
use gplcart\core\Module,
13
    gplcart\core\Config;
14
15
/**
16
 * Main class for Autocomplete search module
17
 */
18
class AutocompleteSearch 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 "construct.controller.frontend"
31
     * @param \gplcart\core\controllers\frontend\Controller $controller
32
     */
33
    public function hookConstructControllerFrontend($controller)
34
    {
35
        $this->setModuleAssets($controller);
36
    }
37
38
    /**
39
     * Implements hook "route.list"
40
     * @param array $routes
41
     */
42
    public function hookRouteList(array &$routes)
43
    {
44
        $routes['admin/module/settings/autocomplete_search'] = array(
45
            'access' => 'module_edit',
46
            'handlers' => array(
47
                'controller' => array('gplcart\\modules\\autocomplete_search\\controllers\\Settings', 'editSettings')
48
            )
49
        );
50
51
        $routes['autocomplete-search'] = array(
52
            'handlers' => array(
53
                'controller' => array('gplcart\\modules\\autocomplete_search\\controllers\\Search', 'doSearch')
54
            )
55
        );
56
    }
57
58
    /**
59
     * Sets module specific assets
60
     * @param \gplcart\core\controllers\frontend\Controller $controller
61
     */
62
    protected function setModuleAssets($controller)
63
    {
64
        if (!$controller->isInternalRoute()) {
65
            $settings = $this->config->getFromModule('autocomplete_search', array());
66
            $controller->setJsSettings('autocomplete_search', $settings);
67
            $controller->setJs('system/modules/autocomplete_search/js/common.js');
68
            $controller->setCss('system/modules/autocomplete_search/css/common.css');
69
            $controller->addAssetLibrary('jquery_ui');
70
        }
71
    }
72
73
}
74