var $config;
var $bdd;
var $error;
- var $DO_SETUP;
+ var $DO_INSTALL;
- function mw_app($path_file, $DO_SETUP = false){
- $this->DO_SETUP = $DO_SETUP;
+ function mw_app($path_file, $DO_INSTALL = false){
+ $this->DO_INSTALL = $DO_INSTALL;
$this->path_file = $path_file;
$this->pathes = array();
$this->config_file = "";
if(!$this->init_config()) return $this->get_error();
if(!$this->init_env()) return $this->get_error();
if(!$this->config_file){
- if($this->DO_SETUP){
- $this->setup();
+ if($this->DO_INSTALL){
+ $this->install();
exit;
}
return $this->get_error();
}
$env = $this->env();
- if(!$env->version("mtweb")){
- $this->error("impossible de lire la version du code");
- return $this->get_error();
- }
- $data = $env->data();
- if($data->version("mtweb") != $env->version("mtweb")){
+ if($env->data_upgrade_required()){
$this->upgrade();
exit;
}
}
}
else{
- if(!$this->DO_SETUP){
+ if(!$this->DO_INSTALL){
$this->error("fichier config.php manquant");
return false;
}
$env->load_versions();
$env->load_config($this->bdd, $this->config);
$env->init();
+ $env->init_data_upgrades();
return true;
}
return true;
}
- function display(){
+ function run_mod($mod_name, $valid_role = true){
$env = $this->env();
- if($env->etat_is_valid()){
- $template = $env->get_template();
- $layout = $env->init_layout();
- $template->render_layout($layout);
+ $etat = false;
+ if(isset($_GET[$env->param("e")])){
+ $etat = $env->valid_etat($_GET[$env->param("e")]);
+ if(!$etat || ($etat["mod"] != $mod_name)){
+ $etat = false;
+ }
+ }
+ if(!$etat){
+ $etat = $env->valid_etat($mod_name);
}
+ if(!$etat) return false;
+ $env->run($etat, array(), $valid_role);
+ return true;
}
- function setup(){
- $env = $this->env();
- $etat = isset($_GET[$env->param("e")]) ? $_GET[$env->param("e")] : "install";
- $env->run($etat, array(), false);
- $this->display();
+ function install(){
+ if($this->run_mod("install", false)){
+ $this->display();
+ }
}
function upgrade(){
- debug("la base de données doit être mise à jour");
+ if($this->run_mod("upgrade", false)){
+ $this->display();
+ }
+ }
+
+ function display(){
+ $env = $this->env();
+ if($env->etat_is_valid()){
+ $template = $env->get_template();
+ $layout = $env->init_layout();
+ $template->render_layout($layout);
+ }
}
function error($content){