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_app.php', 'V', 'F', 'F', 'V', 'F', 'F', 'F', 'F', 'Autorisation exceptionnelle de saisie d appréciation', ''); // maj : $tab_req[] = "INSERT INTO droits VALUES ( '/bulletin/autorisation_exceptionnelle_saisie_app.php', 'V', 'F', 'F', 'V', 'F', 'F', 'F', 'F', 'Autorisation exceptionnelle de saisie d appréciation', '');;"; if (!checkAccess()) { header("Location: ../logout.php?auto=1"); die(); } if(($_SESSION['statut']=='scolarite')&&(!getSettingAOui('PeutDonnerAccesBullAppPeriodeCloseScol'))) { $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); $mode=isset($_POST['mode']) ? $_POST['mode'] : (isset($_GET['mode']) ? $_GET['mode'] : 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($mode))&&(!in_array($mode, array('proposition', 'acces_complet')))) { $msg.="Mode invalide.
"; unset($mode); } if((isset($is_posted))&&(isset($_POST['no_anti_inject_message_autorisation_exceptionnelle']))&&($_SESSION['statut']=='administrateur')) { check_token(); //echo "BLIP"; if (isset($NON_PROTECT["message_autorisation_exceptionnelle"])){ $message_autorisation_exceptionnelle= traitement_magic_quotes(corriger_caracteres($NON_PROTECT["message_autorisation_exceptionnelle"])); } else{ $message_autorisation_exceptionnelle=""; } // Contrôle des saisies pour supprimer les sauts de lignes surnuméraires. //$message_autorisation_exceptionnelle=my_ereg_replace('(\\\r\\\n)+',"\r\n",$message_autorisation_exceptionnelle); $message_autorisation_exceptionnelle=suppression_sauts_de_lignes_surnumeraires($message_autorisation_exceptionnelle); if(!saveSetting('message_autorisation_exceptionnelle',$message_autorisation_exceptionnelle)) { $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 matieres_app_delais 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 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.
"; } else { $msg.="Enregistrement de l'autorisation effectué.
"; $complement_texte_mail=""; if(($_SESSION['statut']=='administrateur')||(($_SESSION['statut']=='scolarite')&&(getSettingAOui('PeutDonnerAccesBullNotePeriodeCloseScol')))) { if((isset($_POST['donner_acces_modif_bull_note']))&&($_POST['donner_acces_modif_bull_note']=='y')) { $sql="DELETE FROM acces_exceptionnel_matieres_notes WHERE id_groupe='$id_groupe' AND periode='$periode';"; $menage=mysqli_query($GLOBALS["mysqli"], $sql); $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 pour les notes des bulletins.
"; } else { $msg.="Enregistrement de l'autorisation pour les notes des bulletins effectué.
"; $complement_texte_mail="Vous pourrez aussi corriger les moyennes 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; $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 d'appréciation"; //$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 appréciations pour l'enseignement ".$current_group['name']." (".$current_group['description']." en ".$current_group['classlist_string'].") en période $periode.\n\nCette autorisation est exceptionnelle.\nIl conviendra de veiller à effectuer les saisies dans les temps une prochaine fois.\n"; $texte_mail="Vous avez jusqu'au $date_limite_email pour saisir/corriger une ou des appréciations pour l'enseignement ".$current_group['name']." (".$current_group['description']." en ".$current_group['classlist_string'].") en période $periode.\n\n"; $message_autorisation_exceptionnelle=getSettingValue('message_autorisation_exceptionnelle'); if($message_autorisation_exceptionnelle=='') { $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."\n"; } $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 d'appréciations"; require_once("../lib/header.inc.php"); //**************** FIN EN-TETE ***************** //debug_var(); echo "

\n"; if($refermer_page=='y') { echo "Retour Refermer la page \n"; } else { echo "Retour Retour à l'accueil\n"; } if(($_SESSION['statut']=='administrateur')&&(isset($_GET['definir_message']))) { echo " | Autorisation exceptionnelle"; echo "

\n"; echo "

Autoriser la modification d'appréciations des bulletins

"; echo "

Par défaut le message reçu par un professeur exceptionnellement autorisé à saisir en retard ou corriger ses notes/appréciations est le suivant :
\n"; $texte_mail="Bonjour/Bonsoir\n\nVous avez jusqu'au TELLE DATE TELLE HEURE\npour saisir/corriger une ou des appréciations 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.

