3 class mw_config_plugins extends mw_controller{
9 if(($this->plugins = $env->plugins("DESC")) === false) return "impossible de lire la liste des plugins";
15 if($this->plugins !== false){
18 foreach($this->plugins as $plugin_name => $plugin){
19 if(isset($_POST["priorite_".$plugin_name])){
20 $this->plugins[$plugin_name]["priorite"] = $_POST["priorite_".$plugin_name];
21 if(!preg_match("/^[0-9]+(\.[0-9]+)?$/", $_POST["priorite_".$plugin_name])){
22 $env->message("les priorités des plugins doivent être des nombres");
27 else $this->plugins[$plugin_name]["priorite"] = 0;
30 foreach($this->plugins as $plugin_name => $plugin){
32 "installed" => $this->plugins[$plugin_name]["installed"],
33 "enabled" => $this->plugins[$plugin_name]["enabled"],
34 "priorite" => $this->plugins[$plugin_name]["priorite"]
36 if(!$env->set_plugin_data($plugin_name, $plugin_data)){
37 $env->erreur("impossible de mettre à jour la priorité du plugin ".$plugin_name);
44 $env->url("config/plugins/index"),
45 "les priorités des plugins ont été enregistrées"
50 $env->set_out("plugins", $this->plugins);
52 else $env->erreur("impossible de lire la liste des plugins");
57 $plugin_name = $_GET[$env->param("id")];
58 if(isset($this->plugins[$plugin_name])){
59 $impl = $this->plugins[$plugin_name]["impl"];
60 $res = $impl->install($env);
65 "priorite" => isset($this->plugins[$plugin_name]["priorite"]) ? $this->plugins[$plugin_name]["priorite"] : 0
67 if($env->set_plugin_data($plugin_name, $plugin_data)){
69 $env->url("config/plugins/index"),
70 "le plugin a été installé"
73 else $env->erreur("impossible de mettre à jour le statut du plugin ".$plugin_name);
75 else $env->erreur("erreur lors de l'installation du plugin ".$plugin_name."<br>".$res);
77 else $env->erreur("impossible de trouver le plugin ".$plugin_name);
82 $plugin_name = $_GET[$env->param("id")];
83 if(isset($this->plugins[$plugin_name])){
84 $impl = $this->plugins[$plugin_name]["impl"];
85 $res= $impl->uninstall($env);
90 "priorite" => isset($this->plugins[$plugin_name]["priorite"]) ? $this->plugins[$plugin_name]["priorite"] : 0
92 if($env->set_plugin_data($plugin_name, $plugin_data)){
94 $env->url("config/plugins/index"),
95 "le plugin a été désinstallé"
98 else $env->erreur("impossible de mettre à jour le statut du plugin ".$plugin_name);
100 else $env->erreur("erreur lors de la désinstallation du plugin ".$plugin_name."<br>".$res);
102 else $env->erreur("impossible de trouver le plugin ".$plugin_name);
107 $plugin_name = $_GET[$env->param("id")];
108 if(isset($this->plugins[$plugin_name])){
109 if($this->plugins[$plugin_name]["installed"]){
110 if(!$this->plugins[$plugin_name]["enabled"]){
111 $impl = $this->plugins[$plugin_name]["impl"];
112 $res = $impl->enable($env);
114 $plugin_data = array(
117 "priorite" => isset($this->plugins[$plugin_name]["priorite"]) ? $this->plugins[$plugin_name]["priorite"] : 0
119 if($env->set_plugin_data($plugin_name, $plugin_data)){
121 $env->url("config/plugins/index"),
122 "le plugin a été activé"
125 else $env->erreur("impossible de mettre à jour le statut du plugin ".$plugin_name);
127 else $env->erreur("erreur lors de l'activation du plugin ".$plugin_name."<br>".$res);
129 else $env->erreur("le plugin ".$plugin_name." est déjà actif");
131 else $env->erreur("le plugin ".$plugin_name." n'est pas installé");
133 else $env->erreur("impossible de trouver le plugin ".$plugin_name);
138 $plugin_name = $_GET[$env->param("id")];
139 if(isset($this->plugins[$plugin_name])){
140 if($this->plugins[$plugin_name]["installed"]){
141 if($this->plugins[$plugin_name]["enabled"]){
142 $impl = $this->plugins[$plugin_name]["impl"];
143 $res = $impl->disable($env);
145 $plugin_data = array(
148 "priorite" => isset($this->plugins[$plugin_name]["priorite"]) ? $this->plugins[$plugin_name]["priorite"] : 0
150 if($env->set_plugin_data($plugin_name, $plugin_data)){
152 $env->url("config/plugins/index"),
153 "le plugin a été désactivé"
156 else $env->erreur("impossible de mettre à jour le statut du plugin ".$plugin_name);
158 else $env->erreur("erreur lors de la désactivation du plugin ".$plugin_name."<br>".$res);
160 else $env->erreur("le plugin ".$plugin_name." est déjà inactif");
162 else $env->erreur("le plugin ".$plugin_name." n'est pas installé");
164 else $env->erreur("impossible de trouver le plugin ".$plugin_name);