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(); } if (!checkAccess()) { header("Location: ../logout.php?auto=1"); die(); } // Initialisation des variables utilisées dans le formulaire $chemin_retour=isset($_GET['chemin_retour']) ? $_GET['chemin_retour'] : (isset($_POST['chemin_retour']) ? $_POST["chemin_retour"] : NULL); $msg=""; $id_classe = isset($_GET['id_classe']) ? $_GET['id_classe'] : (isset($_POST['id_classe']) ? $_POST["id_classe"] : NULL); $id_groupe = isset($_GET['id_groupe']) ? $_GET['id_groupe'] : (isset($_POST['id_groupe']) ? $_POST["id_groupe"] : NULL); if (!is_numeric($id_groupe)) {$id_groupe = 0;} $current_group = get_group($id_groupe); $reg_nom_groupe = $current_group["name"]; $reg_nom_complet = $current_group["description"]; $reg_matiere = $current_group["matiere"]["matiere"]; $reg_id_classe = $current_group["classes"]["list"][0]; $reg_clazz = $current_group["classes"]["list"]; $reg_professeurs = (array)$current_group["profs"]["list"]; //=============================== // DEBUG: /* echo "

\$current_group['id']=".$current_group['id']."
\n"; echo "\$reg_nom_groupe=".$reg_nom_groupe."
\n"; echo "\$reg_nom_complet=".$reg_nom_complet."
\n"; echo "\$reg_matiere=".$reg_matiere."
\n"; echo "\$reg_id_classe=".$reg_id_classe."
\n"; for($i=0;$i\n"; } for($i=0;$i\n"; } echo "

\n"; */ //=============================== $tab_classe = isset($_POST['tab_classe']) ? $_POST['tab_classe'] : NULL; $precclasse = isset($_POST['precclasse']) ? $_POST['precclasse'] : NULL; $nb_classes = isset($_POST['nb_classes']) ? $_POST['nb_classes'] : NULL; $step = isset($_POST['step']) ? $_POST['step'] : NULL; $tab_grp = isset($_POST['tab_grp']) ? $_POST['tab_grp'] : NULL; /* $mode = isset($_GET['mode']) ? $_GET['mode'] : (isset($_POST['mode']) ? $_POST["mode"] : null); if ($mode == null and $id_classe == null) { $mode = "groupe"; } else if ($mode == null and $current_group) { if (count($current_group["classes"]["list"]) > 1) { $mode = "regroupement"; } else { $mode = "groupe"; } } */ /* foreach ($current_group["periodes"] as $period) { $reg_eleves[$period["num_periode"]] = $current_group["eleves"][$period["num_periode"]]["list"]; } */ if(isset($step)){ if($step==1){ //$clazz = array(); //$clazz[] = $id_classe; if(!isset($tab_classe)){ $tab_classe=array(); } if(!in_array($id_classe,$tab_classe)){ $tab_classe[]=$id_classe; } // On contrôle si des classes ont été décochées... for($i=0;$i<$nb_classes;$i++){ if(isset($precclasse[$i])) { if(!isset($tab_classe[$i])){ // La classe $tab_classe[$i] a été décochée. // Ce n'est possible que si il n'y a pas de notes associées $tmpid=$tab_classe[$i]; unset($tabtmp); $tabtmp=array(); $test=0; $test2=0; $test3=0; $sql="SELECT DISTINCT login FROM j_eleves_classes WHERE id_classe='$tmpid'"; $res_tmp=mysqli_query($GLOBALS["mysqli"], $sql); while($lig_tmp=mysqli_fetch_object($res_tmp)){ $sql="SELECT 1=1 FROM matieres_notes WHERE id_groupe='$id_groupe' AND login='$lig_tmp->login'"; //echo "$sql
\n"; $res_test=mysqli_query($GLOBALS["mysqli"], $sql); if(mysqli_num_rows($res_test)>0){ //echo "$lig_tmp->login
\n"; if(!in_array($lig_tmp->login,$tabtmp)){$tabtmp[]=$lig_tmp->login;} $test++; } $sql="SELECT 1=1 FROM matieres_appreciations WHERE id_groupe='$id_groupe' AND login='$lig_tmp->login'"; //echo "$sql
\n"; $res_test=mysqli_query($GLOBALS["mysqli"], $sql); if(mysqli_num_rows($res_test)>0){ //echo "$lig_tmp->login
\n"; if(!in_array($lig_tmp->login,$tabtmp)){$tabtmp[]=$lig_tmp->login;} $test2++; } $sql="SELECT e.nom,e.prenom,c.classe FROM cn_notes_devoirs cnd, cn_devoirs cd, cn_cahier_notes ccn, j_eleves_classes jec, classes c, eleves e WHERE cnd.statut!='v' AND cnd.id_devoir=cd.id AND cd.id_racine=ccn.id_cahier_notes AND ccn.id_groupe='$id_groupe' AND cnd.login=jec.login AND jec.login=e.login AND jec.id_classe=c.id AND c.id='$tab_classe[$i]';"; //echo "$sql
\n"; $res_test=mysqli_query($GLOBALS["mysqli"], $sql); if(mysqli_num_rows($res_test)>0){ //echo "$lig_tmp->login
\n"; if(!in_array($lig_tmp->login,$tabtmp)){$tabtmp[]=$lig_tmp->login;} $test3++; } } $sql="SELECT classe FROM classes WHERE id='$tmpid'"; $res_tmp=mysqli_query($GLOBALS["mysqli"], $sql); $lig_tmp=mysqli_fetch_object($res_tmp); $clas_tmp=$lig_tmp->classe; //if(!$verify){ if(($test>0)||($test2>0)||($test3>0)){ /* $sql="SELECT classe FROM classes WHERE id='$tmpid'"; $res_tmp=mysql_query($sql); $lig_tmp=mysql_fetch_object($res_tmp); $clas_tmp=$lig_tmp->classe; */ $error = true; $msg .= "Des données existantes bloquent la suppression de la classe $clas_tmp du groupe.
\nAucune note ni appréciation du bulletin ne doit avoir été saisie pour les élèves de ce groupe pour permettre la suppression du groupe.
\n"; $msg.="Aucune note de devoir ne doit être saisie pour des élèves de la classe.
"; if(count($tabtmp)==1){ $msg.="L'élève ayant des moyennes ou appréciations saisies est $tabtmp[0].
\n"; } else{ $msg.="Les élèves ayant des moyennes ou appréciations saisies sont $tabtmp[0]"; for($i=1;$i\n"; $res_ele_clas_grp=mysqli_query($GLOBALS["mysqli"], $sql); if(mysqli_num_rows($res_ele_clas_grp)>0){ $error = true; $msg .= "Des données existantes bloquent la suppression de la classe $clas_tmp du groupe.
\nAucun élève de la classe ne doit être inscrit dans le groupe.
\nEnlevez les élèves du groupe avant.
\n"; // Et on remet la classe dans la liste des classes: //$clazz[] = $tmpid; $tab_classe[]=$tmpid; } } } } } } elseif($step==2){ check_token(); /* if(!isset($tab_classe)){ $tab_classe=array(); } if(!in_array($tab_classe,$id_classe)){ $tab_classe[]=$id_classe; } */ $tab_classe=array(); $tab_professeurs = array(); $tab_eleves = array(); foreach ($current_group["periodes"] as $period) { $tab_eleves[$period["num_periode"]]=array(); } // DEBUG: /* for($i=0;$i"; } } */ $code_modalite_elect_eleves=array(); $test=0; $test2=0; $test3=0; $error=false; for($j=0;$j\$tmp_grp['id']=".$tmp_grp['id']."
\n"; echo "\$tmp_grp['name']=".$tmp_grp['name']."
\n"; echo "\$tmp_grp['description']=".$tmp_grp['description']."
\n"; echo "\$tmp_grp['matiere']['matiere']=".$tmp_grp['matiere']['matiere']."
\n"; for($i=0;$i\n"; } for($i=0;$i\n"; } */ if($tmp_grp['id']!=$id_groupe){ $sql="SELECT 1=1 FROM matieres_notes WHERE id_groupe='".$tmp_grp['id']."';"; //echo "$sql
\n"; $res_test=mysqli_query($GLOBALS["mysqli"], $sql); if(mysqli_num_rows($res_test)>0){ $test++; //============ // DEBUG //echo "Une ou des moyennes trouvées.
"; //============ $error=true; } $sql="SELECT 1=1 FROM matieres_appreciations WHERE id_groupe='".$tmp_grp['id']."';"; //echo "$sql
\n"; $res_test=mysqli_query($GLOBALS["mysqli"], $sql); if(mysqli_num_rows($res_test)>0){ $test2++; //============ // DEBUG //echo "Une ou des appréciations trouvées.
"; //============ $error=true; } $sql="SELECT 1=1 FROM cn_notes_devoirs cnd, cn_devoirs cd, cn_cahier_notes ccn WHERE cnd.statut!='v' AND cnd.id_devoir=cd.id AND cd.id_racine=ccn.id_cahier_notes AND ccn.id_groupe='".$tmp_grp['id']."';"; //echo "$sql
\n"; $res_test=mysqli_query($GLOBALS["mysqli"], $sql); if(mysqli_num_rows($res_test)>0){ $test3++; //============ // DEBUG //echo "Une ou des notes de devoirs trouvées.
"; //============ $error=true; } if(($test>0)||($test2>0)||($test3>0)){ $error = true; $msg.="Des appréciations, moyennes ou notes de devoir ne permettent pas de supprimer le groupe n°".$tmp_grp['id'].".
"; } } foreach ($current_group["periodes"] as $period) { $tab_eleves[$period["num_periode"]]=array_merge($tab_eleves[$period["num_periode"]],$tmp_grp["eleves"][$period["num_periode"]]["list"]); array_unique($tab_eleves[$period["num_periode"]]); //============ // DEBUG /* for($i=0;$i"; } */ //============ } $tab_professeurs=array_merge($tab_professeurs,$tmp_grp["profs"]["list"]); $tab_classe=array_merge($tab_classe,$tmp_grp["classes"]["list"]); foreach($tmp_grp["modalites"] as $code_modalite_elect => $tmp_tab) { if(!array_key_exists($code_modalite_elect, $code_modalite_elect_eleves)) { $code_modalite_elect_eleves[$code_modalite_elect]=$tmp_tab; } else { for($loop=0;$loop"; } for($i=0;$i"; } */ //====================== if (empty($tab_classe)) { $error = true; $msg .= "Vous devez sélectionner au moins une classe.
\n"; } if (!$error) { // pas d'erreur : on continue avec la mise à jour du groupe $create = update_group($id_groupe, $reg_nom_groupe, $reg_nom_complet, $reg_matiere, $tab_classe, $tab_professeurs, $tab_eleves, $code_modalite_elect_eleves); if (!$create) { $msg .= "Erreur lors de la mise à jour du groupe."; } else { for($i=0;$i"; $suppr=mysql_query($sql); $sql="DELETE FROM j_eleves_groupes WHERE id_groupe='".$tab_grp[$i]."';"; //echo "$sql
"; $suppr=mysql_query($sql); $sql="DELETE FROM j_groupes_classes WHERE id_groupe='".$tab_grp[$i]."';"; //echo "$sql
"; $suppr=mysql_query($sql); $sql="DELETE FROM j_groupes_matieres WHERE id_groupe='".$tab_grp[$i]."';"; //echo "$sql
"; $suppr=mysql_query($sql); $sql="DELETE FROM j_groupes_professeurs WHERE id_groupe='".$tab_grp[$i]."';"; //echo "$sql
"; $suppr=mysql_query($sql); */ } } //====================================== // MODIF: boireaus //$msg = "Le groupe a bien été mis à jour."; $msg = "L'enseignement ". stripslashes($reg_nom_complet) . " a bien été mis à jour."; $msg = urlencode($msg); if(isset($chemin_retour)){ header("Location: $chemin_retour?&msg=$msg"); } else{ if(count($tab_classe)>1){ header("Location: ./edit_group.php?id_groupe=$id_groupe&id_classe=$id_classe&mode=regroupement&msg=$msg"); } else{ header("Location: ./edit_group.php?id_groupe=$id_groupe&id_classe=$id_classe&mode=groupe&msg=$msg"); } } /* //************** // Pour ne pas aller plus loin le temps du DEBUG $titre_page = "Gestion des groupes"; require_once("../lib/header.inc.php"); die(); //************** */ //====================================== } $current_group = get_group($id_groupe); } } } $themessage = 'Des informations ont été modifiées. Voulez-vous vraiment quitter sans enregistrer ?'; //**************** EN-TETE ************************************** $titre_page = "Gestion des groupes"; require_once("../lib/header.inc.php"); //**************** FIN EN-TETE ********************************** echo "