\n"; $message_autorisation_exceptionnelle=getSettingValue('message_autorisation_exceptionnelle'); if($message_autorisation_exceptionnelle!='') { echo "

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 appréciations pour l'enseignement XXXXXXXXXX\nen TELLE(S) CLASSE(S) en période NUMERO_PERIODE.\n\n"; $texte_mail.="$message_autorisation_exceptionnelle\n"; $texte_mail.="\nCordialement."; echo "

".$texte_mail."
\n"; } else { $texte_mail.=$message_autorisation_exceptionnelle."\n"; } echo "
\n"; echo "

Message personnalisé :
\n"; echo "\n"; echo "
\n"; echo add_token_field(); echo "\n"; echo "\n"; echo "

\n"; echo "


\n"; require("../lib/footer.inc.php"); die(); } if(!isset($id_classe)) { if($_SESSION['statut']=='administrateur') { echo " | Définir le message"; } echo " | Autoriser la modification de moyennes des bulletins\n"; echo "

\n"; echo "

Autoriser la modification d'appréciations des bulletins

"; //echo "
\n"; // On adapte la liste des classes selon le visiteur if($_SESSION['statut']=='scolarite') { $sql="SELECT DISTINCT c.id,c.classe FROM classes c, j_scol_classes jsc WHERE jsc.id_classe=c.id AND jsc.login='".$_SESSION['login']."' ORDER BY classe"; } elseif($_SESSION['statut']=='administrateur') { $sql="SELECT DISTINCT c.id,c.classe FROM classes c ORDER BY c.classe"; } else { // On ne doit pas arriver là echo "

Statut non autorisé.

"; require("../lib/footer.inc.php"); die(); } $res_clas=mysqli_query($GLOBALS["mysqli"], $sql); if(mysqli_num_rows($res_clas)>0) { echo "

Choisir une classe :

\n"; $tab_txt=array(); $tab_lien=array(); while($lig_clas=mysqli_fetch_object($res_clas)) { $tab_txt[]=$lig_clas->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.""; } else { $tab_lien[]=$_SERVER['PHP_SELF']."?id_classe=".$lig_clas->id; } } echo "
\n"; tab_liste($tab_txt,$tab_lien,4); echo "
\n"; } } elseif((!isset($id_groupe))||(!isset($periode))) { echo " | Choisir une autre classe\n"; echo " | Autoriser la modification de moyennes des bulletins\n"; echo "

\n"; echo "

Autoriser la modification d'appréciations des bulletins

"; echo "

Pour quel enseignement souhaitez-vous autoriser un enseignant à proposer des saisies/corrections d'appréciations?

\n"; $groups=get_groups_for_class($id_classe,"","n"); include("../lib/periodes.inc.php"); $date_courante=time(); $alt=1; echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; foreach($groups as $current_group) { $alt=$alt*(-1); echo "\n"; echo "\n"; echo "\n"; echo "\n"; for($i=1;$i<$nb_periode;$i++) { if($ver_periode[$i]=='P') { //echo "\n"; echo "\n"; } elseif($ver_periode[$i]=='O') { echo "\n"; } else { echo "\n"; } } echo "\n"; } echo "
EnseignementsClasse(s)EnseignantsPériodes
".$current_group['name']." (".$current_group['description'].")".$current_group["classlist_string"]."\n"; $sql="SELECT u.login, u.nom, u.prenom, u.civilite FROM utilisateurs u, j_groupes_professeurs j WHERE (u.login = j.login and j.id_groupe = '" . $current_group['id'] . "') ORDER BY u.nom, u.prenom"; $get_profs=mysqli_query($GLOBALS["mysqli"], $sql); $nb = mysqli_num_rows($get_profs); for ($i=0;$i<$nb;$i++){ if($i>0) {echo ",
\n";} $p_login = old_mysql_result($get_profs, $i, "login"); $p_nom = old_mysql_result($get_profs, $i, "nom"); $p_prenom = old_mysql_result($get_profs, $i, "prenom"); $civilite = old_mysql_result($get_profs, $i, "civilite"); echo "$civilite $p_nom $p_prenom"; } echo "
\n"; echo "Période $i\n"; $sql="SELECT UNIX_TIMESTAMP(date_limite) AS date_limite FROM matieres_app_delais WHERE id_groupe='".$current_group['id']."' AND periode='$i';"; $res=mysqli_query($GLOBALS["mysqli"], $sql); if(mysqli_num_rows($res)>0) { $lig=mysqli_fetch_object($res); if($lig->date_limite>$date_courante) { echo "
"; echo "Autorisation jusqu'au
".strftime("%d/%m/%Y à %H:%M",$lig->date_limite); } } echo "
Période $i closePériode $i ouverte en saisie
\n"; } else { echo " | Choisir une autre classe\n"; echo " | Choisir un autre enseignement de la classe\n"; echo " | Autoriser la modification de moyennes des bulletins\n"; echo "

