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='/groupes/correction_inscriptions_grp_csv.php';"; $test=mysqli_query($GLOBALS["mysqli"], $sql); if(mysqli_num_rows($test)==0) { $sql="INSERT INTO droits SET id='/groupes/correction_inscriptions_grp_csv.php', administrateur='V', professeur='F', cpe='F', scolarite='F', eleve='F', responsable='F', secours='F', autre='F', description='Correction des inscriptions dans des groupes d après un CSV', statut='';"; $insert=mysqli_query($GLOBALS["mysqli"], $sql); } //====================================================================================== // Section checkAccess() à décommenter en prenant soin d'ajouter le droit correspondant: if (!checkAccess()) { header("Location: ../logout.php?auto=1"); die(); } //====================================================================================== //$projet=isset($_POST['projet']) ? $_POST['projet'] : (isset($_GET['projet']) ? $_GET['projet'] : NULL); //$is_posted=isset($_POST['is_posted']) ? $_POST['is_posted'] : NULL; $action=isset($_POST['action']) ? $_POST['action'] : NULL; $col_login=isset($_POST['col_login']) ? $_POST['col_login'] : NULL; $col_elenoet=isset($_POST['col_elenoet']) ? $_POST['col_elenoet'] : NULL; $col_option=isset($_POST['col_option']) ? $_POST['col_option'] : NULL; //**************** EN-TETE ***************** $titre_page = "Correction membres groupes"; //echo "
\n"; require_once("../lib/header.inc.php"); //echo "
\n"; //**************** FIN EN-TETE ***************** //debug_var(); if(!isset($action)) { echo "

Retour à la Gestion des classes

\n"; echo "

Choix du CSV

\n"; echo "

Veuillez fournir un fichier CSV au format... approprié... pour corriger les inscriptions dans les groupes existants.

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

\n"; echo "

\n"; echo "

\n"; echo "

NOTES :

\n"; require("../lib/footer.inc.php"); die(); } //================================================ if((isset($action))&&($action=="upload_file")) { echo "

Retour

\n"; echo "

Envoi du CSV

\n"; $csv_file = isset($_FILES["csv_file"]) ? $_FILES["csv_file"] : NULL; if(!is_uploaded_file($csv_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"; require("../lib/footer.inc.php"); die(); } if(!file_exists($csv_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"; require("../lib/footer.inc.php"); die(); } echo "

Le fichier a été uploadé.

\n"; $tempdir=get_user_temp_directory(); $source_file=$csv_file['tmp_name']; $dest_file="../temp/".$tempdir."/correction_inscriptions_grp.csv"; $res_copy=copy("$source_file" , "$dest_file"); // Le nom est ok. On ouvre le fichier $fp=fopen($dest_file,"r"); if(!$fp) { // Aie : on n'arrive pas à ouvrir le fichier... Pas bon. echo "

Impossible d'ouvrir le fichier CSV !

\n"; echo "

Cliquer ici pour recommencer !

\n"; require("../lib/footer.inc.php"); die(); } // Lecture de la ligne d'entête du CSV $ligne=trim(fgets($fp, 4096)); $tabligne_entete=explode(";",$ligne); echo "

Vous devez choisir une colonne pour l'identifiant de l'élève parmi LOGIN ou ELENOET.
Vous devez également cocher les colonnes d'options à traiter.
Les élèves seront inscrits/désinscrits des groupes des matières choisies dans les enseignements des classes où les élèves sont inscrits.

"; for($loop=0;$loop"; } echo " "; for($loop=0;$loop"; } echo " "; for($loop=0;$loop"; } echo " "; for($loop=0;$loop".$tabligne_entete[$loop].""; } echo " "; $cpt=1; while (!feof($fp)) { $ligne = fgets($fp, 4096); if(trim($ligne)!="") { $tabligne=explode(";",$ligne); echo " "; for($loop=0;$loop".$tabligne[$loop].""; } echo " "; $cpt++; } } echo "
Identifiant Login
Elenoet
Colonnes options à prendre en compte
Ligne d'entête
Ligne $cpt
"; require("../lib/footer.inc.php"); die(); } //================================================ if((isset($action))&&($action=="inscriptions_desinscriptions")) { echo "

Retour

\n"; echo "

Inscriptions désinscriptions d'après le CSV

\n"; if(($col_login=="")&&($col_elenoet=="")) { echo "

Vous n'avez pas choisi de colonne identifiant LOGIN ou ELENOET.

"; require("../lib/footer.inc.php"); die(); } $tempdir=get_user_temp_directory(); $dest_file="../temp/".$tempdir."/correction_inscriptions_grp.csv"; $fp=fopen($dest_file,"r"); if(!$fp) { // Aie : on n'arrive pas à ouvrir le fichier... Pas bon. echo "

Impossible d'ouvrir le fichier CSV !

\n"; echo "

Cliquer ici pour recommencer !

\n"; require("../lib/footer.inc.php"); die(); } $ligne=trim(fgets($fp, 4096)); echo "

Ligne d'entête :
$ligne

