Passed
Push — master ( 2a568d...890abb )
by Anthony
03:25
created

GestionModule::getOnlineVersion()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 3
Code Lines 2

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
c 0
b 0
f 0
dl 0
loc 3
rs 10
cc 1
eloc 2
nc 1
nop 0
1
<?php
2
	namespace core\modules;
3
	use core\App;
4
	use core\Navigation;
5
6
	class GestionModule {
7
		private $id_module;
8
		private $url;
9
		private $icone;
10
		private $nom;
11
		private $version;
12
		private $url_telechargement;
13
		
14
		
15
		//-------------------------- CONSTRUCTEUR ----------------------------------------------------------------------------//
16
		//-------------------------- FIN CONSTRUCTEUR ----------------------------------------------------------------------------//
17
		
18
		
19
		//-------------------------- GETTER ----------------------------------------------------------------------------//
20
		public function getIdModule() {
21
			return $this->id_module;
22
		}
23
		public function getUrl() {
24
			return $this->url;
25
		}
26
		public function getNom() {
27
			return $this->nom;
28
		}
29
		public function getVersion() {
30
			return $this->version;
31
		}
32
		public function getIcone() {
33
			return $this->icone;
34
		}
35
		public function getUrlTelechargement() {
36
			return $this->url_telechargement;
37
		}
38
39
		/**
40
		 * récupere la liste des modules activé utilisé pour toutes les pages
41
		 */
42
		public function getListeModuleActiver() {
43
			$dbc = App::getDb();
44
			$query = $dbc->select()->from("module")->where("activer", "=", 1, "AND")->where("installer", "=", 1)->get();
45
46
			if ((is_array($query)) && (count($query) > 0)) {
47
				$id_module = [];
48
				$url = [];
49
				$nom = [];
50
				$version = [];
51
				$icone = [];
52
53
				foreach ($query as $obj) {
54
					$id_module[] = $obj->ID_module;
55
					$url[] = $obj->url;
56
					$nom[] = $obj->nom_module;
57
					$version[] = $obj->version;
58
					$icone[] = $obj->icone;
59
				}
60
61
				$this->setListeModuleActiver($id_module, $url, $version, $nom, $icone);
62
			}
63
		}
64
65
		/**
66
		 */
67
		public function getListeModule() {
68
			$dbc = App::getDb();
69
70
			$query = $dbc->select()->from("module")->get();
71
72
			if ((is_array($query)) && (count($query) > 0)) {
73
				$id_module = [];
74
				$url = [];
75
				$nom = [];
76
				$version = [];
77
				$url_telechargement = [];
78
79
				foreach ($query as $obj) {
80
					$id_module[] = $obj->ID_module;
81
					$url[] = $obj->url;
82
					$nom[] = $obj->nom_module;
83
					$version[] = $obj->version;
84
					$url_telechargement[] = $obj->url_telechargement;
85
				}
86
87
				$this->setListeModuleActiver($id_module, $url, $version, $nom, null, $url_telechargement);
88
			}
89
		}
90
91
		/**
92
		 * @param $nom_module
93
		 * @return bool
94
		 * permets de savoir si un module est installé ou non
95
		 */
96
		public static function getModuleInstaller($nom_module) {
0 ignored issues
show
Duplication introduced by
This method seems to be duplicated in your project.

Duplicated code is one of the most pungent code smells. If you need to duplicate the same code in three or more different places, we strongly encourage you to look into extracting the code into a single class or operation.

You can also find more detailed suggestions in the “Code” section of your repository.

Loading history...
97
			$dbc = App::getDb();
98
99
			$query = $dbc->select("installer")->from("module")->where("nom_module", "=", $dbc->quote($nom_module), "", true)->get();
100
101
			if ((is_array($query)) && (count($query) > 0)) {
102
				$installer = 0;
103
104
				foreach ($query as $obj) {
105
					$installer = $obj->installer;
106
				}
107
108
				return $installer;
109
			}
110
		}
111
112
		/**
113
		 * @param $nom_module
114
		 * @return boolean|null
115
		 * return true si le module est activer sinon false
116
		 */
117
		public static function getModuleActiver($nom_module) {
118
			$dbc = App::getDb();
119
120
			$query = $dbc->select("activer")->from("module")->where("nom_module", "=", $dbc->quote($nom_module), "", true)->get();
121
122
			if ((is_array($query)) && (count($query) > 0)) {
123
				foreach ($query as $obj) {
124
					if ($obj->activer == 1) {
125
						return true;
126
					}
127
					else {
128
						return false;
129
					}
130
				}
131
			}
132
		}
133
134
		private static function getUrlToId($url) {
0 ignored issues
show
Duplication introduced by
This method seems to be duplicated in your project.

Duplicated code is one of the most pungent code smells. If you need to duplicate the same code in three or more different places, we strongly encourage you to look into extracting the code into a single class or operation.

You can also find more detailed suggestions in the “Code” section of your repository.

Loading history...
135
			$dbc = App::getDb();
136
137
			$query = $dbc->select("ID_module")->from("module")->where("url", "=", $dbc->quote($url))->get();
138
139
			if ((is_array($query)) && (count($query) > 0)) {
140
				foreach ($query as $obj) {
141
					return $obj->ID_module;
142
				}
143
			}
144
		}
145
146
147
		//-------------------------- FIN GETTER ----------------------------------------------------------------------------//
148
		
149
		
150
		//-------------------------- SETTER ----------------------------------------------------------------------------//
151
		private function setListeModuleActiver($id_module, $url, $version, $nom, $icone = null, $url_telechargement = null) {
152
			$this->id_module = $id_module;
153
			$this->url = $url;
154
			$this->nom = $nom;
155
			$this->version = $version;
156
			$this->icone = $icone;
157
			$this->url_telechargement = $url_telechargement;
158
		}
159
160
		/**
161
		 * @param $activer
162
		 * @param $url
163
		 * fonction qui permet d'activer || désactiver un module
164
		 */
165
		public static function setActiverDesactiverModule($activer, $url) {
166
			$dbc = App::getDb();
167
168
			$dbc->update("activer", $activer)->from("module")->where("url", "=", $url)->set();
169
170
			$nav = new Navigation();
171
172
			if ($activer == 1) {
173
				$nav->setAjoutLien("ID_module", self::getUrlToId($url));
174
			}
175
			else {
176
				$nav->setSupprimerLien("ID_module", self::getUrlToId($url));
177
			}
178
		}
179
		//-------------------------- FIN SETTER ----------------------------------------------------------------------------//
180
	}