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(); } // Check access if (!checkAccess()) { header("Location: ../logout.php?auto=1"); die(); } if (empty($_GET['action']) and empty($_POST['action'])) { $action="";} else { if (isset($_GET['action'])) {$action=$_GET['action'];} if (isset($_POST['action'])) {$action=$_POST['action'];} } if (empty($_GET['id']) and empty($_POST['id'])) { $id="";} else { if (isset($_GET['id'])) {$id=$_GET['id'];} if (isset($_POST['id'])) {$id=$_POST['id'];} } if (empty($_GET['EXT_ID']) and empty($_POST['EXT_ID'])) { $EXT_ID="";} else { if (isset($_GET['EXT_ID'])) {$EXT_ID=$_GET['EXT_ID'];} if (isset($_POST['EXT_ID'])) {$EXT_ID=$_POST['EXT_ID'];} } if (empty($_GET['LIBELLE_COURT']) and empty($_POST['LIBELLE_COURT'])) { $LIBELLE_COURT="";} else { if (isset($_GET['LIBELLE_COURT'])) {$LIBELLE_COURT=$_GET['LIBELLE_COURT'];} if (isset($_POST['LIBELLE_COURT'])) {$LIBELLE_COURT=$_POST['LIBELLE_COURT'];} } if (empty($_GET['LIBELLE_LONG']) and empty($_POST['LIBELLE_LONG'])) { $LIBELLE_LONG="";} else { if (isset($_GET['LIBELLE_LONG'])) {$LIBELLE_LONG=$_GET['LIBELLE_LONG'];} if (isset($_POST['LIBELLE_LONG'])) {$LIBELLE_LONG=$_POST['LIBELLE_LONG'];} } if (empty($_GET['LIBELLE_EDITION']) and empty($_POST['LIBELLE_EDITION'])) { $LIBELLE_EDITION="";} else { if (isset($_GET['LIBELLE_EDITION'])) {$LIBELLE_EDITION=$_GET['LIBELLE_EDITION'];} if (isset($_POST['LIBELLE_EDITION'])) {$LIBELLE_EDITION=$_POST['LIBELLE_EDITION'];} } $mef = MefQuery::create()->findPk($id); if ($action == 'supprimer') { check_token(); if ($mef != null) { $mef->delete(); } } elseif ($action == 'supprimer_tous_mef') { check_token(); $sql="TRUNCATE mef;"; $menage=mysqli_query($GLOBALS["mysqli"], $sql); } elseif ($action == 'ajouterdefaut') { check_token(); ajoutMefParDefaut(); } elseif ($action == 'ajouterdefautlycee') { check_token(); ajoutMefParDefautLycee(); } else { if ($EXT_ID != '') { check_token(); if ($mef == null) { $mef = new Mef(); } $mef->setMefCode(stripslashes($EXT_ID)); $mef->setLibelleCourt(stripslashes($LIBELLE_COURT)); $mef->setLibelleLong(stripslashes($LIBELLE_LONG)); $mef->setLibelleEdition(stripslashes($LIBELLE_EDITION)); $mef->save(); if(isset($_POST['MEF_RATTACHEMENT'])) { $sql="UPDATE mef SET mef_rattachement='".$_POST['MEF_RATTACHEMENT']."' WHERE mef_code='".$EXT_ID."';"; $update=mysqli_query($GLOBALS["mysqli"], $sql); } if(isset($_POST['CODE_MEFSTAT'])) { $sql="UPDATE mef SET code_mefstat='".$_POST['CODE_MEFSTAT']."' WHERE mef_code='".$EXT_ID."';"; $update=mysqli_query($GLOBALS["mysqli"], $sql); } } } // header $titre_page = "Gestion des mef (module élémentaire de formation)"; require_once("../lib/header.inc.php"); echo "
"; echo ""; echo " Retour"; echo " | Associer les élèves aux MEFs"; //echo " | Associer les MEFs, les matières et les modalités élection"; echo "
"; ?>Il semble que le dossier temporaire de l'utilisateur ".$_SESSION['login']." ne soit pas défini!?
\n"; } else { echo ""; } } else { $tempdir=get_user_temp_directory(); $xml_file = isset($_FILES["nomenclature_xml_file"]) ? $_FILES["nomenclature_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 "
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 "
Il semblerait que l'absence d'extension .XML ou .ZIP puisse aussi provoquer ce genre de symptômes.
Dans ce cas, ajoutez l'extension et ré-essayez.
Le fichier a été uploadé.
\n"; //$source_file=stripslashes($xml_file['tmp_name']); $source_file=$xml_file['tmp_name']; $dest_file="../temp/".$tempdir."/nomenclature.xml"; $res_copy=copy("$source_file" , "$dest_file"); //=============================================================== // ajout prise en compte des fichiers ZIP: Marc Leygnac $unzipped_max_filesize=getSettingValue('unzipped_max_filesize')*1024*1024; // $unzipped_max_filesize = 0 pas de limite de taille pour les fichiers extraits // $unzipped_max_filesize < 0 extraction zip désactivée if($unzipped_max_filesize>=0) { $fichier_emis=$xml_file['name']; $extension_fichier_emis=my_strtolower(mb_strrchr($fichier_emis,".")); if (($extension_fichier_emis==".zip")||($xml_file['type']=="application/zip")) { require_once('../lib/pclzip.lib.php'); $archive = new PclZip($dest_file); if (($list_file_zip = $archive->listContent()) == 0) { echo "Erreur : ".$archive->errorInfo(true)."
\n"; require("../lib/footer.inc.php"); die(); } if(sizeof($list_file_zip)!=1) { echo "Erreur : L'archive contient plus d'un fichier.
\n"; require("../lib/footer.inc.php"); die(); } if(($list_file_zip[0]['size']>$unzipped_max_filesize)&&($unzipped_max_filesize>0)) { echo "Erreur : La taille du fichier extrait (".$list_file_zip[0]['size']." octets) dépasse la limite paramétrée ($unzipped_max_filesize octets).
\n"; require("../lib/footer.inc.php"); die(); } $res_extract=$archive->extract(PCLZIP_OPT_PATH, "../temp/".$tempdir); if ($res_extract != 0) { echo "Le fichier uploadé a été dézippé.
\n"; $fichier_extrait=$res_extract[0]['filename']; unlink("$dest_file"); // Pour Wamp... $res_copy=rename("$fichier_extrait" , "$dest_file"); } else { echo "Echec de l'extraction de l'archive ZIP.
\n"; require("../lib/footer.inc.php"); die(); } } } //fin ajout prise en compte des fichiers ZIP //=============================================================== 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
ECHEC du chargement du fichier avec simpleXML.
\n"; require("../lib/footer.inc.php"); die(); } $nom_racine=$nomenclature_xml->getName(); if(my_strtoupper($nom_racine)!='BEE_NOMENCLATURES') { echo "ERREUR: Le fichier XML fourni n'a pas l'air d'être un fichier XML Nomenclatures.
Sa racine devrait être 'BEE_NOMENCLATURES'.
";
echo "Analyse du fichier...
\n";
$tab_mef=array();
$i=-1;
$objet_mefs=($nomenclature_xml->DONNEES->MEFS);
foreach ($objet_mefs->children() as $mef) {
$i++;
$tab_mef[$i]=array();
foreach($mef->attributes() as $key => $value) {
$tab_mef[$i][mb_strtolower($key)]=trim($value);
}
foreach($mef->children() as $key => $value) {
if(in_array(my_strtoupper($key),$tab_champs_mef)) {
$tab_mef[$i][mb_strtolower($key)]=preg_replace('/"/','',trim($value));
}
}
}
/*
echo "
"; print_r($tab_mef); echo ""; */ $nb_mef_deja=0; $nb_mef_reg=0; for($loop=0;$loop
$nb_mef_deja mef déjà présent(s) dans Gepi a(ont) été trouvé(s) dans le XML.
"; } if($nb_mef_reg>0) { echo "$nb_mef_reg mef a(ont) été importé(s) depuis le XML.
"; } //======================================================= // 20160415 echo "";
echo "Analyse du fichier pour extraire les associations MEF/MATIERE/MODALITE_ELECTION...
\n";
$tab_champs_programme=array("CODE_MEF",
"CODE_MATIERE",
"CODE_MODALITE_ELECT");
$programmes=array();
$i=-1;
$objet_programmes=($nomenclature_xml->DONNEES->PROGRAMMES);
foreach ($objet_programmes->children() as $programme) {
$i++;
//echo "
Matière $i $nb_insert_prog association(s) MEF/Matière/Modalité élection ont été importées. Aucune association MEF/Matière/Modalité élection n'a été ajoutée. ";
echo "Analyse du fichier pour extraire les MODALITE_ELECTION... Matière $i $nb_insert_mod modalités élection ont été importées. Aucune modalité élection n'a été enregistrée.
";
$programmes[$i]=array();
/*
";
$programmes[$i][my_strtolower($key)]=trim($value);
}
*/
foreach($programme->children() as $key => $value) {
if(in_array(my_strtoupper($key),$tab_champs_programme)) {
$programmes[$i][my_strtolower($key)]=preg_replace('/"/','',trim($value));
//echo "\$programme->$key=".$value."
";
}
}
}
$nb_insert_prog=0;
// Faut-il supprimer les associations qui ne sont plus dans le XML?
$tab_mef_mat=array();
$sql="SELECT * FROM mef_matieres;";
$res_mm=mysqli_query($mysqli, $sql);
while($lig_mm=mysqli_fetch_object($res_mm)) {
$tab_mef_mat[$lig_mm->mef_code][$lig_mm->code_matiere][]=$lig_mm->code_modalite_elect;
}
for($loop=0;$loop
\n";
$tab_champs_modalites=array("LIBELLE_COURT",
"LIBELLE_LONG");
$modalites=array();
$i=-1;
$objet_modalites=($nomenclature_xml->DONNEES->MODALITES_ELECTION);
foreach ($objet_modalites->children() as $modalite) {
$i++;
//echo "
";
$modalites[$i]=array();
/*
";
}
}
}
/*
echo "";
print_r($modalites);
echo "
";
*/
$nb_insert_mod=0;
// Faut-il supprimer les associations qui ne sont plus dans le XML?
$tab_modalites=array();
$sql="SELECT * FROM nomenclature_modalites_election;";
$res_mm=mysqli_query($GLOBALS["mysqli"], $sql);
while($lig_mm=mysqli_fetch_object($res_mm)) {
$tab_modalites[$lig_mm->code_modalite_elect]=$lig_mm->libelle_court;
}
$sql="TRUNCATE nomenclature_modalites_election;";
$del=mysqli_query($GLOBALS["mysqli"], $sql);
for($loop=0;$loop