[ Index ] |
|
Code source de SPIP 1.9.2c |
1 <?php 2 3 /***************************************************************************\ 4 * SPIP, Systeme de publication pour l'internet * 5 * * 6 * Copyright (c) 2001-2007 * 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 if (!defined("_ECRIRE_INC_VERSION")) return; 14 15 include_spip('inc/presentation'); 16 include_spip('base/abstract_sql'); 17 include_spip('inc/mots'); 18 19 // http://doc.spip.org/@exec_message_dist 20 function exec_message_dist() 21 { 22 global $cherche_auteur, $connect_id_auteur,$forcer_dest,$id_message; 23 24 $id_message = intval($id_message); 25 charger_generer_url(); 26 27 $row = spip_fetch_array(spip_query("SELECT type FROM spip_messages WHERE id_message=$id_message")); 28 29 if ($row['type'] != "affich"){ 30 $res = spip_fetch_array(spip_query("SELECT vu FROM spip_auteurs_messages WHERE id_auteur=$connect_id_auteur AND id_message=$id_message")); 31 if (!$res) { 32 $commencer_page = charger_fonction('commencer_page', 'inc'); 33 echo $commencer_page(_T('info_acces_refuse')); 34 debut_gauche(); 35 debut_droite(); 36 echo "<b>"._T('avis_non_acces_message')."</b><p>"; 37 echo fin_gauche(), fin_page(); 38 exit; 39 } 40 // Marquer le message vu pour le visiteur 41 if ($res['vu'] != 'oui') { 42 include_spip('inc/headers'); 43 redirige_par_entete(redirige_action_auteur("editer_message","$id_message/:$connect_id_auteur", 'message', "id_message=$id_message", true)); 44 } 45 } 46 47 exec_affiche_message_dist($id_message, $cherche_auteur, $forcer_dest); 48 } 49 50 // http://doc.spip.org/@http_afficher_rendez_vous 51 function http_afficher_rendez_vous($date_heure, $date_fin) 52 { 53 global $spip_lang_rtl; 54 55 $dirpuce = _DIR_RACINE . 'dist'; 56 if (jour($date_heure) == jour($date_fin) AND mois($date_heure) == mois($date_fin) AND annee($date_heure) == annee($date_fin)) { 57 echo "<p class='verdana2' style='text-align: center'>"._T('titre_rendez_vous')." ".majuscules(nom_jour($date_heure))." <b>".majuscules(affdate($date_heure))."</b><br />\n<b>".heures($date_heure)." "._T('date_mot_heures')." ".minutes($date_heure)."</b>"; 58 echo " <img src='$dirpuce/puce$spip_lang_rtl.gif' alt=' ' style='border: 0px;' /> ".heures($date_fin)." "._T('date_mot_heures')." ".minutes($date_fin)."</p>"; 59 } else { 60 echo "<p class='verdana2' style='text-align: center'>"._T('titre_rendez_vous')."<br />\n".majuscules(nom_jour($date_heure))." <b>".majuscules(affdate($date_heure))."</b>, <b>".heures($date_heure)." "._T('date_mot_heures')." ".minutes($date_heure)."</b>"; 61 echo "<br />\n<img src='$dirpuce/puce$spip_lang_rtl.gif' alt=' ' style='border: 0px;' /> ".majuscules(nom_jour($date_fin))." ".majuscules(affdate($date_fin)).", <b>".heures($date_fin)." "._T('date_mot_heures')." ".minutes($date_fin)."</b></p>"; 62 } 63 } 64 65 // http://doc.spip.org/@http_auteurs_ressemblants 66 function http_auteurs_ressemblants($cherche_auteur, $id_message) 67 { 68 global $connect_id_auteur; 69 $query = spip_query("SELECT id_auteur, nom FROM spip_auteurs WHERE messagerie<>'non' AND id_auteur<>'$connect_id_auteur' AND pass<>'' AND login<>''"); 70 $table_auteurs = array(); 71 $table_ids = array(); 72 while ($row = spip_fetch_array($query)) { 73 $table_auteurs[] = $row['nom']; 74 $table_ids[] = $row['id_auteur']; 75 } 76 $resultat = mots_ressemblants($cherche_auteur, $table_auteurs, $table_ids); 77 if (!$resultat) { 78 return '<b>' . _T('info_recherche_auteur_zero', array('cherche_auteur' => $cherche_auteur))."</b><br />"; 79 } 80 else if (count($resultat) == 1) { 81 // action/editer_message a du prendre en compte ce cas 82 list(, $nouv_auteur) = each($resultat); 83 $row = spip_fetch_array(spip_query("SELECT nom FROM spip_auteurs WHERE id_auteur=$nouv_auteur")); 84 $nom_auteur = $row['nom']; 85 return "<b>"._T('info_ajout_participant')."</b><br />" . 86 "<ul><li><span class='verdana1 spip_small'><b><span class='spip_medium'>$nom_auteur</span></b></span></li>\n</ul>"; 87 } 88 else if (count($resultat) < 16) { 89 $res = ''; 90 $query = spip_query("SELECT * FROM spip_auteurs WHERE id_auteur IN (" . join(',', $resultat) . ") ORDER BY nom"); 91 92 while ($row = spip_fetch_array($query)) { 93 $id_auteur = $row['id_auteur']; 94 $nom_auteur = $row['nom']; 95 $email_auteur = $row['email']; 96 $bio_auteur = $row['bio']; 97 $res .= "\n<li><span class='spip_medium verdana1'><b>$nom_auteur</b></span>" . 98 ($email_auteur ? " ($email_auteur)" : '') . 99 "\n <a href='" . redirige_action_auteur("editer_message","$id_message/@$id_auteur", 'message', "id_message=$id_message") 100 . "'>" 101 . _T('lien_ajout_destinataire'). 102 "</a>" . 103 (!trim($bio_auteur) ? '' : 104 ("<br />\n<span class='spip_x-small'>".propre(couper($bio_auteur, 100))."</span>\n")) . 105 "</li>\n"; 106 } 107 return "<b>"._T('info_recherche_auteur_ok', array('cherche_auteur' => $cherche_auteur))."</b><br /><ul>$res</ul>"; 108 } 109 else { 110 return "<b>"._T('info_recherche_auteur_a_affiner', array('cherche_auteur' => $cherche_auteur))."</b><br />"; 111 } 112 } 113 114 // http://doc.spip.org/@http_visualiser_participants 115 function http_visualiser_participants($auteurs_tmp) 116 { 117 return "\n<table border='0' cellspacing='0' cellpadding='3' width='100%'><tr><td style='background-color: #EEEECC'>" . 118 bouton_block_invisible("auteurs,ajouter_auteur") . 119 "<span class='serif2'><b>" . 120 _T('info_nombre_partcipants') . 121 "</b></span>" . 122 ((count($auteurs_tmp) == 0) ? '' : 123 (" <span class='arial2'>".join($auteurs_tmp,", ")."</span>")) . 124 "</td></tr></table>\n"; 125 } 126 127 // http://doc.spip.org/@http_ajouter_participants 128 function http_ajouter_participants($ze_auteurs, $id_message) 129 { 130 $result_ajout_auteurs = spip_query("SELECT * FROM spip_auteurs WHERE " . (!$ze_auteurs ? '' : "id_auteur NOT IN ($ze_auteurs) AND ") . " messagerie<>'non' AND statut IN ('0minirezo', '1comite') ORDER BY statut, nom"); 131 132 if (!spip_num_rows($result_ajout_auteurs) > 0) return ''; 133 134 $res = "<span class='verdana1 spip_small'><b>" . 135 _T('bouton_ajouter_participant') ." </b></span>\n" . 136 "<input type='hidden' name='id_message' value=\"$id_message\" />"; 137 138 if (spip_num_rows($result_ajout_auteurs) > 50) { 139 $res .= "\n<input type='text' name='cherche_auteur' class='fondl' value='' size='20' />"; 140 $res .= "\n<input type='submit' value='"._T('bouton_chercher')."' class='fondo' />"; 141 } else { 142 $res .= "<select name='nouv_auteur' size='1' style='width: 150px' class='fondl'>"; 143 while($row=spip_fetch_array($result_ajout_auteurs)) { 144 $id_auteur = $row['id_auteur']; 145 $nom = $row['nom']; 146 $email = $row['email']; 147 $statut_auteur = $row['statut']; 148 $premiere = strtoupper(substr(trim($nom), 0, 1)); 149 150 if ($GLOBALS['connect_statut'] != '0minirezo') { 151 if ($p = strpos($email, '@')) $email = substr($email, 0, $p).'@...'; 152 } 153 154 if ($statut_auteur != $statut_old) { 155 $s =ereg_replace("0minirezo", _T('info_statut_administrateur'), $statut_auteur); 156 $s=ereg_replace("1comite", _T('info_statut_redacteur'), $s); 157 $s=ereg_replace("2redac", _T('info_statut_redacteur'), $s); 158 $s=ereg_replace("5poubelle", _T('info_statut_efface'), $s); 159 $res .= "\n<option value=\"x\"></option>"; 160 $res .= "\n<option value=\"x\"> " . $s . 's</option>'; 161 } 162 163 if ($premiere != $premiere_old AND ($statut_auteur != '0minirezo' OR !$premiere_old)) 164 $res .= "\n<option value=\"x\"></option>"; 165 166 $res .= "\n<option value=\"$id_auteur\"> " .supprimer_tags(couper("$nom ($email) ", 40)) . "</option>"; 167 $statut_old = $statut_auteur; 168 $premiere_old = $premiere; 169 } 170 171 $res .= "</select>" 172 . "<input type='submit' value='"._T('bouton_ajouter')."' class='fondo' />"; 173 } 174 return redirige_action_auteur('editer_message', "$id_message,", 'message', "id_message=$id_message", "<div align='left'>$res</div>", " method='post'"); 175 } 176 177 // http://doc.spip.org/@http_afficher_forum_perso 178 function http_afficher_forum_perso($id_message) 179 { 180 181 echo "<br /><br />\n<div align='center'>"; 182 icone(_T('icone_poster_message'), generer_url_ecrire("forum_envoi", "statut=perso&id=$id_message&script=message"). '#formulaire', "forum-interne-24.gif", "creer.gif"); 183 echo "</div>\n<p align='left'>"; 184 185 $query_forum = spip_query("SELECT * FROM spip_forum WHERE statut='perso' AND id_message='$id_message' AND id_parent=0 ORDER BY date_heure DESC LIMIT 20"); 186 echo afficher_forum($query_forum, "message","id_message=$id_message"); 187 echo "\n</p>"; 188 } 189 190 191 // http://doc.spip.org/@http_message_avec_participants 192 function http_message_avec_participants($id_message, $statut, $forcer_dest, $cherche_auteur, $expediteur='') 193 { 194 global $connect_id_auteur, $couleur_claire ; 195 196 if ($cherche_auteur) { 197 echo "\n<div align='left'><div class='cadre-info'>" 198 . http_auteurs_ressemblants($cherche_auteur , $id_message) 199 . "\n</div></div>"; 200 } 201 202 // 203 // Liste des participants 204 // 205 206 $result_auteurs = spip_query("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"); 207 208 $total_dest = spip_num_rows($result_auteurs); 209 210 if ($total_dest > 0) { 211 $couleurs = array("#FFFFFF",$couleur_claire); 212 $auteurs_tmp = array(); 213 $ze_auteurs = array(); 214 $ifond = 0; 215 $res = ''; 216 while($row = spip_fetch_array($result_auteurs)) { 217 $id_auteur = $row["id_auteur"]; 218 $nom_auteur = typo($row["nom"]); 219 $statut_auteur = $row["statut"]; 220 $ze_auteurs[] = $id_auteur; 221 222 $couleur = $couleurs[$ifond]; 223 $ifond = 1 - $ifond; 224 225 $auteurs_tmp[] = "<a href='" . 226 generer_url_ecrire('auteur_infos',"id_auteur=" . $id_auteur) ."'>". $nom_auteur . "</a>"; 227 228 $aut = (($id_auteur != $expediteur) ? '' : 229 ("<span class='arial0'>". _T('info_auteur_message') ."</span> ")); 230 231 $res .= "<tr><td style='background-color: $couleur'><span class='verdana1 spip_small'> ". bonhomme_statut($row)." " . $aut . $nom_auteur . "</span></td>" . 232 "<td style='background-color: $couleur' align='right'><span class='verdana1 spip_x-small'>" . (($id_auteur == $connect_id_auteur) ? " " : ("[<a href='" . redirige_action_auteur("editer_message","$id_message/-$id_auteur", 'message', "id_message=$id_message") . "'>"._T('lien_retrait_particpant')."</a>]")) . "</span></td></tr>\n"; 233 } 234 echo 235 http_visualiser_participants($auteurs_tmp), 236 debut_block_invisible("auteurs"), 237 "\n<table border='0' cellspacing='0' cellpadding='3' width='100%'>", 238 $res, 239 "</table>\n", 240 fin_block(); 241 } 242 243 if ($statut == 'redac' OR $forcer_dest) 244 echo http_ajouter_participants(join(',', $ze_auteurs), $id_message); 245 else { 246 echo 247 debut_block_invisible("ajouter_auteur"), 248 "<br /><div align='right'><span class='verdana1 spip_small'><a href='" . generer_url_ecrire("message","id_message=$id_message&forcer_dest=oui") . "'>"._T('lien_ajouter_participant')."</a></span></div>", 249 fin_block(); 250 } 251 return $total_dest; 252 } 253 254 // http://doc.spip.org/@http_affiche_message 255 function http_affiche_message($id_message, $expediteur, $statut, $type, $texte, $titre, $rv, $date_heure, $date_fin, $cherche_auteur, $forcer_dest) 256 { 257 global $connect_id_auteur,$connect_statut, $les_notes; 258 259 if ($type == 'normal') { 260 $le_type = _T('info_message_2').aide ("messut"); 261 $la_couleur = "#02531b"; 262 $couleur_fond = "#cffede"; 263 } 264 else if ($type == 'pb') { 265 $le_type = _T('info_pense_bete').aide ("messpense"); 266 $la_couleur = "#3874b0"; 267 $couleur_fond = "#edf3fe"; 268 } 269 else if ($type == 'affich') { 270 $le_type = _T('info_annonce'); 271 $la_couleur = "#ccaa00"; 272 $couleur_fond = "#ffffee"; 273 } 274 275 // affichage des caracteristiques du message 276 277 echo "<div style='border: 1px solid $la_couleur; background-color: $couleur_fond; padding: 5px;'>"; // debut cadre de couleur 278 //debut_cadre_relief("messagerie-24.gif"); 279 echo "\n<table width='100%' cellpadding='0' cellspacing='0' border='0'>"; 280 echo "<tr><td>"; # uniques 281 282 echo "<span style='color: $la_couleur' class='verdana1 spip_small'><b>$le_type</b></span><br />"; 283 echo "<span class='verdana1 spip_large'><b>$titre</b></span>"; 284 if ($statut == 'redac') { 285 echo "<br /><span style='color: red;' class='verdana1 spip_small'><b>"._T('info_redaction_en_cours')."</b></span>"; 286 } 287 else if ($rv == 'non') { 288 echo "<br /><span style='color: #666666;' class='verdana1 spip_small'><b>".nom_jour($date_heure).' '.affdate_heure($date_heure)."</b></span>"; 289 } 290 291 292 ////////////////////////////////////////////////////// 293 // Message avec participants 294 // 295 296 if ($type == 'normal') { 297 echo debut_cadre_enfonce("redacteurs-24.gif", true); 298 $total_dest = http_message_avec_participants($id_message, $statut, $forcer_dest, $cherche_auteur, $expediteur); 299 fin_cadre_enfonce(); 300 } 301 302 if ($rv != "non") http_afficher_rendez_vous($date_heure, $date_fin); 303 304 305 ////////////////////////////////////////////////////// 306 // Le message lui-meme 307 // 308 309 echo "<div align='left'>", 310 "\n<table width='100%' cellpadding='0' cellspacing='0' border='0'>", 311 "<tr><td>", 312 "<div class='serif'><p>$texte</p></div>"; 313 314 if ($les_notes) { 315 echo debut_cadre_relief(); 316 echo "<div $dir_lang class='arial11'>"; 317 echo justifier("<b>"._T('info_notes')." :</b> ".$les_notes); 318 echo "</div>"; 319 echo fin_cadre_relief(); 320 } 321 322 if ($expediteur == $connect_id_auteur AND $statut == 'redac') { 323 if ($type == 'normal' AND $total_dest < 2) { 324 echo "<p style='color: #666666; text-align: right;' class='verdana1 spip_small'><b>"._T('avis_destinataire_obligatoire')."</b></p>"; 325 } else { 326 echo "\n<div align='center'><table><tr><td>"; 327 icone (_T('icone_envoyer_message'), redirige_action_auteur('editer_message', "$id_message/publie", "message","id_message=$id_message"), "messagerie-24.gif", "creer.gif"); 328 echo "</td></tr></table></div>"; 329 } 330 } 331 echo "</td></tr></table>\n</div>"; 332 333 echo "</td></tr></table>\n"; //fin_cadre_relief(); 334 echo "</div>"; // fin du cadre de couleur 335 336 // Les boutons 337 338 $aut = ($expediteur == $connect_id_auteur); 339 $aff = ($type == 'affich' AND $connect_statut == '0minirezo'); 340 341 echo "\n<table width='100%'><tr><td>"; 342 343 // bouton de suppression 344 345 if ($aut AND ($statut == 'redac' OR $type == 'pb') OR $aff) { 346 echo "\n<table align='left'><tr><td>"; 347 icone (_T('icone_supprimer_message'), redirige_action_auteur("editer_message","-$id_message", 'messagerie'), "messagerie-24.gif", "supprimer.gif"); 348 echo "</td></tr></table>"; 349 } 350 351 // bouton retrait de la discussion 352 353 if ($statut == 'publie' AND $type == 'normal') { 354 echo "\n<table align='left'><tr><td>"; 355 icone (_T('icone_arret_discussion'), redirige_action_auteur("editer_message","$id_message/-$connect_id_auteur", 'messagerie', "id_message=$id_message"), "messagerie-24.gif", "supprimer.gif"); 356 echo "</td></tr></table>"; 357 } 358 359 // bouton modifier ce message 360 361 if ($aut OR $aff) { 362 echo "\n<table align='right'><tr><td>"; 363 icone (_T('icone_modifier_message'), (generer_url_ecrire("message_edit","id_message=$id_message")), "messagerie-24.gif", "edit.gif"); 364 echo "</td></tr></table>"; 365 } 366 echo "</td></tr></table>"; 367 } 368 369 // http://doc.spip.org/@exec_affiche_message_dist 370 function exec_affiche_message_dist($id_message, $cherche_auteur, $forcer_dest) 371 { 372 global $connect_id_auteur, $echelle, $partie_cal; 373 $row = spip_fetch_array(spip_query("SELECT * FROM spip_messages WHERE id_message=$id_message")); 374 if ($row) { 375 $id_message = $row['id_message']; 376 $date_heure = $row["date_heure"]; 377 $date_fin = $row["date_fin"]; 378 $titre = typo($row["titre"]); 379 $texte = propre($row["texte"]); 380 $type = $row["type"]; 381 $statut = $row["statut"]; 382 $rv = $row["rv"]; 383 $expediteur = $row['id_auteur']; 384 385 $lejour=journum($row['date_heure']); 386 $lemois = mois($row['date_heure']); 387 $lannee = annee($row['date_heure']); 388 389 390 391 $commencer_page = charger_fonction('commencer_page', 'inc'); 392 echo $commencer_page($titre, "accueil", "messagerie"); 393 394 debut_gauche(); 395 396 if ($rv != 'non') 397 echo http_calendrier_agenda ($lannee, $lemois, $lejour, $lemois, $lannee,false, generer_url_ecrire('calendrier')); 398 399 echo "<br />"; 400 echo http_calendrier_rv(sql_calendrier_taches_annonces(),"annonces"); 401 echo http_calendrier_rv(sql_calendrier_taches_pb(),"pb"); 402 echo http_calendrier_rv(sql_calendrier_taches_rv(), "rv"); 403 404 if ($rv != "non") { 405 list ($sh, $ah) = sql_calendrier_interval(sql_calendrier_jour($lannee,$lemois, $lejour)); 406 foreach ($ah as $k => $v) 407 { 408 foreach ($v as $l => $e) 409 { 410 if (ereg("=$id_message$", $e['URL'])) 411 { 412 $ah[$k][$l]['CATEGORIES'] = "calendrier-nb"; 413 break; 414 } 415 } 416 } 417 creer_colonne_droite(); 418 419 echo http_calendrier_ics_titre($lannee,$lemois,$lejour,generer_url_ecrire('calendrier')); 420 echo http_calendrier_ics($lannee,$lemois, $lejour, $echelle, $partie_cal, 90, array($sh, $ah)); 421 } 422 423 debut_droite(); 424 425 http_affiche_message($id_message, $expediteur, $statut, $type, $texte, $titre, $rv, $date_heure, $date_fin, $cherche_auteur, $forcer_dest); 426 427 // reponses et bouton poster message 428 429 http_afficher_forum_perso($id_message); 430 } 431 432 echo fin_gauche(), fin_page(); 433 } 434 435 ?>
titre
Description
Corps
titre
Description
Corps
titre
Description
Corps
titre
Corps
Généré le : Wed Nov 21 10:20:27 2007 | par Balluche grâce à PHPXref 0.7 |
![]() |