Passed
Push — master ( 01ef95...06f42e )
by Anthony
03:39
created

GestionModule::getModuleInstaller()   A

Complexity

Conditions 4
Paths 3

Size

Total Lines 15
Code Lines 8

Duplication

Lines 0
Ratio 0 %

Importance

Changes 5
Bugs 0 Features 0
Metric Value
c 5
b 0
f 0
dl 0
loc 15
rs 9.2
cc 4
eloc 8
nc 3
nop 1
1
<?php
2
	namespace core\modules;
3
	use core\App;
4
	use core\Navigation;
5
6
	class GestionModule {
7
		use CheckVersionModule;
8
9
		private $id_module;
10
		private $url;
11
		private $icone;
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 getOnlineVersion() {
33
			return $this->online_version;
34
		}
35
		public function getIcone() {
36
			return $this->icone;
37
		}
38
		public function getUrlTelechargement() {
39
			return $this->url_telechargement;
40
		}
41
42
		/**
43
		 * récupere la liste des modules activé utilisé pour toutes les pages
44
		 */
45
		public function getListeModuleActiver() {
46
			$dbc = App::getDb();
47
48
			$query = $dbc->query("SELECT * FROM module WHERE activer=1 AND installer=1");
49
50
			if ((is_array($query)) && (count($query) > 0)) {
51
				$id_module = [];
52
				$url = [];
53
				$nom = [];
54
				$version = [];
55
				$icone = [];
56
57
				foreach ($query as $obj) {
58
					$id_module[] = $obj->ID_module;
59
					$url[] = $obj->url;
60
					$nom[] = $obj->nom_module;
61
					$version[] = $obj->version;
62
					$icone[] = $obj->icone;
63
				}
64
65
				$this->setListeModuleActiver($id_module, $url, $version, $nom, $icone);
66
			}
67
		}
68
69
		/**
70
		 * @param null $systeme
71
		 * recupere la listes des modules ajouter par un autre admin
72
		 * fonction utilisée uniquement dans la config
73
		 */
74
		public function getListeModule($systeme = 0) {
75
			$dbc = App::getDb();
76
77
			$query = $dbc->query("SELECT * FROM module WHERE systeme=".$dbc->quote($systeme));
78
79
			if ((is_array($query)) && (count($query) > 0)) {
80
				$id_module = [];
81
				$url = [];
82
				$nom = [];
83
				$version = [];
84
				$url_telechargement = [];
85
86
				foreach ($query as $obj) {
87
					$id_module[] = $obj->ID_module;
88
					$url[] = $obj->url;
89
					$nom[] = $obj->nom_module;
90
					$version[] = $obj->version;
91
					$url_telechargement[] = $obj->url_telechargement;
92
				}
93
94
				$this->setListeModuleActiver($id_module, $url, $version, $nom, null, $url_telechargement);
95
			}
96
		}
97
98
		/**
99
		 * @param $nom_module
100
		 * @return bool
101
		 * permets de savoir si un module est installé ou non
102
		 */
103
		public static function getModuleInstaller($nom_module) {
104
			$dbc = App::getDb();
105
106
			$query = $dbc->query("SELECT * FROM module WHERE nom_module = ".$dbc->quote($nom_module));
107
108
			if ((is_array($query)) && (count($query) > 0)) {
109
				$installer = 0;
110
111
				foreach ($query as $obj) {
112
					$installer = $obj->installer;
113
				}
114
115
				return $installer;
116
			}
117
		}
118
119
		/**
120
		 * @param $nom_module
121
		 * @return boolean|null
122
		 * return true si le module est activer sinon false
123
		 */
124
		public static function getModuleActiver($nom_module) {
125
			$dbc = App::getDb();
126
127
			$query = $dbc->query("SELECT activer FROM module WHERE nom_module = ".$dbc->quote($nom_module));
128
129
			if ((is_array($query)) && (count($query) > 0)) {
130
				foreach ($query as $obj) {
131
					if ($obj->activer == 1) {
132
						return true;
133
					}
134
					else {
135
						return false;
136
					}
137
				}
138
			}
139
		}
140
141
		private static function getUrlToId($url) {
142
			$dbc = App::getDb();
143
144
			$query = $dbc->select("ID_module")->from("module")->where("url", "=", $dbc->quote($url))->get();
145
146
			if ((is_array($query)) && (count($query) > 0)) {
147
				foreach ($query as $obj) {
148
					return $obj->ID_module;
149
				}
150
			}
151
		}
152
153
154
		//-------------------------- FIN GETTER ----------------------------------------------------------------------------//
155
		
156
		
157
		//-------------------------- SETTER ----------------------------------------------------------------------------//
158
		private function setListeModuleActiver($id_module, $url, $version, $nom, $icone = null, $url_telechargement = null) {
159
			$this->id_module = $id_module;
160
			$this->url = $url;
161
			$this->nom = $nom;
162
			$this->version = $version;
163
			$this->icone = $icone;
164
			$this->url_telechargement = $url_telechargement;
165
		}
166
167
		/**
168
		 * @param $activer
169
		 * @param $url
170
		 * fonction qui permet d'activer || désactiver un module
171
		 */
172
		public static function setActiverDesactiverModule($activer, $url) {
173
			$dbc = App::getDb();
174
175
			$value = array(
176
				"activer" => $activer,
177
				"url" => $url
178
			);
179
180
			$dbc->prepare("UPDATE module SET activer=:activer WHERE url=:url", $value);
181
182
			$nav = new Navigation();
183
184
			if ($activer == 1) {
185
				$nav->setAjoutLien("ID_module", self::getUrlToId($url));
186
			}
187
			else {
188
				$nav->setSupprimerLien("ID_module", self::getUrlToId($url));
189
			}
190
		}
191
		//-------------------------- FIN SETTER ----------------------------------------------------------------------------//
192
	}