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(); } check_token(); //===================================== // AJOUT: boireaus //$debug=1; $debug=0; if(isset($_GET['debug'])){ if($_GET['debug']=="1"){ $debug=1; } else{ $debug=0; } } function affiche_debug($texte){ global $debug; if($debug==1){ echo "$texte\n"; } } //$debug=1; //===================================== //**************** EN-TETE ***************** $titre_page = "Outil d'initialisation de l'année : Importation des relations professeurs/classes/matières"; require_once("../lib/header.inc.php"); //**************** FIN EN-TETE ***************** ?>
ATTENTION ...
";
echo "Des données concernant l'affectation de professeurs dans des classes sont actuellement présentes dans la base GEPI
Si vous poursuivez la procédure ces données seront effacées.
"; echo ""; die(); } } if (!isset($is_posted)) { $del = @mysqli_query($GLOBALS["mysqli"], "DELETE FROM j_groupes_professeurs"); $del = @mysqli_query($GLOBALS["mysqli"], "DELETE FROM j_professeurs_matieres"); // Ménage sur l'ordre des groupes dans l'affichage simplifié prof: // Sinon, on peut se retrouver avec des rangs aberrants liés à des groupes qui n'existent plus dans la table groupes. $sql="DELETE FROM preferences WHERE name LIKE 'accueil_simpl_id_groupe_order_%';"; $del=mysqli_query($GLOBALS["mysqli"], $sql); echo "Importation des fichiers F_men.csv et F_gpd.csv contenant les données de relations entre professeurs, matière et classes."; echo "
"; } else { $dbf_file = isset($_FILES["dbf_file"]) ? $_FILES["dbf_file"] : NULL; $dbf_file2 = isset($_FILES["dbf_file2"]) ? $_FILES["dbf_file2"] : NULL; if ((mb_strtoupper($dbf_file['name']) == "F_MEN.CSV") or (mb_strtoupper($dbf_file2['name']) == "F_GPD.CSV")) { //$fp = @dbase_open($dbf_file['tmp_name'], 0); //$fp2 = @dbase_open($dbf_file2['tmp_name'], 0); $fp = fopen($dbf_file['tmp_name'],"r"); $fp2 = fopen($dbf_file2['tmp_name'],"r"); if (!$fp) { //echo "Impossible d'ouvrir le fichier F_MEN.DBF !
"; //@dbase_close($fp2); echo "Impossible d'ouvrir le fichier F_MEN.CSV !
"; fclose($fp2); echo "Cliquer ici pour recommencer !"; } else if (!$fp2) { //echo "Impossible d'ouvrir le fichier F_GPD.DBF !
"; //@dbase_close($fp); echo "Impossible d'ouvrir le fichier F_GPD.CSV !
"; fclose($fp); echo "Cliquer ici pour recommencer !"; } else { // on constitue le tableau des champs à extraire dans $fp2 $tabchamps2 = array("GROCOD","DIVCOD"); //$nblignes2 = dbase_numrecords($fp2); //number of rows unset($en_tete); $nblignes2=0; while (!feof($fp2)) { $ligne = fgets($fp2, 4096); if($nblignes2==0){ // Quand on enregistre en CSV des fichiers DBF de GEP avec OpenOffice, les champs sont renommés avec l'ajout de ',...' en fin de nom de champ. // On ne retient pas ces ajouts pour $en_tete $temp=explode(";",$ligne); for($i=0;$iAjout de la correspondance prof/matière suivante: $login_prof/$affiche[0]
\n";
if(!$req) $nb_reg_no++;
}
// On relie prof, matières et classes dans un nouveau groupe de Gepi
// On vide le tableau de la liste des classes associées au groupe:
unset($tabtmp);
$test = mysqli_query($GLOBALS["mysqli"], "select id from classes where classe='$affiche[2]'");
// On initialise le tableau pour que par défaut il contienne $affiche[2] au cas où ce serait une classe...
$tabtmp[0]=$affiche[2];
affiche_debug("select id from classes where classe='$affiche[2]'
\n");
$nb_test = mysqli_num_rows($test) ;
if ($nb_test == 0) {
// dans ce cas, $affiche[2] désigne un groupe
// on convertit le groupe en classe
/*
$affiche[2] = $tab_groupe[$affiche[2]];
echo "\$affiche[2] = \$tab_groupe[\$affiche[2]] = \$tab_groupe[$affiche[2]] = $affiche[2];
\n";
$test = mysql_query("select id from classes where classe='$affiche[2]'");
echo "select id from classes where classe='$affiche[2]'
\n";
*/
// MODIF: boireaus
// On modifie/remplit le tableau $tabtmp avec la liste des classes associées au groupe.
for($i=0;$i
\n";
$verif = mysqli_query($GLOBALS["mysqli"], "select g.id from " .
"groupes g, j_groupes_matieres jgm, j_groupes_professeurs jgp, j_groupes_classes jgc " .
"where (" .
"g.id = jgm.id_groupe and " .
"jgm.id_matiere='$affiche[0]' and " .
"jgm.id_groupe = jgp.id_groupe and " .
"jgp.login = '$login_prof' and " .
"jgp.id_groupe = jgc.id_groupe and " .
"jgc.id_classe='$id_classe')");
affiche_debug("select g.id from " .
"groupes g, j_groupes_matieres jgm, j_groupes_professeurs jgp, j_groupes_classes jgc " .
"where (" .
"g.id = jgm.id_groupe and " .
"jgm.id_matiere='$affiche[0]' and " .
"jgm.id_groupe = jgp.id_groupe and " .
"jgp.login = '$login_prof' and " .
"jgp.id_groupe = jgc.id_groupe and " .
"jgc.id_classe='$id_classe')
\n");
$resverif = mysqli_num_rows($verif);
if($resverif == 0) {
// Avant d'enregistrer, il faut quand même vérifier si le groupe existe déjà ou pas
// ... pour cette classe...
$verif2 = mysqli_query($GLOBALS["mysqli"], "select g.id from " .
"groupes g, j_groupes_matieres jgm, j_groupes_classes jgc " .
"where (" .
"g.id = jgm.id_groupe and " .
"jgm.id_matiere='$affiche[0]' and " .
"jgm.id_groupe = jgc.id_groupe and " .
"jgc.id_classe='$id_classe')");
affiche_debug("select g.id from " .
"groupes g, j_groupes_matieres jgm, j_groupes_classes jgc " .
"where (" .
"g.id = jgm.id_groupe and " .
"jgm.id_matiere='$affiche[0]' and " .
"jgm.id_groupe = jgc.id_groupe and " .
"jgc.id_classe='$id_classe')
\n");
$resverif2 = mysqli_num_rows($verif2);
if ($resverif2 == 0) {
affiche_debug("Le groupe n'existe pas encore pour la classe \$id_classe=$id_classe
\n");
// ordre d'affichage par défaut :
$priority = sql_query("select priority from matieres where matiere='".$affiche[0]."'");
if ($priority == "-1") $priority = "0";
$matiere_nom = old_mysql_result(mysqli_query($GLOBALS["mysqli"], "SELECT nom_complet FROM matieres WHERE matiere = '" . $affiche[0] . "'"), 0);
if($temoin_groupe_deja_cree=="non"){
$res = mysqli_query($GLOBALS["mysqli"], "insert into groupes set name = '" . $affiche[0] . "', description = '" . $matiere_nom . "', recalcul_rang = 'y'");
affiche_debug("insert into groupes set name = '" . $affiche[0] . "', description = '" . $matiere_nom . "', recalcul_rang = 'y'
\n");
$group_id = ((is_null($___mysqli_res = mysqli_insert_id($GLOBALS["mysqli"]))) ? false : $___mysqli_res);
$temoin_groupe_deja_cree=$group_id;
echo "
\n";
//echo "Création d'un groupe pour la matière $affiche[0], \n";
echo "Création d'un groupe (n°$group_id) pour la matière $affiche[0], \n";
$res2 = mysqli_query($GLOBALS["mysqli"], "insert into j_groupes_matieres set id_groupe = '" . $group_id . "', id_matiere = '" . $affiche[0] . "'");
affiche_debug("insert into j_groupes_matieres set id_groupe = '" . $group_id . "', id_matiere = '" . $affiche[0] . "'
\n");
$res4 = mysqli_query($GLOBALS["mysqli"], "insert into j_groupes_professeurs set id_groupe = '" . $group_id . "', login ='" . $login_prof . "'");
affiche_debug("insert into j_groupes_professeurs set id_groupe = '" . $group_id . "', login ='" . $login_prof . "'
\n");
echo "le professeur $login_prof\n";
}
else{
$group_id=$temoin_groupe_deja_cree;
affiche_debug("Groupe déjà créé avec \$group_id=$group_id
");
}
$res3 = mysqli_query($GLOBALS["mysqli"], "insert into j_groupes_classes set id_groupe = '" . $group_id . "', id_classe = '" . $id_classe . "', priorite = '" . $priority . "', coef = '0'");
affiche_debug("insert into j_groupes_classes set id_groupe = '" . $group_id . "', id_classe = '" . $id_classe . "', priorite = '" . $priority . "', coef = '0'
\n");
/*
$sql="SELECT classe FROM classes WHERE id='$id_classe'";
$res_classe_tmp=mysql_query($sql);
$lig_classe_tmp=mysql_fetch_object($res_classe_tmp);
echo " et la classe $lig_classe_tmp->classe.
\n";
*/
echo " et la classe $classe.
\n";
//$res4 = mysql_query("insert into j_groupes_professeurs set id_groupe = '" . $group_id . "', login ='" . $login_prof . "'");
//echo "insert into j_groupes_professeurs set id_groupe = '" . $group_id . "', login ='" . $login_prof . "'
\n";
// On ajoute tous les élèves de la classe considérée aux groupes. On enlèvera ceux qui ne suivent pas les enseignements
// à la prochaine étape
$get_eleves = mysqli_query($GLOBALS["mysqli"], "SELECT distinct(login) FROM j_eleves_classes WHERE id_classe = '" . $id_classe . "'");
$nb_eleves = mysqli_num_rows($get_eleves);
affiche_debug("\$nb_eleves=$nb_eleves
\n");
$nb_per = old_mysql_result(mysqli_query($GLOBALS["mysqli"], "SELECT count(*) FROM periodes WHERE id_classe = '" . $id_classe . "'"), 0);
affiche_debug("\$nb_per=$nb_per
\n");
// DEBUG :: echo "
Classe : " . $id_classe . "
Nb el. : " . $nb_eleves . "
Nb per.: " . $nb_per . "
";
if($nb_eleves>0){
echo "Ajout à ce groupe des élèves suivants: ";
for ($m=0;$m<$nb_eleves;$m++) {
$e_login = old_mysql_result($get_eleves, $m, "login");
for ($n=1;$n<=$nb_per;$n++) {
$insert_e = mysqli_query($GLOBALS["mysqli"], "INSERT into j_eleves_groupes SET id_groupe = '" . $group_id . "', login = '" . $e_login . "', periode = '" . $n . "'");
affiche_debug("INSERT into j_eleves_groupes SET id_groupe = '" . $group_id . "', login = '" . $e_login . "', periode = '" . $n . "'
\n");
}
if($m==0){
echo "$e_login";
}
else{
echo ", $e_login";
}
}
echo "
\n";
}
else{
echo "Aucun élève dans ce groupe???
\n";
}
} else {
// Si on est là, c'est que le groupe existe déjà, mais que le professeur que l'on
// est en train de traiter n'est pas encore associé au groupe
// C'est le cas de deux professeurs pour un même groupe/classe dans une matière.
affiche_debug("Le groupe existe déjà pour la classe \$id_classe=$id_classe, on ajoute le professeur $login_prof au groupe:
\n");
$group_id = old_mysql_result($verif2, 0);
$res = mysqli_query($GLOBALS["mysqli"], "insert into j_groupes_professeurs set id_groupe = '" . $group_id . "', login ='" . $login_prof . "'");
affiche_debug("insert into j_groupes_professeurs set id_groupe = '" . $group_id . "', login ='" . $login_prof . "'
\n");
echo "Ajout de $login_prof à un groupe existant (plus d'un professeur pour ce groupe).
\n";
}
}
//echo "
Lors de l'enregistrement des données il n'y a eu $nb_reg_no erreurs. Essayez de trouvez la cause de l'erreur et recommencez la procédure avant de passer à l'étape suivante."; } else { echo "
L'importation des relations professeurs/matières et professeurs/classes dans la base GEPI a été effectuée avec succès !
Vous pouvez procéder à l'étape suivante d'importation des options suivies par les élèves.
Veuillez préciser les fichiers !
";
echo "Cliquer ici pour recommencer !
Fichier(s) sélectionné(s) non valide(s) !
";
echo "Cliquer ici pour recommencer !