diff options
Diffstat (limited to 'final/app/include/ludo/fonctions.inc.php')
-rw-r--r-- | final/app/include/ludo/fonctions.inc.php | 255 |
1 files changed, 250 insertions, 5 deletions
diff --git a/final/app/include/ludo/fonctions.inc.php b/final/app/include/ludo/fonctions.inc.php index 9124ac5..3361827 100644 --- a/final/app/include/ludo/fonctions.inc.php +++ b/final/app/include/ludo/fonctions.inc.php @@ -125,9 +125,9 @@ function generate_html_array_personnes_crenaux($idR) } else { - return "Impossible d'afficher le tableau de la réunion : Erreur de base de donnée\n"; + return "Impossible d'afficher le tableau de la r�union : Erreur de base de donn�e\n"; } - // DEBUG : tests en forçant les variables + // DEBUG : tests en for�ant les variables //$estAnnulee=true; //~ echo "DEBUG : \nmontrerDispoR==$montrerDispoR\nestAnnulee==$estAnnulee\nestFixee==$estFixee\nis_admin==$is_admin\n"; @@ -264,7 +264,7 @@ function generate_html_array_personnes_crenaux($idR) if ( $is_admin && ! $estFixee && ! $estAnnulee ) { echo " <td> </td>\n"; } echo " </tr>\n"; } - // Si $is_admin, on met une ligne avec bouton envoyer pour les mails et icône ajout de personnes + // Si $is_admin, on met une ligne avec bouton envoyer pour les mails et ic�ne ajout de personnes if ( $is_admin ) { echo " <tr>\n <td>\n"; @@ -524,7 +524,7 @@ function html_generate_MySQLTableSuppr($table, $key_name, $columns='*', $where_c { return "Erreur de génération de la table $table\n"; } - else + elseif ( mysql_num_rows($result) > 0 ) { $row = mysql_fetch_assoc($result); // Affichage des entêtes du tableau et du pied de tableau @@ -539,10 +539,255 @@ function html_generate_MySQLTableSuppr($table, $key_name, $columns='*', $where_c $num=0; do { if ( isset($row[$key_name]) ) { $num=$row[$key_name]; } else { $num=''; } - echo "<tr>\n<td><input name=\"${key_name}_${num}\" type=\"checkbox\" /></td>\n<td>" . implode("</td>\n<td>",$row) . "</td>\n</tr>\n"; + echo "<tr>\n<td><input name=\"id[${num}]\" type=\"checkbox\" /></td>\n<td>" . implode("</td>\n<td>",$row) . "</td>\n</tr>\n"; } while ( $row = mysql_fetch_assoc($result) ); echo "</tbody>\n</table>\n</form>\n"; } } +function delete_from_awor_liste() +{ + require_once('include/connect.inc.php'); + if ( isset($_POST['id']) && is_array($_POST['id']) ) + { + if ( ! base_delete_awor_liste( 'idL', array_keys($_POST['id'] ) ) ) + { + echo "ROLLBACK<br />\n"; + mysql_query("ROLLBACK"); + } + } +} + +function delete_from_awor_fichier() +{ + require_once('include/connect.inc.php'); + if ( isset($_POST['id']) && is_array($_POST['id']) ) + { + if ( ! base_delete_awor_fichier( 'idFic', array_keys($_POST['id'] ) ) ) + { + echo "ROLLBACK<br />\n"; + mysql_query("ROLLBACK"); + } + } +} + +function delete_from_awor_reunion() +{ + require_once('include/connect.inc.php'); + if ( isset($_POST['id']) && is_array($_POST['id']) ) + { + if ( ! base_delete_awor_reunion( array_keys($_POST['id']) ) ) + { + echo "ROLLBACK<br />\n"; + mysql_query("ROLLBACK"); + } + } +} + +function delete_from_awor_personne() +{ + require_once('include/connect.inc.php'); + if ( isset($_POST['id']) && is_array($_POST['id']) ) + { + if ( ! base_delete_awor_personne( array_keys($_POST['id']) ) ) + { + echo "ROLLBACK<br />\n"; + mysql_query("ROLLBACK"); + } + } +} + + +function base_delete_awor_reunion($idR_array) +{ + echo "function base_delete_awor_reunion($idR_array)<br />\n"; + + // Suppression des créneaux associés + $idR_implode=implode(',', $idR_array); + $query = "SELECT idC FROM AWOR_Creneau WHERE idR IN ($idR_implode);"; + $idC_array=array(); + if ( $result = @mysql_query($query) ) + { + while ( list($idC) = mysql_fetch_array($result) ) { $idC_array[]=$idC; } + } + if ( !base_delete_awor_creneau( $idC_array ) ) { return false; } + + // Suppression des listes associées + $idR_Interne_implode=implode("','interne_idR_", $idR_array); + if ( $idR_Interne_implode != '' ) { $idR_Interne_implode = "'interne_idR_" . $idR_Interne_implode . "'"; } + $query = "SELECT idL FROM AWOR_Liste WHERE libelleL IN ($idR_Interne_implode);"; + //~ echo "$query<br />\n"; + $idL_array=array(); + if ( $result = @mysql_query($query) ) + { + while ( list($idL) = mysql_fetch_array($result) ) { $idL_array[]=$idL; } + } + //~ print_r($idL_array); + if ( !base_delete_awor_liste('idL', $idL_array) ) { return false; } + + + if ( !base_delete_awor_fichier('idR', $idR_array) ) { return false; } + if ( !base_delete_awor_repondre('idR', $idR_array) ) { return false; } + + $idR_implode=implode(',', $idR_array); + if ( $idR_implode!= '' ) + { + $query="DELETE FROM AWOR_Reunion WHERE idR IN ($idR_implode);"; + echo "$query<br />\n"; + return ( mysql_query($query) !== false ) ; + } + return true; +} + + +function base_delete_awor_personne($idP_array) +{ + echo "function base_delete_awor_personne($idP_array)<br />\n"; + + // Suppression des r�unions organis�es par les personnes concern�es + $idP_implode=implode(',', $idP_array); + $query = "SELECT DISTINCT idR FROM AWOR_Reunion WHERE idP_Orga IN ($idP_implode);"; + $idR_array=array(); + if ( $result = @mysql_query($query) ) + { + while ( list($idR) = mysql_fetch_array($result) ) { $idR_array[]=$idR; } + } + + // Suppr Choisir, Repondre + if ( !base_delete_awor_reunion($idR_array) ) { return false; } + + + // Suppression des personnes dans les listes les contenant + if ( !base_delete_awor_appartenir('idP', $idP_array) ) { return false; } + + // Suppression des listes privées appartenant aux personnes + // TODO : voir pour les listes publiques appartenant aux personnes + if ( !base_delete_awor_liste('idP_Createur', $idP_array) ) { return false; } + + // Suppression effective des personnes + $idP_implode=implode(',', $idP_array); + if ( $idP_implode!= '' ) + { + $query="DELETE FROM AWOR_Personne WHERE idP IN ($idP_implode);"; + echo "$query<br />\n"; + return ( mysql_query($query) !== false ) ; + } +} + +function base_delete_awor_liste($idName, $id_array) +{ + // idName = ( idL | idP_Createur ) + echo "function base_delete_awor_liste($idName, $id_array)<br />\n"; + // Suppression du contenu des listes + if ( !base_delete_awor_appartenir('idL', $id_array) ) { return false; } + + // Suppression des listes + $id_implode=implode(',', $id_array); + if ( $id_implode!= '' ) + { + $query="DELETE FROM AWOR_Liste WHERE $idName IN ($id_implode);"; + echo "$query<br />\n"; + mysql_query($query); + } + return true; +} + +function base_delete_awor_fichier($idName, $id_array) +{ + // $idName = (idFic | idR) + echo "function base_delete_awor_fichier($idName, $id_array)<br />\n"; + require("include/ludo/config.inc.php"); + + $id_implode=implode(',', $id_array); + + // Supression physique + if ( isset($CONFIG['UPLOAD']['relative_path']) ) { $basepath=$CONFIG['UPLOAD']['relative_path']; } else { $basepath='fichiers/';} + $basepath=$_SERVER['DOCUMENT_ROOT'].'/'.$basepath; + + $requete = "SELECT nomFic FROM AWOR_Fichier WHERE $idName IN ($id_implode);"; + echo "$requete<br />\n"; + if( ( $resultat = mysql_query($requete) ) ) + { + while( list($fichier) = mysql_fetch_array($resultat)) + { + echo "unlink($basepath.$fichier);<br />\n"; + unlink($basepath.$fichier); + } + } + // Suppression dans la base + if ( $id_implode!= '' ) + { + $query="DELETE FROM AWOR_Fichier WHERE $idName IN ($id_implode);"; + echo "$query<br />\n"; + return ( mysql_query($query) !== false ) ; + } + return true; +} + + +function base_delete_awor_choisir($idName, $id_array) +{ + // idName = (idP|idR) + echo "function base_delete_awor_choisir($idName, $id_array)<br />\n"; + $id_implode=implode(',', $id_array); + if ( $id_implode!= '' ) + { + $query="DELETE FROM AWOR_Choisir WHERE $idName IN ($id_implode);"; + echo "$query<br />\n"; + return ( mysql_query($query) !== false ) ; + } + return true; +} + +function base_delete_awor_repondre($idName, $id_array) +{ + echo "function base_delete_awor_repondre($idName, $id_array)<br />\n"; + // idName=(idR|idP) + + // Suppression des Reponses + $id_implode=implode(',', $id_array); + if ( $id_implode!= '' ) + { + $query="DELETE FROM AWOR_Repondre WHERE $idName IN ($id_implode);"; + echo "$query<br />\n"; + return ( mysql_query($query) !== false ) ; + } + return true; +} + +function base_delete_awor_appartenir($idName, $id_array) +{ + // $idName = (idL | idP) + echo "function base_delete_awor_appartenir($idName, $id_array)<br />\n"; + // Suppression dans la base + $idL_implode=implode(',', $id_array); + if ( $idL_implode!= '' ) + { + $query="DELETE FROM AWOR_Appartenir WHERE $idName IN ($idL_implode);"; + echo "$query<br />\n"; + return ( mysql_query($query) !== false ) ; + } + return true; +} + + +function base_delete_awor_creneau($idC_array) +{ + echo "function base_delete_awor_creneau($idC_array)<br />\n"; + // Suppression des réponses aux créneaux + if ( ! base_delete_awor_choisir('idC', $idC_array) ) { return false; } + + // Suppression des créneaux + $idC_implode=implode(',', $idC_array); + if ( $idC_implode!= '' ) + { + $query="DELETE FROM AWOR_Creneau WHERE idC IN ($idC_implode);"; + echo "$query<br />\n"; + return ( mysql_query($query) !== false ) ; + } + return true; +} + +// TODO : suppression des listes vides + ?> |