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();
}
if (!checkAccess()) {
header("Location: ../logout.php?auto=1");
die();
}
//debug_var();
if((isset($_GET['export_ele_csv']))&&(isset($_GET['matiere']))) {
check_token();
$csv="INE;ELENOET;ELE_ID;LOGIN;NOM;PRENOM;SEXE;NAISSANCE;CLASSES;\n";
$sql="SELECT distinct e.* FROM j_eleves_groupes jeg,
j_groupes_matieres jgm,
j_eleves_classes jec,
eleves e
WHERE jeg.id_groupe=jgm.id_groupe AND
jec.login=jeg.login AND
jec.login=e.login AND
jgm.id_matiere='".$_GET['matiere']."';";
$res=mysqli_query($GLOBALS["mysqli"],$sql);
while($lig=mysqli_fetch_object($res)) {
$csv.=$lig->no_gep.";".$lig->elenoet.";".$lig->ele_id.";".$lig->login.";".$lig->nom.";".$lig->prenom.";".$lig->sexe.";".formate_date($lig->naissance).";".get_chaine_liste_noms_classes_from_ele_login($lig->login).";\n";
}
$nom_fic=remplace_accents("liste_eleves_suivant_".$_GET['matiere'])."_".strftime("%Y%m%d_%H%M%S").".csv";
send_file_download_headers('text/x-csv',$nom_fic);
echo echo_csv_encoded($csv);
die();
}
if (isset($_POST['isposted'])) {
check_token();
$ok = 'yes';
$ok_categorie = 'yes';
$code_matiere=isset($_POST['code_matiere']) ? $_POST['code_matiere'] : "";
if (isset($_POST['reg_current_matiere'])) {
// On vérifie d'abord que l'identifiant est constitué uniquement de lettres et de chiffres :
$matiere_name = $_POST['reg_current_matiere'];
if ((!isset($_POST['matiere_categorie']))||(!is_numeric($_POST['matiere_categorie']))) {
// On empêche les mise à jour globale automatiques, car on n'est pas sûr de ce qui s'est passé si l'ID n'est pas numérique...
//$ok = "no";
$ok_categorie = 'no';
$matiere_categorie = "0";
} else {
$matiere_categorie = $_POST['matiere_categorie'];
}
//if (ereg ("^[a-zA-Z_]{1}[a-zA-Z0-9_]{1,19}$", $matiere_name)) {
// Le POINT est interdit dans le nom court de matière (problème avec des noms de champs PHP sinon notamment dans matieres/index.php)
if (preg_match("/^[a-zA-Z_]{1}[a-zA-Z0-9_-]{1,19}$/", $matiere_name)) {
$verify_query = mysqli_query($GLOBALS["mysqli"], "SELECT * from matieres WHERE matiere='$matiere_name'");
$verify = mysqli_num_rows($verify_query);
if ($verify == 0) {
//========================
// MODIF: boireaus
// Quand on poste un &, c'est un & qui est reçu.
//$matiere_nom_complet = $_POST['matiere_nom_complet'];
//echo "\$matiere_nom_complet=$matiere_nom_complet
\n";
$matiere_nom_complet = html_entity_decode($_POST['matiere_nom_complet']);
//echo "\$matiere_nom_complet=$matiere_nom_complet
\n";
//========================
$matiere_priorite = $_POST['matiere_priorite'];
$sql="INSERT INTO matieres SET matiere='".$matiere_name."', nom_complet='".$matiere_nom_complet."', priority='".$matiere_priorite."', categorie_id = '" . $matiere_categorie . "',matiere_aid='n',matiere_atelier='n', code_matiere='$code_matiere';";
//echo "$sql
\n";
$register_matiere = mysqli_query($GLOBALS["mysqli"], $sql);
if (!$register_matiere) {
$msg = "Une erreur s'est produite lors de l'enregistrement de la nouvelle matière.
";
$ok = 'no';
} else {
$msg = "La nouvelle matière a bien été enregistrée.
";
}
} else {
$msg = "Cette matière existe déjà !!
";
$ok = 'no';
}
} else {
$msg = "L'identifiant de matière doit être constitué uniquement de lettres et de chiffres avec un maximum de 19 caractères !
";
$ok = 'no';
}
} else {
$matiere_nom_complet = $_POST['matiere_nom_complet'];
$matiere_nom_complet = html_entity_decode($_POST['matiere_nom_complet']);
$matiere_priorite = $_POST['matiere_priorite'];
$matiere_name = $_POST['matiere_name'];
if ((!isset($_POST['matiere_categorie']))||(!is_numeric($_POST['matiere_categorie']))) {
$matiere_categorie = "0";
$ok_categorie = 'no';
} else {
$matiere_categorie = $_POST['matiere_categorie'];
}
$sql="UPDATE matieres SET nom_complet='".$matiere_nom_complet."', priority='".$matiere_priorite."', categorie_id = '" . $matiere_categorie . "', code_matiere='$code_matiere' WHERE matiere='".$matiere_name."';";
//echo "$sql
\n";
$register_matiere = mysqli_query($GLOBALS["mysqli"], $sql);
if (!$register_matiere) {
$msg = "Une erreur s'est produite lors de la modification de la matière
";
$ok = 'no';
} else {
$msg = "Les modifications ont été enregistrées !
";
}
}
if ((isset($_POST['force_defaut'])) and ($ok == 'yes')) {
$sql="UPDATE j_groupes_matieres jgm, j_groupes_classes jgc SET jgc.priorite='".$matiere_priorite."'
WHERE (jgc.id_groupe = jgm.id_groupe AND jgm.id_matiere='".$matiere_name."')";
//echo "$sql
";
//$msg = rawurlencode($sql);
$req = mysqli_query($GLOBALS["mysqli"], $sql);
}
if ((isset($_POST['force_defaut_categorie'])) and ($ok == 'yes') and ($ok_categorie == 'yes')) {
$sql="UPDATE j_groupes_classes jgc, j_groupes_matieres jgm SET jgc.categorie_id='".$matiere_categorie."'
WHERE (jgc.id_groupe = jgm.id_groupe AND jgm.id_matiere='".$matiere_name."')";
//echo "$sql
";
//$msg = rawurlencode($sql);
$req = mysqli_query($GLOBALS["mysqli"], $sql);
}
if($ok=='yes') {
$login_prof=isset($_POST['login_prof']) ? $_POST['login_prof'] : NULL;
if(isset($login_prof)) {
// Récupérer la liste des profs actuellement associés
$tab_profs_associes=array();
$sql="SELECT u.login FROM j_professeurs_matieres jpm, utilisateurs u WHERE jpm.id_professeur=u.login and id_matiere='$matiere_name' ORDER BY u.nom, u.prenom;";
//echo "$sql
\n";
$res_profs=mysqli_query($GLOBALS["mysqli"], $sql);
if(mysqli_num_rows($res_profs)>0) {
while($lig=mysqli_fetch_object($res_profs)) {
$tab_profs_associes[]=$lig->login;
}
}
$nb_inser=0;
for($loop=0;$loop
\n";
$insert=mysqli_query($GLOBALS["mysqli"], $sql);
if(!$insert) {
$msg.="Erreur lors de l'association de ".$login_prof[$loop]." avec la matière $matiere_name
";
}
else {
$nb_inser++;
}
}
}
if($nb_inser>0) {
$msg.="$nb_inser professeur(s) a(ont) été associé(s) avec la matière $matiere_name
";
}
$nb_suppr=0;
for($loop=0;$loop
\n";
$suppr=mysqli_query($GLOBALS["mysqli"], $sql);
if(!$suppr) {
$msg.="Erreur lors de la suppression de l'association de ".$tab_profs_associes[$loop]." avec la matière $matiere_name
";
}
else {
$nb_suppr++;
}
}
else {
$msg.="Dissociation impossible : Le professeur ".$tab_profs_associes[$loop]." enseigne la matière $matiere_name dans un ou des enseignements.
";
}
}
}
if($nb_suppr>0) {
$msg.="$nb_suppr professeur(s) a(ont) été dissocié(s) de la matière $matiere_name
";
}
}
}
/*
// 20161011
if((isset($_POST['force_modalite']))&&(isset($_POST['code_modalite_elect']))) {
if($_POST['code_modalite_elect']=="") {
}
else {
}
}
*/
//$msg = rawurlencode($msg);
header("location: index.php?msg=$msg");
die();
}
$themessage = 'Des modifications ont été effectuées. Voulez-vous vraiment quitter sans enregistrer ?';
//**************** EN-TETE *******************************
$titre_page = "Gestion des matières | Modifier une matière";
require_once("../lib/header.inc.php");
//**************** FIN EN-TETE ****************************
// On va chercher les infos de la matière que l'on souhaite modifier
if (isset($_GET['current_matiere'])) {
$call_data = mysqli_query($GLOBALS["mysqli"], "SELECT nom_complet, priority, categorie_id, code_matiere from matieres WHERE matiere='".$_GET['current_matiere']."'");
if(mysqli_num_rows($call_data)==0) {
echo "
La matière proposée n'existe pas.
"; require("../lib/footer.inc.php"); die(); } $lig_matiere=mysqli_fetch_object($call_data); $matiere_nom_complet = $lig_matiere->nom_complet; $matiere_priorite = $lig_matiere->priority; $matiere_cat_id = $lig_matiere->categorie_id; $code_matiere = $lig_matiere->code_matiere; $current_matiere = $_GET['current_matiere']; } else { $matiere_nom_complet = ""; $matiere_priorite = "0"; $current_matiere = ""; $matiere_cat_id = "0"; $code_matiere=""; } $chaine_options_matieres=""; $sql="SELECT * FROM matieres ORDER BY nom_complet, matiere;"; $res_matiere_tmp=mysqli_query($GLOBALS["mysqli"], $sql); if(mysqli_num_rows($res_matiere_tmp)>0) { $matiere_prec=""; $matiere_suiv=""; $temoin_tmp=0; $cpt_matiere=0; $num_matiere=-1; while($lig_matiere_tmp=mysqli_fetch_object($res_matiere_tmp)){ if($lig_matiere_tmp->matiere==$current_matiere) { // Index de la matière dans les \n"; $temoin_tmp=1; if($lig_matiere_tmp=mysqli_fetch_object($res_matiere_tmp)){ $chaine_options_matieres.="\n"; $matiere_suiv=$lig_matiere_tmp->matiere; } else{ $matiere_suiv=""; } } else { $chaine_options_matieres.="\n"; } if($temoin_tmp==0) { $matiere_prec=$lig_matiere_tmp->matiere; } $cpt_matiere++; } } if($chaine_options_matieres!="") { $lien_matiere_precedente=""; if($matiere_prec!="") { $lien_matiere_precedente=""; } $lien_matiere_suivante=""; if($matiere_suiv!="") { $lien_matiere_suivante=""; } echo "\n"; echo ""; } else { echo ""; } echo "Aucun enseignement n'est associé à la matière $current_matiere.
\n"; } else { echo "$nb_ens enseignement(s) associé(s) à la matière $current_matiere : ";
$chaine_domaines="";
for($loop=0;$loop
";
while($lig_ens=mysqli_fetch_object($res_ens)) {
$sql="SELECT c.id, c.classe FROM j_groupes_classes jgc, classes c WHERE jgc.id_classe=c.id AND jgc.id_groupe='$lig_ens->id' ORDER BY c.classe, c.nom_complet;";
$res_clas=mysqli_query($GLOBALS["mysqli"], $sql);
$chaine_clas="";
if(mysqli_num_rows($res_clas)>0) {
$cpt_clas=0;
while($lig_clas=mysqli_fetch_object($res_clas)) {
if($cpt_clas>0) {$chaine_clas.=", ";}
$chaine_clas.="classe\">$lig_clas->classe";
$cpt_clas++;
}
}
$sql="SELECT u.login, u.civilite, u.nom, u.prenom FROM utilisateurs u, j_groupes_professeurs jgp WHERE jgp.login=u.login AND jgp.id_groupe='$lig_ens->id' ORDER BY u.nom, u.prenom;";
$res_prof=mysqli_query($GLOBALS["mysqli"], $sql);
$chaine_prof="";
if(mysqli_num_rows($res_prof)>0) {
$cpt_prof=0;
while($lig_prof=mysqli_fetch_object($res_prof)) {
if($cpt_prof>0) {$chaine_prof.=", ";}
$chaine_prof.="login\">$lig_prof->civilite $lig_prof->nom ".mb_substr($lig_prof->prenom,0,1)."";
$cpt_prof++;
}
}
echo "id\">$lig_ens->name ($lig_ens->description)";
if($chaine_clas!="") {
echo " en $chaine_clas";
}
if($chaine_prof!="") {
echo " avec $chaine_prof";
}
echo "
";
}
echo "
$eff_ele élève(s) sui(ven)t un enseignement dans la matière $current_matiere.";
if($eff_ele>0) {
echo "
Exporter la liste des élèves en CSV";
}
echo "
Aide :