"; $tabligne_entete=explode(";",$ligne); if($col_elenoet!="") { echo "

Identifiant choisi : ELENOET
La colonne identifiant choisie est la n°".$col_elenoet." : ".$tabligne_entete[$col_elenoet]."

"; $col_identifiant=$col_elenoet; $nature_identifiant='elenoet'; } else { echo "

Identifiant choisi : LOGIN
La colonne identifiant choisie est la n°".$col_login." : ".$tabligne_entete[$col_login]."

"; $col_identifiant=$col_login; $nature_identifiant='login'; } echo "

Les colonnes à traiter sont les colonnes :
"; for($loop=0;$loop"; } echo "

"; echo "

Les inscriptions vont apparaitre en vert et les désinscriptions en rouge.
Si aucune inscription verte ou rouge n'apparait, c'est que les inscriptions sont conformes au fichier CSV.

"; $cpt=1; $tab_classe=array(); while (!feof($fp)) { $ligne = fgets($fp, 4096); if(trim($ligne)!="") { $tabligne=explode(";",$ligne); if($tabligne[$col_identifiant]!="") { // Recherche du login associé: $sql="SELECT login, nom, prenom FROM eleves WHERE $nature_identifiant='".$tabligne[$col_identifiant]."';"; $res_ele=mysqli_query($GLOBALS["mysqli"], $sql); if(mysqli_num_rows($res_ele)==0) { echo "

Élève non trouvé pour l'identifiant ".$tabligne[$col_identifiant].".
".$ligne."

"; } elseif(mysqli_num_rows($res_ele)>1) { echo "

ANOMALIE : Plus d'un élève semble correspondre à l'identifiant proposé.
".$ligne."

"; } else { $lig_ele=mysqli_fetch_object($res_ele); // Recherche des classes de l'élève: $sql="SELECT DISTINCT id_classe FROM j_eleves_classes WHERE login='".$lig_ele->login."';"; $res_clas=mysqli_query($GLOBALS["mysqli"], $sql); if(mysqli_num_rows($res_clas)==0) { echo "

Élève $lig_ele->nom $lig_ele->prenom inscrit dans aucune classe.
".$ligne."

"; } else { echo $lig_ele->nom." ".$lig_ele->prenom." : "; while($lig_clas=mysqli_fetch_object($res_clas)) { if(!isset($tab_classe[$lig_clas->id_classe])) { $tab_classe[$lig_clas->id_classe]=get_nom_classe($lig_clas->id_classe); } echo "(".$tab_classe[$lig_clas->id_classe].") "; $nb_per=get_period_number($lig_clas->id_classe); //echo "(".$nb_per.") "; for($loop=0;$loopid_classe."' AND jgc.id_groupe=jgm.id_groupe AND jgm.id_matiere='".$tabligne_entete[$col_option[$loop]]."';"; //echo "$sql
"; $res_grp=mysqli_query($GLOBALS["mysqli"], $sql); if(mysqli_num_rows($res_grp)>0) { while($lig_grp=mysqli_fetch_object($res_grp)) { $sql="SELECT 1=1 FROM j_eleves_groupes WHERE login='".$lig_ele->login."' AND id_groupe='".$lig_grp->id_groupe."';"; //echo "$sql
"; $res_ele_grp=mysqli_query($GLOBALS["mysqli"], $sql); if((mysqli_num_rows($res_ele_grp)==0)&&($tabligne[$col_option[$loop]]!="")) { for($loop_per=1;$loop_per<$nb_per+1;$loop_per++) { $sql="INSERT INTO j_eleves_groupes SET login='".$lig_ele->login."', id_groupe='".$lig_grp->id_groupe."', periode='$loop_per';"; //echo "$sql
"; $insert=mysqli_query($GLOBALS["mysqli"], $sql); if(!$insert) { echo "ERREUR "; } } echo "".$tabligne_entete[$col_option[$loop]]." "; } elseif((mysqli_num_rows($res_ele_grp)>0)&&($tabligne[$col_option[$loop]]=="")) { for($loop_per=1;$loop_per<$nb_per+1;$loop_per++) { if (test_before_eleve_removal($lig_ele->login, $lig_grp->id_groupe, $loop_per)) { $sql="DELETE FROM j_eleves_groupes WHERE login='".$lig_ele->login."' AND id_groupe='".$lig_grp->id_groupe."' AND periode='$loop_per';"; //echo "$sql
"; $del=mysqli_query($GLOBALS["mysqli"], $sql); if(!$del) { echo "ERREUR "; } echo "".$tabligne_entete[$col_option[$loop]]." "; } else { echo "".$tabligne_entete[$col_option[$loop]]." (bulletins non vides P$loop_per) "; } } } } } else { if($tabligne[$col_option[$loop]]!="") { echo "id_classe]." et refaire l'import du CSV.\">Aucun groupe de ".$tabligne_entete[$col_option[$loop]]." trouvé "; } } } } echo "
"; } } } $cpt++; } } require("../lib/footer.inc.php"); die(); } require("../lib/footer.inc.php"); ?>