sauv_sauvegarde_id = $sauv_sauvegarde_id; $this-> sauv_sauvegarde_nom = $sauv_sauvegarde_nom; $this-> sauv_sauvegarde_file_prefix = $sauv_sauvegarde_file_prefix; $this-> sauv_sauvegarde_tables = $sauv_sauvegarde_tables; $this-> sauv_sauvegarde_lieux = $sauv_sauvegarde_lieux; $this-> sauv_sauvegarde_users = $sauv_sauvegarde_users ; $this-> sauv_sauvegarde_compress = $sauv_sauvegarde_compress; $this-> sauv_sauvegarde_compress_method = $sauv_sauvegarde_compress_method; $this-> sauv_sauvegarde_zip_command = $sauv_sauvegarde_zip_command; $this-> sauv_sauvegarde_unzip_command = $sauv_sauvegarde_unzip_command; $this-> sauv_sauvegarde_zip_ext = $sauv_sauvegarde_zip_ext; $this-> sauv_sauvegarde_crypt = $sauv_sauvegarde_crypt; $this-> sauv_sauvegarde_key1 = $sauv_sauvegarde_key1; $this-> sauv_sauvegarde_key2 = $sauv_sauvegarde_key2; $this-> sauv_sauvegarde_erase_keys = $sauv_sauvegarde_erase_keys; $this-> act = $act; } public function verifName() { global $msg; $requete="select sauv_sauvegarde_id from sauv_sauvegardes where sauv_sauvegarde_nom='".$this->sauv_sauvegarde_nom."'"; $resultat=pmb_mysql_query($requete) or die(pmb_mysql_error()); if (pmb_mysql_num_rows($resultat)!=0) { echo ""; exit(); } } public function verifGeneral() { global $msg; $msg_= ""; if (!is_array($this->sauv_sauvegarde_tables)) { $msg_=$msg["sauv_sauvegardes_valid_form_error_one_group"]; } else { if (!is_array($this->sauv_sauvegarde_users)) { $msg_=$msg["sauv_sauvegardes_valid_form_error_one_user"]; } } if ($msg_!="") { echo ""; exit(); } } public function makeUpdateQuery() { $r_tables=@implode(",",$this->sauv_sauvegarde_tables); $r_lieux=@implode(",",$this->sauv_sauvegarde_lieux); $r_users=@implode(",",$this->sauv_sauvegarde_users); $r_compress_command=$this->sauv_sauvegarde_compress_method; if ($this->sauv_sauvegarde_compress_method=="external") { $r_compress_command.=":".$this->sauv_sauvegarde_zip_command.":".$this->sauv_sauvegarde_unzip_command.":".$this->sauv_sauvegarde_zip_ext; } else { $r_compress_command.="::"; } if ($this->sauv_sauvegarde_key1!="") $r_key1=md5($this->sauv_sauvegarde_key1); if ($this->sauv_sauvegarde_key2!="") $r_key2=md5($this->sauv_sauvegarde_key2); $requete="update sauv_sauvegardes set "; $requete.="sauv_sauvegarde_nom='".$this->sauv_sauvegarde_nom."'"; $requete.=",sauv_sauvegarde_file_prefix='".$this->sauv_sauvegarde_file_prefix."'"; $requete.=",sauv_sauvegarde_tables='".$r_tables."'"; $requete.=",sauv_sauvegarde_lieux='".$r_lieux."'"; $requete.=",sauv_sauvegarde_users='".$r_users."'"; $requete.=",sauv_sauvegarde_compress=".$this->sauv_sauvegarde_compress; $requete.=",sauv_sauvegarde_compress_command='".$r_compress_command."'"; $requete.=",sauv_sauvegarde_crypt=".$this->sauv_sauvegarde_crypt; if ($this->sauv_sauvegarde_erase_keys==1) $requete.=",sauv_sauvegarde_key1='".$r_key1."'"; if ($this->sauv_sauvegarde_erase_keys==1) $requete.=",sauv_sauvegarde_key2='".$r_key2."'"; $requete.=" where sauv_sauvegarde_id=".$this->sauv_sauvegarde_id; return $requete; } //Traitement de l'action reçue du formulaire (à appeller juste après l'instanciation de la classe) //Renvoie le formulaire à afficher public function proceed() { global $first; switch ($this -> act) { //Enregistrer case "update" : $this->verifGeneral(); //Si sauv_sauvegarde_id vide alors création if ($this -> sauv_sauvegarde_id == "") { $this->verifName(); $requete = "insert into sauv_sauvegardes (sauv_sauvegarde_nom) values('')"; pmb_mysql_query($requete) or die(pmb_mysql_error()); $this -> sauv_sauvegarde_id = pmb_mysql_insert_id(); $first=""; $this->sauv_sauvegarde_erase_keys=1; } //Update avec les données reçues $requete = $this->makeUpdateQuery(); pmb_mysql_query($requete) or die(pmb_mysql_error()); $first=""; break; //Supprimer case "delete" : $requete = "delete from sauv_sauvegardes where sauv_sauvegarde_id=".$this -> sauv_sauvegarde_id; pmb_mysql_query($requete) or die(pmb_mysql_error()); $this -> sauv_sauvegarde_id = ""; $first = 0; break; //Annuler case "cancel" : echo ""; exit(); break; //Visualiser default : //Ne rien faire, le numéro de la fiche est déjà dans $this->sauv_lieu_id } return $this -> showForm(); } public function showSelectList($values,$table,$id_field,$name_field,$select_name) { $select="\n"; return $select; } //Préaparation du formulaire pour affichage public function showForm() { global $form; global $first; global $msg; //Si première connexion if (!$first) { $form = "

