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'];} }
*/
$action=isset($_POST['action']) ? $_POST['action'] : (isset($_GET['action']) ? $_GET['action'] : "");
if ($action == 'supprimer_toutes_nomenclatures') {
check_token();
$sql="TRUNCATE nomenclatures;";
$menage=mysqli_query($GLOBALS["mysqli"], $sql);
$sql="TRUNCATE nomenclatures_valeurs;";
$menage=mysqli_query($GLOBALS["mysqli"], $sql);
$msg="Les tables nomenclatures et nomenclatures_valeurs ont été vidées.
";
$action="";
}
if(($action == 'supprimer')&&(isset($_GET['id']))) {
check_token();
$id=$_GET['id'];
if(!preg_match("/^[0-9]{1,}$/", $id)) {
$msg="Identifiant de nomenclature à supprimer invalide.
";
}
else {
$sql="SELECT * FROM nomenclatures WHERE id='$id';";
$res=mysqli_query($GLOBALS["mysqli"], $sql);
if(mysqli_num_rows($res)==0) {
$msg="Nomenclature n°$id non trouvée.
";
}
else {
$lig=mysqli_fetch_object($res);
// Faut-il supprimer l'association matieres.code_matiere?
$sql="DELETE FROM nomenclatures_valeurs WHERE code='$lig->code' AND type='$lig->type';";
$menage=mysqli_query($GLOBALS["mysqli"], $sql);
if(!$menage) {
$msg="Erreur lors de la suppression des valeurs associées à la nomenclature n°$id.
";
}
else {
$sql="DELETE FROM nomenclatures WHERE id='$id';";
$menage=mysqli_query($GLOBALS["mysqli"], $sql);
$msg="Suppression de la nomenclature n°$id effectuée.
";
}
}
}
$action="consulter";
}
if(isset($_GET['imposer_codes_matieres_vides'])) {
check_token();
$nb_update=0;
$sql="SELECT m.matiere, nv.code FROM matieres m,
nomenclatures_valeurs nv
WHERE m.code_matiere='' AND
m.matiere=nv.valeur AND
nv.nom='code_gestion';";
$res=mysqli_query($GLOBALS["mysqli"], $sql);
if(mysqli_num_rows($res)>0) {
while($lig=mysqli_fetch_object($res)) {
$sql="UPDATE matieres SET code_matiere='".$lig->code."' WHERE matiere='".$lig->matiere."';";
$res2=mysqli_query($GLOBALS["mysqli"], $sql);
if($res2) {
$nb_update++;
}
else {
$msg="Erreur lors de $sql.
";
}
}
}
$msg=$nb_update." code_matiere imposés.
";
}
//type=matiere&code=$lig->code&option_sconet_saisie
if((isset($_GET['type']))&&($_GET['type']=="matiere")&&(isset($_GET['code']))&&($_GET['option_sconet_saisie'])) {
check_token();
$sql="SELECT 1=1 FROM nomenclatures WHERE type='matiere' AND code='".$_GET['code']."';";
$test=mysqli_query($GLOBALS["mysqli"], $sql);
if(mysqli_num_rows($test)>0) {
$sql="SELECT 1=1 FROM nomenclatures_valeurs WHERE type='matiere' AND code='".$_GET['code']."' AND nom='option_sconet_saisie';";
$test=mysqli_query($GLOBALS["mysqli"], $sql);
if(mysqli_num_rows($test)>0) {
$sql="UPDATE nomenclatures_valeurs SET valeur='".$_GET['option_sconet_saisie']."' WHERE type='matiere' AND code='".$_GET['code']."' AND nom='option_sconet_saisie';";
$update=mysqli_query($GLOBALS["mysqli"], $sql);
if(!$update) {
$msg="Erreur lors de la mise à jour de option_sconet_saisie pour la matière.
";
}
}
else {
$sql="INSERT INTO nomenclatures_valeurs SET valeur='".$_GET['option_sconet_saisie']."', type='matiere', code='".$_GET['code']."', nom='option_sconet_saisie';";
$insert=mysqli_query($GLOBALS["mysqli"], $sql);
if(!$insert) {
$msg="Erreur lors de l'enregistrement de option_sconet_saisie pour la matière.
";
}
}
}
else {
$msg="La matière choisie est inconnue dans la table nomenclatures.
";
}
$action="consulter";
}
$javascript_specifique[] = "lib/tablekit";
$utilisation_tablekit="ok";
//====================================
// header
$titre_page = "Nomenclatures";
require_once("../lib/header.inc.php");
//====================================
echo "
"; if($action=="") { echo ""; } else { echo ""; } echo " Retour | associer les nomenclatures aux matières | associer les MEF aux élèves"; if(acces("/gestion/gerer_modalites_election_enseignements.php", $_SESSION['statut'])) { echo " | Modalités d'élection des enseignements"; } echo "
"; // | associer les nomenclatures aux classes // Les MEFS sont associées aux élèves et non aux classes if($action=="") { echo "Choisissez parmi les actions suivantes :
Aucune nomenclature de matières n'est enregistrée.
"; } else { echo "".mysqli_num_rows($res)." matières enregistrées :
Dans la page d'association des code_matiere aux matières, il se peut qu'aucune association ne soit encore faite.
Vous pouvez, ici, pour les matières dont le code_matiere n'est pas renseigné, renseigner les codes d'un clic si le code_gestion coïncide avec le nom de matière.
".mysqli_num_rows($test)." matières sans code_gestion trouvent une correspondance dans le tableau ci-dessus.
"; echo "Imposer les codes matières aux matières dont le code est actuellement vide.
A FAIRE : Pouvoir modifier une information, pouvoir associer une matière depuis ce tableau.
"; } $tab_champs_mef=array("CODE_MEF", "FORMATION", "LIBELLE_LONG", "LIBELLE_EDITION", "CODE_MEFSTAT", "MEF_RATTACHEMENT" ); $sql="SELECT * FROM nomenclatures WHERE type='mef';"; $res=mysqli_query($GLOBALS["mysqli"], $sql); if(mysqli_num_rows($res)==0) { echo "Aucune nomenclature de MEF n'est enregistrée.
"; } else { echo "".mysqli_num_rows($res)." MEF enregistrées :
Code_mef | Formation | Libelle_long | Libelle_edition | Code_mefstat | MEF_rattachement | Action | ||
---|---|---|---|---|---|---|---|---|
$lig->code | $formation | $libelle_long | $libelle_edition | $code_mefstat | $mef_rattachement | id".add_token_in_url()."' onclick=\"return confirm('Etes-vous sûr de vouloir supprimer cet enregistrement ?')\" title=\"Supprimer\"> |
A FAIRE : Pouvoir modifier une information, pouvoir associer une matière depuis ce tableau.
"; } require("../lib/footer.inc.php"); die(); } //====================================== if ($action=="importnomenclature") { echo "Il semble que le dossier temporaire de l'utilisateur ".$_SESSION['login']." ne soit pas défini!?
\n"; } else { echo "Pour le moment, on a un doublon au niveau des MEF dans les tables 'mef' et 'nomenclatures'.
Il faut pour le moment faire les imports dans les pages d'import des nomenclatures et dans celle des mef, mais il faudra sans doute supprimer la table 'mef'.
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_matiere=array();
$i=-1;
$objet_matieres=($nomenclature_xml->DONNEES->MATIERES);
foreach ($objet_matieres->children() as $matiere) {
$i++;
$tab_matiere[$i]=array();
foreach($matiere->attributes() as $key => $value) {
$tab_matiere[$i][mb_strtolower($key)]=trim($value);
}
foreach($matiere->children() as $key => $value) {
if(in_array(my_strtoupper($key),$tab_champs_matiere)) {
$tab_matiere[$i][mb_strtolower($key)]=preg_replace('/"/','',trim($value));
}
}
}
/*
echo "
"; print_r($tab_matiere); echo ""; */ $nb_matiere_deja=0; $nb_matiere_reg=0; for($loop=0;$loop
$nb_matiere_deja matières déjà présente(s) dans Gepi a(ont) été trouvée(s) dans le XML.
"; } if($nb_matiere_reg>0) { echo "$nb_matiere_reg matières a(ont) été importée(s) depuis le XML.
"; } /*";
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ésente(s) dans Gepi a(ont) été trouvée(s) dans le XML.
"; } if($nb_mef_reg>0) { echo "$nb_mef_reg MEF a(ont) été importée(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. Retour à l'index de la gestion des nomenclatures
";
$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($GLOBALS["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
";
}
require("../lib/footer.inc.php");