"; } */ // Initialisations files require_once("../lib/initialisations.inc.php"); /* if(isset($_POST['nature'])) { echo "\$_POST['nature']=".$_POST['nature']."
"; } */ // Resume session $resultat_session = $session_gepi->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(); } if(mb_strtolower(mb_substr(getSettingValue('active_mod_discipline'),0,1))!='y') { $mess=rawurlencode("Vous tentez d accéder au module Discipline qui est désactivé !"); tentative_intrusion(1, "Tentative d'accès au module Discipline qui est désactivé."); header("Location: ../accueil.php?msg=$mess"); die(); } require('sanctions_func_lib.php'); //debug_var(); // Paramètre pour autoriser ou non une zone de saisie de commentaires pour un incident $autorise_commentaires_mod_disc = getSettingValue("autorise_commentaires_mod_disc"); function recherche_protagoniste($rech_nom,$page) { $rech_nom=preg_replace("/[^A-Za-zÂÄÀÁÃÄÅÇÊËÈÉÎÏÌÍÑÔÖÒÓÕ¦ÛÜÙÚݾ´áàâäãåçéèêëîïìíñôöðòóõ¨ûüùúýÿ¸]/","",$rech_nom); echo "
\n"; $sql="SELECT * FROM eleves WHERE nom LIKE '%$rech_nom%';"; $res_ele=mysqli_query($GLOBALS["mysqli"], $sql); $nb_ele=mysqli_num_rows($res_ele); if($nb_ele==0){ // On ne devrait pas arriver là. echo "

Aucun nom d'élève ne contient la chaine $rech_nom.

\n"; } else{ echo "

La recherche a retourné $nb_ele réponse"; if($nb_ele>1) {echo "s";} echo ":

\n"; echo "\n"; echo "\n"; //echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; $alt=1; $cpt1=0; while($lig_ele=mysqli_fetch_object($res_ele)) { $ele_login=$lig_ele->login; $ele_nom=$lig_ele->nom; $ele_prenom=$lig_ele->prenom; //echo "$ele_nom $ele_prenom"; $alt=$alt*(-1); echo "\n"; echo "\n"; echo "\n"; } else { echo "\n"; } echo "\n"; $cpt1++; } echo "
ElèveSélectionnerElèveClasse(s)
\n"; echo "\n"; echo "\n"; echo ""; $sql="SELECT DISTINCT c.* FROM classes c, j_eleves_classes jec WHERE jec.login='$ele_login' AND c.id=jec.id_classe ORDER BY jec.periode;"; $res_clas=mysqli_query($GLOBALS["mysqli"], $sql); if(mysqli_num_rows($res_clas)==0) { echo "\n"; echo "aucune classe"; echo "\n"; $cpt=0; while($lig_clas=mysqli_fetch_object($res_clas)) { if($cpt>0) {echo ", ";} //echo $lig_clas->classe; echo htmlspecialchars($lig_clas->classe); $cpt++; } echo "
\n"; } echo "
\n"; echo "
\n"; $sql="SELECT * FROM utilisateurs WHERE (nom LIKE '%$rech_nom%' AND statut!='responsable' AND statut!='eleve');"; $res_utilisateur=mysqli_query($GLOBALS["mysqli"], $sql); $nb_utilisateur=mysqli_num_rows($res_utilisateur); if($nb_utilisateur==0){ // On ne devrait pas arriver là. echo "

Aucun nom d'utilisateur ne contient la chaine $rech_nom.

\n"; } else{ echo "

La recherche a retourné $nb_utilisateur réponse"; if($nb_utilisateur>1) {echo "s";} echo ":

