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();
}
// SQL : INSERT INTO droits VALUES ( '/bulletin/autorisation_exceptionnelle_saisie_note.php', 'V', 'F', 'F', 'V', 'F', 'F', 'F', 'F', 'Autorisation exceptionnelle de saisie de notes du bulletin.', '');
if (!checkAccess()) {
header("Location: ../logout.php?auto=1");
die();
}
/*
DROP TABLE IF EXISTS acces_exceptionnel_matieres_notes;
CREATE TABLE acces_exceptionnel_matieres_notes (
id INT( 11 ) NOT NULL AUTO_INCREMENT ,
id_groupe INT( 11 ) NOT NULL ,
periode INT( 11 ) NOT NULL ,
date_limite timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
commentaires text NOT NULL,
PRIMARY KEY ( id )
) CHARACTER SET utf8 COLLATE utf8_general_ci COMMENT = 'Acces exceptionnel à la modif de notes du bulletin en periode close';
*/
if(($_SESSION['statut']=='scolarite')&&(!getSettingAOui('PeutDonnerAccesBullNotePeriodeCloseScol'))) {
$mess=rawurlencode("Accès interdit !");
header("Location: ../accueil.php?msg=$mess");
die();
}
$id_classe=isset($_POST['id_classe']) ? $_POST['id_classe'] : (isset($_GET['id_classe']) ? $_GET['id_classe'] : NULL);
$id_groupe=isset($_POST['id_groupe']) ? $_POST['id_groupe'] : (isset($_GET['id_groupe']) ? $_GET['id_groupe'] : NULL);
$periode=isset($_POST['periode']) ? $_POST['periode'] : (isset($_GET['periode']) ? $_GET['periode'] : NULL);
$is_posted=isset($_POST['is_posted']) ? $_POST['is_posted'] : (isset($_GET['is_posted']) ? $_GET['is_posted'] : NULL);
$display_date_limite=isset($_POST['display_date_limite']) ? $_POST['display_date_limite'] : (isset($_GET['display_date_limite']) ? $_GET['display_date_limite'] : NULL);
$display_heure_limite=isset($_POST['display_heure_limite']) ? $_POST['display_heure_limite'] : (isset($_GET['display_heure_limite']) ? $_GET['display_heure_limite'] : NULL);
// Pour refermer la page plutôt que proposer un lien retour dans certains cas
$refermer_page=isset($_POST['refermer_page']) ? $_POST['refermer_page'] : (isset($_GET['refermer_page']) ? $_GET['refermer_page'] : NULL);
$msg="";
if((isset($is_posted))&&(isset($_POST['no_anti_inject_message_autorisation_exceptionnelle_bull_note']))&&($_SESSION['statut']=='administrateur')) {
check_token();
//echo "BLIP";
if (isset($NON_PROTECT["message_autorisation_exceptionnelle_bull_note"])){
$message_autorisation_exceptionnelle_bull_note= traitement_magic_quotes(corriger_caracteres($NON_PROTECT["message_autorisation_exceptionnelle_bull_note"]));
}
else{
$message_autorisation_exceptionnelle_bull_note="";
}
// Contrôle des saisies pour supprimer les sauts de lignes surnuméraires.
$message_autorisation_exceptionnelle_bull_note=suppression_sauts_de_lignes_surnumeraires($message_autorisation_exceptionnelle_bull_note);
if(!saveSetting('message_autorisation_exceptionnelle_bull_note',$message_autorisation_exceptionnelle_bull_note)) {
$msg="Erreur lors de l'enregistrement du message personnalisé.
";
}
else {
$msg="Enregistrement du message personnalisé effectué.
";
}
}
if((isset($is_posted))&&(isset($id_classe))&&(isset($id_groupe))&&(isset($periode))&&(isset($display_date_limite))&&(isset($display_heure_limite))) {
check_token();
if (preg_match("#([0-9]{2})/([0-9]{2})/([0-9]{4})#", $_POST['display_date_limite'])) {
$annee = mb_substr($_POST['display_date_limite'],6,4);
$mois = mb_substr($_POST['display_date_limite'],3,2);
$jour = mb_substr($_POST['display_date_limite'],0,2);
//echo "$jourd/$moisd/$anneed
";
if(!checkdate($mois, $jour, $annee)) {
$msg.="ERREUR : La date $jour/$mois/$annee n'est pas valide.
";
}
else {
if (preg_match("/([0-9]{1,2}):([0-9]{0,2})/", str_ireplace('h',':',$display_heure_limite))) {
$heure = mb_substr($_POST['display_heure_limite'],0,2);
$minute = mb_substr($_POST['display_heure_limite'],3,2);
if(($heure>23)||($heure<0)||($minute<0)||($minute>59)) {
$msg.="ERREUR : L'heure $heure/$minute n'est pas valide.
";
}
else {
$sql="DELETE FROM acces_exceptionnel_matieres_notes WHERE id_groupe='$id_groupe' AND periode='$periode';";
$res=mysqli_query($GLOBALS["mysqli"], $sql);
$date_limite_email="$annee/$mois/$jour à $heure:$minute";
$sql="INSERT INTO acces_exceptionnel_matieres_notes SET id_groupe='$id_groupe', periode='$periode', date_limite='$annee-$mois-$jour $heure:$minute:00';";
$res=mysqli_query($GLOBALS["mysqli"], $sql);
if(!$res) {
$msg.="ERREUR lors de l'insertion de l'enregistrement.
";
}
else {
$msg.="Enregistrement de l'autorisation effectué.
";
$complement_texte_mail="";
if(($_SESSION['statut']=='administrateur')||(($_SESSION['statut']=='scolarite')&&(getSettingAOui('PeutDonnerAccesBullAppPeriodeCloseScol')))) {
if((isset($_POST['donner_acces_modif_bull_app']))&&($_POST['donner_acces_modif_bull_app']=='y')) {
$sql="DELETE FROM matieres_app_delais WHERE id_groupe='$id_groupe' AND periode='$periode';";
$menage=mysqli_query($GLOBALS["mysqli"], $sql);
$mode=isset($_POST['mode']) ? $_POST['mode'] : "proposition";
if((isset($mode))&&(!in_array($mode, array('proposition', 'acces_complet')))) {
$mode="proposition";
$msg.="Mode de validation de la saisie d'appréciation incorrect.
On opte pour une 'proposition seule' devant être controlée/validée par la suite.
";
}
$sql="INSERT INTO matieres_app_delais SET id_groupe='$id_groupe', periode='$periode', date_limite='$annee-$mois-$jour $heure:$minute:00', mode='".$mode."';";
$res=mysqli_query($GLOBALS["mysqli"], $sql);
if(!$res) {
$msg.="ERREUR lors de l'insertion de l'enregistrement pour les appréciations des bulletins.
";
}
else {
$msg.="Enregistrement de l'autorisation pour les appréciations des bulletins effectué.
";
$complement_texte_mail="Vous pourrez aussi corriger les appreciations du bulletin.\n\n";
}
}
}
$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') {
$email_personne_autorisant="";
$nom_personne_autorisant="";
$sql="select nom, prenom, civilite, email from utilisateurs where login = '".$_SESSION['login']."';";
$req=mysqli_query($GLOBALS["mysqli"], $sql);
if(mysqli_num_rows($req)>0) {
$lig_u=mysqli_fetch_object($req);
$nom_personne_autorisant=$lig_u->civilite." ".casse_mot($lig_u->nom,'maj')." ".casse_mot($lig_u->prenom,'majf');
$email_personne_autorisant=$lig_u->email;
if(check_mail($email_personne_autorisant)) {
$tab_param_mail['cc'][]=$email_personne_autorisant;
$tab_param_mail['cc_name'][]=$nom_personne_autorisant;
$tab_param_mail['replyto']=$email_personne_autorisant;
$tab_param_mail['replyto_name']=$nom_personne_autorisant;
}
}
$email_destinataires="";
$designation_destinataires="";
// Recherche des profs du groupe
$sql="SELECT DISTINCT u.email, u.civilite, u.nom, u.prenom FROM utilisateurs u, j_groupes_professeurs jgp WHERE jgp.id_groupe='$id_groupe' AND jgp.login=u.login AND u.email!='';";
//echo "$sql
";
$req=mysqli_query($GLOBALS["mysqli"], $sql);
if(mysqli_num_rows($req)>0) {
$lig_u=mysqli_fetch_object($req);
$designation_destinataire_courant=remplace_accents($lig_u->civilite." ".$lig_u->nom." ".casse_mot($lig_u->prenom,'majf2'),'all_nospace');
$designation_destinataires.=$designation_destinataire_courant;
$email_destinataires.=$designation_destinataires." <".$lig_u->email.">";
$tab_param_mail['destinataire'][]=$lig_u->email;
$tab_param_mail['destinataire_name'][]=$designation_destinataire_courant;
while($lig_u=mysqli_fetch_object($req)) {
$designation_destinataire_courant=remplace_accents($lig_u->civilite." ".$lig_u->nom." ".casse_mot($lig_u->prenom,'majf2'),'all_nospace');
$designation_destinataires.=", ".$designation_destinataire_courant;
// Il se passe un truc bizarre avec les suivants
//$email_destinataires.=$designation_destinataires." <".$lig_u->email.">";
$email_destinataires.=", ".$lig_u->email;
$tab_param_mail['destinataire'][]=$lig_u->email;
$tab_param_mail['destinataire_name'][]=$designation_destinataire_courant;
}
$sujet_mail="[GEPI] Autorisation exceptionnelle de saisie/correction de notes de bulletins";
//$gepiPrefixeSujetMail=getSettingValue("gepiPrefixeSujetMail") ? getSettingValue("gepiPrefixeSujetMail") : "";
//if($gepiPrefixeSujetMail!='') {$gepiPrefixeSujetMail.=" ";}
$ajout_header="";
if($email_personne_autorisant!="") {
$ajout_header.="Cc: $nom_personne_autorisant <".$email_personne_autorisant.">";
$ajout_header.="\r\n";
$ajout_header.="Reply-to: $nom_personne_autorisant <".$email_personne_autorisant.">\r\n";
}
$tab_champs=array('classes');
$current_group=get_group($id_groupe,$tab_champs);
$texte_mail="Vous avez jusqu'au $date_limite_email pour saisir/corriger une ou des notes de bulletins pour l'enseignement ".$current_group['name']." (".$current_group['description']." en ".$current_group['classlist_string'].") en période $periode.\n\n";
$message_autorisation_exceptionnelle_bull_note=getSettingValue('message_autorisation_exceptionnelle_bull_note');
if($message_autorisation_exceptionnelle_bull_note=='') {
$texte_mail.="Cette autorisation est exceptionnelle.\nIl conviendra de veiller à effectuer les saisies dans les temps une prochaine fois.\n";
}
else {
$texte_mail.=$message_autorisation_exceptionnelle_bull_note."\n";
}
$texte_mail.=$complement_texte_mail;
$salutation=(date("H")>=18 OR date("H")<=5) ? "Bonsoir" : "Bonjour";
$texte_mail=$salutation." ".$designation_destinataires.",\n\n".$texte_mail."\nCordialement.\n-- \n".$nom_personne_autorisant;
$envoi = envoi_mail($sujet_mail, $texte_mail, $email_destinataires, $ajout_header, "plain", $tab_param_mail);
if($envoi) {$msg.="Email expédié à ".htmlspecialchars($email_destinataires)."
";}
}
}
}
}
}
else {
$msg = "ATTENTION : L'heure limite n'est pas valide.
L'enregistrement ne peut avoir lieu.
";
}
}
}
else {
$msg = "ATTENTION : La date limite n'est pas valide.
L'enregistrement ne peut avoir lieu.
";
}
}
$style_specifique[] = "lib/DHTMLcalendar/calendarstyle";
$javascript_specifique[] = "lib/DHTMLcalendar/calendar";
$javascript_specifique[] = "lib/DHTMLcalendar/lang/calendar-fr";
$javascript_specifique[] = "lib/DHTMLcalendar/calendar-setup";
//**************** EN-TETE *****************
$titre_page = "Autorisation exceptionnelle de saisie de notes de bulletins";
require_once("../lib/header.inc.php");
//**************** FIN EN-TETE *****************
//debug_var();
echo "
\n"; if($refermer_page=='y') { echo " Refermer la page \n"; } else { echo " Retour à l'accueil\n"; } if(($_SESSION['statut']=='administrateur')&&(isset($_GET['definir_message']))) { echo " | Autorisation exceptionnelle"; echo "
\n"; echo "Par défaut le message reçu par un professeur exceptionnellement autorisé à saisir en retard ou corriger des notes de bulletins est le suivant :
\n";
$texte_mail="Bonjour/Bonsoir\n\nVous avez jusqu'au TELLE DATE TELLE HEURE\npour saisir/corriger une ou des notes de bulletins pour l'enseignement XXXXXXXXXX\nen TELLE(S) CLASSE(S) en période NUMERO_PERIODE.\n\n";
$texte_mail.="Cette autorisation est exceptionnelle.\nIl conviendra de veiller à effectuer les saisies dans les temps une prochaine fois.\n";
$texte_mail.="\nCordialement.";
echo "
".$texte_mail."\n"; echo "
Ce message peut être partiellement personnalisé.
Vous pouvez intervenir sur la partie en gras du message.
Votre message est actuellement personnalisé de la façon suivante :"; $texte_mail="Bonjour/Bonsoir\n\nVous avez jusqu'au TELLE DATE TELLE HEURE\npour saisir/corriger une ou des notes de bulletins pour l'enseignement XXXXXXXXXX\nen TELLE(S) CLASSE(S) en période NUMERO_PERIODE.\n\n"; $texte_mail.="$message_autorisation_exceptionnelle_bull_note\n"; $texte_mail.="\nCordialement."; echo "
".$texte_mail."\n"; } else { $texte_mail.=$message_autorisation_exceptionnelle_bull_note."\n"; } echo "\n"; echo "
NOTES : Si vous définissez un nouveau délais, le texte des modifications effectuées (affiché ci-dessus) sera supprimé.
Si vous souhaitez en conserver la trace, prenez soin de copier/coller le contenu vers un bloc-notes,...