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 Retour"; echo " | Associer les élèves aux MEFs"; //echo " | Associer les MEFs, les matières et les modalités élection"; echo "

"; ?>

Définition des mef

Importer les mef

"; if(!isset($_POST['is_posted'])) { $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"; } else { echo "
".add_token_field()."

Veuillez fournir le fichier Nomenclature.xml:

\n"; if ($gepiSettings['unzipped_max_filesize']>=0) { echo "

REMARQUE : Vous pouvez fournir à Gepi le fichier compressé issu directement de SCONET. (Ex : Nomenclature.zip)

"; } 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 "

\n"; } 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"; 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.

\n"; } else { echo "

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

\n"; // Il ne faut pas aller plus loin... require("../lib/footer.inc.php"); die(); } else{ // Lecture du fichier Nomenclature... pour changer les codes numériques d'options dans 'temp_gep_import2' en leur code gestion $dest_file="../temp/".$tempdir."/nomenclature.xml"; $nomenclature_xml=simplexml_load_file($dest_file); if(!$nomenclature_xml) { echo "

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'.

\n"; require("../lib/footer.inc.php"); die(); } $tab_champs_mef=array("CODE_MEF", "FORMATION", "LIBELLE_LONG", "LIBELLE_EDITION", "CODE_MEFSTAT", "MEF_RATTACHEMENT" ); echo "

"; 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;$loopERREUR : Pas de libelle_long pour :
"; echo print_r($tab_mef[$loop]); echo "
"; } else { if((!isset($tab_mef[$loop]['formation']))||($tab_mef[$loop]['formation']=="")) { $tab_mef[$loop]['formation']=""; } if((!isset($tab_mef[$loop]['libelle_edition']))||($tab_mef[$loop]['libelle_edition']=="")) { $tab_mef[$loop]['libelle_edition']=casse_mot($tab_mef[$loop]['libelle_long'],'majf2'); } if((!isset($tab_mef[$loop]['mef_rattachement']))||($tab_mef[$loop]['mef_rattachement']=="")) { $tab_mef[$loop]['mef_rattachement']=$tab_mef[$loop]['code_mef']; } if(!isset($tab_mef[$loop]['code_mefstat'])) { $tab_mef[$loop]['code_mefstat']=""; } $sql="INSERT INTO mef SET mef_code='".$tab_mef[$loop]['code_mef']."', libelle_court='".mysqli_real_escape_string($GLOBALS["mysqli"], $tab_mef[$loop]['formation'])."', libelle_long='".mysqli_real_escape_string($GLOBALS["mysqli"], $tab_mef[$loop]['libelle_long'])."', libelle_edition='".mysqli_real_escape_string($GLOBALS["mysqli"], $tab_mef[$loop]['libelle_edition'])."', code_mefstat='".$tab_mef[$loop]['code_mefstat']."', mef_rattachement='".$tab_mef[$loop]['mef_rattachement']."' ;"; $insert=mysqli_query($GLOBALS["mysqli"], $sql); if($insert) { $nb_mef_reg++; } else { echo "ERREUR : Erreur lors de l'import suivant :
$sql
"; } } } else { $nb_mef_deja++; } } if($nb_mef_deja>0) { echo "

$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
"; $programmes[$i]=array(); /* 1001000B11A 005400 S 0.00 foreach($programme->attributes() as $key => $value) { // //echo "$key=".$value."
"; $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;$loop0) { echo "

$nb_insert_prog association(s) MEF/Matière/Modalité élection ont été importées.

"; } else { echo "

Aucune association MEF/Matière/Modalité élection n'a été ajoutée.

"; } //======================================================= //======================================================= // 20160417 echo "

"; echo "Analyse du fichier pour extraire les MODALITE_ELECTION...
\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 "

Matière $i
"; $modalites[$i]=array(); /* TRONC COMM MATIERE ENSEIGNEE EN TRONC COMMUN */ foreach($modalite->attributes() as $key => $value) { $modalites[$i][my_strtolower($key)]=trim($value); } foreach($modalite->children() as $key => $value) { if(in_array(my_strtoupper($key),$tab_champs_modalites)) { $modalites[$i][my_strtolower($key)]=preg_replace('/"/','',trim($value)); //echo "\$modalite->$key=".$value."
"; } } } /* 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;$loop0) { echo "

$nb_insert_mod modalités élection ont été importées.

"; } else { echo "

Aucune modalité élection n'a été enregistrée.

"; } //======================================================= } } } } echo "

"; } elseif ($action == "ajouter" OR $action == "modifier") { ?>
Ajout d'un mef"; } elseif ($action=="modifier") { echo "

Modifier un mef

"; } ?>



Ajouter des mef

Ajouter les mef par défaut de collège

Ajouter les mef par défaut de lycée

Importer les mef depuis un fichier Nomenclature.xml

0) { while($lig_mef=mysqli_fetch_object($res_mef)) { $tab_mef[$lig_mef->mef_code]["libelle_court"]=$lig_mef->libelle_court; $tab_mef[$lig_mef->mef_code]["libelle_long"]=$lig_mef->libelle_long; $tab_mef[$lig_mef->mef_code]["libelle_edition"]=$lig_mef->libelle_edition; $tab_mef[$lig_mef->mef_code]["code_mefstat"]=$lig_mef->code_mefstat; $tab_mef[$lig_mef->mef_code]["mef_rattachement"]=$lig_mef->mef_rattachement; } } $mef_collection = new PropelCollection(); $mef_collection = MefQuery::create()->find(); foreach ($mef_collection as $mef) { ?>

setMefCode("1031000111"); //$mef->setLibelleCourt("3G"); $mef->setMefCode("1031001911"); $mef->setLibelleCourt("3EME"); $mef->setLibelleLong("3EME"); $mef->setLibelleEdition("3eme"); if (MefQuery::create()->filterByMefCode($mef->getMefCode())->find()->isEmpty()) { $mef->save(); } $mef = new Mef(); $mef->setMefCode("1021000111"); $mef->setLibelleCourt("4G"); $mef->setLibelleLong("4EME"); $mef->setLibelleEdition("4eme"); if (MefQuery::create()->filterByMefCode($mef->getMefCode())->find()->isEmpty()) { $mef->save(); } $mef = new Mef(); $mef->setMefCode("1011000111"); $mef->setLibelleCourt("5G"); $mef->setLibelleLong("5EME"); $mef->setLibelleEdition("5eme"); if (MefQuery::create()->filterByMefCode($mef->getMefCode())->find()->isEmpty()) { $mef->save(); } $mef = new Mef(); //$mef->setMefCode("1001000111"); //$mef->setLibelleCourt("6G"); $mef->setMefCode("1001001211"); $mef->setLibelleCourt("6EME"); $mef->setLibelleLong("6EME"); $mef->setLibelleEdition("6eme"); if (MefQuery::create()->filterByMefCode($mef->getMefCode())->find()->isEmpty()) { $mef->save(); } */ $mef_clg=array(); $mef_clg[]="CODE_MEF;LIBELLE_COURT;LIBELLE_LONG;LIBELLE_EDITION;CODE_MEFSTAT;MEF_RATTACHEMENT"; $mef_clg[]="10310019110;3EME;3EME;3ème;21160010019;10310019110;"; $mef_clg[]="10210001110;4EME;4EME;4ème;21150010001;10210001110;"; $mef_clg[]="10110001110;5EME;5EME;5ème;21120010001;10110001110;"; $mef_clg[]="10010012110;6EME;6EME;6ème;21110010012;10010012110;"; for($loop=1;$loop