\n"; //============================ if(isset($chemin_retour)){ echo "Retour Retour"; } else{ echo "Retour Retour"; } //============================ echo "

Fusion de groupes

\n"; if(!isset($tab_classe)) { echo "

Choisissez les classes à associer au groupe:

\n"; //$call_data = mysql_query("SELECT * FROM classes ORDER BY classe"); //$sql="SELECT * FROM classes ORDER BY classe"; $sql="SELECT DISTINCT c.* FROM classes c, j_groupes_classes jgc, j_groupes_matieres jgm WHERE c.id=jgc.id_classe AND jgc.id_groupe=jgm.id_groupe AND jgm.id_matiere='$reg_matiere' ORDER BY c.classe"; //echo "$sql
"; $call_data = mysqli_query($GLOBALS["mysqli"], $sql); // REVOIR LA REQUETE POUR NE PROPOSER QUE LES CLASSES QUI ONT UN GROUPE DANS LA MEME MATIERE //echo "

REVOIR LA REQUETE POUR NE PROPOSER QUE LES CLASSES QUI ONT UN GROUPE DANS LA MEME MATIERE

"; $nombre_lignes = mysqli_num_rows($call_data); if ($nombre_lignes != 0) { echo "
\n"; echo "\n"; echo "\n"; $i = 0; echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "
\n"; $nb_class_par_colonne=round($nombre_lignes/3); while ($i < $nombre_lignes){ if(($i>0)&&(round($i/$nb_class_par_colonne)==$i/$nb_class_par_colonne)){ echo "\n"; } $id_classe_temp = old_mysql_result($call_data, $i, "id"); $classe = old_mysql_result($call_data, $i, "classe"); if (get_period_number($id_classe_temp) == get_period_number($id_classe)) { //echo " $classe\n"; } else{ echo "\n"; echo "Classe originelle du groupe $classe"; } if (in_array($id_classe_temp, $reg_clazz)){ // Pour contrôler les suppressions de classes. // On conserve la liste des classes précédemment cochées: //echo "\n"; echo "\n"; } echo "
\n"; } $i++; } echo "\n"; echo "\n"; //echo "

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