\n"; echo "

Autoriser la modification d'appréciations des bulletins

"; //if(!isset($is_posted)) { echo "\n"; echo add_token_field(); $group=get_group($id_groupe); echo "

Vous souhaitez autoriser exceptionnellement un enseignant à proposer des saisies/corrections d'appréciations pour l'enseignement ".$group['name']." (".$group['description']." en ".$group['classlist_string'].") en période $periode.

\n"; $sql="SELECT UNIX_TIMESTAMP(date_limite) AS date_limite FROM matieres_app_delais WHERE id_groupe='".$group['id']."' AND periode='$periode';"; $res=mysqli_query($GLOBALS["mysqli"], $sql); if(mysqli_num_rows($res)>0) { $lig=mysqli_fetch_object($res); $date_limite=$lig->date_limite; $date_courante=time(); //$tab_date_limite=get_date($date_limite); echo "

Une autorisation exceptionnelle de proposition de saisie existe pour cet enseignement/période : ".strftime("%d/%m/%Y à %H:%M",$date_limite)."

\n"; $display_date_limite=strftime("%d/%m/%Y",$date_limite); $display_heure_limite=strftime("%H:%M",$date_limite); if($date_courante>$date_limite) { echo "

Le délais imparti pour la proposition de saisie/correction est dépassé.

\n"; } } else { $annee = strftime("%Y"); $mois = strftime("%m"); $jour = strftime("%d"); $display_date_limite=$jour."/".$mois."/".$annee; $date_courante=getdate(); $heure_courante=$date_courante['hours']; $minute_courante=$date_courante['minutes']; if($minute_courante+15>=60) { if($heure_courante+1>=24) { $heure_limite=$heure_courante+1-24; $minute_limite=$minute_courante+15-60; // A charge au couche-tard d'augmenter d'un jour... } else { $heure_limite=$heure_courante+1; $minute_limite=$minute_courante+15-60; } } else { $heure_limite=$heure_courante; $minute_limite=$minute_courante+15; } $display_heure_limite="$heure_limite:$minute_limite"; } echo "

Quelle doit être la date/heure limite de cette autorisation de proposition d'appréciation ?
\n"; //include("../lib/calendrier/calendrier.class.php"); //$cal = new Calendrier("formulaire", "display_date_limite"); if(isset($refermer_page)) { echo "\n"; } echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; //echo "get_strPopup('../lib/calendrier/pop.calendrier.php', 350, 170)."\">\"Calendrier\"\n"; echo img_calendrier_js("display_date_limite", "img_bouton_display_date_limite"); echo " à \n"; echo "
"; echo "\n"; echo "
"; if(getSettingAOui('autoriser_correction_bulletin')) { echo "Ce premier mode ne présente pas d'intérêt ici puisque vous avez donné globalement le droit (en administrateur dans Gestion générale/Droits d'accès) de proposer des corrections tant que la période n'est pas complètement close.
Seul le mode ci-dessous apporte quelque chose dans votre configuration.
"; } echo "\n"; echo "
"; if(($_SESSION['statut']=='administrateur')||(($_SESSION['statut']=='scolarite')&&(getSettingAOui('PeutDonnerAccesBullNotePeriodeCloseScol')))) { echo "
\n"; echo ""; echo "
\n"; } echo "\n"; echo "

\n"; // Mail echo "
\n"; echo "

NOTE : Par défaut, lorsque vous donnez un accès exceptionnel, c'est juste la possibilité pour le professeur de proposer des corrections en cliquant sur l'icone Modifier dans sa page de saisie d'appréciations.
Les propositions formulées peuvent ensuite être contrôlées et validées par un compte scolarité ou administrateur.
Vous pouvez, en cochant, la case ci-dessus

"; /* } else { // Si le mail n'a pas pu être envoyé, proposer un lien mailto $message="Vous avez jusqu'au $date_limite_email pour saisir/corriger une ou des appréciations pour l'enseignement ".$current_group['name']." ($current_group['description']) en période $periode.\n\nCette autorisation est exceptionnelle.\nIl conviendra de veiller à effectuer les saisies dans les temps une prochaine fois.\n"; echo "\n"; echo "\n"; if($tab_alerte_prof[$login_prof]['email']!="") { $sujet_mail="[Gepi]: Appreciations et/ou moyennes manquantes"; echo "".$info_prof.""; } */ } echo "


\n"; require("../lib/footer.inc.php"); ?>