[ Index ] |
|
Code source de SPIP 1.8.3 |
1 <?php 2 3 /***************************************************************************\ 4 * SPIP, Systeme de publication pour l'internet * 5 * * 6 * Copyright (c) 2001-2005 * 7 * Arnaud Martin, Antoine Pitrou, Philippe Riviere, Emmanuel Saint-James * 8 * * 9 * Ce programme est un logiciel libre distribue sous licence GNU/GPL. * 10 * Pour plus de details voir le fichier COPYING.txt ou l'aide en ligne. * 11 \***************************************************************************/ 12 13 14 include ("inc.php3"); 15 include_ecrire ("inc_mots.php3"); 16 include_ecrire ("inc_calendrier.php"); 17 18 function http_afficher_rendez_vous($date_heure, $date_fin) 19 { 20 global $spip_lang_rtl; 21 22 if (jour($date_heure) == jour($date_fin) AND mois($date_heure) == mois($date_fin) AND annee($date_heure) == annee($date_fin)) { 23 echo "<p><center class='verdana2'>"._T('titre_rendez_vous')." ".majuscules(nom_jour($date_heure))." <b>".majuscules(affdate($date_heure))."</b><br><b>".heures($date_heure)." "._T('date_mot_heures')." ".minutes($date_heure)."</b>"; 24 echo " <img src='puce$spip_lang_rtl.gif' border='0'> ".heures($date_fin)." "._T('date_mot_heures')." ".minutes($date_fin)."</center>"; 25 } else { 26 echo "<p><center class='verdana2'>"._T('titre_rendez_vous')."<br> ".majuscules(nom_jour($date_heure))." <b>".majuscules(affdate($date_heure))."</b>, <b>".heures($date_heure)." "._T('date_mot_heures')." ".minutes($date_heure)."</b>"; 27 echo "<center class='verdana2'><img src='puce$spip_lang_rtl.gif' border='0'> ".majuscules(nom_jour($date_fin))." ".majuscules(affdate($date_fin)).", <b>".heures($date_fin)." "._T('date_mot_heures')." ".minutes($date_fin)."</b>"; 28 //echo " <img src='puce$spip_lang_rtl.gif' border='0'> ".heures($date_fin)." "._T('date_mot_heures')." ".minutes($date_fin)."</center>"; 29 } 30 } 31 32 function sql_nouveau_participant($nouv_auteur, $id_message) 33 { 34 spip_query("DELETE FROM spip_auteurs_messages WHERE id_auteur='$nouv_auteur' AND id_message='$id_message'"); 35 spip_query("INSERT INTO spip_auteurs_messages (id_auteur,id_message,vu) VALUES ('$nouv_auteur','$id_message','non')"); 36 } 37 38 function http_auteurs_ressemblants($cherche_auteur, $id_message) 39 { 40 global $connect_id_auteur; 41 $query = spip_query(" 42 SELECT id_auteur, nom 43 FROM spip_auteurs 44 WHERE messagerie<>'non' AND id_auteur<>'$connect_id_auteur' AND pass<>'' AND login<>''"); 45 $table_auteurs = array(); 46 $table_ids = array(); 47 while ($row = spip_fetch_array($query)) { 48 $table_auteurs[] = $row['nom']; 49 $table_ids[] = $row['id_auteur']; 50 } 51 $resultat = mots_ressemblants($cherche_auteur, $table_auteurs, $table_ids); 52 if (!$resultat) { 53 return '<b>' . _T('info_recherche_auteur_zero', array('cherche_auteur' => $cherche_auteur))."</b><br />"; 54 } 55 else if (count($resultat) == 1) { 56 list(, $nouv_auteur) = each($resultat); 57 sql_nouveau_participant($nouv_auteur, $id_message); 58 $row = spip_fetch_array(spip_query("SELECT nom FROM spip_auteurs WHERE id_auteur=$nouv_auteur")); 59 $nom_auteur = $row['nom']; 60 return "<b>"._T('info_ajout_participant')."</b><br />" . 61 "<ul><li><font face='Verdana,Arial,Sans,sans-serif' size='2'><b><font size='3'>$nom_auteur</font></b></font>\n</ul>"; 62 } 63 else if (count($resultat) < 16) { 64 $res = ''; 65 $query = spip_query("SELECT * FROM spip_auteurs WHERE id_auteur IN (" . 66 join(',', $resultat) . 67 ") ORDER BY nom"); 68 while ($row = spip_fetch_array($query)) { 69 $id_auteur = $row['id_auteur']; 70 $nom_auteur = $row['nom']; 71 $email_auteur = $row['email']; 72 $bio_auteur = $row['bio']; 73 $res .= "<LI><FONT FACE='Verdana,Arial,Sans,sans-serif' SIZE=2><b><FONT SIZE=3>$nom_auteur</FONT></b>" . 74 ($email_auteur ? " ($email_auteur)" : '') . 75 " | <A HREF=\"message.php3?id_message=$id_message&ajout_auteur=oui&nouv_auteur=$id_auteur\">" . 76 _T('lien_ajout_destinataire'). 77 "</A>" . 78 (!trim($bio_auteur) ? '' : 79 ("<br /><FONT SIZE=1>".propre(couper($bio_auteur, 100))."</FONT>\n")) . 80 "</FONT></LI>\n"; 81 } 82 return "<b>"._T('info_recherche_auteur_ok', array('cherche_auteur' => $cherche_auteur))."</b><br /><UL>$res</UL>"; 83 } 84 else { 85 return "<b>"._T('info_recherche_auteur_a_affiner', array('cherche_auteur' => $cherche_auteur))."</b><br />"; 86 } 87 } 88 89 function http_visualiser_participants($auteurs_tmp) 90 { 91 return "\n<table border='0' cellspacing='0' cellpadding='3' width='100%' background=''><tr><td bgcolor='#EEEECC'>" . 92 bouton_block_invisible("auteurs,ajouter_auteur") . 93 "<span class='serif2'><b>" . 94 _T('info_nombre_partcipants') . 95 "</b></span>" . 96 ((count($auteurs_tmp) == 0) ? '' : 97 (" <font class='arial2'>".join($auteurs_tmp,", ")."</font>")) . 98 "</td></tr></table>"; 99 } 100 101 function http_ajouter_participants($ze_auteurs, $id_message) 102 { 103 $query_ajout_auteurs = "SELECT * FROM spip_auteurs WHERE "; 104 if ($ze_auteurs) $query_ajout_auteurs .= "id_auteur NOT IN ($ze_auteurs) AND "; 105 $query_ajout_auteurs .= " messagerie<>'non' AND statut IN ('0minirezo', '1comite') ORDER BY statut, nom"; 106 $result_ajout_auteurs = spip_query($query_ajout_auteurs); 107 108 if (spip_num_rows($result_ajout_auteurs) > 0) { 109 110 echo "<FORM ACTION='message.php3' METHOD='post'>"; 111 echo "<DIV align=left><FONT FACE='Verdana,Arial,Sans,sans-serif' SIZE=2><b>"._T('bouton_ajouter_participant')." </b></FONT>\n"; 112 echo "<input TYPE='Hidden' NAME='id_message' VALUE=\"$id_message\">"; 113 114 if (spip_num_rows($result_ajout_auteurs) > 50) { 115 echo "<input TYPE='text' NAME='cherche_auteur' CLASS='fondl' VALUE='' SIZE='20'>"; 116 echo "<input TYPE='submit' NAME='Chercher' VALUE='"._T('bouton_chercher')."' CLASS='fondo'>"; 117 } 118 else { 119 echo "<SELECT NAME='nouv_auteur' SIZE='1' STYLE='WIDTH=150' CLASS='fondl'>"; 120 $group = false; 121 $group2 = false; 122 123 while($row=spip_fetch_array($result_ajout_auteurs)) { 124 $id_auteur = $row['id_auteur']; 125 $nom = $row['nom']; 126 $email = $row['email']; 127 $statut_auteur = $row['statut']; 128 129 $statut_auteur=ereg_replace("0minirezo", _T('info_statut_administrateur'), $statut_auteur); 130 $statut_auteur=ereg_replace("1comite", _T('info_statut_redacteur'), $statut_auteur); 131 $statut_auteur=ereg_replace("2redac", _T('info_statut_redacteur'), $statut_auteur); 132 $statut_auteur=ereg_replace("5poubelle", _T('info_statut_efface'), $statut_auteur); 133 134 $premiere = strtoupper(substr(trim($nom), 0, 1)); 135 136 if ($GLOBALS['connect_statut'] != '0minirezo') { 137 if ($p = strpos($email, '@')) $email = substr($email, 0, $p).'@...'; 138 } 139 140 if ($statut_auteur != $statut_old) { 141 echo "\n<OPTION VALUE=\"x\">"; 142 echo "\n<OPTION VALUE=\"x\"> $statut_auteur".'s'; 143 } 144 145 if ($premiere != $premiere_old AND ($statut_auteur != _T('info_administrateur') OR !$premiere_old)) { 146 echo "\n<OPTION VALUE=\"x\">"; 147 } 148 149 $texte_option = supprimer_tags(couper("$nom ($email) ", 40)); 150 echo "\n<OPTION VALUE=\"$id_auteur\"> $texte_option"; 151 $statut_old = $statut_auteur; 152 $premiere_old = $premiere; 153 } 154 155 echo "</SELECT>"; 156 echo "<input TYPE='submit' NAME='Ajouter' VALUE='"._T('bouton_ajouter')."' CLASS='fondo'>"; 157 } 158 echo "</div></FORM>"; 159 } 160 } 161 162 function http_afficher_forum_perso($id_message, $titre) 163 { 164 $forum_retour = urlencode("message.php3?id_message=$id_message"); 165 166 echo "<br /><br />\n<div align='center'>"; 167 icone(_T('icone_poster_message'), "forum_envoi.php3?statut=perso&adresse_retour=".$forum_retour."&id_message=$id_message&titre_message=".urlencode($titre), "forum-interne-24.gif", "creer.gif"); 168 echo "</div>\n<p align='left'>"; 169 170 $query_forum = "SELECT * FROM spip_forum WHERE statut='perso' AND id_message='$id_message' AND id_parent=0 ORDER BY date_heure DESC LIMIT 0,20"; 171 afficher_forum(spip_query($query_forum), $forum_retour); 172 echo "\n</p>"; 173 } 174 175 176 177 if (!spip_num_rows(spip_query(" 178 SELECT id_auteur FROM spip_auteurs_messages WHERE id_auteur=$connect_id_auteur AND id_message=$id_message"))) { 179 180 $row = spip_fetch_array(spip_query("SELECT type FROM spip_messages WHERE id_message=$id_message")); 181 if ($row['type'] != "affich"){ 182 debut_page(_T('info_acces_refuse')); 183 debut_gauche(); 184 debut_droite(); 185 echo "<b>"._T('avis_non_acces_message')."</b><p>"; 186 fin_page(); 187 exit; 188 } 189 } 190 191 if ($ajout_forum AND strlen($texte) > 10 AND strlen($titre) > 2) { 192 spip_query("UPDATE spip_auteurs_messages SET vu='non' WHERE id_message='$id_message'"); 193 } 194 195 if ($modifier_message == "oui") { 196 $titre = addslashes($titre); 197 $texte = addslashes($texte); 198 spip_query("UPDATE spip_messages SET titre='$titre', texte='$texte' WHERE id_message='$id_message'"); 199 } 200 201 if ($changer_rv) { 202 spip_query("UPDATE spip_messages SET rv='$rv' WHERE id_message='$id_message'"); 203 } 204 205 if ($jour) { 206 // Convertir dates a calendrier correct (exemple: 31 fevrier devient debut mars, 24h12 devient 00h12 du lendemain) 207 $date = date("Y-m-d H:i:s", mktime($heures,$minutes,0,$mois, $jour, $annee)); 208 209 $jour = journum($date); 210 $mois = mois($date); 211 $annee = annee($date); 212 $heures = heures($date); 213 $minutes = minutes($date); 214 215 // Verifier que la date de fin est bien posterieure au debut 216 $unix_debut = date("U", mktime($heures,$minutes,0,$mois, $jour, $annee)); 217 $unix_fin = date("U", mktime($heures_fin,$minutes_fin,0,$mois_fin, $jour_fin, $annee_fin)); 218 if ($unix_fin <= $unix_debut) { 219 $jour_fin = $jour; 220 $mois_fin = $mois; 221 $annee_fin = $annee; 222 $heures_fin = $heures + 1; 223 $minutes_fin = $minutes; 224 } 225 226 $date_fin = date("Y-m-d H:i:s", mktime($heures_fin,$minutes_fin,0,$mois_fin, $jour_fin, $annee_fin)); 227 228 $jour_fin = journum($date_fin); 229 $mois_fin = mois($date_fin); 230 $annee_fin = annee($date_fin); 231 $heures_fin = heures($date_fin); 232 $minutes_fin = minutes($date_fin); 233 234 235 spip_query("UPDATE spip_messages SET date_heure='$annee-$mois-$jour $heures:$minutes:00', date_fin='$annee_fin-$mois_fin-$jour_fin $heures_fin:$minutes_fin:00' WHERE id_message='$id_message'"); 236 } 237 238 if ($change_statut) { 239 spip_query("UPDATE spip_messages SET statut='$change_statut' WHERE id_message='$id_message'"); 240 spip_query("UPDATE spip_messages SET date_heure=NOW() WHERE id_message='$id_message' AND rv<>'oui'"); 241 } 242 243 if ($supp_dest) { 244 spip_query("DELETE FROM spip_auteurs_messages WHERE id_message='$id_message' AND id_auteur='$supp_dest'"); 245 } 246 247 if ($row = spip_fetch_array(spip_query("SELECT * FROM spip_messages WHERE id_message=$id_message"))) { 248 $id_message = $row['id_message']; 249 $date_heure = $row["date_heure"]; 250 $date_fin = $row["date_fin"]; 251 $titre = typo($row["titre"]); 252 $texte = propre($row["texte"]); 253 $type = $row["type"]; 254 $statut = $row["statut"]; 255 $page = $row["page"]; 256 $rv = $row["rv"]; 257 $expediteur = $row['id_auteur']; 258 259 $lejour=journum($row['date_heure']); 260 $lemois = mois($row['date_heure']); 261 $lannee = annee($row['date_heure']); 262 263 264 // Marquer le message vu pour le visiteur 265 if ($type != "affich") 266 spip_query("UPDATE spip_auteurs_messages SET vu='oui' WHERE id_message='$id_message' AND id_auteur='$connect_id_auteur'"); 267 268 debut_page($titre, "redacteurs", "messagerie"); 269 270 debut_gauche(); 271 272 if ($rv != 'non') 273 echo http_calendrier_agenda ($lannee, $lemois, $lejour, $lemois, $lannee,false, 'calendrier.php3'); 274 275 echo "<br />"; 276 277 echo http_calendrier_rv(sql_calendrier_taches_annonces(),"annonces"); 278 echo http_calendrier_rv(sql_calendrier_taches_pb(),"pb"); 279 echo http_calendrier_rv(sql_calendrier_taches_rv(), "rv"); 280 281 if ($rv != "non") { 282 list ($sh, $ah) = sql_calendrier_interval(sql_calendrier_jour($lannee,$lemois, $lejour)); 283 foreach ($ah as $k => $v) 284 { 285 foreach ($v as $l => $e) 286 { 287 if (ereg("=$id_message$", $e['URL'])) 288 { 289 $ah[$k][$l]['CATEGORIES'] = "calendrier-nb"; 290 break; 291 } 292 } 293 } 294 creer_colonne_droite(); 295 echo http_calendrier_ics_titre($lannee,$lemois,$lejour,'calendrier.php3'); 296 echo http_calendrier_ics($lannee,$lemois, $lejour, $echelle, $partie_cal, 90, array($sh, $ah)); 297 } 298 debut_droite(); 299 300 if ($type == 'normal') { 301 $le_type = _T('info_message_2').aide ("messut"); 302 $la_couleur = "#02531B"; 303 $couleur_fond = "#CFFEDE"; 304 } 305 else if ($type == 'pb') { 306 $le_type = _T('info_pense_bete').aide ("messpense"); 307 $la_couleur = "#3874B0"; 308 $couleur_fond = "#EDF3FE"; 309 } 310 else if ($type == 'affich') { 311 $le_type = _T('info_annonce'); 312 $la_couleur = "#ccaa00"; 313 $couleur_fond = "#ffffee"; 314 } 315 316 // affichage des caracteristiques du message 317 318 echo "<div style='border: 1px solid $la_couleur; background-color: $couleur_fond; padding: 5px;'>"; // debut cadre de couleur 319 //debut_cadre_relief("messagerie-24.gif"); 320 echo "\n<table width='100%' cellpadding='0' cellspacing='0' border='0'>"; 321 echo "<tr><td>"; # uniques 322 323 echo "<font face='Verdana,Arial,Sans,sans-serif' size='2' color='$la_couleur'><b>$le_type</b></font><br />"; 324 echo "<font face='Verdana,Arial,Sans,sans-serif' size='5'><b>$titre</b></font>"; 325 if ($statut == 'redac') { 326 echo "<br /><font face='Verdana,Arial,Sans,sans-serif' size='2' color='red'><b>"._T('info_redaction_en_cours')."</b></font>"; 327 } 328 else if ($rv == 'non') { 329 echo "<br /><font face='Verdana,Arial,Sans,sans-serif' size='2' color='#666666'><b>".nom_jour($date_heure).' '.affdate_heure($date_heure)."</b></font>"; 330 } 331 echo "<p>"; 332 333 334 ////////////////////////////////////////////////////// 335 // Message avec participants 336 // 337 338 if ($type == 'normal') { 339 echo debut_cadre_enfonce("redacteurs-24.gif", true); 340 341 if ($cherche_auteur) { 342 echo "\n<p align='left'><div class='cadre-info'>" . 343 http_auteurs_ressemblants($cherche_auteur , $id_message) . 344 "\n</div></p>"; 345 } 346 347 if ($nouv_auteur > 0) sql_nouveau_participant($nouv_auteur, $id_message); 348 349 // 350 // Liste des participants 351 // 352 353 $query_auteurs = "SELECT auteurs.* FROM spip_auteurs AS auteurs, spip_auteurs_messages AS lien WHERE lien.id_message=$id_message AND lien.id_auteur=auteurs.id_auteur"; 354 $result_auteurs = spip_query($query_auteurs); 355 356 $total_dest = spip_num_rows($result_auteurs); 357 358 if ($total_dest > 0) { 359 $couleurs = array("#FFFFFF",$couleur_claire); 360 $auteurs_tmp = array(); 361 $ze_auteurs = array(); 362 $ifond = 0; 363 $res = ''; 364 while($row = spip_fetch_array($result_auteurs)) { 365 $id_auteur = $row["id_auteur"]; 366 $nom_auteur = typo($row["nom"]); 367 $statut_auteur = $row["statut"]; 368 $ze_auteurs[] = $id_auteur; 369 370 $couleur = $couleurs[$ifond]; 371 $ifond = 1 - $ifond; 372 373 $auteurs_tmp[] = "<a href='auteurs_edit.php3?id_auteur=" . $id_auteur ."'>". $nom_auteur . "</a>"; 374 375 $res .= "<tr><td background='' bgcolor='$couleur'><font face='Verdana,Arial,Sans,sans-serif' size=2> ". 376 bonhomme_statut($row)." " . 377 (($id_auteur != $expediteur) ? '' : 378 "<font class='arial0'>". 379 _T('info_auteur_message') 380 ."</font> ") . 381 $nom_auteur . 382 "</font></td>" . 383 "<td background='' bgcolor='$couleur' align='right'><font face='Verdana,Arial,Sans,sans-serif' size='1'>" . 384 (($id_auteur == $connect_id_auteur) ? 385 " " : 386 ("[<a href='message.php3?id_message=$id_message&supp_dest=$id_auteur'>"._T('lien_retrait_particpant')."</a>]")) . 387 "</font></td></tr>\n"; 388 } 389 echo 390 http_visualiser_participants($auteurs_tmp), 391 debut_block_invisible("auteurs"), 392 "\n<table border=0 cellspacing=0 cellpadding=3 width=100% background=''><tr><td bgcolor='#eeeecc' colspan=2>", 393 $res, 394 "</td></tr></table>", 395 fin_block(); 396 } 397 398 if ($statut == 'redac' OR $forcer_dest) 399 http_ajouter_participants(join(',', $ze_auteurs), 400 $id_message); 401 else { 402 echo 403 debut_block_invisible("ajouter_auteur"), 404 "<br /><div align='right'><font face='Verdana,Arial,Sans,sans-serif' size='2'><a href='message.php3?id_message=$id_message&forcer_dest=oui'>"._T('lien_ajouter_participant')."</a></font></div>", 405 fin_block(); 406 } 407 fin_cadre_enfonce(); 408 } 409 410 if ($rv != "non") http_afficher_rendez_vous($date_heure, $date_fin); 411 412 413 ////////////////////////////////////////////////////// 414 // Le message lui-meme 415 // 416 417 echo "<div align='left'>", 418 "\n<table width='100%' cellpadding='0' cellspacing='0' border='0'>", 419 "<tr><td>", 420 "<div class='serif'><p>$texte</p></div>"; 421 422 if ($expediteur == $connect_id_auteur AND $statut == 'redac') { 423 if ($type == 'normal' AND $total_dest < 2){ 424 echo "<p align='right'><font face='Verdana,Arial,Sans,sans-serif' size='2' color='#666666'><b>"._T('avis_destinataire_obligatoire')."</b></font></p>"; 425 } else { 426 echo "\n<p><center><table><tr><td>"; 427 icone (_T('icone_envoyer_message'), ("message.php3?id_message=$id_message&change_statut=publie"), "messagerie-24.gif", "creer.gif"); 428 echo "</td></tr></table></center></p>"; 429 } 430 } 431 echo "</td></tr></table></div>"; 432 433 echo "</td></tr></table>"; //fin_cadre_relief(); 434 echo "</div>"; // fin du cadre de couleur 435 436 // Les boutons 437 438 echo "\n<table width='100%'><tr><td>"; 439 440 // bouton de suppression 441 442 if ($expediteur == $connect_id_auteur AND ($statut == 'redac' OR $type == 'pb') OR ($type == 'affich' AND $connect_statut == '0minirezo')) { 443 echo "\n<table align='left'><tr><td>"; 444 icone (_T('icone_supprimer_message'), ("messagerie.php3?detruire_message=$id_message"), "messagerie-24.gif", "supprimer.gif"); 445 echo "</td></tr></table>"; 446 } 447 448 // bouton retrait de la discussion 449 450 if ($statut == 'publie' AND $type == 'normal') { 451 echo "\n<table align='left'><tr><td>"; 452 icone (_T('icone_arret_discussion'), "messagerie.php3?id_message=$id_message&supp_dest=$connect_id_auteur", "messagerie-24.gif", "supprimer.gif"); 453 echo "</td></tr></table>"; 454 } 455 456 // bouton modifier ce message 457 458 if ($expediteur == $connect_id_auteur OR ($type == 'affich' AND $connect_statut == '0minirezo')) { 459 echo "\n<table align='right'><tr><td>"; 460 icone (_T('icone_modifier_message'), ("message_edit.php3?id_message=$id_message"), "messagerie-24.gif", "edit.gif"); 461 echo "</td></tr></table>"; 462 } 463 echo "</td></tr></table>"; 464 465 // reponses et bouton poster message 466 467 http_afficher_forum_perso($id_message, $titre); 468 } 469 470 fin_page(); 471 472 ?>
titre
Description
Corps
titre
Description
Corps
titre
Description
Corps
titre
Corps
Généré le : Thu Feb 22 22:27:47 2007 | par Balluche grâce à PHPXref 0.7 |