security_check(); if ($resultat_session == 'c') { header("Location: ../utilisateurs/mon_compte.php?change_mdp=yes"); die(); } else if ($resultat_session == '0') { header("Location: ../logout.php?auto=1"); die(); } $sql="SELECT 1=1 FROM droits WHERE id='/classes/supprimer_periode.php';"; $test=mysqli_query($GLOBALS["mysqli"], $sql); if(mysqli_num_rows($test)==0) { $sql="INSERT INTO droits SET id='/classes/supprimer_periode.php', administrateur='V', professeur='F', cpe='F', scolarite='F', eleve='F', responsable='F', secours='F', autre='F', description='Classes: Supprimer des périodes', statut='';"; $insert=mysqli_query($GLOBALS["mysqli"], $sql); } if (!checkAccess()) { header("Location: ../logout.php?auto=1"); die(); } $id_classe=isset($_POST['id_classe']) ? $_POST['id_classe'] : (isset($_GET['id_classe']) ? $_GET['id_classe'] : NULL); $suppr_periode=isset($_POST['suppr_periode']) ? $_POST['suppr_periode'] : NULL; if(!isset($id_classe)) { header("Location: index.php?msg=Aucun identifiant de classe n'a été proposé"); die(); } $call_data = mysqli_query($GLOBALS["mysqli"], "SELECT classe FROM classes WHERE id = '$id_classe'"); $classe = old_mysql_result($call_data, 0, "classe"); $periode_query = mysqli_query($GLOBALS["mysqli"], "SELECT * FROM periodes WHERE id_classe = '$id_classe'"); $test_periode = mysqli_num_rows($periode_query) ; include "../lib/periodes.inc.php"; // ================================= // AJOUT: boireaus $chaine_options_classes=""; $sql="SELECT id, classe FROM classes ORDER BY classe"; $res_class_tmp=mysqli_query($GLOBALS["mysqli"], $sql); if(mysqli_num_rows($res_class_tmp)>0){ $id_class_prec=0; $id_class_suiv=0; $temoin_tmp=0; $cpt_classe=0; $num_classe=-1; while($lig_class_tmp=mysqli_fetch_object($res_class_tmp)){ if($lig_class_tmp->id==$id_classe){ // Index de la classe dans les \n"; $temoin_tmp=1; if($lig_class_tmp=mysqli_fetch_object($res_class_tmp)){ $chaine_options_classes.="\n"; $id_class_suiv=$lig_class_tmp->id; } else{ $id_class_suiv=0; } } else { $chaine_options_classes.="\n"; } if($temoin_tmp==0){ $id_class_prec=$lig_class_tmp->id; } $cpt_classe++; } } // ================================= $themessage = 'Des informations ont été modifiées. Voulez-vous vraiment quitter sans enregistrer ?'; //**************** EN-TETE ***************** $titre_page = "Gestion des classes - Ajout de périodes"; require_once("../lib/header.inc.php"); //**************** FIN EN-TETE ***************** echo "
\n"; echo "

Retour Retour \n"; if($id_class_prec!=0){echo " | Classe précédente\n";} if($chaine_options_classes!="") { echo "\n"; echo " | \n"; } if($id_class_suiv!=0){echo " | Classe suivante\n";} //========================= // AJOUT: boireaus 20081224 $titre="Navigation"; $texte=""; //$texte.=" Périodes
"; $texte.=" Elèves
"; $texte.=" Enseignements
"; $texte.=" config.simplifiée
"; $texte.=" Paramètres"; $ouvrir_infobulle_nav=getSettingValue("ouvrir_infobulle_nav"); if($ouvrir_infobulle_nav=="y") { $texte.="

\n"; } else { $texte.="
\n"; } $texte.="\n"; $tabdiv_infobulle[]=creer_div_infobulle('navigation_classe',$titre,"",$texte,"",14,0,'y','y','n','n'); echo " | "; echo "Navigation"; echo ""; //========================= echo "

