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"; //========================================================================= 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 "$sqlANOMALIE : 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 "Recherche des liaisons directes :
\n"; echo "\n"; echo "\n"; search_liaisons_classes_via_groupes($id_classe); $tab_periode_non_supprimable=array(); if(count($tab_liaisons_classes)>0) { 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"; } 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"; $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"; $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): "; } echo " $lig2->classe"; $cpt++; } echo "
\n"; } } } 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;$i 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. Quelles périodes voulez-vous supprimer pour $classe et la ou les classes liées? 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. Quelles périodes voulez-vous supprimer pour $classe? Remarques : On ne peut pas supprimer une période n°5 et conserver la période n°6. La suppression de période présente une difficulté lorsqu'il y a des enseignements/groupes à cheval sur plusieurs classes.
\n";
sort($tab_periode_non_supprimable);
echo "En voici la liste :";
for($i=0;$i
\n";
sort($tab_periode_non_supprimable);
echo "En voici la liste :";
for($i=0;$i\n";
echo "
\n";
//echo "
Deux classes partageant un enseignement doivent avoir le même nombre de périodes.
Si vous supprimez des périodes à la classe ".$classe.", il faudra :\n";
echo "
\n";
echo "
Cela signifierait que vous auriez alors deux enseignements distincts pour $classe et une classe partageant l'enseignement.
Pour le professeur les conséquences sont les suivantes :
\n";
echo "\n";
echo "
\n";
echo "La deuxième solution n'est pas implémentée pour le moment\n";
echo "
Même chose pour les moyennes min et max.
Les saisies de cahier de textes, d'emploi du temps doivent être dupliquées, les saisies antérieures d'absences peuvent-elles être perturbées (?) ou l'association n'est-elle que élève/jour_heures_absence (?),...
\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 "\n"; } 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 "
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 "Pensez à contrôler que vous avez bien défini les dates de périodes dans le calendrier.
\n"; echo "