Completed
Push — master ( 2ef61e...77b89e )
by Iurii
11:26
created

Main::hookModuleInstallBefore()   A

Complexity

Conditions 2
Paths 2

Size

Total Lines 6
Code Lines 3

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
dl 0
loc 6
rs 9.4285
c 0
b 0
f 0
cc 2
eloc 3
nc 2
nop 1
1
<?php
2
3
/**
4
 * @package Translator
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\translator;
11
12
use gplcart\core\Container;
13
14
/**
15
 * Main class for Translator module
16
 */
17
class Main
18
{
19
20
    /**
21
     * Implements hook "module.install.before"
22
     * @param null|string $result
23
     */
24
    public function hookModuleInstallBefore(&$result)
25
    {
26
        if (!class_exists('ZipArchive')) {
27
            $result = $this->getTranslationModel()->text('Class ZipArchive does not exist');
28
        }
29
    }
30
31
    /**
32
     * Implements hook "route.list"
33
     * @param array $routes
34
     */
35
    public function hookRouteList(array &$routes)
36
    {
37
        $routes['admin/tool/translator'] = array(
38
            'menu' => array('admin' => /* @text */'Translator'),
39
            'access' => 'module_translator',
40
            'handlers' => array(
41
                'controller' => array('gplcart\\modules\\translator\\controllers\\Translator', 'languageTranslator')
42
            )
43
        );
44
45
        $routes['admin/tool/translator/(\w+)'] = array(
46
            'access' => 'module_translator',
47
            'handlers' => array(
48
                'controller' => array('gplcart\\modules\\translator\\controllers\\Translator', 'filesTranslator')
49
            )
50
        );
51
52
        $routes['admin/tool/translator/(\w+)/upload'] = array(
53
            'access' => 'module_translator_upload',
54
            'handlers' => array(
55
                'controller' => array('gplcart\\modules\\translator\\controllers\\Translator', 'uploadTranslator')
56
            )
57
        );
58
59
        $routes['admin/tool/translator/(\w+)/view/([^/]+)'] = array(
60
            'access' => 'module_translator',
61
            'handlers' => array(
62
                'controller' => array('gplcart\\modules\\translator\\controllers\\Translator', 'viewTranslator')
63
            )
64
        );
65
66
        $routes['admin/tool/translator/(\w+)/import'] = array(
67
            'access' => 'module_translator_import',
68
            'handlers' => array(
69
                'controller' => array('gplcart\\modules\\translator\\controllers\\Translator', 'listImportTranslator')
70
            )
71
        );
72
    }
73
74
    /**
75
     * Implements hook "user.role.permissions"
76
     * @param array $permissions
77
     */
78
    public function hookUserRolePermissions(array &$permissions)
79
    {
80
        $permissions['module_translator'] = /* @text */'Translator: access';
81
        $permissions['module_translator_upload'] = /* @text */'Translator: upload translations';
82
        $permissions['module_translator_delete'] = /* @text */'Translator: delete translations';
83
        $permissions['module_translator_import'] = /* @text */'Translator: import translations';
84
        $permissions['module_translator_download'] = /* @text */'Translator: download translations';
85
    }
86
87
    /**
88
     * Translation UI model class instance
89
     * @return \gplcart\core\models\Translation
90
     */
91
    protected function getTranslationModel()
92
    {
93
        return Container::get('gplcart\\core\\models\\Translation');
94
    }
95
96
}
97