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);
}
}
?>