\n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; $alt=1; $cpt1=0; while($lig_utilisateur=mysqli_fetch_object($res_utilisateur)) { $utilisateur_login=$lig_utilisateur->login; $utilisateur_nom=$lig_utilisateur->nom; $utilisateur_prenom=$lig_utilisateur->prenom; $utilisateur_statut=$lig_utilisateur->statut; //echo "$utilisateur_nom $utilisateur_prenom"; $alt=$alt*(-1); echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; $cpt1++; } echo "
SélectionnerUtilisateurStatut
\n"; echo "\n"; echo "\n"; echo ""; echo "\n"; echo ""; echo "
\n"; } echo "
\n"; } function recherche_ele($rech_nom,$page) { $rech_nom=preg_replace("/[^A-Za-zÂÄÀÁÃÄÅÇÊËÈÉÎÏÌÍÑÔÖÒÓÕ¦ÛÜÙÚݾ´áàâäãåçéèêëîïìíñôöðòóõ¨ûüùúýÿ¸]/","",$rech_nom); $sql="SELECT * FROM eleves WHERE nom LIKE '%$rech_nom%';"; $res_ele=mysqli_query($GLOBALS["mysqli"], $sql); $nb_ele=mysqli_num_rows($res_ele); if($nb_ele==0){ // On ne devrait pas arriver là. echo "

Aucun nom d'élève ne contient la chaine $rech_nom.

\n"; } else{ echo "

La recherche a retourné $nb_ele réponse"; if($nb_ele>1) {echo "s";} echo ":

\n"; echo "\n"; echo "\n"; //echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; $alt=1; $cpt1=0; while($lig_ele=mysqli_fetch_object($res_ele)) { $ele_login=$lig_ele->login; $ele_nom=$lig_ele->nom; $ele_prenom=$lig_ele->prenom; //echo "$ele_nom $ele_prenom"; $alt=$alt*(-1); echo "\n"; echo "\n"; echo "\n"; } else { echo "\n"; } echo "\n"; $cpt1++; } echo "
ElèveSélectionnerElèveClasse(s)
\n"; echo "\n"; echo "\n"; echo ""; $sql="SELECT DISTINCT c.* FROM classes c, j_eleves_classes jec WHERE jec.login='$ele_login' AND c.id=jec.id_classe ORDER BY jec.periode;"; $res_clas=mysqli_query($GLOBALS["mysqli"], $sql); if(mysqli_num_rows($res_clas)==0) { echo "\n"; echo "aucune classe"; echo "\n"; $cpt=0; while($lig_clas=mysqli_fetch_object($res_clas)) { if($cpt>0) {echo ", ";} //echo $lig_clas->classe; echo htmlspecialchars($lig_clas->classe); $cpt++; } echo "
\n"; } } function recherche_utilisateur($rech_nom,$page) { $rech_nom=preg_replace("/[^A-Za-zÂÄÀÁÃÄÅÇÊËÈÉÎÏÌÍÑÔÖÒÓÕ¦ÛÜÙÚݾ´áàâäãåçéèêëîïìíñôöðòóõ¨ûüùúýÿ¸]/","",$rech_nom); $sql="SELECT * FROM utilisateurs WHERE (nom LIKE '%$rech_nom%' AND statut!='responsable');"; $res_utilisateur=mysqli_query($GLOBALS["mysqli"], $sql); $nb_utilisateur=mysqli_num_rows($res_utilisateur); if($nb_utilisateur==0){ // On ne devrait pas arriver là. echo "

Aucun nom d'utilisateur ne contient la chaine $rech_nom.

\n"; } else{ echo "

La recherche a retourné $nb_utilisateur réponse"; if($nb_utilisateur>1) {echo "s";} echo ":

\n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; $alt=1; $cpt1=0; while($lig_utilisateur=mysqli_fetch_object($res_utilisateur)) { $utilisateur_login=$lig_utilisateur->login; $utilisateur_nom=$lig_utilisateur->nom; $utilisateur_prenom=$lig_utilisateur->prenom; //echo "$utilisateur_nom $utilisateur_prenom"; $alt=$alt*(-1); echo "\n"; echo "\n"; echo "\n"; echo "\n"; $cpt1++; } echo "
SélectionnerUtilisateur
\n"; echo "\n"; echo "\n"; echo ""; echo "
\n"; } } global $id_incident; $id_incident=isset($_POST['id_incident']) ? $_POST['id_incident'] : (isset($_GET['id_incident']) ? $_GET['id_incident'] : NULL); $return_url=isset($_POST['return_url']) ? $_POST['return_url'] : (isset($_GET['return_url']) ? $_GET['return_url'] : NULL); $rech_nom=isset($_POST['rech_nom']) ? $_POST['rech_nom'] : (isset($_GET['rech_nom']) ? $_GET['rech_nom'] : ""); $ele_login=isset($_POST['ele_login']) ? $_POST['ele_login'] : (isset($_GET['ele_login']) ? $_GET['ele_login'] : array()); //$ele_login=isset($_POST['ele_login']) ? $_POST['ele_login'] : (isset($_GET['ele_login']) ? $_GET['ele_login'] : NULL); //$step=isset($_POST['step']) ? $_POST['step'] : (isset($_GET['step']) ? $_GET['step'] : NULL); $step=isset($_POST['step']) ? $_POST['step'] : (isset($_GET['step']) ? $_GET['step'] : 0); $id_classe=isset($_POST['id_classe']) ? $_POST['id_classe'] : (isset($_GET['id_classe']) ? $_GET['id_classe'] : NULL); $is_posted=isset($_POST['is_posted']) ? $_POST['is_posted'] : (isset($_GET['is_posted']) ? $_GET['is_posted'] : NULL); $display_date=isset($_POST['display_date']) ? $_POST['display_date'] : (isset($_GET['display_date']) ? $_GET['display_date'] : NULL); $display_heure=isset($_POST['display_heure']) ? $_POST['display_heure'] : (isset($_GET['display_heure']) ? $_GET['display_heure'] : NULL); $nature=isset($_POST['nature']) ? $_POST['nature'] : (isset($_GET['nature']) ? $_GET['nature'] : NULL); $qualite=isset($_POST['qualite']) ? $_POST['qualite'] : (isset($_GET['qualite']) ? $_GET['qualite'] : NULL); $categ_u=isset($_POST['categ_u']) ? $_POST['categ_u'] : (isset($_GET['categ_u']) ? $_GET['categ_u'] : NULL); $u_login=isset($_POST['u_login']) ? $_POST['u_login'] : (isset($_GET['u_login']) ? $_GET['u_login'] : array()); $id_lieu=isset($_POST['id_lieu']) ? $_POST['id_lieu'] : NULL; $avertie=isset($_POST['avertie']) ? $_POST['avertie'] : NULL; $change_declarant=isset($_POST['change_prof']) ? $_POST['change_prof'] : NULL; //$mesure_prise=isset($_POST['mesure_prise']) ? $_POST['mesure_prise'] : NULL; //$mesure_demandee=isset($_POST['mesure_demandee']) ? $_POST['mesure_demandee'] : NULL; $mesure_ele_login=isset($_POST['mesure_ele_login']) ? $_POST['mesure_ele_login'] : NULL; $clore_incident=isset($_POST['clore_incident']) ? $_POST['clore_incident'] : NULL; //debug_var(); $etat_incident=""; if(isset($id_incident)) { $sql="SELECT 1=1 FROM s_incidents WHERE id_incident='$id_incident' AND etat='clos';"; $test=mysqli_query($GLOBALS["mysqli"], $sql); if(mysqli_num_rows($test)>0) { $etat_incident="clos"; $step=2; } elseif($_SESSION['statut']=='professeur') { // Si le visiteur est un professeur et que l'incident a été ouvert par une autre personne, on fait comme si l'incident était clos. // Aucune modification ne peut être effectuée par le professeur. // Il doit s'adresser à un cpe, scol, admin ou au déclarant pour apporter un commentaire. // Remarque: S'il arrive sur cette page c'est qu'il est protagoniste de l'incident ou déclarant... ou alors il a bricolé les valeurs en barre d'adresse... -> METTRE DES TESTS POUR L'INTERDIRE $sql="SELECT 1=1 FROM s_incidents WHERE id_incident='$id_incident' AND declarant!='".$_SESSION['login']."';"; $test=mysqli_query($GLOBALS["mysqli"], $sql); if(mysqli_num_rows($test)>0) { $etat_incident="clos"; $step=2; } } } $msg=""; $suppr_incident=isset($_POST['suppr_incident']) ? $_POST['suppr_incident'] : (isset($_GET['suppr_incident']) ? $_GET['suppr_incident'] : NULL); if((isset($suppr_incident))&&(preg_match("/^[0-9]*$/", $suppr_incident))&&($etat_incident!="clos")) { check_token(); $sql="SELECT 1=1 FROM s_incidents WHERE declarant='".$_SESSION['login']."' AND id_incident='".$suppr_incident."';"; $test_declarant_incident=mysqli_query($GLOBALS["mysqli"], $sql); if(mysqli_num_rows($test_declarant_incident)>0) { $suppr_possible="y"; // On vérifie qu'il n'y a pas de sanction associée $sql="SELECT 1=1 FROM s_sanctions WHERE id_incident='".$suppr_incident."';"; $test_sanction_incident=mysqli_query($GLOBALS["mysqli"], $sql); if(mysqli_num_rows($test_sanction_incident)>0) { $suppr_possible="n"; $msg.="Suppression impossible : Une ou des sanctions sont associées à l'incident.
Commencez par supprimer les sanctions associées.
"; $id_incident=$suppr_incident; $step=2; } // On vérifie qu'il n'y a pas de mesure associée $sql="SELECT 1=1 FROM s_traitement_incident WHERE id_incident='".$suppr_incident."';"; $test_mesure_incident=mysqli_query($GLOBALS["mysqli"], $sql); if(mysqli_num_rows($test_mesure_incident)>0) { $suppr_possible="n"; $msg.="Suppression impossible : Une ou des mesures sont associées à l'incident.
Commencez par supprimer les mesures associées.
"; $id_incident=$suppr_incident; $step=2; } if($suppr_possible=="y") { $sql="DELETE FROM s_protagonistes WHERE id_incident='".$suppr_incident."';"; $del_prot=mysqli_query($GLOBALS["mysqli"], $sql); if(!$del_prot) { $msg.="Erreur lors de la suppression du ou des protagonistes de l'incident.
"; $id_incident=$suppr_incident; $step=2; } else { $sql="DELETE FROM s_incidents WHERE id_incident='".$suppr_incident."';"; $del_prot=mysqli_query($GLOBALS["mysqli"], $sql); if(!$del_prot) { $msg.="Erreur lors de la suppression de l'incident n°".$suppr_incident.".
"; $id_incident=$suppr_incident; $step=2; } else { $msg.="Incident n°".$suppr_incident." supprimé.
"; } } } } } // on change le déclarant si demandé if (($change_declarant=='Changer') && isset($_POST['choixProf']) && ($_POST['choixProf']!= '0') && ($etat_incident!='clos')) { check_token(); $sql="UPDATE s_incidents SET declarant='".$_POST['choixProf']."' WHERE id_incident='".$_POST['id_incident']."'"; $test=mysqli_query($GLOBALS["mysqli"], $sql); $msg .= "Déclarant modifié"; // On recherche le primo-déclarant $resPrimo=mysqli_query($GLOBALS["mysqli"], "SELECT primo_declarant FROM s_incidents WHERE id_incident='".$id_incident."'"); if (mysqli_fetch_object($resPrimo)->primo_declarant == '') { $sql="UPDATE s_incidents SET primo_declarant ='".$_SESSION['login']."' WHERE id_incident='".$_POST['id_incident']."'"; // echo $sql; $test=mysqli_query($GLOBALS["mysqli"], $sql); $msg .= " - Primo-déclarant modifié"; } } $creer_incident=isset($_POST['creer_incident']) ? $_POST['creer_incident'] : (isset($_GET['creer_incident']) ? $_GET['creer_incident'] : NULL); if(isset($creer_incident)) { check_token(); $annee = strftime("%Y"); $mois = strftime("%m"); $jour = strftime("%d"); $display_heure=strftime("%H:%M"); $id_lieu=""; $sql="SELECT id FROM s_lieux_incidents WHERE lieu='Classe';"; $res=mysqli_query($GLOBALS["mysqli"], $sql); if(mysqli_num_rows($res)>0) { $lig_lieu=mysqli_fetch_object($res); $id_lieu=$lig_lieu->id; } $sql="INSERT INTO s_incidents SET declarant='".$_SESSION['login']."', date='$annee-$mois-$jour', heure='$display_heure', nature='', description='', id_lieu='$id_lieu', message_id='';"; //echo "$sql
\n"; $res=mysqli_query($GLOBALS["mysqli"], $sql); if(!$res) { $msg.="ERREUR lors de l'enregistrement de l'".$mod_disc_terme_incident." :".$sql."
\n"; } else { $id_incident=((is_null($___mysqli_res = mysqli_insert_id($GLOBALS["mysqli"]))) ? false : $___mysqli_res); $msg.="Création de l'".$mod_disc_terme_incident." n°".$id_incident." effectuée.
N'oubliez pas de préciser l'incident.
\n"; $sql="INSERT INTO s_protagonistes SET id_incident='$id_incident', login='".$ele_login[0]."', statut='eleve', qualite='".addslashes(preg_replace("/'/","'",html_entity_decode($qualite[0])))."';"; //echo "$sql
\n"; $res=mysqli_query($GLOBALS["mysqli"], $sql); if(!$res) { $msg.="ERREUR lors de l'enregistrement de ".$ele_login[0]."
\n"; } } $step="2"; } if($etat_incident!='clos') { //echo "etat_incident=$etat_incident
"; if((isset($_POST['suppr_ele_incident']))&&(isset($id_incident))) { //echo "suppr_ele_incident $id_incident
"; check_token(); $suppr_ele_incident=$_POST['suppr_ele_incident']; for($i=0;$i0) { $msg.="ERREUR: Il n'est pas possible de supprimer ".$suppr_ele_incident[$i]." pour l'".$mod_disc_terme_incident." $id_incident car une ou des ".$mod_disc_terme_sanction."s sont prises. Vous devez d'abord supprimer les ".$mod_disc_terme_sanction."s associées.
\n"; } else { $sql="DELETE FROM s_traitement_incident WHERE login_ele='$suppr_ele_incident[$i]' AND id_incident='$id_incident';"; //echo "$sql
"; $menage=mysqli_query($GLOBALS["mysqli"], $sql); if(!$menage) { $msg.="ERREUR lors de la suppression des traitements associés à ".$suppr_ele_incident[$i]." pour l'".$mod_disc_terme_incident." $id_incident. Les mesures demandées ou prises posent un problème.
\n"; } else { $sql="DELETE FROM s_protagonistes WHERE login='$suppr_ele_incident[$i]' AND id_incident='$id_incident';"; //echo "$sql
\n"; $res=mysqli_query($GLOBALS["mysqli"], $sql); if(!$res) { $msg.="ERREUR lors de la suppression de ".$suppr_ele_incident[$i]." pour l'".$mod_disc_terme_incident." $id_incident
\n"; } } } } } elseif(isset($_POST['enregistrer_qualite'])) { //echo "enregistrer_qualite
"; check_token(); $nb_protagonistes=isset($_POST['nb_protagonistes']) ? $_POST['nb_protagonistes'] : NULL; if(isset($nb_protagonistes)) { //for($i=0;$i\n"; $res=mysqli_query($GLOBALS["mysqli"], $sql); if(mysqli_num_rows($res)==0) { $sql="INSERT INTO s_protagonistes SET id_incident='$id_incident', login='".$ele_login[$i]."', statut='eleve', qualite='".addslashes(preg_replace("/'/","'",html_entity_decode($qualite[$i])))."';"; //echo "$sql
\n"; $res=mysqli_query($GLOBALS["mysqli"], $sql); if(!$res) { $msg.="ERREUR lors de l'enregistrement de ".$ele_login[$i]."
\n"; } } else { //$sql="UPDATE s_protagonistes SET qualite='$qualite[$i]' WHERE id_incident='$id_incident' AND login='".$ele_login[$i]."' AND statut='eleve';"; $sql="UPDATE s_protagonistes SET qualite='".addslashes(preg_replace("/'/","'",html_entity_decode($qualite[$i])))."' WHERE id_incident='$id_incident' AND login='".$ele_login[$i]."' AND statut='eleve';"; //$sql="UPDATE s_protagonistes SET qualite='".$qualite[$i]."' WHERE id_incident='$id_incident' AND login='".$ele_login[$i]."' AND statut='eleve';"; //echo "$sql
\n"; $res=mysqli_query($GLOBALS["mysqli"], $sql); if(!$res) { $msg.="ERREUR lors de l'enregistrement de ".$ele_login[$i]."
\n"; } } if(isset($avertie[$i])) { $sql="UPDATE s_protagonistes SET avertie='$avertie[$i]' WHERE id_incident='$id_incident' AND login='".$ele_login[$i]."';"; //echo "$sql
\n"; $update=mysqli_query($GLOBALS["mysqli"], $sql); if(!$update) { echo "Echec de l'enregistrement pour la famille de ".$ele_login[$i]."."; } } } } for($i=0;$i<$nb_protagonistes;$i++) { if(isset($u_login[$i])) { $sql="SELECT 1=1 FROM s_protagonistes WHERE id_incident='$id_incident' AND login='".$u_login[$i]."';"; //echo "$sql
\n"; $res=mysqli_query($GLOBALS["mysqli"], $sql); if(mysqli_num_rows($res)==0) { $tmp_statut=""; $sql="SELECT statut FROM utilisateurs WHERE login='".$u_login[$i]."'"; $res_statut=mysqli_query($GLOBALS["mysqli"], $sql); if(mysqli_num_rows($res_statut)>0) { $lig_statut=mysqli_fetch_object($res_statut); $tmp_statut=$lig_statut->statut; } $sql="INSERT INTO s_protagonistes SET id_incident='$id_incident', login='".$u_login[$i]."', statut='$tmp_statut', qualite='".addslashes(preg_replace("/'/","'",html_entity_decode($qualite[$i])))."';"; //echo "$sql
\n"; $res=mysqli_query($GLOBALS["mysqli"], $sql); if(!$res) { $msg.="ERREUR lors de l'enregistrement de ".$u_login[$i]."
\n"; } } else { $sql="UPDATE s_protagonistes SET qualite='".addslashes(preg_replace("/'/","'",html_entity_decode($qualite[$i])))."' WHERE id_incident='$id_incident' AND login='".$u_login[$i]."';"; //echo "$sql
\n"; $res=mysqli_query($GLOBALS["mysqli"], $sql); if(!$res) { $msg.="ERREUR lors de l'enregistrement de ".$u_login[$i]."
\n"; } } } } } } elseif(isset($is_posted)) { //echo "is_posted
"; if(!isset($_POST['recherche_protagoniste'])) { //echo "Ce n'est pas une recherche_eleve ni recherche_utilisateur
"; if(!isset($id_incident)) { //echo "Nouvel incident, \$id_incident n'est pas encore affecté
"; check_token(); if(!isset($display_date)) { $annee = strftime("%Y"); $mois = strftime("%m"); $jour = strftime("%d"); //$display_date = $jour."/".$mois."/".$annee; } else { $jour = mb_substr($display_date,0,2); $mois = mb_substr($display_date,3,2); $annee = mb_substr($display_date,6,4); } if(!checkdate($mois,$jour,$annee)) { $annee = strftime("%Y"); $mois = strftime("%m"); $jour = strftime("%d"); $msg.="La date proposée n'était pas valide. Elle a été remplacée par la date du jour courant."; } if(!isset($display_heure)) { $display_heure=""; } if(!isset($nature)) { $nature=""; } if (isset($NON_PROTECT["description"])){ $description=traitement_magic_quotes(corriger_caracteres($NON_PROTECT["description"])); // Contrôle des saisies pour supprimer les sauts de lignes surnuméraires. $description=preg_replace('/(\\\r\\\n)+/',"\r\n",$description); $description=preg_replace('/(\\\r)+/',"\r",$description); $description=preg_replace('/(\\\n)+/',"\n",$description); } else { $description=""; } // Ajout Eric zone de commentaire if (isset($NON_PROTECT["commentaire"])){ $commentaire=traitement_magic_quotes(corriger_caracteres($NON_PROTECT["commentaire"])); // Contrôle des saisies pour supprimer les sauts de lignes surnuméraires. $commentaire=preg_replace('/(\\\r\\\n)+/',"\r\n",$commentaire); $commentaire=preg_replace('/(\\\r)+/',"\r",$commentaire); $commentaire=preg_replace('/(\\\n)+/',"\n",$commentaire); } else { $commentaire=""; } // Fin ajout Eric if(!isset($id_lieu)) { $id_lieu=""; } // ALTER TABLE s_incidents ADD message_id VARCHAR(50) NOT NULL; //$message_id=strftime("%Y%m%d%H%M%S",time()).".".mb_substr(md5(microtime()),0,6); // Pour ne pas spammer tant que la nature n'est pas saisie if($nature!='') { $message_id=$id_incident.".".strftime("%Y%m%d%H%M%S",time()).".".mb_substr(md5(microtime()),0,6); $tab_param_mail['message_id']=$message_id; } else { $message_id=""; } $nature=preg_replace('/\\\\\'/',"'",$nature); $sql="INSERT INTO s_incidents SET declarant='".$_SESSION['login']."', date='$annee-$mois-$jour', heure='$display_heure', nature='".traitement_magic_quotes(corriger_caracteres($nature))."', description='".$description."', id_lieu='$id_lieu', message_id='$message_id';"; //echo "$sql
\n"; $res=mysqli_query($GLOBALS["mysqli"], $sql); if(!$res) { $msg.="ERREUR lors de l'enregistrement de l'".$mod_disc_terme_incident." :".$sql."
\n"; } else { $id_incident=((is_null($___mysqli_res = mysqli_insert_id($GLOBALS["mysqli"]))) ? false : $___mysqli_res); $msg.="Enregistrement de l'".$mod_disc_terme_incident." n°".$id_incident." effectué.
\n"; } $texte_mail="Saisie par ".civ_nom_prenom($_SESSION['login'])." d'un ".$mod_disc_terme_incident." (n°$id_incident) survenu le $jour/$mois/$annee à $display_heure:\n"; $texte_mail.="Nature: $nature\nDescription: $description\n"; } else { //echo "Incident n°$id_incident
"; //check_token(); $temoin_modif="n"; $sql="UPDATE s_incidents SET "; if(isset($display_date)) { $jour = mb_substr($display_date,0,2); $mois = mb_substr($display_date,3,2); $annee = mb_substr($display_date,6,4); if(!checkdate($mois,$jour,$annee)) { $annee = strftime("%Y"); $mois = strftime("%m"); $jour = strftime("%d"); $msg.="La date proposée n'était pas valide. Elle a été remplacée par la date du jour courant."; } $sql.="date='$annee-$mois-$jour' ,"; $temoin_modif="y"; } if(isset($display_heure)) { $sql.="heure='$display_heure' ,"; $temoin_modif="y"; } if(isset($nature)) { /* if (get_magic_quotes_gpc()) { echo "get_magic_quotes_gpc()=true
"; } else { echo "get_magic_quotes_gpc()=false
"; } echo "nature=$nature
corriger_caracteres($nature)=".corriger_caracteres($nature)."
traitement_magic_quotes(corriger_caracteres($nature))=".traitement_magic_quotes(corriger_caracteres($nature))."
"; */ $nature=preg_replace('/\\\\\'/',"'",$nature); //$nature=stripslashes($nature); //echo "nature=$nature
"; $sql.="nature='".traitement_magic_quotes(corriger_caracteres($nature))."' ,"; //on vérifie si une catégorie est définie pour cette nature $sql2="SELECT id_categorie FROM s_incidents WHERE nature='".traitement_magic_quotes(corriger_caracteres($nature))."' GROUP BY id_categorie"; $res2=mysqli_query($GLOBALS["mysqli"], $sql2); //if($res2) { if(mysqli_num_rows($res2)>0) { while ($lign_cat=mysqli_fetch_object($res2)){ $tab_res[]=$lign_cat->id_categorie; } //il ne devrait pas y avoir plus d'un enregistrement; dans le cas contraire on envoi un message if (count($tab_res)>1) {$msg.="Il y a plusieurs catégories affectées à cette nature. La première est retenue pour cet ".$mod_disc_terme_incident.". Vous devriez mettre à jour vos catégories d'".$mod_disc_terme_incident."s.
";} //on affecte la categorie a l'incident ou on met à null dans le cas contraire; if ($tab_res['0']==null) {$sql.="id_categorie=NULL ,";} else {$sql.="id_categorie='".$tab_res['0']."' ,";} } $temoin_modif="y"; } if (isset($NON_PROTECT["description"])){ $description=traitement_magic_quotes(corriger_caracteres($NON_PROTECT["description"])); // Contrôle des saisies pour supprimer les sauts de lignes surnuméraires. $description=preg_replace('/(\\\r\\\n)+/',"\r\n",$description); $description=preg_replace('/(\\\r)+/',"\r",$description); $description=preg_replace('/(\\\n)+/',"\n",$description); $sql.="description='".$description."' ,"; $temoin_modif="y"; } // 20141209 // Nettoyer les échappements d'apostrophes // Ajout Eric zone de commentaire if (isset($NON_PROTECT["commentaire"])){ $commentaire=traitement_magic_quotes(corriger_caracteres($NON_PROTECT["commentaire"])); // Contrôle des saisies pour supprimer les sauts de lignes surnuméraires. $commentaire=preg_replace('/(\\\r\\\n)+/',"\r\n",$commentaire); $commentaire=preg_replace('/(\\\r)+/',"\r",$commentaire); $commentaire=preg_replace('/(\\\n)+/',"\n",$commentaire); $sql.="commentaire='".$commentaire."' ,"; $temoin_modif="y"; } // Fin ajout Eric if(isset($id_lieu)) { $sql.="id_lieu='$id_lieu' ,"; $temoin_modif="y"; } // Pour faire sauter le ", " en fin de $sql: $sql=mb_substr($sql,0,mb_strlen($sql)-2); $sql.=" WHERE id_incident='$id_incident';"; if($temoin_modif=="y") { check_token(); //echo "$sql
\n"; $res=mysqli_query($GLOBALS["mysqli"], $sql); if(!$res) { $msg.="ERREUR lors de la mise à jour de l'".$mod_disc_terme_incident." ".$id_incident."
\n"; } else { $msg.="Mise à jour de l'".$mod_disc_terme_incident." n°".$id_incident." effectuée.
\n"; } } $sql_declarant="SELECT declarant FROM s_incidents WHERE id_incident='$id_incident';"; $res_declarant=mysqli_query($GLOBALS["mysqli"], $sql_declarant); if(mysqli_num_rows($res_declarant)>0) { $lig_decclarant=mysqli_fetch_object($res_declarant); $texte_mail= "Déclaration initiale de l'".$mod_disc_terme_incident." par ".u_p_nom($lig_decclarant->declarant)."\n"; } $texte_mail.="Mise à jour par ".civ_nom_prenom($_SESSION['login'])." d'un ".$mod_disc_terme_incident." (n°$id_incident)"; if(isset($display_heure)) { $texte_mail.=" survenu le $jour/$mois/$annee à/en $display_heure:\n"; } if(isset($nature)) { $texte_mail.="\nNature: $nature\nDescription: $description\n"; } } if(isset($id_incident)) { //echo "Ce n'est pas une recherche_eleve ni recherche_utilisateur avec $id_incident (2)
"; // 20130819 for($i=0;$i\n"; $res=mysqli_query($GLOBALS["mysqli"], $sql); if(mysqli_num_rows($res)==0) { check_token(); $sql="INSERT INTO s_protagonistes SET id_incident='$id_incident', login='".$ele_login[$i]."', statut='eleve';"; //echo "$sql
\n"; $res=mysqli_query($GLOBALS["mysqli"], $sql); if(!$res) { $msg.="ERREUR lors de l'enregistrement de ".$ele_login[$i]."
\n"; } } } for($i=0;$i\n"; $res=mysqli_query($GLOBALS["mysqli"], $sql); if(mysqli_num_rows($res)==0) { check_token(); $tmp_statut=""; $sql="SELECT statut FROM utilisateurs WHERE login='".$u_login[$i]."'"; $res_statut=mysqli_query($GLOBALS["mysqli"], $sql); if(mysqli_num_rows($res_statut)>0) { $lig_statut=mysqli_fetch_object($res_statut); $tmp_statut=$lig_statut->statut; $sql="INSERT INTO s_protagonistes SET id_incident='$id_incident', login='".$u_login[$i]."', statut='$tmp_statut', qualite='".addslashes(preg_replace("/'/","'",html_entity_decode($qualite[$i])))."';"; //echo "$sql
\n"; $res=mysqli_query($GLOBALS["mysqli"], $sql); if(!$res) { $msg.="ERREUR lors de l'enregistrement de ".$u_login[$i]."
\n"; } } else { $msg.="ERREUR lors de l'enregistrement de ".$u_login[$i].": statut inconnu???
\n"; } } } if(isset($mesure_ele_login)) { //echo "\$mesure_ele_login=$mesure_ele_login
"; check_token(); // Recherche des mesures déjà enregistrées: for($i=0;$i envoi_mail($subject, $texte_mail, $destinataires, $headers); "; */ $res_mes=mysqli_query($GLOBALS["mysqli"], $sql); if(mysqli_num_rows($res_mes)>0) { while($lig_mes=mysqli_fetch_object($res_mes)) { //$tab_mes_enregistree[]=$lig_mes->mesure; $tab_mes_enregistree[]=$lig_mes->id_mesure; } } unset($mesure_prise); $mesure_prise=isset($_POST['mesure_prise_'.$i]) ? $_POST['mesure_prise_'.$i] : array(); unset($mesure_demandee); $mesure_demandee=isset($_POST['mesure_demandee_'.$i]) ? $_POST['mesure_demandee_'.$i] : array(); //for($i=0;$i"; } else { $fichier_courant="../$dossier_documents_discipline/incident_".$id_incident."/mesures/".$mesure_ele_login[$i]."/".$suppr_doc_joint[$loop]; if(!unlink($fichier_courant)) { $msg.="Erreur lors de la suppression de $fichier_courant
"; } else { $msg_suppr_doc_joint="\nFichier joint supprimé : ".$suppr_doc_joint[$loop]."\n"; } } } $texte_mail.=$msg_suppr_doc_joint; $msg_doc_joint=""; //unset($document_joint); $tab_document_joint=isset($_FILES["document_joint_".$i]) ? $_FILES["document_joint_".$i] : NULL; if((isset($tab_document_joint))&&(isset($tab_document_joint['tmp_name']))&&(is_array($tab_document_joint['tmp_name']))&&(count($tab_document_joint['tmp_name'])>0)) { //foreach($tab_document_joint as $document_joint) { //if((isset($document_joint['tmp_name']))&&($document_joint['tmp_name']!="")) { for($ii=0;$ii $value) { echo "\$document_joint[$key]=$value
"; } // Image PNM $document_joint[name]= $document_joint[type]=image/x-portable-anymap $document_joint[tmp_name]=/tmp/php0zquJ4 $document_joint[error]=0 $document_joint[size]=69472 */ //$msg.="\$document_joint['tmp_name']=".$document_joint['tmp_name']."
"; if($document_joint['name']=="") { // Aucun fichier n'a ete fourni // Vaut-il mieux tester $tab_document_joint['error'][$ii]? ou la valeur 4 correspond-elle à !is_uploaded_file? // http://php.net/manual/fr/features.file-upload.errors.php // UPLOAD_ERR_NO_FILE // Valeur : 4. Aucun fichier n'a été téléchargé. } elseif(!is_uploaded_file($document_joint['tmp_name'])) { $msg.="L'upload du fichier a échoué.
\n"; } else{ if(!file_exists($document_joint['tmp_name'])) { if($document_joint['name']!="") { $extension_tmp=mb_substr(strrchr($document_joint['name'],'.'),1); if(!in_array($extension, $AllowedFilesExtensions)) { $msg.="Vous avez proposé : ".$document_joint['name']."
L'extension $extension n'est pas autorisée.
\n"; } else { $msg.="Le fichier aurait été uploadé... mais ne serait pas présent/conservé.
\n"; } } else { $msg.="Le fichier aurait été uploadé... mais ne serait pas présent/conservé.
\n"; $msg.="Il se peut que l'extension du fichier proposé ne soit pas autorisée.
\n"; $msg.="Les types autorisés sont ".array_to_chaine($AllowedFilesExtensions)."
"; } } /* echo "
	envoi_mail($subject, 
	$texte_mail, 
	$destinataires, 
	$headers);
	
"; */ else { $source_file=$document_joint['tmp_name']; $dossier_courant="../$dossier_documents_discipline/incident_".$id_incident."/mesures/".$mesure_ele_login[$i]; if(!file_exists($dossier_courant)) { if($discipline_droits_mkdir=="") { mkdir($dossier_courant, 0770, true); } else { @mkdir("../$dossier_documents_discipline"); @mkdir("../$dossier_documents_discipline/incident_".$id_incident); @mkdir("../$dossier_documents_discipline/incident_".$id_incident."/mesures"); @mkdir($dossier_courant); } } if(strstr($document_joint['name'],".")) { $extension_fichier=substr(strrchr($document_joint['name'],'.'),1); $nom_fichier_sans_extension=preg_replace("/.$extension_fichier$/","",$document_joint['name']); $dest_file=$dossier_courant."/".remplace_accents($nom_fichier_sans_extension, "all").".".$extension_fichier; } else { // Pas d'extension dans le nom de fichier fourni $dest_file=$dossier_courant."/".remplace_accents($document_joint['name'], "all"); } $res_copy=copy("$source_file" , "$dest_file"); if(!$res_copy) { $msg.="Echec de la mise en place du fichier ".$document_joint['name']."
"; } else { $url_racine_gepi=getSettingValue('url_racine_gepi'); if($url_racine_gepi) { $msg_doc_joint.="\nAjout d'un document : ".$url_racine_gepi.preg_replace("#^..#", "", $dest_file)."\n"; } else { $msg_doc_joint.="\nAjout d'un document : ".remplace_accents($document_joint['name'], "all")."\n"; } } } } } $texte_mail.=$msg_doc_joint; } if(count($mesure_demandee)>0) { if (isset($NON_PROTECT["travail_pour_mesure_demandee_".$i])){ $texte_travail=traitement_magic_quotes(corriger_caracteres($NON_PROTECT["travail_pour_mesure_demandee_".$i])); // Contrôle des saisies pour supprimer les sauts de lignes surnuméraires. $texte_travail=preg_replace('/(\\\r\\\n)+/',"\r\n",$texte_travail); $texte_travail=preg_replace('/(\\\r)+/',"\r",$texte_travail); $texte_travail=preg_replace('/(\\\n)+/',"\n",$texte_travail); if($texte_travail=="") { $sql="DELETE FROM s_travail_mesure WHERE id_incident='$id_incident' AND login_ele='".$mesure_ele_login[$i]."';"; $res_del=mysqli_query($GLOBALS["mysqli"], $sql); } else { $sql="SELECT * FROM s_travail_mesure WHERE id_incident='$id_incident' AND login_ele='".$mesure_ele_login[$i]."';"; $res_mes=mysqli_query($GLOBALS["mysqli"], $sql); if(mysqli_num_rows($res_mes)>0) { $sql="UPDATE s_travail_mesure SET travail='".$texte_travail."' WHERE id_incident='$id_incident' AND login_ele='".$mesure_ele_login[$i]."';"; $update=mysqli_query($GLOBALS["mysqli"], $sql); } else { $sql="INSERT INTO s_travail_mesure SET travail='".$texte_travail."', id_incident='$id_incident', login_ele='".$mesure_ele_login[$i]."';"; $insert=mysqli_query($GLOBALS["mysqli"], $sql); } } } } //$tab_mesure_possible=array(); //$sql="SELECT mesure FROM s_mesures;"; $sql="SELECT * FROM s_mesures;"; $res_mes=mysqli_query($GLOBALS["mysqli"], $sql); if(mysqli_num_rows($res_mes)>0) { while($lig_mes=mysqli_fetch_object($res_mes)) { //$tab_mesure_possible[]=$lig_mes->mesure; if(in_array($lig_mes->id,$tab_mes_enregistree)) { if((!in_array($lig_mes->id,$mesure_prise))&& (!in_array($lig_mes->id,$mesure_demandee))) { // Cette mesure n'a plus lieu d'être enregistrée //$sql="DELETE FROM s_traitement_incident WHERE id_incident='$id_incident' AND login_ele='".$mesure_ele_login[$i]."' AND mesure='".$lig_mes->mesure."';"; $sql="DELETE FROM s_traitement_incident WHERE id_incident='$id_incident' AND login_ele='".$mesure_ele_login[$i]."' AND id_mesure='".$lig_mes->id."';"; $suppr=mysqli_query($GLOBALS["mysqli"], $sql); if(!$suppr) { $msg.="ERREUR lors de la suppression de la mesure ".$lig_mes->mesure." pour ".$mesure_ele_login[$i]."
\n"; } } } else { if((in_array($lig_mes->id,$mesure_prise))|| (in_array($lig_mes->id,$mesure_demandee))) { // Cette mesure doit être enregistrée //$sql="INSERT INTO s_traitement_incident SET id_incident='$id_incident', login_ele='".$mesure_ele_login[$i]."', mesure='".$lig_mes->mesure."', login_u='".$_SESSION['login']."';"; $sql="INSERT INTO s_traitement_incident SET id_incident='$id_incident', login_ele='".$mesure_ele_login[$i]."', id_mesure='".$lig_mes->id."', login_u='".$_SESSION['login']."';"; $insert=mysqli_query($GLOBALS["mysqli"], $sql); if(!$insert) { $msg.="ERREUR lors de l'enregistrement de la mesure ".$lig_mes->mesure." pour ".$mesure_ele_login[$i]."
\n"; } } if((in_array($lig_mes->id,$mesure_demandee))) {unset($clore_incident);} } } } } } if(isset($clore_incident)) { //echo "\$clore_incident=$clore_incident
"; check_token(); $sql="UPDATE s_incidents SET etat='clos' WHERE id_incident='$id_incident';"; $update=mysqli_query($GLOBALS["mysqli"], $sql); if(!$update) { $msg.="ERREUR lors de la clôture de l'".$mod_disc_terme_incident." n°$id_incident.
\n"; } else { $msg.="Clôture de l'".$mod_disc_terme_incident." n°$id_incident.
\n"; } } check_token(); $temoin_envoyer_mail="y"; //echo "nature=$nature
"; if((!isset($nature))||($nature=='')) { $sql="SELECT * FROM s_incidents WHERE id_incident='$id_incident' AND (nature!='' OR description!='');"; //echo "$sql
"; $res_test=mysqli_query($GLOBALS["mysqli"], $sql); if(mysqli_num_rows($res_test)==0) { $temoin_envoyer_mail="n"; } } if($temoin_envoyer_mail=="y") { // Recuperation du message_id pour les fils de discussion dans les mails $sql_mi="SELECT message_id FROM s_incidents WHERE id_incident='$id_incident';"; $res_mi=mysqli_query($GLOBALS["mysqli"], $sql_mi); $lig_mi=mysqli_fetch_object($res_mi); if($lig_mi->message_id=="") { $message_id=$id_incident.".".strftime("%Y%m%d%H%M%S",time()).".".mb_substr(md5(microtime()),0,6); $sql="UPDATE s_incidents SET message_id='$message_id' WHERE id_incident='$id_incident';"; $update=mysqli_query($GLOBALS["mysqli"], $sql); } else { $references_mail=$lig_mi->message_id; //$tab_param_mail['references'][]=$lig_mi->message_id; $tab_param_mail['references']=$lig_mi->message_id; } $tab_alerte_classe=array(); $info_classe_prot=""; $liste_protagonistes_responsables=""; $sql="SELECT * FROM s_protagonistes WHERE id_incident='$id_incident' ORDER BY login;"; //echo "$sql
"; $res_prot=mysqli_query($GLOBALS["mysqli"], $sql); if(mysqli_num_rows($res_prot)>0) { $texte_mail.="\n"; $texte_mail.="Protagonistes de l'".$mod_disc_terme_incident.": \n"; while($lig_prot=mysqli_fetch_object($res_prot)) { if($lig_prot->statut=='eleve') { $classe_elv = get_noms_classes_from_ele_login($lig_prot->login); if ($classe_elv[0] != "") {$classe_elv[0]="[".$classe_elv[0]."]";}; $texte_mail.=get_nom_prenom_eleve($lig_prot->login)." $classe_elv[0] ($lig_prot->qualite)\n"; } else { $texte_mail.=civ_nom_prenom($lig_prot->login)." ($lig_prot->statut) ($lig_prot->qualite)\n"; } if(mb_strtolower($lig_prot->qualite)=='responsable') { $sql="SELECT DISTINCT c.classe FROM classes c,j_eleves_classes jec WHERE jec.id_classe=c.id AND jec.login='$lig_prot->login' ORDER BY jec.periode DESC limit 1;"; //echo "$sql
"; $res_prot_classe=mysqli_query($GLOBALS["mysqli"], $sql); if(mysqli_num_rows($res_prot)>0) { $lig_prot_classe=mysqli_fetch_object($res_prot_classe); $info_classe_prot="[$lig_prot_classe->classe]"; if(getSettingValue('mod_disc_sujet_mail_sans_nom_eleve')!="n") { if($liste_protagonistes_responsables!="") {$liste_protagonistes_responsables.=", ";} $liste_protagonistes_responsables.=$lig_prot->login; //echo "\$liste_protagonistes_responsables=$liste_protagonistes_responsables
"; } } } $sql="SELECT * FROM s_mesures sm, s_traitement_incident sti WHERE sti.id_incident='$id_incident' AND sti.login_ele='".$lig_prot->login."' AND sti.id_mesure=sm.id ORDER BY type, mesure;"; //echo "$sql
"; $res_mes=mysqli_query($GLOBALS["mysqli"], $sql); if(mysqli_num_rows($res_mes)>0) { while($lig_mes=mysqli_fetch_object($res_mes)) { $texte_mail.=" $lig_mes->mesure ($lig_mes->type)\n"; } $texte_mail.="\n"; } // On va avoir des personnes alertees inutilement pour les élèves qui ont changé de classe. // NON $sql="SELECT DISTINCT id_classe FROM j_eleves_classes WHERE login='$lig_prot->login' ORDER BY periode DESC LIMIT 1;"; $res_clas_prot=mysqli_query($GLOBALS["mysqli"], $sql); if(mysqli_num_rows($res_clas_prot)>0) { $lig_clas_prot=mysqli_fetch_object($res_clas_prot); if(!in_array($lig_clas_prot->id_classe,$tab_alerte_classe)) { $tab_alerte_classe[]=$lig_clas_prot->id_classe; } } } } //echo "\$texte_mail=$texte_mail
"; $texte_mail=$texte_mail."\n\n"."Message: ".preg_replace('#
#',"\n",$msg); $subject = "[GEPI][".ucfirst($mod_disc_terme_incident)." n°$id_incident]".$info_classe_prot.$liste_protagonistes_responsables; if(count($tab_alerte_classe)>0) { $tab_param_mail=array(); $destinataires=get_destinataires_mail_alerte_discipline($tab_alerte_classe, $nature); // La liste des destinataires, admin inclus doivent être définis dans "Définition des destinataires d'alertes" //if($destinataires=="") { // $destinataires=getSettingValue("gepiAdminAdress"); //} if($destinataires!="") { $headers = ""; if((isset($_SESSION['email']))&&(check_mail($_SESSION['email']))) { $headers.="Reply-to:".$_SESSION['email']."\r\n"; $tab_param_mail['replyto']=$_SESSION['email']; } if(isset($message_id)) {$headers .= "Message-id: $message_id\r\n";} if(isset($references_mail)) {$headers .= "References: $references_mail\r\n";} // On envoie le mail $envoi_mail_actif=getSettingValue('envoi_mail_actif'); if(($envoi_mail_actif!='n')&&($envoi_mail_actif!='y')) { $envoi_mail_actif='y'; // Passer à 'n' pour faire des tests hors ligne... la phase d'envoi de mail peut sinon ensabler. } if($envoi_mail_actif=='y') { $envoi = envoi_mail($subject, $texte_mail, $destinataires, $headers, "plain", $tab_param_mail); if($envoi) { $msg.="Mail envoyé.
"; } } } } if(getSettingAOui('active_mod_alerte')) { $nb_msg=0; $subject.=" (incident n°".$id_incident.")"; $destinataires_mod_alerte=get_destinataires_mail_alerte_discipline($tab_alerte_classe, $nature, "mod_alerte"); for($loop=0;$loop0) { $msg.="$nb_msg destinataire(s) du message déposé dans le module Alerte.
"; } } } //} } } } } //$utilisation_scriptaculous="y"; //$utilisation_jsdivdrag='non'; //$javascript_specifique[]="lib/prototype"; $javascript_specifique[]="lib/scriptaculous"; $javascript_specifique[]="lib/unittest"; $javascript_specifique[]="lib/effects"; $javascript_specifique[]="lib/controls"; $javascript_specifique[]="lib/builder"; $style_specifique[]="mod_discipline/mod_discipline"; $style_specifique[] = "lib/DHTMLcalendar/calendarstyle"; $javascript_specifique[] = "lib/DHTMLcalendar/calendar"; $javascript_specifique[] = "lib/DHTMLcalendar/lang/calendar-fr"; $javascript_specifique[] = "lib/DHTMLcalendar/calendar-setup"; $themessage = 'Des informations ont été modifiées. Voulez-vous vraiment quitter sans enregistrer ?'; //**************** EN-TETE ***************** $titre_page = "Discipline: Signaler un ".$mod_disc_terme_incident; //require_once("../lib/header.inc.php"); include_once("../lib/header_template.inc.php"); $tbs_statut_utilisateur = $_SESSION['statut']; $tbs_last_connection = ''; if (!suivi_ariane($_SERVER['PHP_SELF'],"Discipline : Saisie")) echo "erreur lors de la création du fil d'ariane"; //$tbs_retour="../accueil.php"; include_once("../templates/origine/gabarit_entete.php"); $page="saisie_incident.php"; if (!isset($return_url) || $return_url == null) { $return_url = 'index.php'; } //**************** FIN EN-TETE ***************** //debug_var(); ?>

0) { ?> sans protagonistes | Liste des s (avec protagonistes) Liste des s 0) { ?> sans protagonistes | 0) { ?> Liste des s 0) { ?> Liste des s 0) { ?> Liste des s | Imprimer le rapport d' 0) { echo " | Supprimer cet incident"; } } if(acces("/mod_discipline/aide.php", $_SESSION['statut'])) { ?> | Aide

0) { $etat_incident="clos"; $step=2; } elseif($_SESSION['statut']=='professeur') { // Si le visiteur est un professeur et que l'incident a été ouvert par une autre personne, on fait comme si l'incident était clos. // Aucune modification ne peut être effectuée par le professeur. // Il doit s'adresser à un cpe, scol, admin ou au déclarant pour apporter un commentaire. // Remarque: S'il arrive sur cette page c'est qu'il est protagoniste de l'incident ou déclarant. $sql="SELECT 1=1 FROM s_incidents WHERE id_incident='$id_incident' AND declarant!='".$_SESSION['login']."';"; $test=mysqli_query($GLOBALS["mysqli"], $sql); if(mysqli_num_rows($test)>0) { $etat_incident="clos"; $step=2; } } } if($etat_incident!='clos') { //===================================================== // MENU ?> 0) { echo "

Une ou des ".$mod_disc_terme_sanction."s sont définies pour le ou les élèves suivants :
"; for($loop=0;$loop\n".$tmp_texte; $texte=$tmp_texte; $tabdiv_infobulle[]=creer_div_infobulle("sanctions_incident_prot_".$loop,ucfirst($mod_disc_terme_sanction)."s ".$current_identite_ele,"",$texte,"",44,0,'y','y','n','n'); echo "".$current_identite_ele."
"; } } echo "

"; } // ===== Pour les CPE, on ajoute la possibilité de changer le déclarant ===== if($_SESSION['statut']=='cpe' && $step== '2') { if (getSettingAOui('DisciplineCpeChangeDeclarant')) { $peutChanger = FALSE; // On recherche le primo-déclarant $sql="SELECT primo_declarant , declarant FROM s_incidents WHERE id_incident='".$id_incident."' AND primo_declarant IS NOT NULL;"; //echo "$sql
"; $resPrimo=mysqli_query($GLOBALS["mysqli"], $sql); if(mysqli_num_rows($resPrimo)>0) { $response = mysqli_fetch_object($resPrimo); if ($response->primo_declarant == $_SESSION['login'] || ($response->primo_declarant == '' && $response->declarant == $_SESSION['login'])) { $peutChanger= TRUE; } } else { $sql="SELECT declarant FROM s_incidents WHERE id_incident='".$id_incident."';"; //echo "$sql
"; $resPrimo=mysqli_query($GLOBALS["mysqli"], $sql); if(mysqli_num_rows($resPrimo)>0) { $response = mysqli_fetch_object($resPrimo); if ($response->declarant == $_SESSION['login']) { $peutChanger= TRUE; } } } if($peutChanger){ if (getSettingAOui('DisciplineCpeChangeDefaut')) { // ===== Par défaut changement autorisé $sql_test="SELECT 1=1 FROM preferences p WHERE p.name='cpePeuChanger';"; $res_test=mysqli_query($GLOBALS["mysqli"], $sql_test); if(mysqli_num_rows($res_test)==0) { $sqlProf="SELECT u.login , u.nom , u.prenom FROM utilisateurs u WHERE u.statut='professeur' AND u.etat='actif' ORDER BY u.nom , u.prenom"; } else { $sqlProf="SELECT u.login , u.nom , u.prenom FROM utilisateurs u WHERE u.statut='professeur' AND u.etat='actif' AND (u.login IN (SELECT p.login FROM preferences p WHERE p.name='cpePeuChanger' AND p.value LIKE 'yes') OR u.login NOT IN (SELECT p.login FROM preferences p WHERE p.name='cpePeuChanger')) ORDER BY u.nom , u.prenom"; } } else { // ===== Par défaut changement interdit $sqlProf="SELECT u.login , u.nom , u.prenom FROM utilisateurs u WHERE u.statut='professeur' AND u.etat='actif' AND u.login IN (SELECT p.login FROM preferences p WHERE p.name='cpePeuChanger' AND p.value LIKE 'yes') ORDER BY u.nom , u.prenom"; } //echo $sqlProf."
"; $resProf=mysqli_query($GLOBALS["mysqli"], $sqlProf); ?>
Déclarant

Changer le déclarant

0) { while($lig=mysqli_fetch_object($res)) { $tab_qualite[]=$lig->qualite; } } //echo "count(\$ele_login)=".count($ele_login)."
"; $sql="SELECT * FROM s_protagonistes WHERE id_incident='$id_incident' ORDER BY statut,qualite,login;"; //echo "$sql
"; $res=mysqli_query($GLOBALS["mysqli"], $sql); if(mysqli_num_rows($res)>0) { if($etat_incident!='clos') { ?>
Protagonistes

Protagonistes de l' :

statut=='eleve') { ?> $lig->statut\n"; if($lig->statut=='autre') { //echo "\n"; $sql = "SELECT ds.id, ds.nom_statut FROM droits_statut ds, droits_utilisateurs du WHERE du.login_user = '".$lig->login."' AND du.id_statut = ds.id;"; $query = mysqli_query($GLOBALS["mysqli"], $sql); $result = mysqli_fetch_array($query); ?> "; if($lig->statut=='eleve') { $tmp_tab_resp=get_resp_from_ele_login($lig->login); /* echo "
";
						print_r($tmp_tab_resp);
						echo "
"; */ if(responsables_adresses_separees($lig->login)) { for($loop_resp=0;$loop_resp0) {echo " ";} ?> ' title="Imprimer le rapport d' pour "> Imprimer Rapport Imprimer Rapport \n"; echo "
Individu Statut Rôle dans l' Rapport Retenue Famille avertie
login';"; //echo "$sql
\n"; $res2=mysqli_query($GLOBALS["mysqli"], $sql); if(mysqli_num_rows($res2)>0) { $ele_login[]=$lig->login; $lig2=mysqli_fetch_object($res2); echo ucfirst(mb_strtolower($lig2->prenom))." ".mb_strtoupper($lig2->nom); } else { ?> ERREUR: Login inconnu
login); ?> élève () \n"; ?> qualite; ?> login';"; //echo "$sql
\n"; $res2=mysqli_query($GLOBALS["mysqli"], $sql); if(mysqli_num_rows($res2)>0) { $lig2=mysqli_fetch_object($res2); echo ucfirst(mb_strtolower($lig2->prenom))." ".mb_strtoupper($lig2->nom); } else { ?> ERREUR: Login inconnu
".$_SESSION['statut_special']." statut; ?> qualite; ?> "; if ($lig->qualite=='Responsable') { //une retenue seulement pour un responsable ! if(responsables_adresses_separees($lig->login)) { $tmp_tab_resp=get_resp_from_ele_login($lig->login); for($loop_resp=0;$loop_resp0) {echo " ";} ?> ' title="Imprimer la retenue pour "> Imprimer Retenue Imprimer Retenue statut=='eleve') { // Avertir la famille... et afficher les avertissements effectués. $defaut="N"; if($etat_incident!='clos') { $defaut=$lig->avertie; ?> onchange="sauve_avertie('','login; ?>','O')" /> / onchange="sauve_avertie('','login; ?>','N')" /> Avertir avertie=="O") {echo "Oui";} else {echo "Non";} } } else { ?>  
0) { ?>

N'oubliez pas de préciser l' après ajout des protagonistes.

Aucun protagoniste n'a (encore) été spécifié pour cet incident.

Protagonistes de l' :

Aucun protagoniste n'a (encore) été spécifié pour cet .

Ajouter des protagonistes de l'.

Recherche de protagonistes

Afficher les élèves et personnels dont le nom contient:

\n";} ?>

Choix des protagonistes

"; $res_ele=mysqli_query($GLOBALS["mysqli"], $sql); if(mysqli_num_rows($res_ele)>0) { ?>

Elèves de la classe de  :

0)&&(round($i/$nb_par_colonne)==$i/$nb_par_colonne)){ ?>

\n";} ?>

"; if ($_SESSION['statut']!='autre') { //statut autre : ajout Eric de la condition $res_clas=mysqli_query($GLOBALS["mysqli"], $sql); if(mysqli_num_rows($res_clas)>0) { ?>

Ou
choisir un élève dans une classe :

classe; if(isset($id_incident)) { //$tab_lien[]=$_SERVER['PHP_SELF']."?id_classe=".$lig_clas->id."&id_incident=$id_incident"; $tab_lien[]=$_SERVER['PHP_SELF']."?id_classe=".$lig_clas->id."&id_incident=$id_incident' onclick='return confirm_abandon (this, change, \"$themessage\")"; } else { $tab_lien[]=$_SERVER['PHP_SELF']."?id_classe=".$lig_clas->id; } } ?>
\n"; //$sql="SELECT DISTINCT statut FROM utilisateurs WHERE statut!='responsable' ORDER BY statut;"; $sql="SELECT DISTINCT statut FROM utilisateurs WHERE statut!='responsable' AND statut!='eleve' AND etat='actif' ORDER BY statut;"; $res=mysqli_query($GLOBALS["mysqli"], $sql); if(mysqli_num_rows($res)==0) { // Ca ne doit pas arriver;o) ?>

La table 'utilisateurs' ne comporte aucun compte???


La table 'utilisateurs' ne comporte pas de comptes de statut ''.


Choix de personnels ()

\n"; } $nombreligne=mysqli_num_rows($res2); $nbcol=3; // Nombre de lignes dans chaque colonne: $nb_par_colonne=round($nombreligne/$nbcol); ?>
0)&&(round($i/$nb_par_colonne)==$i/$nb_par_colonne)){ ?>
login."' AND du.id_statut = ds.id;"; $query = mysqli_query($GLOBALS["mysqli"], $sql); $result = mysqli_fetch_array($query); ?>


Ou
Choisir une catégorie de personnels :

statut); ?>

Ajouter des personnels :

La table 'utilisateurs' ne comporte aucun compte???


Recherche de personnels

Afficher les utilisateurs dont le nom contient :

".add_token_field()."

\n"; if(isset($id_incident)) {echo "

\n";} ?>
\n";
Choix de personnels ".add_token_field()."

\n"; ?>

\n";} ?>

La table 'utilisateurs' ne comporte pas de comptes de statut ''.


\n"; echo "Choix de personnels ($categ_u)\n"; echo "

".add_token_field()."

\n"; ?>

\n";} $nombreligne=mysqli_num_rows($res2); $nbcol=3; // Nombre de lignes dans chaque colonne: $nb_par_colonne=round($nombreligne/$nbcol); ?>
0)&&(round($i/$nb_par_colonne)==$i/$nb_par_colonne)){ ?>
login."' AND du.id_statut = ds.id;"; $query = mysqli_query($GLOBALS["mysqli"], $sql); $result = mysqli_fetch_array($query); ?>


Choisir une catégorie de personnels :

statut); ?>

Détails de l' 0) { $lig_dec=mysqli_fetch_object($res_dec); ?> ( signalé par declarant); ?> )  :

Détails de l'

"; // Si aucune date n'est encore saisie, proposer la date du jour $annee = strftime("%Y"); $mois = strftime("%m"); $jour = strftime("%d"); $display_date = $jour."/".$mois."/".$annee; // Si aucune heure n'est encore saisie, proposer l'heure courante $display_heure=strftime("%H").":".strftime("%M"); //$timestamp_heure=time(); $sql="SELECT nom_definie_periode FROM edt_creneaux WHERE CURTIME()>=heuredebut_definie_periode AND CURTIME()0) { $lig_time=mysqli_fetch_object($res_time); $display_heure=$lig_time->nom_definie_periode; } // Initialisation de variables: $nature=""; $description=""; $commentaire=""; if(isset($id_incident)) { if($etat_incident!='clos') { ?>

0) { $lig_inc=mysqli_fetch_object($res_inc); $display_date=formate_date($lig_inc->date); //$display_heure=$lig_inc->heure; if($lig_inc->heure!="") { $display_heure=$lig_inc->heure; } $nature=$lig_inc->nature; $description=$lig_inc->description; $commentaire=$lig_inc->commentaire; $id_lieu=$lig_inc->id_lieu; //echo add_token_field(true); } } ?>
* */ ?> \n"; echo $display_date; echo "\n"; } ?> \n"; $res_lieu=mysqli_query($GLOBALS["mysqli"], $sql); if(mysqli_num_rows($res_lieu)>0) { $alt=$alt*(-1); ?> \n"; //echo "\n"; echo "\n"; while($lig_lieu=mysqli_fetch_object($res_lieu)) { echo "\n"; } echo "\n"; } else { echo ">\n"; while($lig_lieu=mysqli_fetch_object($res_lieu)) { if($lig_lieu->id==$id_lieu) {echo "$lig_lieu->lieu\n";} } } echo "\n"; ?> \n"; $texte.="\n"; } } else { if($current_categorie!=$categorie_prec) { if($current_categorie=="_SANS_CATEGORIE_DEFINIE_") { $current_categorie="Autres"; } $texte.="\n"; $texte.="\n"; $texte.="\n"; } for($loop=0;$loop\n"; $texte.="\n"; $texte.="\n"; } } } $texte.="
Date de l' :
Heure de l' : > En cas d'incertitude sur l'heure, il vaut mieux mettre un point d'interrogation en guise d'heure.
Sinon, s'il n'y a pas d'incertitude, le créneau horaire M1, S2,... est préférable."; $tabdiv_infobulle[]=creer_div_infobulle("div_infobulle_avertissement_heure","Heure non vide","",$texte,"",30,0,'y','y','n','n',2); ?>
Lieu :
Nature de l' (*) : > "; if($etat_incident!='clos') { $saisie_nature_libre="y"; if($DisciplineNaturesRestreintes==2) { // On limite les natures d'incident au contenu de s_natures $sql="SELECT DISTINCT nature FROM s_natures WHERE nature!='' ORDER BY nature;"; $res_nat=mysqli_query($GLOBALS["mysqli"], $sql); if(mysqli_num_rows($res_nat)>0) { $saisie_nature_libre="n"; ?>
0) { while($lig_nat=mysqli_fetch_object($res_nat)) { $tab_nature['categorie']['_SANS_CATEGORIE_DEFINIE_'][]=$lig_nat->nature; } } } else { //$sql="SELECT DISTINCT nature FROM s_natures WHERE nature!='' ORDER BY nature;"; //$sql="(SELECT DISTINCT sn.*, sc.categorie FROM s_natures sn, s_categories sc WHERE sn.id_categorie=sc.id ORDER BY sc.categorie, sn.nature) UNION (SELECT * FROM s_natures WHERE id_categorie NOT IN (SELECT id FROM s_categories) ORDER BY nature);"; $sql="SELECT DISTINCT sn.*, sc.categorie FROM s_natures sn, s_categories sc WHERE sn.id_categorie=sc.id ORDER BY sc.categorie, sn.nature;"; $res_nat=mysqli_query($GLOBALS["mysqli"], $sql); if(mysqli_num_rows($res_nat)>0) { $temoin_categories_definies="y"; while($lig_nat=mysqli_fetch_object($res_nat)) { $tab_nature['categorie'][$lig_nat->categorie][]=$lig_nat->nature; } } $sql="SELECT * FROM s_natures WHERE id_categorie NOT IN (SELECT id FROM s_categories) ORDER BY nature;"; $res_nat=mysqli_query($GLOBALS["mysqli"], $sql); if(mysqli_num_rows($res_nat)>0) { while($lig_nat=mysqli_fetch_object($res_nat)) { $tab_nature['categorie']['_SANS_CATEGORIE_DEFINIE_'][]=$lig_nat->nature; } } } if(count($tab_nature)>0) { ?> Choix \n"; $categorie_prec=""; foreach($tab_nature['categorie'] as $current_categorie => $tmp_tab_nature) { if($temoin_categories_definies=="n") { for($loop=0;$loop\n"; $texte.="
".$tmp_tab_nature[$loop]."
".$current_categorie."
".$tmp_tab_nature[$loop]."
\n"; $tabdiv_infobulle[]=creer_div_infobulle('div_choix_nature',"Nature de l'".$mod_disc_terme_incident,"",$texte,"",20,0,'y','y','n','n'); ?> Choix nature Ou si aucune nature n'est déjà définie, saisissez la nature d'".$mod_disc_terme_incident." de votre choix."; $tabdiv_infobulle[]=creer_div_infobulle('div_explication_choix_nature',"Choix nature de l'".$mod_disc_terme_incident,"",$texte,"",18,0,'y','y','n','n'); //==================================================== $id_infobulle_nature2='div_choix_nature2'; $largeur_infobulle_nature2=35; $hauteur_infobulle_nature2=10; // Pour que le div soit caché via le code en footer lors du chargement de la page. $tabid_infobulle[]=$id_infobulle_nature2; // Conteneur: ?>
Natures d's semblables
Description de l' :  paroles prononcées, gestes, réactions,...)
"; $texte.="
"; //$texte.="Que ce compte-rendu soit visible ou non par défaut des parents des élèves concernés, retenez qu'ils ont le droit d'après la CNIL de réclamer l'accès à ces données.
"; $texte.="Veillez donc à respecter les préconisations suivantes :
"; $texte.="Règle n° 1 : Avoir à l'esprit, quand on renseigne ces zones commentaires,
que la personne qui est concernée peut exercer son droit d'accès et lire ces commentaires !
"; $texte.="Règle n° 2 : Rédiger des commentaires purement objectifs
et jamais excessifs ou insultants.
"; $texte.="
"; $texte.="Pour plus de détails, consultez l'article de la CNIL?
"; $tabdiv_infobulle[]=creer_div_infobulle('div_explication_description',"Description de l'".$mod_disc_terme_incident,"",$texte,"",30,0,'y','y','n','n'); ?> > 0) { $chaine_avertissement=""; for($i=0;$i".insere_tout_le_necessaire_recherche_ajax_ele('description').""; ?>
Zone de dialogue sur l' Choix nature Horaire et lieu d'une retenue demandée, demande de convocation de l'élève par le CPE, ..."; $tabdiv_infobulle[]=creer_div_infobulle('div_explication_commentaires',"Zone de texte : dialogue","",$texte,"",18,0,'y','y','n','n'); ?> 0) { $alt=$alt*(-1); ?> Mesures : 0) { while($lig_mes=mysqli_fetch_object($res_mes)) { $tab_id_mes_prise[]=$lig_mes->id; $tab_mes_prise[]=$lig_mes->mesure; $tab_c_mes_prise[]=$lig_mes->commentaire; } } //$tab_mes_demandee=array(); //$sql="SELECT mesure FROM s_mesures WHERE type='demandee';"; $sql="SELECT * FROM s_mesures WHERE type='demandee';"; $res_mes=mysqli_query($GLOBALS["mysqli"], $sql); if(mysqli_num_rows($res_mes)>0) { while($lig_mes=mysqli_fetch_object($res_mes)) { $tab_id_mes_demandee[]=$lig_mes->id; $tab_mes_demandee[]=$lig_mes->mesure; $tab_c_mes_demandee[]=$lig_mes->commentaire; } } if((count($tab_mes_prise)>0)||(count($tab_mes_demandee)>0)) { ?> 0) { ?> 0) { ?> "; // Boucle sur la liste des élèves $alt2=1; for($i=0;$i 0) { ?> 0) { ?>
Elève Prises "; $texte.="Un compte cpe ou scolarité peut ensuite saisir la ".$mod_disc_terme_sanction." correspondante s'il juge la demande appropriée.
"; $texte.="
"; $texte.="Il n'y a pas d'intérêt pour un CPE à cocher une de ces cases.
"; $texte.="Il vaut mieux passer à la saisie en suivant le lien Traitement/".$mod_disc_terme_sanction." en haut à droite.
"; $tabdiv_infobulle[]=creer_div_infobulle("div_mesures_demandees","Mesures demandées","",$texte,"",30,0,'y','y','n','n'); ?> Demandées
Travail et/ou document(s) joint(s) à une mesure demandée
count(\$ele_login)=".count($ele_login)."
(".$tmp_tab['liste_nbsp'].")";} $tab_mes_eleve=array(); //$sql="SELECT mesure FROM s_traitement_incident WHERE id_incident='$id_incident' AND login_ele='".$ele_login[$i]."';"; $sql="SELECT id_mesure FROM s_traitement_incident WHERE id_incident='$id_incident' AND login_ele='".$ele_login[$i]."';"; $res_mes=mysqli_query($GLOBALS["mysqli"], $sql); if(mysqli_num_rows($res_mes)>0) { while($lig_mes=mysqli_fetch_object($res_mes)) { //$tab_mes_eleve[]=$lig_mes->mesure; $tab_mes_eleve[]=$lig_mes->id_mesure; } } ?> /> Précision
/> Précision
Nature du travail pour la mesure demandée\n"; $texte_travail="Travail : "; $tmp_pref_texte_travail=getPref($_SESSION['login'], 'mod_discipline_travail_par_defaut', ''); if($tmp_pref_texte_travail!='') { $texte_travail=$tmp_pref_texte_travail; } elseif(getSettingValue('mod_discipline_travail_par_defaut')!='') { $texte_travail=getSettingValue('mod_discipline_travail_par_defaut'); } $sql="SELECT * FROM s_travail_mesure WHERE id_incident='$id_incident' AND login_ele='".$ele_login[$i]."';"; $res_travail_mesure_demandee=mysqli_query($GLOBALS["mysqli"], $sql); if(mysqli_num_rows($res_travail_mesure_demandee)>0) { $lig_travail_mesure_demandee=mysqli_fetch_object($res_travail_mesure_demandee); $texte_travail=$lig_travail_mesure_demandee->travail; } ?> 0) { ?> /mesures/ ?>
Fichier Supprimer
".$tab_file[$loop].""; ?>



Aucun type de mesure n'est défini.


(sous réserve de ne pas Demander de mesure)

NOTES  :

  • (*) Il est impératif de saisir une Nature d' pour des questions de facilité de traitement par la suite.
  • Les formulaires de saisie du rôle des protagonistes et de saisie des détails de l' sont séparés.
    Ne faites pas de modification dans les deux formulaires sans valider entre les deux, vous perdriez la modification.