forked from tbelliard/gepi
-
Notifications
You must be signed in to change notification settings - Fork 0
/
affichage_des_messages.inc.php
executable file
·188 lines (161 loc) · 9.04 KB
/
affichage_des_messages.inc.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
<?php
//debug_var();
// suppression d'un message du panneau d'affichage
if ((isset($_POST['supprimer_message']))||(isset($_GET['supprimer_message']))) {
check_token();
if(!isset($msg)) {
$msg="";
}
$supprimer_message=isset($_POST['supprimer_message']) ? $_POST['supprimer_message'] : (isset($_GET['supprimer_message']) ? $_GET['supprimer_message'] : NULL);
if((isset($supprimer_message))&&(preg_match("/^[0-9]{1,}$/" ,$supprimer_message))) {
$r_sql="DELETE FROM `messages` WHERE id='".$supprimer_message."' AND login_destinataire='".$_SESSION['login']."'";
$resultat = mysqli_query($mysqli, $r_sql);
if(!$resultat) {
$msg.="Erreur lors de la suppression du message.<br />";
}
else {
$msg.="Message supprimé ".strftime("%d/%m/%Y à %H:%M:%S").".<br />";
}
unset($supprimer_message);
}
}
// ----- Affichage des messages -----
$today=mktime(0,0,0,date("m"),date("d"),date("Y"));
$now=time();
// on supprime les messages obsolètes
$sql="DELETE FROM `messages` WHERE ((`date_fin`+86400 <= ".$today.") && (`statuts_destinataires`='_') && (`login_destinataire`='".$_SESSION['login']."'));";
$resultat = mysqli_query($mysqli, $sql);
$sql="SELECT id, texte, date_debut, date_fin, date_decompte, auteur, statuts_destinataires, login_destinataire FROM messages
WHERE (
texte != '' and
date_debut <= '".$now."' and
date_fin >= '".$now."'
)
order by date_debut DESC, id DESC;";
$appel_messages = mysqli_query($mysqli, $sql);
$nb_messages = $appel_messages->num_rows;
$ind = 0;
$texte_messages = '';
$texte_messages_simpl_prof = ''; // variable uniquement utilisée dans accueil_simpl_prof.php
$texte_messages_resume_ele = ''; // variable uniquement utilisée dans eleves/resume_ele.php
$affiche_messages = 'no';
if($nb_messages>0) {
while ($obj = $appel_messages->fetch_object()) {
$statuts_destinataires1 = $obj->statuts_destinataires;
$login_destinataire1 = $obj->login_destinataire;
$id_message1 = $obj->id;
$autre_message = "";
if ((strpos($statuts_destinataires1, mb_substr($_SESSION['statut'], 0, 1))) || ($_SESSION['login']==$login_destinataire1)) {
if ($affiche_messages == 'yes') {
$autre_message = "hr";
//$texte_messages_simpl_prof .= "<hr />";
}
$affiche_messages = 'yes';
$content = $obj->texte;
// _DECOMPTE_
if(strstr($content, '_DECOMPTE_')) {
//$nb_sec=old_mysql_result($appel_messages, $ind, 'date_decompte')-time();
$nb_sec=$obj->date_decompte-time();
if($nb_sec>0) {
$decompte_remplace="";
} elseif($nb_sec==0) {
$decompte_remplace=" <span style='color:red'>Vous êtes à l'instant T</span> ";
} else {
$nb_sec=$nb_sec*(-1);
$decompte_remplace=" <span style='color:red'>date dépassée de</span> ";
}
$decompte_j=floor($nb_sec/(24*3600));
$decompte_h=floor(($nb_sec-$decompte_j*24*3600)/3600);
$decompte_m=floor(($nb_sec-$decompte_j*24*3600-$decompte_h*3600)/60);
if($decompte_j==1) {$decompte_remplace.=$decompte_j." jour ";}
elseif($decompte_j>1) {$decompte_remplace.=$decompte_j." jours ";}
if($decompte_h==1) {$decompte_remplace.=$decompte_h." heure ";}
elseif($decompte_h>1) {$decompte_remplace.=$decompte_h." heures ";}
if($decompte_m==1) {$decompte_remplace.=$decompte_m." minute";}
elseif($decompte_m>1) {$decompte_remplace.=$decompte_m." minutes";}
$content=preg_replace("/_DECOMPTE_/",$decompte_remplace,$content);
}
// fin _DECOMPTE_
// fin _DECOMPTE_
// gestion du token (csrf_alea)
// si elle est présente la variable _CSRF_ALEA_ est remplacée lors de l'affichage du message
// par la valeur du token de l'utilisateur, par exemple on peut ainsi inclure dans un message
// un lien appelant un script : <a href="module/script.php?id=33&csrf_alea=_CSRF_ALEA_">Vers le script</a>
$pos_crsf_alea=strpos($content,"_CSRF_ALEA_");
if($pos_crsf_alea!==false)
$content=preg_replace("/_CSRF_ALEA_/",$_SESSION['gepi_alea'],$content);
//$tbs_message[]=array("suite"=>$autre_message,"message"=>$content);
// Pour forcer le target='_blank' sur ces messages en page d'accueil
$content=preg_replace("/<a href/i","<a target='_blank' href",$content);
// dans accueil.php
if (isset($afficheAccueil) && is_object($afficheAccueil)) $afficheAccueil->message[]=array("id"=>$id_message1, "suite"=>$autre_message,"message"=>$content, "statuts_destinataires"=>$statuts_destinataires1);
// dans accueil_simpl_prof.php
$texte_messages_simpl_prof .= "<div class='postit'>".$content."</div>";
$texte_messages_resume_ele .= "<div class='postit'>".$content."</div>";
}
$ind++;
}
}
$appel_messages->close();
// pour accueil_simpl_prof.php
if (basename($_SERVER['SCRIPT_NAME'])=="accueil_simpl_prof.php") {
if($gepiVersion!="master") {
$gepiVersionConnue=getPref($_SESSION['login'], 'gepiVersionConnue', '');
if($gepiVersionConnue!=$gepiVersion) {
$message_nouvelle_version_gepi=afficher_message_nouvelle_version_gepi();
echo "<div class='postit' title=\"Votre Gepi a été mis à jour.\">".$message_nouvelle_version_gepi."</div>";
}
}
if($affiche_messages == 'yes') {
echo "<table id='messagerie' summary=\"Ce tableau contient les informations sur lesquelles on souhaite attirer l'attention\">\n";
if((isset($liste_evenements))&&($liste_evenements!="")) {
echo "<tr><td>".$liste_evenements."</td></tr>";
}
echo "<tr><td>".$texte_messages_simpl_prof;
echo "</td></tr></table>\n";
}
elseif((isset($liste_evenements))&&($liste_evenements!="")) {
echo "<table id='messagerie' summary=\"Ce tableau contient les informations sur lesquelles on souhaite attirer l'attention\">
<tr><td>".$liste_evenements."</td></tr>
</table>\n";
}
if(($_SESSION['statut']=='professeur')&&(getSettingAOui('active_mod_abs_prof'))) {
echo affiche_remplacements_confirmes($_SESSION['login']);
echo affiche_remplacements_en_attente_de_reponse($_SESSION['login']);
}
$chaine_tableaux_page_accueil="";
if(($_SESSION['statut']=='professeur')&&
(getSettingAOui('active_bulletins'))&&
((getSettingValue("acces_app_ele_resp")=="manuel")||
(getSettingValue("acces_app_ele_resp")=="manuel_individuel"))&&
(is_pp($_SESSION['login']))&&
(getPref($_SESSION['login'], "accueil_tableau_acces_app_bull_ele_resp", "y")!="n")) {
// Chemin d'ouverture à revoir...
if(getSettingAOui('GepiAccesRestrAccesAppProfP')) {
$chaine_tableaux_page_accueil.="<div align='center' style='font-size:xx-small; margin:0.5em;' title=\"Tableau de l'accès parents/élève aux appréciations et avis du conseil de classe.\n\nVous pouvez supprimer cet affichage dans 'Gérer mon compte'.\"><a href='$gepiPath/classes/acces_appreciations.php' title=\"Modifier l'accès aux appréciations et avis.\" style='color:black;'><strong>Tableau de l'accès parents/élève aux appréciations et avis du conseil de classe</strong> <img src='$gepiPath/images/edit16.png' class='icone16' alt='Modifier' /></a>";
}
else {
$chaine_tableaux_page_accueil.="<div align='center' style='font-size:xx-small; margin:0.5em;' title=\"Tableau de l'accès parents/élève aux appréciations et avis du conseil de classe.\n\nVous pouvez supprimer cet affichage dans 'Gérer mon compte'.\"><strong>Tableau de l'accès parents/élève aux appréciations et avis du conseil de classe</strong>";
}
$chaine_tableaux_page_accueil.=affiche_tableau_acces_ele_parents_appreciations_et_avis_bulletins("pp");
$chaine_tableaux_page_accueil.="</div>";
echo $chaine_tableaux_page_accueil;
}
if((getSettingAOui('active_bulletins'))&&($_SESSION['statut']=='professeur')&&(getSettingAOui('autoriser_valider_correction_app_pp'))&&(is_pp($_SESSION['login']))) {
$sql_correction_app="SELECT DISTINCT c.id, c.classe
FROM classes c,
j_eleves_classes jec,
j_eleves_professeurs jep,
matieres_app_corrections mac
WHERE c.id=jec.id_classe AND
jec.login=mac.login AND
jep.login=mac.login AND
jep.professeur='".$_SESSION['login']."' ORDER BY classe;";
//echo "$sql_correction_app<br />";
$resultat = mysqli_query($mysqli, $sql_correction_app);
if($resultat AND ($resultat->num_rows > 0)) {
echo "<div style='color:red; width:40em;' class='fieldset_opacite50'>Une ou des propositions de correction d'appréciations requièrent votre attention.<br /><a href='saisie/validation_corrections.php'>Consulter les propositions pour les accepter ou les rejeter</a></div>";
}
}
}
?>