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";
}
// Et on remet la classe dans la liste des classes:
//$clazz[] = $tmpid;
$tab_classe[]=$tmpid;
}
else{
// On teste aussi si il y a des élèves de la classe dans le groupe.
$sql="SELECT jeg.login FROM j_eleves_groupes jeg, j_eleves_classes jec WHERE
jeg.login=jec.login AND
jeg.periode=jec.periode AND
jeg.id_groupe='$id_groupe' AND
jec.id_classe='$tmpid'";
//echo "$sql
\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";
}
else{
echo " 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";
} 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 "
\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();
?>