".$msg["sauv_sauvegardes_sel_or_add"]."

"; } else { //Si identifiant non vide if ($this -> sauv_sauvegarde_id) { //Récupération des données de la fiche $requete="select sauv_sauvegarde_nom,sauv_sauvegarde_file_prefix,sauv_sauvegarde_tables,sauv_sauvegarde_lieux,sauv_sauvegarde_users,sauv_sauvegarde_compress,sauv_sauvegarde_compress_command,sauv_sauvegarde_crypt,sauv_sauvegarde_key1,sauv_sauvegarde_key2 from sauv_sauvegardes where sauv_sauvegarde_id=".$this -> sauv_sauvegarde_id; $resultat = pmb_mysql_query($requete); if (pmb_mysql_num_rows($resultat) != 0) $r = pmb_mysql_fetch_object($resultat); $form = str_replace("!!quel_proc!!", $r -> sauv_sauvegarde_nom, $form); $form = str_replace("!!delete!!", "", $form); } else { //Sinon : Nouvelle fiche $form = str_replace("!!quel_proc!!", $msg["sauv_sauvegardes_new"], $form); $form = str_replace("!!delete!!", "", $form); $r = new stdClass(); $r->sauv_sauvegarde_nom = ''; $r->sauv_sauvegarde_file_prefix = ''; $r->sauv_sauvegarde_tables = ''; $r->sauv_sauvegarde_lieux = ''; $r->sauv_sauvegarde_users = ''; $r->sauv_sauvegarde_compress = ''; $r->sauv_sauvegarde_compress_command = ''; $r->sauv_sauvegarde_crypt = ''; $r->sauv_sauvegarde_key1 = ''; $r->sauv_sauvegarde_key2 = ''; } $form = str_replace("!!sauv_sauvegarde_id!!", $this -> sauv_sauvegarde_id, $form); $form = str_replace("!!sauv_sauvegarde_nom!!", $r -> sauv_sauvegarde_nom, $form); $form = str_replace("!!sauv_sauvegarde_file_prefix!!", $r->sauv_sauvegarde_file_prefix, $form); $form = str_replace("!!sauv_sauvegarde_tables!!", $this->showSelectList($r->sauv_sauvegarde_tables,"sauv_tables","sauv_table_id","sauv_table_nom","sauv_sauvegarde_tables"), $form); $form = str_replace("!!sauv_sauvegarde_lieux!!", $this->showSelectList($r->sauv_sauvegarde_lieux,"sauv_lieux","sauv_lieu_id","sauv_lieu_nom","sauv_sauvegarde_lieux"), $form); $form = str_replace("!!sauv_sauvegarde_users!!", $this->showSelectList($r->sauv_sauvegarde_users,"users","userid","username","sauv_sauvegarde_users"), $form); if ($r->sauv_sauvegarde_compress==1) { $form=str_replace("!!checked_compress_yes!!","checked",$form); $form=str_replace("!!checked_compress_no!!","",$form); } else { $form=str_replace("!!checked_compress_no!!","checked",$form); $form=str_replace("!!checked_compress_yes!!","",$form); } if ($r->sauv_sauvegarde_crypt==1) { $form=str_replace("!!checked_crypt_yes!!","checked",$form); $form=str_replace("!!checked_crypt_no!!","",$form); } else { $form=str_replace("!!checked_crypt_no!!","checked",$form); $form=str_replace("!!checked_crypt_yes!!","",$form); } $values=array("internal","external"); $libs=array($msg["sauv_sauvegardes_compr_bz2"],$msg["sauv_sauvegardes_compr_externe"]); if ($r->sauv_sauvegarde_compress_command=="") { $compress_command=array('', '', '', ''); $compression_method="internal"; } else { $compress_command=explode(":",$r->sauv_sauvegarde_compress_command); $compression_method=$compress_command[0]; } $select_method="\n"; $form=str_replace("!!sauv_sauvegarde_compress_method!!",$select_method,$form); $form=str_replace("!!sauv_sauvegarde_zip_command!!",$compress_command[1],$form); $form=str_replace("!!sauv_sauvegarde_unzip_command!!",$compress_command[2],$form); $form=str_replace("!!sauv_sauvegarde_zip_ext!!",$compress_command[3],$form); $form = str_replace("!!sauv_sauvegarde_crypt!!", $r -> sauv_sauvegarde_crypt, $form); if (($r->sauv_sauvegarde_key1!="")||($r->sauv_sauvegarde_key2!="")) { $form=str_replace("!!sauv_sauvegarde_erase_keys!!","  ".$msg["sauv_sauvegardes_dont_erase_keys"]."
 ".$msg["sauv_sauvegardes_erase_keys"]."\n",$form); $form = str_replace("!!crypt_msg!!",$msg["sauv_sauvegardes_erase_msg_keys_exists"],$form); } else { $form=str_replace("!!sauv_sauvegarde_erase_keys!!","",$form); $form = str_replace("!!crypt_msg!!",$msg["sauv_sauvegardes_erase_msg_keys_not_exists"],$form); } } return $form; } //Affichage de la liste des lieux existants dans la base //linkToForm : true = rend la liste interactive avec le formulaire public function showTree($linkToForm = true) { global $dbh; global $msg; $tree = "
\n"; $tree.= "\n"; } $tree.= "
\n"; //Récupération de la liste $requete = "select sauv_sauvegarde_id, sauv_sauvegarde_nom from sauv_sauvegardes order by sauv_sauvegarde_nom"; $resultat = pmb_mysql_query($requete, $dbh) or die(pmb_mysql_error()); while ($res = pmb_mysql_fetch_object($resultat)) { $tree.= "
"; $tree.= " "; if ($linkToForm == true) { $tree.= " sauv_sauvegarde_id."&first=1\">"; } $tree.= $res -> sauv_sauvegarde_nom; if ($linkToForm == true) { $tree.= ""; } $tree.= "
"; //Nouveau lieu if ($linkToForm) { $tree.="
"; } return $tree; } } ?>