Completed
Push — master ( b440f5...3b32bf )
by Antony
28:52
created

Dealer::update()   A

Complexity

Conditions 3
Paths 3

Size

Total Lines 22
Code Lines 11

Duplication

Lines 0
Ratio 0 %

Importance

Changes 4
Bugs 0 Features 3
Metric Value
c 4
b 0
f 3
dl 0
loc 22
rs 9.2
cc 3
eloc 11
nc 3
nop 3
1
<?php
2
/**
3
* This class has been generated by TheliaStudio
4
* For more information, see https://github.com/thelia-modules/TheliaStudio
5
*/
6
7
namespace Dealer;
8
9
use Dealer\Model\DealerContactInfoQuery;
10
use Dealer\Model\DealerContactQuery;
11
use Dealer\Model\DealerContentQuery;
12
use Dealer\Model\DealerFolderQuery;
13
use Dealer\Model\DealerQuery;
14
use Dealer\Model\DealerShedulesQuery;
15
use Symfony\Component\Finder\Finder;
16
use Thelia\Core\Template\TemplateDefinition;
17
use Thelia\Module\BaseModule;
18
use Propel\Runtime\Connection\ConnectionInterface;
19
use Thelia\Install\Database;
20
21
/**
22
 * Class Dealer
23
 * @package Dealer
24
 */
25
class Dealer extends BaseModule
26
{
27
    const MESSAGE_DOMAIN = "dealer";
28
    const ROUTER = "router.dealer";
29
30
    public function postActivation(ConnectionInterface $con = null)
31
    {
32
        try {
33
            DealerQuery::create()->findOne();
34
            DealerContactInfoQuery::create()->findOne();
35
            DealerContactQuery::create()->findOne();
36
            DealerShedulesQuery::create()->findOne();
37
            DealerContentQuery::create()->findOne();
38
            DealerFolderQuery::create()->findOne();
39
        } catch (\Exception $e) {
40
            $database = new Database($con);
41
            $database->insertSql(null, [__DIR__ . "/Config/thelia.sql"]);
42
        }
43
    }
44
45
    /**
46
     * @inheritDoc
47
     */
48
    public function update($currentVersion, $newVersion, ConnectionInterface $con = null)
49
    {
50
        $finder = (new Finder)
51
            ->files()
52
            ->name('#.*?\.sql#')
53
            ->in(__DIR__ . DS . 'Setup' . DS . 'sql')
54
        ;
55
56
        $database = new Database($con);
57
58
        /** @var \Symfony\Component\Finder\SplFileInfo $updateSQLFile */
59
        foreach ($finder as $updateSQLFile) {
60
            if (version_compare($currentVersion, str_replace('.sql', '', $updateSQLFile->getFilename()), '<')) {
61
                $database->insertSql(
62
                    null,
63
                    [
64
                        $updateSQLFile->getPathname()
65
                    ]
66
                );
67
            }
68
        }
69
    }
70
71
72
    public function getHooks(){
73
        return [
74
            array(
75
                "type" => TemplateDefinition::BACK_OFFICE,
76
                "code" => "dealer.extra.content.edit",
77
                "title" => "Dealer Extra Content",
78
                "description" => [
79
                    "en_US" =>"Allow you to insert element in modules tab on Dealer edit page",
80
                    "fr_FR" =>"Permet l'ajout de contenu sur la partie module de l'edition",
81
                ],
82
                "active" => true,
83
            ),
84
            array(
85
                "type" => TemplateDefinition::BACK_OFFICE,
86
                "code" => "dealer.edit.js",
87
                "title" => "Dealer Edit Extra Js",
88
                "description" => [
89
                    "en_US" =>"Allow you to insert js on Dealer edit page",
90
                    "fr_FR" =>"Permet l'ajout de js sur l'edition",
91
                ],
92
                "active" => true,
93
            ),
94
            array(
95
                "type" => TemplateDefinition::BACK_OFFICE,
96
                "code" => "dealer.js",
97
                "title" => "Dealer Extra Js",
98
                "description" => [
99
                    "en_US" =>"Allow you to insert js on Dealer list",
100
                    "fr_FR" =>"Permet l'ajout de js sur la liste",
101
                ],
102
                "active" => true,
103
            ),
104
            array(
105
                "type" => TemplateDefinition::BACK_OFFICE,
106
                "code" => "dealer.additional",
107
                "title" => "Dealer Extra Tab",
108
                "description" => [
109
                    "en_US" =>"Allow you to insert a tab on Dealer edit page",
110
                    "fr_FR" =>"Permet l'ajout d'une page sur l'edition d'un point de vente",
111
                ],
112
                "active" => true,
113
                "block" => true,
114
            ),
115
            array(
116
                "type" => TemplateDefinition::BACK_OFFICE,
117
                "code" => "dealer.edit.nav.bar",
118
                "title" => "Dealer Edition NavBar Link",
119
                "description" => [
120
                    "en_US" =>"Allow you to insert link between arrow previous and next on edtion view",
121
                    "fr_FR" =>"Permet l'ajout d'un lien sur la page d'édition entre les liens suivant et précedent",
122
                ],
123
                "active" => true,
124
            ),
125
            array(
126
                "type" => TemplateDefinition::BACK_OFFICE,
127
                "code" => "dealer.associated.tabcontent",
128
                "title" => "Dealer Associated Nav Tab",
129
                "description" => [
130
                    "en_US" =>"Allow you to insert association content",
131
                    "fr_FR" =>"Permet l'ajout de contenu dans la table d'association",
132
                ],
133
                "active" => true,
134
            ),
135
        ];
136
    }
137
}
138