Issues (2407)

administration/model/extension/extension.php (3 issues)

1
<?php
2
3
/* 	Divine CMS - Open source CMS for widespread use.
4
    Copyright (c) 2019 Mykola Burakov ([email protected])
5
6
    See SOURCE.txt for other and additional information.
7
8
    This file is part of Divine CMS.
9
10
    This program is free software: you can redistribute it and/or modify
11
    it under the terms of the GNU General Public License as published by
12
    the Free Software Foundation, either version 3 of the License, or
13
    (at your option) any later version.
14
15
    This program is distributed in the hope that it will be useful,
16
    but WITHOUT ANY WARRANTY; without even the implied warranty of
17
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
18
    GNU General Public License for more details.
19
20
    You should have received a copy of the GNU General Public License
21
    along with this program. If not, see <http://www.gnu.org/licenses/>. */
22
23
class ModelExtensionExtension extends \Divine\Engine\Core\Model
0 ignored issues
show
Coding Style Compatibility introduced by
PSR1 recommends that each class must be in a namespace of at least one level to avoid collisions.

You can fix this by adding a namespace to your class:

namespace YourVendor;

class YourClass { }

When choosing a vendor namespace, try to pick something that is not too generic to avoid conflicts with other libraries.

Loading history...
24
{
25
    public function getInstalled($type)
0 ignored issues
show
Expected 2 blank lines before function; 0 found
Loading history...
26
    {
27
        $extension_data = array();
28
29
        $query = $this->db->query("
30
            SELECT 
31
                *
32
            FROM
33
                `extension`
34
            WHERE
35
                `type` = '" . $this->db->escape($type) . "'
36
            ORDER BY `code`
37
        ");
38
39
        foreach ($query->rows as $result) {
40
            $extension_data[] = $result['code'];
41
        }
42
43
        return $extension_data;
44
    }
45
46
    public function install($type, $code)
47
    {
48
        $extensions = $this->getInstalled($type);
0 ignored issues
show
The method getInstalled() does not exist on ModelExtensionExtension. ( Ignorable by Annotation )

If this is a false-positive, you can also ignore this issue in your code via the ignore-call  annotation

48
        /** @scrutinizer ignore-call */ 
49
        $extensions = $this->getInstalled($type);

This check looks for calls to methods that do not seem to exist on a given type. It looks for the method on the type itself as well as in inherited classes or implemented interfaces.

This is most likely a typographical error or the method has been renamed.

Loading history...
49
50
        if (!in_array($code, $extensions)) {
51
            $this->db->query("
52
                INSERT INTO extension 
53
                SET `type` = '" . $this->db->escape($type) . "', 
54
                    `code` = '" . $this->db->escape($code) . "'
55
            ");
56
        }
57
    }
58
59
    public function uninstall($type, $code)
60
    {
61
        $this->db->query("
62
            DELETE 
63
            FROM extension 
64
            WHERE `type` = '" . $this->db->escape($type) . "' 
65
                AND `code` = '" . $this->db->escape($code) . "'
66
        ");
67
        $this->db->query("
68
            DELETE 
69
            FROM setting 
70
            WHERE `code` = '" . $this->db->escape($code) . "'
71
        ");
72
    }
73
}
74