\n"; echo "
\n"; //========================================================================= function search_liaisons_classes_via_groupes($id_classe) { global $tab_liaisons_classes; $sql="SELECT jgc.id_groupe FROM j_groupes_classes jgc WHERE jgc.id_classe='$id_classe';"; //echo "$sql
\n"; $res=mysqli_query($GLOBALS["mysqli"], $sql); if(mysqli_num_rows($res)>0) { while($lig=mysqli_fetch_object($res)) { $sql="SELECT c.classe, jgc.id_classe, g.* FROM j_groupes_classes jgc, groupes g, classes c WHERE jgc.id_classe!='$id_classe' AND g.id=jgc.id_groupe AND c.id=jgc.id_classe AND jgc.id_groupe='$lig->id_groupe' ORDER BY c.classe;"; //echo "$sql
\n"; $test=mysqli_query($GLOBALS["mysqli"], $sql); if(mysqli_num_rows($test)>0) { while($lig2=mysqli_fetch_object($test)) { if(!in_array($lig2->id_classe,$tab_liaisons_classes)) { $tab_liaisons_classes[]=$lig2->id_classe; search_liaisons_classes_via_groupes($lig2->id_classe); } } } } } } function search_periodes_non_vides($id_classe) { global $tab_periode_non_supprimable; // Recherche des périodes non vides $sql="SELECT num_periode FROM periodes WHERE id_classe='$id_classe';"; $res=mysqli_query($GLOBALS["mysqli"], $sql); if(mysqli_num_rows($res)>0) { while($lig=mysqli_fetch_object($res)) { if(!in_array($lig->num_periode, $tab_periode_non_supprimable)) { /* $sql="SELECT login FROM j_eleves_classes WHERE id_classe='$id_classe' AND periode='$lig->num_periode';"; $res2=mysql_query($sql); if(mysql_num_rows($res2)>0) { while($lig2=mysql_fetch_object($res2)) { $tab_periode_non_supprimable[]=$lig->num_periode; break; } } */ // Contrôle de la présence de notes sur les bulletins $sql="SELECT jec.login FROM j_eleves_classes jec, matieres_notes mn WHERE jec.id_classe='$id_classe' AND jec.periode='$lig->num_periode' AND jec.periode=mn.periode AND jec.login=mn.login;"; //echo "$sql
\n"; $test=mysqli_query($GLOBALS["mysqli"], $sql); if(mysqli_num_rows($test)>0) { $tab_periode_non_supprimable[]=$lig->num_periode; } else { // Contrôle de la présence d'appréciations sur les bulletins $sql="SELECT jec.login FROM j_eleves_classes jec, matieres_appreciations ma WHERE jec.id_classe='$id_classe' AND jec.periode='$lig->num_periode' AND jec.periode=ma.periode AND jec.login=ma.login;"; //echo "$sql
\n"; $test=mysqli_query($GLOBALS["mysqli"], $sql); if(mysqli_num_rows($test)>0) { $tab_periode_non_supprimable[]=$lig->num_periode; } else { // Contrôle de la présence de notes dans les carnets de notes $sql="SELECT 1=1 FROM j_groupes_classes jgc, cn_cahier_notes ccn, cn_devoirs cd, cn_conteneurs cc, cn_notes_devoirs cnd WHERE jgc.id_groupe=ccn.id_groupe AND cc.id=cd.id_conteneur AND cc.id_racine=ccn.id_cahier_notes AND cnd.id_devoir=cd.id AND cnd.statut!='v' AND jgc.id_classe='$id_classe' AND ccn.periode='$lig->num_periode';"; //echo "$sql
\n"; $test=mysqli_query($GLOBALS["mysqli"], $sql); if(mysqli_num_rows($test)>0) { $tab_periode_non_supprimable[]=$lig->num_periode; } } } } } } } //========================================================================= if(!isset($suppr_periode)) { $sql="SELECT num_periode FROM periodes WHERE id_classe='".$id_classe."' ORDER BY num_periode DESC LIMIT 1;"; $res=mysqli_query($GLOBALS["mysqli"], $sql); if(mysqli_num_rows($res)==0) { echo "

