plugins = $env->plugins("DESC")) === false) return "impossible de lire la liste des plugins"; return true; } function index(&$env){ if($this->plugins !== false){ if($_POST){ $OK = true; foreach($this->plugins as $plugin_name => $plugin){ if(isset($_POST["priorite_".$plugin_name])){ $this->plugins[$plugin_name]["priorite"] = $_POST["priorite_".$plugin_name]; if(!preg_match("/^[0-9]+(\.[0-9]+)?$/", $_POST["priorite_".$plugin_name])){ $env->message("les priorités des plugins doivent être des nombres"); $OK = false; break; } } else $this->plugins[$plugin_name]["priorite"] = 0; } if($OK){ foreach($this->plugins as $plugin_name => $plugin){ $plugin_data = array( "installed" => $this->plugins[$plugin_name]["installed"], "enabled" => $this->plugins[$plugin_name]["enabled"], "priorite" => $this->plugins[$plugin_name]["priorite"] ); if(!$env->set_plugin_data($plugin_name, $plugin_data)){ $env->erreur("impossible de mettre à jour la priorité du plugin ".$plugin_name); $OK = false; break; } } if($OK){ $env->redirect( $env->url("admin/plugins/index"), "les priorités des plugins ont été enregistrées" ); } } } $env->set_out("plugins", $this->plugins); } else $env->erreur("impossible de lire la liste des plugins"); } function install(&$env){ $plugin_name = $_GET[$env->param("id")]; if(isset($this->plugins[$plugin_name])){ $impl = $this->plugins[$plugin_name]["impl"]; $res = $impl->install($env); if($res === true){ $plugin_data = array( "installed" => true, "enabled" => false, "priorite" => isset($this->plugins[$plugin_name]["priorite"]) ? $this->plugins[$plugin_name]["priorite"] : 0 ); if($env->set_plugin_data($plugin_name, $plugin_data)){ $env->redirect( $env->url("admin/plugins/index"), "le plugin a été installé" ); } else $env->erreur("impossible de mettre à jour le statut du plugin ".$plugin_name); } else $env->erreur("erreur lors de l'installation du plugin ".$plugin_name."
".$res); } else $env->erreur("impossible de trouver le plugin ".$plugin_name); } function uninstall(&$env){ $plugin_name = $_GET[$env->param("id")]; if(isset($this->plugins[$plugin_name])){ $impl = $this->plugins[$plugin_name]["impl"]; $res= $impl->uninstall($env); if($res === true){ $plugin_data = array( "installed" => false, "enabled" => false, "priorite" => isset($this->plugins[$plugin_name]["priorite"]) ? $this->plugins[$plugin_name]["priorite"] : 0 ); if($env->set_plugin_data($plugin_name, $plugin_data)){ $env->redirect( $env->url("admin/plugins/index"), "le plugin a été désinstallé" ); } else $env->erreur("impossible de mettre à jour le statut du plugin ".$plugin_name); } else $env->erreur("erreur lors de la désinstallation du plugin ".$plugin_name."
".$res); } else $env->erreur("impossible de trouver le plugin ".$plugin_name); } function enable(&$env){ $plugin_name = $_GET[$env->param("id")]; if(isset($this->plugins[$plugin_name])){ if($this->plugins[$plugin_name]["installed"]){ if(!$this->plugins[$plugin_name]["enabled"]){ $impl = $this->plugins[$plugin_name]["impl"]; $res = $impl->enable($env); if($res === true){ $plugin_data = array( "installed" => true, "enabled" => true, "priorite" => isset($this->plugins[$plugin_name]["priorite"]) ? $this->plugins[$plugin_name]["priorite"] : 0 ); if($env->set_plugin_data($plugin_name, $plugin_data)){ $env->redirect( $env->url("admin/plugins/index"), "le plugin a été activé" ); } else $env->erreur("impossible de mettre à jour le statut du plugin ".$plugin_name); } else $env->erreur("erreur lors de l'activation du plugin ".$plugin_name."
".$res); } else $env->erreur("le plugin ".$plugin_name." est déjà actif"); } else $env->erreur("le plugin ".$plugin_name." n'est pas installé"); } else $env->erreur("impossible de trouver le plugin ".$plugin_name); } function disable(&$env){ $plugin_name = $_GET[$env->param("id")]; if(isset($this->plugins[$plugin_name])){ if($this->plugins[$plugin_name]["installed"]){ if($this->plugins[$plugin_name]["enabled"]){ $impl = $this->plugins[$plugin_name]["impl"]; $res = $impl->disable($env); if($res === true){ $plugin_data = array( "installed" => true, "enabled" => false, "priorite" => isset($this->plugins[$plugin_name]["priorite"]) ? $this->plugins[$plugin_name]["priorite"] : 0 ); if($env->set_plugin_data($plugin_name, $plugin_data)){ $env->redirect( $env->url("admin/plugins/index"), "le plugin a été désactivé" ); } else $env->erreur("impossible de mettre à jour le statut du plugin ".$plugin_name); } else $env->erreur("erreur lors de la désactivation du plugin ".$plugin_name."
".$res); } else $env->erreur("le plugin ".$plugin_name." est déjà inactif"); } else $env->erreur("le plugin ".$plugin_name." n'est pas installé"); } else $env->erreur("impossible de trouver le plugin ".$plugin_name); } } ?>