sauv_table_id = $sauv_table_id; $this -> sauv_table_nom = $sauv_table_nom; $this -> sauv_table_tables = $sauv_table_tables; $this -> act = $act; } public function verifTables() { global $msg; if (!is_array($this->sauv_table_tables)) { echo ""; exit(); } } public function verifName() { global $msg; //Erreur, si nom de groupe de tables vide if ($this->sauv_table_nom == "") { echo ""; exit(); } $requete="select sauv_table_id from sauv_tables where ( sauv_table_nom='".$this->sauv_table_nom."' and sauv_table_id !='".$this -> sauv_table_id."')"; $resultat=pmb_mysql_query($requete) or die(pmb_mysql_error()); if (pmb_mysql_num_rows($resultat)!=0) { echo ""; exit(); } } //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" : //Si sauv_lieu_id vide alors création if ($this -> sauv_table_id == "") { $this->verifName(); $requete = "insert into sauv_tables (sauv_table_nom) values('')"; pmb_mysql_query($requete) or die(pmb_mysql_error()); $this -> sauv_table_id = pmb_mysql_insert_id(); $first=""; } //Update avec les données reçues $this->verifTables(); $this->verifName(); $requete = "update sauv_tables set sauv_table_nom='".$this -> sauv_table_nom."', sauv_table_tables='".implode(",", $this -> sauv_table_tables)."' where sauv_table_id=".$this -> sauv_table_id; pmb_mysql_query($requete) or die(pmb_mysql_error()); $first=""; break; //Supprimer case "delete" : $requete = "delete from sauv_tables where sauv_table_id=".$this -> sauv_table_id; pmb_mysql_query($requete) or die(pmb_mysql_error()); $this -> sauv_table_id = ""; $first = 0; break; //Annuler case "cancel" : echo ""; exit(); break; case "update_unsaved" : $this->updateUnsaved(); break; //Visualiser default : //Ne rien faire, le numéro de la fiche est déjà dans $this->sauv_lieu_id } return $this -> showForm(); } //Préaparation du formulaire pour affichage public function showForm() { global $form; global $first; global $msg; //Si première connexion if (!$first) { $form = "

".$msg["sauv_tables_sel_or_add"]."

"; } else { if ($this -> act != "show_unsaved") { //Formulaire normal //Si identifiant non vide if ($this -> sauv_table_id) { //Récupération des données de la fiche $requete = "select sauv_table_nom,sauv_table_tables from sauv_tables where sauv_table_id=".$this -> sauv_table_id; $resultat = pmb_mysql_query($requete); if (pmb_mysql_num_rows($resultat) != 0) list ($this -> sauv_table_nom, $this -> sauv_table_tables) = pmb_mysql_fetch_row($resultat); //$form = "".$this -> sauv_table_nom."".$form; $form = str_replace("!!quel_table!!", $this -> sauv_table_nom, $form); $form = str_replace("!!delete!!", "", $form); } else { //Sinon : Nouvelle fiche //$form = "".$msg["sauv_tables_new"]."".$form; $form = str_replace("!!quel_table!!", $msg["sauv_tables_new"], $form); $form = str_replace("!!delete!!", "", $form); $tTablesSelected = array(); } $form = str_replace("!!sauv_table_id!!", $this -> sauv_table_id, $form); $form = str_replace("!!sauv_table_nom!!", $this -> sauv_table_nom, $form); //Liste des tables $tTablesSelected = explode(",", $this -> sauv_table_tables); $requete = "show tables"; $resultat = pmb_mysql_query($requete) or die(pmb_mysql_error()); $tTables_tab = array(); while (list ($table) = pmb_mysql_fetch_row($resultat)) { $tTables_tab[] = $table; } $tables_list = ""; $curCol = 0; $nMaxCol = 3; $tables_list.= ""; for ($i = 0; $i < count($tTables_tab); $i ++) { $tables_list.= ""; $curCol ++; if ($curCol == $nMaxCol) { $tables_list.= "\n"; $curCol = 0; } } for ($i = 1; $i < $nMaxCol - $curCol; $i ++) { $tables_list.= ""; } if ($curCol < $nMaxCol -1) $tables_list.= "\n"; $tables_list.= "
 ".$tTables_tab[$i]."
 
\n"; $form = str_replace("!!tables_list!!", $tables_list, $form); } else { //Tables non sauvegardées //$form = "".$msg["sauv_tables_unsaved_tables"]."\n"; $form = ""; $form.="
\n"; $form.="\n"; $form.="\n"; $form.="\n"; $form.="\n"; //Récupération de la liste $requete = "select sauv_table_id, sauv_table_nom, sauv_table_tables from sauv_tables order by sauv_table_nom"; $resultat = pmb_mysql_query($requete) or die(pmb_mysql_error()); $tTables = ""; while ($res = pmb_mysql_fetch_object($resultat)) { $tTables.= ",".$res -> sauv_table_tables; $group=array(); $group["NOM"]=$res->sauv_table_nom; $group["ID"]=$res->sauv_table_id; $groupList[]=$group; } //Recherche des tables non intégrées dans les groupes $tTablesSelected = explode(",", $tTables); $requete = "show tables"; $resultat = pmb_mysql_query($requete) or die(pmb_mysql_error()); $unsavedTables = array(); while (list ($table) = pmb_mysql_fetch_row($resultat)) { $as=array_search($table, $tTablesSelected); if (( $as!== NULL)&&($as!==false)) { //Do nothing } else { $unsavedTables[] = $table; } } //Affichage des affectations possibles pour chaque table for ($i=0; $i".$unsavedTables[$i]."\n"; } $form.="
".$msg["sauv_tables_unsaved_tables"].""; $form.=$msg["sauv_tables_affect_to_group"]."
".$msg["sauv_tables_dont_affect"]."
"; $form.="   "; $form.="
"; } } return $form; } //Tratitement du retour du formulaire des tables non intégrées dans les groupes public function updateUnsaved() { global $first; //Récupération de la liste $requete = "select sauv_table_id, sauv_table_nom, sauv_table_tables from sauv_tables "; $resultat = pmb_mysql_query($requete) or die(pmb_mysql_error()); $tTables = ""; while ($res = pmb_mysql_fetch_object($resultat)) { $tTables.= ",".$res -> sauv_table_tables; } //Recherche des tables non intégrées dans les groupes $tTablesSelected = explode(",", $tTables); $requete = "show tables"; $resultat = pmb_mysql_query($requete) or die(pmb_mysql_error()); $unsavedTables = array(); while (list ($table) = pmb_mysql_fetch_row($resultat)) { $as=array_search($table, $tTablesSelected); if (( $as!== false)&&($as!==null)) { //Do nothing } else { $unsavedTables[] = $table; } } $n=count($unsavedTables); for ($i=0; $i sauv_table_tables; $tree.= ""; $tree.= " "; if ($linkToForm == true) { $tree.= " sauv_table_id."&first=1\">"; } $tree.= $res -> sauv_table_nom; if ($linkToForm == true) { $tree.= ""; } $tree.= "\n"; } $tree.= ""; //Recherche des tables non intégrées dans les groupes $tTablesSelected = explode(",", $tTables); $requete = "show tables"; $resultat = pmb_mysql_query($requete) or die(pmb_mysql_error()); $unsavedTables = array(); while (list ($table) = pmb_mysql_fetch_row($resultat)) { $as=array_search($table, $tTablesSelected); if (( $as!== false)&&($as!==null)) { //Do nothing } else { $unsavedTables[] = $table; } } if (count($unsavedTables) != 0) { $tree_h.= "
".sprintf($msg["sauv_tables_warning_unsaved"],count($unsavedTables))."
"; $tree_h1.= " ".$msg["sauv_tables_unsaved_tables"]."\n"; } //Nouveau groupe if ($linkToForm) { // $tree.= "".$msg["sauv_tables_add_group"].""; $tree.="
"; } $tree_h1=str_replace('!!tree_h!!',$tree_h,$tree_h1); return $tree_h1.$tree; } } ?>