ANOMALIE : La classe ".$classe." n'a actuellement aucune période.

\n"; require("../lib/footer.inc.php"); die(); } else { $lig=mysqli_fetch_object($res); $max_per=$lig->num_periode; } echo "

ATTENTION : Il est recommandé de faire une sauvegarde de la base avant de supprimer une ou des périodes.

\n"; echo "
\n"; echo "

Recherche des liaisons directes :

\n"; echo "
\n"; echo "

"; $tab_liaisons_classes=array(); $tab_liaisons_classes[]=$id_classe; $sql="SELECT jgc.id_groupe FROM j_groupes_classes jgc WHERE jgc.id_classe='$id_classe';"; //echo "$sql
\n"; $res=mysqli_query($GLOBALS["mysqli"], $sql); if(mysqli_num_rows($res)==0) { echo "Aucune liaison n'a été trouvée.
La suppression de période ne présente donc pas de difficulté.

\n"; } else { while($lig=mysqli_fetch_object($res)) { $sql="SELECT c.classe, jgc.id_classe, g.* FROM j_groupes_classes jgc, groupes g, classes c WHERE jgc.id_classe!='$id_classe' AND g.id=jgc.id_groupe AND c.id=jgc.id_classe AND jgc.id_groupe='$lig->id_groupe' ORDER BY c.classe;"; //echo "$sql
\n"; $test=mysqli_query($GLOBALS["mysqli"], $sql); if(mysqli_num_rows($test)>0) { $cpt=0; while($lig2=mysqli_fetch_object($test)) { if($cpt==0) { echo "$lig2->name ($lig2->description)Éditer : "; } echo " $lig2->classe"; $cpt++; } echo "
\n"; } } } echo "
\n"; search_liaisons_classes_via_groupes($id_classe); $tab_periode_non_supprimable=array(); if(count($tab_liaisons_classes)>0) { echo "

La classe $classe est liée (de façon directe ou indirecte (via une autre classe)) aux classes suivantes : "; $cpt=0; for($i=0;$i0) {echo ", ";} echo "".get_class_from_id($tab_liaisons_classes[$i]).""; search_periodes_non_vides($tab_liaisons_classes[$i]); $cpt++; } } if(count($tab_periode_non_supprimable)>0) { echo "

Une ou des périodes ne peuvent être supprimées parce qu'il y a des notes ou appréciations sur les bulletins ou dans des carnets de notes.
\n"; sort($tab_periode_non_supprimable); echo "En voici la liste :"; for($i=0;$i0) {echo ", ";} echo "période $tab_periode_non_supprimable[$i]"; } } echo "

Quelles périodes voulez-vous supprimer pour $classe et la ou les classes liées?

\n"; } else { $tab_periode_non_supprimable=array(); search_periodes_non_vides($id_classe); if(count($tab_periode_non_supprimable)>0) { echo "

Une ou des périodes ne peuvent être supprimées parce qu'il y a des notes ou appréciations sur les bulletins ou dans des carnets de notes.
\n"; sort($tab_periode_non_supprimable); echo "En voici la liste :"; for($i=0;$i0) {echo ", ";} echo "période $tab_periode_non_supprimable[$i]"; } } echo "

Quelles périodes voulez-vous supprimer pour $classe?

\n"; } echo "
\n"; echo add_token_field(); echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; $alt=1; for($i=1;$i<$nb_periode;$i++) { $alt=$alt*(-1); echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; } echo "
Numéro de périodeNom de périodeSupprimer
$i$nom_periode[$i]\n"; if(in_array($i,$tab_periode_non_supprimable)) { echo " "; } else { echo " \n"; } echo "
\n"; echo " \n"; echo " \n"; echo "

\n"; echo "
\n"; echo "\n"; echo "


\n"; echo "

Remarques :