\n"; echo "
\n"; echo "\n"; } else { echo "

Aucune classe définie !

\n"; } } else { // Les classes sont choisies /* // On contrôle si des classes ont été décochées... for($i=0;$i<$nb_classes;$i++){ if(isset($precclasse[$i])) { if(!isset($tab_classe[$i])){ // La classe $tab_classe[$i] a été décochée. // Ce n'est possible que si il n'y a pas de notes associées } } } */ echo "
\n"; echo add_token_field(); echo "\n"; echo "\n"; echo "\n"; /* for($i=0;$i<$nb_classes;$i++){ if(isset($tab_classe[$i])){ //echo "\n"; echo "\$tab_classe[$i]=$tab_classe[$i]
\n"; } } */ // On va proposer les groupes à associer (même matière) $sql="SELECT id_matiere FROM j_groupes_matieres WHERE id_groupe='$id_groupe';"; $res_mat=mysqli_query($GLOBALS["mysqli"], $sql); $lig_tmp=mysqli_fetch_object($res_mat); $id_matiere=$lig_tmp->id_matiere; echo "

Cocher les groupes à fusionner avec $reg_nom_complet ($reg_nom_groupe)

\n"; //sort($tab_classe); //array_unique($tab_classe); $tab_dedoub=array(); echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; $alt=1; for($i=0;$i<$nb_classes;$i++){ if(isset($tab_classe[$i])){ if(!in_array($tab_classe[$i],$tab_dedoub)){ $tab_dedoub[]=$tab_classe[$i]; $alt=$alt*(-1); echo "\n"; echo "\n"; echo "\n"; echo "\n"; } } } echo "
ClasseGroupe
\n"; $sql="SELECT classe FROM classes WHERE id='$tab_classe[$i]';"; $res_clas=mysqli_query($GLOBALS["mysqli"], $sql); $lig_tmp=mysqli_fetch_object($res_clas); echo $lig_tmp->classe; echo "\n"; $sql="SELECT g.* FROM j_groupes_classes jgc, j_groupes_matieres jgm, groupes g WHERE jgc.id_groupe=jgm.id_groupe AND jgc.id_classe='$tab_classe[$i]' AND jgm.id_matiere='$id_matiere' AND jgc.id_groupe=g.id;"; //echo "$sql
"; $res_grp=mysqli_query($GLOBALS["mysqli"], $sql); $cpt=0; while($lig_tmp=mysqli_fetch_object($res_grp)){ if($cpt>0){ echo "
\n"; } $cpt2=0; $liste_profs=''; $sql_profs="SELECT u.nom nom, u.prenom prenom from j_groupes_professeurs j, utilisateurs u WHERE j.id_groupe='".$lig_tmp->id."' and j.login=u.login "; $res_profs=mysqli_query($GLOBALS["mysqli"], $sql_profs); while($lig_profs=mysqli_fetch_object($res_profs)){ if($cpt2>0){ $liste_profs .= ", \n"; } $liste_profs .= $lig_profs->nom." ".$lig_profs->prenom; $cpt2++; } if($lig_tmp->id==$id_groupe){ echo ""; echo "Groupe original"; echo $lig_tmp->description." (".$lig_tmp->name.")"; echo " (".$liste_profs.")"; } else{ echo "\n"; } $cpt++; } echo "
\n"; echo "\n"; echo "

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


\n"; echo "

NOTES:

\n"; echo "
    \n"; echo "
  • Il n'est possible de fusionner des groupes que si aucune note n'est encore saisie pour les groupes rejoignant le groupe choisi.
  • \n"; echo "
  • Il n'est possible de fusionner des groupes que pour une même matière.
  • \n"; echo "
\n"; require("../lib/footer.inc.php"); die(); ?>