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='/init_xml2/traite_xml_edt.php';";
$test=mysqli_query($GLOBALS["mysqli"], $sql);
if(mysqli_num_rows($test)==0) {
$sql="INSERT INTO droits SET id='/init_xml2/traite_xml_edt.php',
administrateur='V',
professeur='F',
cpe='F',
scolarite='F',
eleve='F',
responsable='F',
secours='F',
autre='F',
description='Import des enseignements via un Export XML EDT',
statut='';";
$insert=mysqli_query($GLOBALS["mysqli"], $sql);
}
if (!checkAccess()) {
header("Location: ../logout.php?auto=1");
die();
}
check_token();
function get_nom_complet_from_matiere($mat) {
$sql="SELECT nom_complet FROM matieres WHERE matiere='$mat';";
$res_mat=mysqli_query($GLOBALS["mysqli"], $sql);
if(mysqli_num_rows($res_mat)>0) {
$lig_mat=mysqli_fetch_object($res_mat);
return $lig_mat->nom_complet;
}
}
$_SESSION['init_xml_groupes']="xml_edt";
$msg="";
$action=isset($_POST['action']) ? $_POST['action'] : (isset($_GET['action']) ? $_GET['action'] : "");
function get_corresp_edt($type, $nom) {
$retour="";
$sql="SELECT nom_gepi FROM edt_corresp WHERE champ='$type' AND nom_edt='".mysqli_real_escape_string($GLOBALS["mysqli"], $nom)."';";
$res=mysqli_query($GLOBALS["mysqli"], $sql);
if(mysqli_num_rows($res)>0) {
$lig=mysqli_fetch_object($res);
$retour=$lig->nom_gepi;
}
return $retour;
}
/*
function get_id_groupe_from_tab_ligne($tab) {
$retour="";
if((isset($tab['classe']))&&(isset($tab['prof_nom']))&&(isset($tab['prof_prenom']))&&(isset($tab['mat_code']))) {
$chaine_nom_edt=$tab['classe']."|".$tab['prof_nom']."|".$tab['prof_prenom']."|".$tab['mat_code'];
$retour=get_corresp_edt('choix_id_groupe', $chaine_nom_edt);
}
return $retour;
}
// Fonction utilisée pour renseigner edt_corresp2 avec les correspondances id_groupe, nom de regroupement EDT
// La table edt_corresp2 est utilisée dans groupes/maj_inscript_ele_d_apres_edt.php
function enregistre_corresp_EDT_classe_matiere_GEPI_id_groupe($id_groupe, $nom_groupe_edt, $mat_code_edt) {
$sql="SELECT * FROM edt_corresp2 WHERE id_groupe='".$id_groupe."' AND nom_groupe_edt='".mysqli_real_escape_string($GLOBALS["mysqli"], $nom_groupe_edt)."';";
//echo "$sql
";
$res=mysqli_query($GLOBALS["mysqli"], $sql);
if(mysqli_num_rows($res)==0) {
$sql="INSERT INTO edt_corresp2 SET id_groupe='".$id_groupe."', nom_groupe_edt='".mysqli_real_escape_string($GLOBALS["mysqli"], $nom_groupe_edt)."', mat_code_edt='".mysqli_real_escape_string($GLOBALS["mysqli"], $mat_code_edt)."';;";
$insert=mysqli_query($GLOBALS["mysqli"], $sql);
}
}
*/
//**************** EN-TETE *****************
$titre_page = "Outil d'initialisation de l'année : Importation XML EDT";
require_once("../lib/header.inc.php");
//**************** FIN EN-TETE *****************
include("init_xml_lib.php");
//debug_var();
/*
function affiche_debug($texte) {
// Passer à 1 la variable pour générer l'affichage des infos de debug...
$debug=0;
if($debug==1) {
echo "".$texte."";
flush();
}
}
*/
// Etape...
$step=isset($_POST['step']) ? $_POST['step'] : (isset($_GET['step']) ? $_GET['step'] : NULL);
if(isset($_GET['ad_retour'])) {
$_SESSION['ad_retour']=$_GET['ad_retour'];
}
//echo "\$_SESSION['ad_retour']=".$_SESSION['ad_retour']."
";
$mysql_collate=getSettingValue("mysql_collate") ? getSettingValue("mysql_collate") : "";
$chaine_mysql_collate="";
if($mysql_collate!="") {$chaine_mysql_collate="COLLATE $mysql_collate";}
//unset($remarques);
//$remarques=array();
// On va uploader le CSV dans le tempdir de l'utilisateur (administrateur)
$tempdir=get_user_temp_directory();
if(!$tempdir) {
echo "
Il semble que le dossier temporaire de l'utilisateur ".$_SESSION['login']." ne soit pas défini!?
\n";
// Il ne faut pas aller plus loin...
// SITUATION A GERER
}
// =======================================================
// EST-CE ENCORE UTILE?
if(isset($_GET['nettoyage'])) {
//echo "Suppression des CSV
\n";
echo "Suppression du XML
\n";
echo "
Retour";
echo " | Autre import
\n";
//echo "\n";
echo "Si le XML EDT est présent, il sera supprimé...
\n";
$tabfich=array("export_edt.xml");
for($i=0;$iSuppression de $tabfich[$i]... ";
if(unlink("../temp/".$tempdir."/$tabfich[$i]")) {
echo "réussie.\n";
}
else {
echo "Echec! Vérifiez les droits d'écriture sur le serveur.\n";
}
}
}
require("../lib/footer.inc.php");
die();
}
// =======================================================
else {
echo "Première phase de l'import XML EDT
\n";
//echo "Préparation des données élèves/classes/périodes/options
\n";
echo "
Retour";
//echo " | Autre import";
echo " | Suppression d'un XML existant";
echo "
\n";
//echo "\n";
//if(!isset($_POST['is_posted'])) {
if(!isset($step)) {
echo "Upload du fichier d'export EXP_COURS.xml d'EDT.
\n";
echo "\n";
echo "Remarques :
\n";
echo "\n";
echo "- Dans EDT, la démarche est A PRECISER
\n";
echo "
\n";
}
else {
$post_max_size=ini_get('post_max_size');
$upload_max_filesize=ini_get('upload_max_filesize');
$max_execution_time=ini_get('max_execution_time');
$memory_limit=ini_get('memory_limit');
if($step==0) {
$xml_file = isset($_FILES["xml_file"]) ? $_FILES["xml_file"] : NULL;
if(!is_uploaded_file($xml_file['tmp_name'])) {
echo "L'upload du fichier a échoué.
\n";
echo "Les variables du php.ini peuvent peut-être expliquer le problème:
\n";
echo "post_max_size=$post_max_size
\n";
echo "upload_max_filesize=$upload_max_filesize
\n";
echo "
\n";
// Il ne faut pas aller plus loin...
// SITUATION A GERER
require("../lib/footer.inc.php");
die();
}
else {
if(!file_exists($xml_file['tmp_name'])) {
echo "Le fichier aurait été uploadé... mais ne serait pas présent/conservé.
\n";
echo "Les variables du php.ini peuvent peut-être expliquer le problème:
\n";
echo "post_max_size=$post_max_size
\n";
echo "upload_max_filesize=$upload_max_filesize
\n";
echo "et le volume de ".$xml_file['name']." serait
\n";
echo "\$xml_file['size']=".volume_human($xml_file['size'])."
\n";
echo "
\n";
// Il ne faut pas aller plus loin...
// SITUATION A GERER
require("../lib/footer.inc.php");
die();
}
echo "Le fichier a été uploadé.
\n";
//$source_file=stripslashes($xml_file['tmp_name']);
$source_file=$xml_file['tmp_name'];
$dest_file="../temp/".$tempdir."/export_edt.xml";
$res_copy=copy("$source_file" , "$dest_file");
if(!$res_copy) {
echo "La copie du fichier vers le dossier temporaire a échoué.
Vérifiez que l'utilisateur ou le groupe apache ou www-data a accès au dossier temp/$tempdir
\n";
// Il ne faut pas aller plus loin...
// SITUATION A GERER
require("../lib/footer.inc.php");
die();
}
else {
echo "La copie du fichier vers le dossier temporaire a réussi.
\n";
$cours_xml=simplexml_load_file($dest_file);
if(!$cours_xml) {
echo "ECHEC du chargement du fichier avec simpleXML.
\n";
require("../lib/footer.inc.php");
die();
}
$nom_racine=$cours_xml->getName();
if(my_strtoupper($nom_racine)!='TABLE') {
echo "ERREUR: Le fichier XML fourni n'a pas l'air d'être un fichier XML EXP_COURS.
Sa racine devrait être 'TABLE'.
\n";
require("../lib/footer.inc.php");
die();
}
$tab_champs=array("NUMERO",
"DUREE",
"FREQUENCE",
"MAT_CODE",
"MAT_LIBELLE",
"PROF_NOM",
"PROF_PRENOM",
"CLASSE",
"SALLE",
"ALTERNANCE",
"MODALITE",
"CO-ENS.",
"POND.",
"JOUR",
"H.DEBUT",
"EFFECTIF");
for($loop=0;$loopVeuillez maintenant compléter les correspondances utiles entre EDT et GEPI :\n";
$sql="TRUNCATE TABLE edt_lignes;";
$vide_table = mysqli_query($GLOBALS["mysqli"], $sql);
$cpt=0;
$tab_cours=array();
foreach ($cours_xml->children() as $key => $cur_cours) {
if($key=='Cours') {
/*
echo "$key
";
echo "";
print_r($cur_cours);
echo "
";
*/
foreach ($cur_cours->children() as $key2 => $value2) {
if(in_array($key2, $tab_champs)) {
//$tab_cours[$cpt][$key2]=(string)$value2;
$champ_courant=$tab_champs2[$key2];
//$tab_cours[$cpt]["$champ_courant"]=(string)$value2;
$tab_cours[$cpt]["$champ_courant"]=trim($value2);
//echo "$key2:$value2
";
}
}
/*
echo "\$tab_cours[$cpt]
";
echo "";
print_r($tab_cours[$cpt]);
echo "
";
*/
// Enregistrer la ligne dans edt_lignes
$sql="INSERT INTO edt_lignes SET ";
$sql_ajout="";
for($loop=0;$loop";
if(isset($tab_cours[$cpt][$champ_courant])) {
if($sql_ajout!="") {$sql_ajout.=",";}
$sql_ajout.=" ".$champ_courant."='".mysqli_real_escape_string($GLOBALS["mysqli"], $tab_cours[$cpt][$champ_courant])."'";
}
}
//echo "\$sql_ajout=$sql_ajout
";
if($sql_ajout!="") {
$sql.=$sql_ajout;
//echo "\$sql=$sql
";
$insert=mysqli_query($GLOBALS["mysqli"], $sql);
}
flush();
$cpt++;
}
}
echo "Effectuer les rapprochements
";
}
}
}
elseif($step==1) {
$sql="SELECT * FROM edt_lignes ORDER BY numero;";
$res=mysqli_query($GLOBALS["mysqli"], $sql);
if(mysqli_num_rows($res)==0) {
echo "Aucun enregistrement n'a été trouvé.
";
require("../lib/footer.inc.php");
die();
}
$cpt=0;
$ligne=array();
while($ligne[$cpt]=mysqli_fetch_assoc($res)) {
$cpt++;
}
$cpt=0;
$tab_mat=array();
$sql="SELECT matiere, nom_complet FROM matieres ORDER BY matiere;";
$res_mat=mysqli_query($GLOBALS["mysqli"], $sql);
while($tab_mat[$cpt]=mysqli_fetch_assoc($res_mat)) {
$cpt++;
}
echo "
A FAIRE : Pouvoir afficher à titre de contrôle... et pouvoir supprimer des associations enregistrées.
";
}
elseif($step==2) {
if(!isset($_POST['is_posted'])) {
echo "ERREUR : Une partie des variables n'as pas été POSTée.
Vous avez probablement un module PHP qui limite le nombre de variables transmises (suhosin?)
\n";
require("../lib/footer.inc.php");
die();
}
//debug_var();
// matiere
$corresp_matiere_a_enregistrer=isset($_POST['corresp_matiere_a_enregistrer']) ? $_POST['corresp_matiere_a_enregistrer'] : NULL;
if(isset($corresp_matiere_a_enregistrer)) {
$nb_reg=0;
$nb_del=0;
foreach($corresp_matiere_a_enregistrer as $id_ligne => $nom_gepi) {
$sql="SELECT * FROM edt_lignes WHERE id='$id_ligne';";
$res=mysqli_query($GLOBALS["mysqli"], $sql);
if(mysqli_num_rows($res)>0) {
$lig=mysqli_fetch_object($res);
if($nom_gepi=="") {
$sql="DELETE FROM edt_corresp WHERE champ='matiere' AND nom_edt='".mysqli_real_escape_string($GLOBALS["mysqli"], $lig->mat_code)."';";
$del=mysqli_query($GLOBALS["mysqli"], $sql);
if(!$del) {
echo "Erreur : $sql
";
}
else {
$nb_del++;
}
}
else {
$sql="SELECT * FROM edt_corresp WHERE champ='matiere' AND nom_edt='".mysqli_real_escape_string($GLOBALS["mysqli"], $lig->mat_code)."';";
$res2=mysqli_query($GLOBALS["mysqli"], $sql);
if(mysqli_num_rows($res2)>0) {
$lig2=mysqli_fetch_object($res2);
echo "$lig->mat_code était préalablement associée à $lig2->nom_gepi
";
$sql="UPDATE edt_corresp SET champ='matiere', nom_edt='".mysqli_real_escape_string($GLOBALS["mysqli"], $lig->mat_code)."', nom_gepi='$nom_gepi' WHERE id='$lig2->id';";
$update=mysqli_query($GLOBALS["mysqli"], $sql);
if(!$update) {
echo "Erreur : $sql
";
}
else {
$nb_reg++;
}
}
else {
$sql="INSERT INTO edt_corresp SET champ='matiere', nom_edt='".mysqli_real_escape_string($GLOBALS["mysqli"], $lig->mat_code)."', nom_gepi='$nom_gepi';";
$insert=mysqli_query($GLOBALS["mysqli"], $sql);
if(!$insert) {
echo "Erreur : $sql
";
}
else {
$nb_reg++;
}
}
}
}
else {
echo "Enregistrement non trouvé pour la ligne n°$id_ligne correspondant à $nom_gepi
";
}
}
echo "$nb_reg associations matières effectuées.
";
}
// prof
$corresp_prof_a_enregistrer=isset($_POST['corresp_prof_a_enregistrer']) ? $_POST['corresp_prof_a_enregistrer'] : NULL;
if(isset($corresp_prof_a_enregistrer)) {
$nb_reg=0;
$nb_del=0;
foreach($corresp_prof_a_enregistrer as $id_ligne => $nom_gepi) {
$sql="SELECT * FROM edt_lignes WHERE id='$id_ligne';";
$res=mysqli_query($GLOBALS["mysqli"], $sql);
if(mysqli_num_rows($res)>0) {
$lig=mysqli_fetch_object($res);
if($nom_gepi=="") {
$sql="DELETE FROM edt_corresp WHERE champ='prof' AND nom_edt='".mysqli_real_escape_string($GLOBALS["mysqli"], $lig->prof_nom." ".$lig->prof_prenom)."';";
$del=mysqli_query($GLOBALS["mysqli"], $sql);
if(!$del) {
echo "Erreur : $sql
";
}
else {
$nb_del++;
}
}
else {
$sql="SELECT * FROM edt_corresp WHERE champ='prof' AND nom_edt='".mysqli_real_escape_string($GLOBALS["mysqli"], $lig->prof_nom." ".$lig->prof_prenom)."';";
$res2=mysqli_query($GLOBALS["mysqli"], $sql);
if(mysqli_num_rows($res2)>0) {
$lig2=mysqli_fetch_object($res2);
echo "$lig->prof_nom $lig->prof_prenom était préalablement associée à $lig2->nom_gepi
";
$sql="UPDATE edt_corresp SET champ='prof', nom_edt='".mysqli_real_escape_string($GLOBALS["mysqli"], $lig->prof_nom." ".$lig->prof_prenom)."', nom_gepi='$nom_gepi' WHERE id='$lig2->id';";
$update=mysqli_query($GLOBALS["mysqli"], $sql);
if(!$update) {
echo "Erreur : $sql
";
}
else {
$nb_reg++;
}
}
else {
$sql="INSERT INTO edt_corresp SET champ='prof', nom_edt='".mysqli_real_escape_string($GLOBALS["mysqli"], $lig->prof_nom." ".$lig->prof_prenom)."', nom_gepi='$nom_gepi';";
$insert=mysqli_query($GLOBALS["mysqli"], $sql);
if(!$insert) {
echo "Erreur : $sql
";
}
else {
$nb_reg++;
}
}
}
}
else {
echo "Enregistrement non trouvé pour la ligne n°$id_ligne correspondant à $nom_gepi
";
}
}
echo "$nb_reg associations professeurs effectuées.
";
}
// classe
$corresp_classe_a_enregistrer=isset($_POST['corresp_classe_a_enregistrer']) ? $_POST['corresp_classe_a_enregistrer'] : NULL;
if(isset($corresp_classe_a_enregistrer)) {
$nb_reg=0;
$nb_del=0;
foreach($corresp_classe_a_enregistrer as $id_ligne => $nom_gepi) {
$sql="SELECT * FROM edt_lignes WHERE id='$id_ligne';";
$res=mysqli_query($GLOBALS["mysqli"], $sql);
if(mysqli_num_rows($res)>0) {
$lig=mysqli_fetch_object($res);
if($nom_gepi=="") {
$sql="DELETE FROM edt_corresp WHERE champ='classe' AND nom_edt='".mysqli_real_escape_string($GLOBALS["mysqli"], $lig->classe)."';";
$del=mysqli_query($GLOBALS["mysqli"], $sql);
if(!$del) {
echo "Erreur : $sql
";
}
else {
$nb_del++;
}
}
else {
$sql="SELECT * FROM edt_corresp WHERE champ='classe' AND nom_edt='".mysqli_real_escape_string($GLOBALS["mysqli"], $lig->classe)."';";
$res2=mysqli_query($GLOBALS["mysqli"], $sql);
if(mysqli_num_rows($res2)>0) {
$lig2=mysqli_fetch_object($res2);
echo "$lig->classe était préalablement associée à $lig2->nom_gepi
";
$sql="UPDATE edt_corresp SET champ='classe', nom_edt='".mysqli_real_escape_string($GLOBALS["mysqli"], $lig->classe)."', nom_gepi='$nom_gepi' WHERE id='$lig2->id';";
$update=mysqli_query($GLOBALS["mysqli"], $sql);
if(!$update) {
echo "Erreur : $sql
";
}
else {
$nb_reg++;
}
}
else {
$sql="INSERT INTO edt_corresp SET champ='classe', nom_edt='".mysqli_real_escape_string($GLOBALS["mysqli"], $lig->classe)."', nom_gepi='$nom_gepi';";
$insert=mysqli_query($GLOBALS["mysqli"], $sql);
if(!$insert) {
echo "Erreur : $sql
";
}
else {
$nb_reg++;
}
}
}
}
else {
echo "Enregistrement non trouvé pour la ligne n°$id_ligne correspondant à $nom_gepi
";
}
}
echo "$nb_reg associations classes effectuées.
";
}
// salle
$tab_salle_cours=get_tab_salle_cours();
$corresp_salle_a_enregistrer=isset($_POST['corresp_salle_a_enregistrer']) ? $_POST['corresp_salle_a_enregistrer'] : NULL;
if(isset($corresp_salle_a_enregistrer)) {
//echo "1
";
$nb_reg=0;
$nb_del=0;
foreach($corresp_salle_a_enregistrer as $id_ligne => $nom_gepi) {
$sql="SELECT * FROM edt_lignes WHERE id='$id_ligne';";
//echo "$sql
";
$res=mysqli_query($GLOBALS["mysqli"], $sql);
if(mysqli_num_rows($res)>0) {
$lig=mysqli_fetch_object($res);
if($nom_gepi=="") {
$sql="DELETE FROM edt_corresp WHERE champ='salle' AND nom_edt='".mysqli_real_escape_string($GLOBALS["mysqli"], $lig->salle)."';";
$del=mysqli_query($GLOBALS["mysqli"], $sql);
if(!$del) {
echo "Erreur : $sql
";
}
else {
$nb_del++;
}
}
else {
$temoin_erreur="n";
if($nom_gepi=="___SALLE_A_CREER___") {
$nom_gepi=remplace_accents($lig->salle, "all");
$sql="SELECT 1=1 FROM salle_cours WHERE numero_salle='".$nom_gepi."';";
$test=mysqli_query($GLOBALS["mysqli"], $sql);
if(mysqli_num_rows($test)==0) {
$sql="INSERT INTO salle_cours SET numero_salle='".$nom_gepi."', nom_salle='".$nom_gepi."'";
//echo "$sql
";
$insert=mysqli_query($GLOBALS["mysqli"], $sql);
if(!$insert) {
echo "Erreur : $sql
";
$temoin_erreur="y";
}
else {
$tab_salle_cours=get_tab_salle_cours();
}
}
}
if($temoin_erreur=="n") {
$sql="SELECT * FROM edt_corresp WHERE champ='salle' AND nom_edt='".mysqli_real_escape_string($GLOBALS["mysqli"], $lig->salle)."';";
$res2=mysqli_query($GLOBALS["mysqli"], $sql);
if(mysqli_num_rows($res2)>0) {
$lig2=mysqli_fetch_object($res2);
echo "$lig->salle était préalablement associée à ".$tab_salle_cours['indice'][$lig2->nom_gepi]['numero_salle']." (".$tab_salle_cours['indice'][$lig2->nom_gepi]['nom_salle'].")
";
$sql="UPDATE edt_corresp SET champ='salle', nom_edt='".mysqli_real_escape_string($GLOBALS["mysqli"], $lig->salle)."', nom_gepi='$nom_gepi' WHERE id='$lig2->id';";
$update=mysqli_query($GLOBALS["mysqli"], $sql);
if(!$update) {
echo "Erreur : $sql
";
}
else {
$nb_reg++;
}
}
else {
$sql="INSERT INTO edt_corresp SET champ='salle', nom_edt='".mysqli_real_escape_string($GLOBALS["mysqli"], $lig->salle)."', nom_gepi='$nom_gepi';";
$insert=mysqli_query($GLOBALS["mysqli"], $sql);
if(!$insert) {
echo "Erreur : $sql
";
}
else {
$nb_reg++;
}
}
}
}
}
else {
echo "Enregistrement non trouvé pour la ligne n°$id_ligne correspondant à $nom_gepi
";
}
}
echo "$nb_reg associations salles effectuées.
";
}
// jour
$corresp_jour_a_enregistrer=isset($_POST['corresp_jour_a_enregistrer']) ? $_POST['corresp_jour_a_enregistrer'] : NULL;
if(isset($corresp_jour_a_enregistrer)) {
$nb_reg=0;
$nb_del=0;
foreach($corresp_jour_a_enregistrer as $id_ligne => $nom_gepi) {
$sql="SELECT * FROM edt_lignes WHERE id='$id_ligne';";
$res=mysqli_query($GLOBALS["mysqli"], $sql);
if(mysqli_num_rows($res)>0) {
$lig=mysqli_fetch_object($res);
if($nom_gepi=="") {
$sql="DELETE FROM edt_corresp WHERE champ='jour' AND nom_edt='".mysqli_real_escape_string($GLOBALS["mysqli"], $lig->jour)."';";
$del=mysqli_query($GLOBALS["mysqli"], $sql);
if(!$del) {
echo "Erreur : $sql
";
}
else {
$nb_del++;
}
}
else {
$sql="SELECT * FROM edt_corresp WHERE champ='jour' AND nom_edt='".mysqli_real_escape_string($GLOBALS["mysqli"], $lig->jour)."';";
$res2=mysqli_query($GLOBALS["mysqli"], $sql);
if(mysqli_num_rows($res2)>0) {
$lig2=mysqli_fetch_object($res2);
echo "$lig->jour était préalablement associée à $lig2->nom_gepi
";
$sql="UPDATE edt_corresp SET champ='jour', nom_edt='".mysqli_real_escape_string($GLOBALS["mysqli"], $lig->jour)."', nom_gepi='$nom_gepi' WHERE id='$lig2->id';";
$update=mysqli_query($GLOBALS["mysqli"], $sql);
if(!$update) {
echo "Erreur : $sql
";
}
else {
$nb_reg++;
}
}
else {
$sql="INSERT INTO edt_corresp SET champ='jour', nom_edt='".mysqli_real_escape_string($GLOBALS["mysqli"], $lig->jour)."', nom_gepi='$nom_gepi';";
$insert=mysqli_query($GLOBALS["mysqli"], $sql);
if(!$insert) {
echo "Erreur : $sql
";
}
else {
$nb_reg++;
}
}
}
}
else {
echo "Enregistrement non trouvé pour la ligne n°$id_ligne correspondant à $nom_gepi
";
}
}
echo "$nb_reg associations jours effectuées.
";
}
// groupes
$nb_reg=0;
$sql="SELECT * FROM edt_lignes;";
$res=mysqli_query($GLOBALS["mysqli"], $sql);
if(mysqli_num_rows($res)>0) {
while($lig=mysqli_fetch_object($res)) {
if(isset($_POST['corresp_groupe_a_enregistrer_'.$lig->id])) {
$current_ligne_grp=$_POST['corresp_groupe_a_enregistrer_'.$lig->id];
$chaine_classes="|";
for($loop=0;$loop0) {
$lig2=mysqli_fetch_object($res2);
echo "$lig->classe était préalablement associée à $lig2->nom_gepi
";
$sql="UPDATE edt_corresp SET champ='groupe', nom_edt='".mysqli_real_escape_string($GLOBALS["mysqli"], $lig->classe)."', nom_gepi='$chaine_classes' WHERE id='$lig2->id';";
$update=mysqli_query($GLOBALS["mysqli"], $sql);
if(!$update) {
echo "Erreur : $sql
";
}
else {
$nb_reg++;
}
}
else {
$sql="INSERT INTO edt_corresp SET champ='groupe', nom_edt='".mysqli_real_escape_string($GLOBALS["mysqli"], $lig->classe)."', nom_gepi='$chaine_classes';";
$insert=mysqli_query($GLOBALS["mysqli"], $sql);
if(!$insert) {
echo "Erreur : $sql
";
}
else {
$nb_reg++;
}
}
}
}
echo "$nb_reg associations classes/groupes effectuées.
";
}
// h_debut
$corresp_h_debut_a_enregistrer=isset($_POST['corresp_h_debut_a_enregistrer']) ? $_POST['corresp_h_debut_a_enregistrer'] : NULL;
$corresp_h_debut_demi_creneau=isset($_POST['corresp_h_debut_demi_creneau']) ? $_POST['corresp_h_debut_demi_creneau'] : array();
if(isset($corresp_h_debut_a_enregistrer)) {
$nb_reg=0;
$nb_del=0;
foreach($corresp_h_debut_a_enregistrer as $id_ligne => $nom_gepi) {
$sql="SELECT * FROM edt_lignes WHERE id='$id_ligne';";
$res=mysqli_query($GLOBALS["mysqli"], $sql);
if(mysqli_num_rows($res)>0) {
$lig=mysqli_fetch_object($res);
if($nom_gepi=="") {
$sql="DELETE FROM edt_corresp WHERE champ='h_debut' AND nom_edt='".mysqli_real_escape_string($GLOBALS["mysqli"], $lig->h_debut)."';";
$del=mysqli_query($GLOBALS["mysqli"], $sql);
if(!$del) {
echo "Erreur : $sql
";
}
else {
$nb_del++;
}
}
else {
if(isset($corresp_h_debut_demi_creneau[$id_ligne])) {
$nom_gepi.="|0.5";
}
else {
$nom_gepi.="|0";
}
$sql="SELECT * FROM edt_corresp WHERE champ='h_debut' AND nom_edt='".mysqli_real_escape_string($GLOBALS["mysqli"], $lig->h_debut)."';";
$res2=mysqli_query($GLOBALS["mysqli"], $sql);
if(mysqli_num_rows($res2)>0) {
$lig2=mysqli_fetch_object($res2);
echo "$lig->h_debut était préalablement associée à $lig2->nom_gepi
";
$sql="UPDATE edt_corresp SET champ='h_debut', nom_edt='".mysqli_real_escape_string($GLOBALS["mysqli"], $lig->h_debut)."', nom_gepi='$nom_gepi' WHERE id='$lig2->id';";
$update=mysqli_query($GLOBALS["mysqli"], $sql);
if(!$update) {
echo "Erreur : $sql
";
}
else {
$nb_reg++;
}
}
else {
$sql="INSERT INTO edt_corresp SET champ='h_debut', nom_edt='".mysqli_real_escape_string($GLOBALS["mysqli"], $lig->h_debut)."', nom_gepi='$nom_gepi';";
$insert=mysqli_query($GLOBALS["mysqli"], $sql);
if(!$insert) {
echo "Erreur : $sql
";
}
else {
$nb_reg++;
}
}
}
}
else {
echo "Enregistrement non trouvé pour la ligne n°$id_ligne correspondant à $nom_gepi
";
}
}
echo "$nb_reg associations d'heure de début de cours effectuées.
";
}
// frequence
$corresp_frequence_a_enregistrer=isset($_POST['corresp_frequence_a_enregistrer']) ? $_POST['corresp_frequence_a_enregistrer'] : NULL;
if(isset($corresp_frequence_a_enregistrer)) {
$nb_reg=0;
$nb_del=0;
foreach($corresp_frequence_a_enregistrer as $id_ligne => $nom_gepi) {
$sql="SELECT * FROM edt_lignes WHERE id='$id_ligne';";
$res=mysqli_query($GLOBALS["mysqli"], $sql);
if(mysqli_num_rows($res)>0) {
$lig=mysqli_fetch_object($res);
if($nom_gepi=="") {
$sql="DELETE FROM edt_corresp WHERE champ='frequence' AND nom_edt='".mysqli_real_escape_string($GLOBALS["mysqli"], $lig->frequence)."';";
$del=mysqli_query($GLOBALS["mysqli"], $sql);
if(!$del) {
echo "Erreur : $sql
";
}
else {
$nb_del++;
}
}
else {
$sql="SELECT * FROM edt_corresp WHERE champ='frequence' AND nom_edt='".mysqli_real_escape_string($GLOBALS["mysqli"], $lig->frequence)."';";
$res2=mysqli_query($GLOBALS["mysqli"], $sql);
if(mysqli_num_rows($res2)>0) {
$lig2=mysqli_fetch_object($res2);
echo "$lig->frequence était préalablement associée à $lig2->nom_gepi
";
$sql="UPDATE edt_corresp SET champ='frequence', nom_edt='".mysqli_real_escape_string($GLOBALS["mysqli"], $lig->frequence)."', nom_gepi='$nom_gepi' WHERE id='$lig2->id';";
$update=mysqli_query($GLOBALS["mysqli"], $sql);
if(!$update) {
echo "Erreur : $sql
";
}
else {
$nb_reg++;
}
}
else {
$sql="INSERT INTO edt_corresp SET champ='frequence', nom_edt='".mysqli_real_escape_string($GLOBALS["mysqli"], $lig->frequence)."', nom_gepi='$nom_gepi';";
$insert=mysqli_query($GLOBALS["mysqli"], $sql);
if(!$insert) {
echo "Erreur : $sql
";
}
else {
$nb_reg++;
}
}
}
}
else {
echo "Enregistrement non trouvé pour la ligne n°$id_ligne correspondant à $nom_gepi
";
}
}
echo "$nb_reg associations de semaines A/B effectuées.
";
}
/*
$classe_udt=isset($_POST['classe_udt']) ? $_POST['classe_udt'] : array();
$classe=isset($_POST['classe']) ? $_POST['classe'] : array();
//$id_classe=isset($_POST['id_classe']) ? $_POST['id_classe'] : array();
$matiere_udt=isset($_POST['matiere_udt']) ? $_POST['matiere_udt'] : array();
$matiere=isset($_POST['matiere']) ? $_POST['matiere'] : array();
$prof_udt=isset($_POST['prof_udt']) ? $_POST['prof_udt'] : array();
$login_prof=isset($_POST['login_prof']) ? $_POST['login_prof'] : array();
*/
echo "Suppression des enseignements, associations élèves/enseignements, classes/enseignements et professeurs/enseignements.
\n";
$del = @mysqli_query($GLOBALS["mysqli"], "DELETE FROM groupes;");
$del = @mysqli_query($GLOBALS["mysqli"], "DELETE FROM j_eleves_groupes;");
$del = @mysqli_query($GLOBALS["mysqli"], "DELETE FROM j_groupes_classes;");
$del = @mysqli_query($GLOBALS["mysqli"], "DELETE FROM j_groupes_professeurs;");
$del = @mysqli_query($GLOBALS["mysqli"], "DELETE FROM j_groupes_matieres;");
$del = @mysqli_query($GLOBALS["mysqli"], "DELETE FROM j_signalement;");
$del = @mysqli_query($GLOBALS["mysqli"], "DELETE FROM j_groupes_visibilite;");
$del = @mysqli_query($GLOBALS["mysqli"], "DELETE FROM acces_cdt_groupes;");
// On conserve les associations profs/matières
//$del = @mysql_query("DELETE FROM j_professeurs_matieres;");
$enseignements_deja_traites=array();
$sql="SELECT * FROM edt_lignes ORDER BY numero;";
$res=mysqli_query($GLOBALS["mysqli"], $sql);
if(mysqli_num_rows($res)==0) {
echo "Aucun enregistrement n'a été trouvé???
";
require("../lib/footer.inc.php");
die();
}
while($tab=mysqli_fetch_assoc($res)) {
/*
1
1h00
H
AGL1
ANGLAIS LV1
COURSIER-FRIMONT
ARIANE
6B
24
H
CG
N
1
lundi
08h00
21
*/
$current_nom_regroupement_edt=preg_replace("/\[/", "", preg_replace("/\]/", "", $tab['classe']));
$edt_cours_id_groupe="";
$edt_cours_id_salle="";
$edt_cours_jour_semaine="";
$edt_cours_id_definie_periode="";
$edt_cours_duree="";
$edt_cours_heuredeb_dec="";
$edt_cours_id_semaine="";
$edt_cours_login_prof="";
if($tab['classe']=='') {
echo "Le cours n°".$tab['numero']." n'est associé à aucune classe dans EDT.
Il se peut qu'il s'agisse de l'emploi du temps d'un(e) surveillant(e) en permanence,...
Ce cas n'est pas géré.
";
echo "";
print_r($tab);
echo "
";
}
else {
/*
Array
(
[id] => 1
[numero] => 1
[classe] => 6B
[mat_code] => AGL1
[mat_libelle] => ANGLAIS LV1
[prof_nom] => COURSIER-FRIMONT
[prof_prenom] => ARIANE
[salle] => 24
[jour] => lundi
[h_debut] => 08h00
[duree] => 1h00
[frequence] => H
[alternance] => H
[effectif] => 21
[modalite] => CG
[co_ens] => N
[pond] => 1
)
*/
$id_ligne=$tab['id'];
$matiere=get_corresp_edt("matiere", $tab['mat_code']);
$classe=get_corresp_edt("classe", $tab['classe']);
$groupes=get_corresp_edt("groupe", $tab['classe']);
$salle=get_corresp_edt("salle", $tab['salle']);
$prof=get_corresp_edt("prof", $tab['prof_nom']." ".$tab['prof_prenom']);
$jour=get_corresp_edt("jour", $tab['jour']);
$h_debut=get_corresp_edt("h_debut", $tab['h_debut']);
$frequence=get_corresp_edt("frequence", $tab['frequence']);
$classe_aff=$classe;
if(preg_match("/^[0-9]{1,}$/", $classe)) {
if(!isset($tab_classe[$classe])) {
$tab_classe[$classe]=get_nom_classe($classe);
}
$classe_aff=$tab_classe[$classe];
}
// Lors de l'initialisation, il n'y a pas encore de groupe enregistré... ??
// Si... si
$chaine_classes="";
$groupes_aff="";
$tmp_nom_groupe="";
if(preg_match("/^\[.*\]$/", $tab['classe'])) {
$tmp_nom_groupe=preg_replace("/^\[/", "", preg_replace("/\]$/", "", $tab['classe']));
$groupes_aff=$tmp_nom_groupe;
}
$tmp_tab=explode("|", $groupes);
for($loop=0;$loopCours n°".$tab['numero']."
";
echo "matiere=$matiere
";
echo "classe=$classe
";
echo "classe_aff=$classe_aff
";
echo "groupes=$groupes
";
echo "groupes_aff=$groupes_aff
";
echo "prof=$prof
";
if(($matiere!="")&&($prof!="")) {
$edt_cours_login_prof=$prof;
$prof_aff="";
if($prof!="") {
if(!isset($tab_prof[$prof])) {
$tab_prof[$prof]=civ_nom_prenom($prof);
}
$prof_aff=$tab_prof[$prof];
}
echo "prof_aff=$prof_aff
";
$reg_matiere=$matiere;
$matiere_nom_complet=get_valeur_champ('matieres', "matiere='$matiere'", "nom_complet");
$matiere_categorie_id=get_valeur_champ('matieres', "matiere='$matiere'", "categorie_id");
if($matiere_nom_complet=="") {
echo "Matière non trouvée dans la table 'matieres'... on n'enregistre pas.
";
}
else {
$reg_nom_groupe=$matiere;
$reg_nom_complet=$matiere_nom_complet;
$reg_categorie=$matiere_categorie_id;
$chaine_id_classe="";
$reg_clazz=array();
if($classe!="") {
$reg_clazz[]=$classe;
$chaine_id_classe=$classe;
}
else {
// C'est un regroupement (en principe).
$temp=explode("|", trim($groupes));
sort($temp);
for($loop=0;$loopLe cours n°".$tab['numero']." correspond à un enseignement déjà traité.
\n";
}
else {
$create=create_group($reg_nom_groupe, $reg_nom_complet, $reg_matiere, $reg_clazz, $reg_categorie);
if(!$create) {
echo "Erreur lors de la création du groupe.
";
}
else {
$enseignements_deja_traites[]=$reg_nom_groupe."|".$reg_nom_complet."|".$reg_matiere."|".$chaine_id_classe;
$sql="INSERT INTO edt_corresp2 SET id_groupe='$create', mat_code_edt='".mysqli_real_escape_string($GLOBALS["mysqli"], $tab['mat_code'])."', nom_groupe_edt='".mysqli_real_escape_string($GLOBALS["mysqli"], $tab['classe'])."';";
$insert=mysqli_query($GLOBALS["mysqli"], $sql);
if($insert) {
echo "Enregistrement de l'association groupe dans edt_corresp2.
";
}
else {
echo "Erreur lors de l'enregistrement de l'association groupe dans edt_corresp2.
";
}
$reg_professeurs=array();
$reg_professeurs[]=$prof;
// Et si il y a plusieurs profs associés? ça se présente comment?
$sql="SELECT 1=1 FROM j_professeurs_matieres WHERE id_professeur='$prof' AND id_matiere='$matiere';";
$test=mysqli_query($GLOBALS["mysqli"], $sql);
if(mysqli_num_rows($test)==0) {
$sql="SELECT ordre_matieres FROM j_professeurs_matieres WHERE id_professeur='$prof' ORDER BY ordre_matieres DESC LIMIT 1;";
$res_max_ordre_matiere=mysqli_query($GLOBALS["mysqli"], $sql);
if(mysqli_num_rows($res_max_ordre_matiere)==0) {
$ordre_mat=1;
}
else {
$lig_ordre_mat=mysqli_fetch_object($res_max_ordre_matiere);
$ordre_mat=$lig_ordre_mat->ordre_matieres+1;
}
$sql="INSERT INTO j_professeurs_matieres SET id_professeur='$prof', id_matiere='$matiere', ordre_matieres='$ordre_mat';";
$insert=mysqli_query($GLOBALS["mysqli"], $sql);
if(!$insert) {echo "
ERREUR lors de l'association du professeur $prof avec la matière $matiere
\n";}
else {echo " (association du professeur avec la matière $matiere)
";}
}
$tab_eleves_groupe_toutes_periodes=array();
$reg_eleves=array();
$current_group=get_group($create);
foreach ($current_group["periodes"] as $period) {
$reg_eleves[$period['num_periode']]=array();
$cpt_clas=0;
$sql="";
foreach($reg_clazz as $tmp_id_classe){
if($cpt_clas>0) {$sql.=" UNION ";}
$sql.="(SELECT jec.login FROM j_eleves_classes jec, eleves e, classes c WHERE id_classe='$tmp_id_classe' AND periode='".$period['num_periode']."' AND jec.login=e.login AND jec.id_classe=c.id ORDER BY e.nom, e.prenom)";
$cpt_clas++;
}
//$sql.=" ORDER BY c.classe, e.nom, e.prenom;";
//echo "$sql
";
$res_ele=mysqli_query($GLOBALS["mysqli"], $sql);
$nb_ele=mysqli_num_rows($res_ele);
if($nb_ele>0){
$cpt_ele=1;
while($lig_ele=mysqli_fetch_object($res_ele)) {
$reg_eleves[$period['num_periode']][]=$lig_ele->login;
//echo $lig_ele->login."
";
if(!in_array($lig_ele->login, $tab_eleves_groupe_toutes_periodes)) {
$tab_eleves_groupe_toutes_periodes[]=$lig_ele->login;
}
$cpt_ele++;
}
}
}
$code_modalite_elect_eleves=array();
for($loop=0;$loop0) {
$lig_cme=mysqli_fetch_object($res_cme);
$code_modalite_elect_eleves[$lig_cme->code_modalite_elect]["eleves"][]=$tab_eleves_groupe_toutes_periodes[$loop];
}
}
if ((count($reg_professeurs) == 0)&&(count($reg_eleves) == 0)) {
echo "Groupe sans élève ni professeur.
";
} else {
$update_grp=update_group($create, $reg_nom_groupe, $reg_nom_complet, $reg_matiere, $reg_clazz, $reg_professeurs, $reg_eleves, $code_modalite_elect_eleves);
if(!$update_grp) {
echo "Erreur lors de l'inscription des professeurs et élèves dans le groupe.
";
}
}
}
}
}
}
}
}
/*
echo "On ne va pas plus loin pour le moment.
";
require("../lib/footer.inc.php");
die();
//++++++++++++++++++++++++++++++++++++++++++++++++++++++
*/
echo "Prise en compte des options des élèves
\n";
//echo "Import des professeurs principaux
Il est probable que cette information n'était pas dans le fichier de STS, l'import des professeurs principaux risque de ne rien donner... mais qui ne tente rien...
\n";
}
}
}
require("../lib/footer.inc.php");
?>