\n"; //echo "
\n"; echo "\n"; //echo "
\n"; } //========================================================================= else { check_token(false); $tab_liaisons_classes=array(); $tab_liaisons_classes[]=$id_classe; search_liaisons_classes_via_groupes($id_classe); $tab_periode_non_supprimable=array(); for($i=0;$iANOMALIE : La classe ".$classe." n'a actuellement aucune période.

\n"; require("../lib/footer.inc.php"); die(); } else { $lig=mysqli_fetch_object($res); $max_per=$lig->num_periode; } sort($suppr_periode); for($i=0;$iTraitement de la classe "; echo "$classe_courante"; echo " :

\n"; echo "
\n"; $sql="SELECT num_periode FROM periodes WHERE id_classe='".$id_classe_courant."' ORDER BY num_periode DESC LIMIT 1;"; $res=mysqli_query($GLOBALS["mysqli"], $sql); if(mysqli_num_rows($res)==0) { echo "

ANOMALIE : La classe ".$classe_courante." n'a actuellement aucune période.

\n"; } else { // Boucle sur la liste des périodes en contrôlant qu'elles ne sont pas dans $tab_periode_non_supprimable //for($j=0;$jECHEC"; echo "
\n"; } else { echo "SUCCES"; echo "
\n"; // Nettoyer j_eleves_classes //echo "Nettoyage des inscriptions d'élèves dans la classe $classe_courante pour la période $suppr_periode[$j] : "; //$sql="DELETE FROM j_eleves_classes WHERE periode='$suppr_periode[$j]' AND id_classe='$id_classe_courant';"; echo "Nettoyage des inscriptions d'élèves dans la classe $classe_courante pour la période $j : "; $sql="DELETE FROM j_eleves_classes WHERE periode='$j' AND id_classe='$id_classe_courant';"; $del=mysqli_query($GLOBALS["mysqli"], $sql); if(!$del) { echo "ECHEC"; echo "
\n"; } else { echo "SUCCES"; echo "
\n"; // Nettoyer edt_calendrier $poursuivre="y"; $sql="SELECT * FROM edt_calendrier WHERE numero_periode='$j' AND (classe_concerne_calendrier LIKE '$id_classe_courant;%' OR classe_concerne_calendrier LIKE '%;$id_classe_courant;%');"; $res_edt_calendrier=mysqli_query($GLOBALS["mysqli"], $sql); if(mysqli_num_rows($res_edt_calendrier)>0) { echo "Nettoyage de edt_calendrier pour la classe $classe_courante sur la période $j : "; // Normalement, on ne fait qu'un tour dans la boucle while($lig_edt_cal=mysqli_fetch_object($res_edt_calendrier)) { $tab_edt=explode(";",$lig_edt_cal->classe_concerne_calendrier); $chaine_classe=""; for($k=0;$kECHEC"; echo "
\n"; $poursuivre="n"; } else { echo "SUCCES"; echo "
\n"; } } } if($poursuivre=='y') { // Nettoyer periodes //echo "Suppression de la période $suppr_periode[$j] pour la classe $classe_courante : "; //$sql="DELETE FROM periodes WHERE id_classe='$id_classe_courant' AND num_periode='$suppr_periode[$j]';"; echo "Suppression de la période $j pour la classe $classe_courante : "; $sql="DELETE FROM periodes WHERE id_classe='$id_classe_courant' AND num_periode='$j';"; $del=mysqli_query($GLOBALS["mysqli"], $sql); if(!$del) { echo "ECHEC"; echo "
\n"; } else { echo "SUCCES"; echo "
\n"; } } } } } } } echo "
\n"; } echo "

Terminé.

\n"; if((mb_substr(getSettingValue('autorise_edt_tous'),0,1)=='y')||(mb_substr(getSettingValue('autorise_edt_admin'),0,1)=='y')||(mb_substr(getSettingValue('autorise_edt_eleve'),0,1)=='y')) { echo "


\n"; echo "

Pensez à contrôler que vous avez bien défini les dates de périodes dans le calendrier.

\n"; echo "


\n"; } } //========================================================================= require("../lib/footer.inc.php"); ?>