[ 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/filtres'); 16 include_spip('base/abstract_sql'); 17 18 // http://doc.spip.org/@action_editer_message_dist 19 function action_editer_message_dist() { 20 21 $securiser_action = charger_fonction('securiser_action', 'inc'); 22 $arg = $securiser_action(); 23 24 if (preg_match(',^(\d+)$,', $arg, $r)) 25 action_editer_message_post_vieux($arg); 26 elseif (preg_match(',^-(\d+)$,', $arg, $r)) 27 action_editer_message_post_supprimer($r[1]); 28 elseif (preg_match(',^(\d+)\W$,', $arg, $r)) 29 action_editer_message_post_choisir($r[1]); 30 elseif (preg_match(',^(\d+)\W@(\d+)$,', $arg, $r)) 31 action_editer_message_post_ajouter($r[1], $r[2]); 32 elseif (preg_match(',^(\d+)\W:(\d+)$,', $arg, $r)) 33 action_editer_message_post_vu($r[1], $r[2]); 34 elseif (preg_match(',^(\d+)\W-(\d+)$,', $arg, $r)) 35 action_editer_message_post_retirer($r[1], $r[2]); 36 elseif (preg_match(',^(\d+)\W(\w+)$,', $arg, $r)) 37 action_editer_message_post_envoyer($r[1], $r[2]); 38 elseif (preg_match(',^(\w+)$,', $arg, $r)) 39 action_editer_message_post_nouveau($arg); 40 elseif (preg_match(',^(\w+)\W(\d+)$,', $arg, $r)) 41 action_editer_message_post_nouveau($r[1], $r[2]); 42 elseif (preg_match(',^(\w+)\W(\d+-\d+-\d+)$,', $arg, $r)) 43 action_editer_message_post_nouveau($r[1], '', $r[2]); 44 else spip_log("action_editer_message_dist $arg pas compris"); 45 } 46 47 // http://doc.spip.org/@action_editer_message_post_supprimer 48 function action_editer_message_post_supprimer($id_message) { 49 spip_query("DELETE FROM spip_messages WHERE id_message="._q($id_message)); 50 spip_query("DELETE FROM spip_auteurs_messages WHERE id_message="._q($id_message)); 51 spip_query("DELETE FROM spip_forum WHERE id_message="._q($id_message)); 52 } 53 54 // http://doc.spip.org/@action_editer_message_post_vu 55 function action_editer_message_post_vu($id_message, $id_auteur) { 56 spip_log("efface $id_message $id_auteur"); 57 spip_query("UPDATE spip_auteurs_messages SET vu='oui' WHERE id_message='$id_message' AND id_auteur='$id_auteur'"); 58 59 } 60 61 // http://doc.spip.org/@action_editer_message_post_retirer 62 function action_editer_message_post_retirer($id_message, $id_auteur) { 63 spip_query("DELETE FROM spip_auteurs_messages WHERE id_message='$id_message' AND id_auteur='$id_auteur'"); 64 } 65 66 // http://doc.spip.org/@action_editer_message_post_ajouter 67 function action_editer_message_post_ajouter($id_message, $id_auteur) { 68 spip_query("DELETE FROM spip_auteurs_messages WHERE id_auteur='$id_auteur' AND id_message='$id_message'"); 69 spip_abstract_insert('spip_auteurs_messages', 70 "(id_auteur,id_message,vu)", 71 "('$id_auteur','$id_message','non')"); 72 } 73 74 // http://doc.spip.org/@action_editer_message_post_choisir 75 function action_editer_message_post_choisir($id_message) { 76 77 if ($id_auteur = _request('nouv_auteur')) 78 action_editer_message_post_ajouter($id_message, $id_auteur); 79 else { 80 include_spip('inc/mots'); 81 include_spip('inc/charsets'); // pour tranlitteration 82 $id_auteur = $GLOBALS['auteur_session']['id_auteur']; 83 $cherche_auteur= _request('cherche_auteur'); 84 $query = spip_query("SELECT id_auteur, nom FROM spip_auteurs WHERE messagerie<>'non' AND id_auteur<>'$connect_id_auteur' AND pass<>'' AND login<>''"); 85 $table_auteurs = array(); 86 $table_ids = array(); 87 while ($row = spip_fetch_array($query)) { 88 $table_auteurs[] = $row['nom']; 89 $table_ids[] = $row['id_auteur']; 90 } 91 $res = mots_ressemblants($cherche_auteur, $table_auteurs, $table_ids); 92 $n = count($res); 93 94 if ($n == 1) 95 # Bingo 96 action_editer_message_post_ajouter($id_message, $res[0]); 97 # renvoyer la valeur ==> formulaire de choix si n !=1 98 # notification que $res[0] a ete rajoute sinon 99 redirige_par_entete(parametre_url(urldecode(_request('redirect')), 100 'cherche_auteur', _request('chercher_auteur'), '&')); 101 } 102 } 103 104 105 // http://doc.spip.org/@action_editer_message_post_envoyer 106 function action_editer_message_post_envoyer($id_message, $statut) { 107 108 spip_query("UPDATE spip_messages SET statut=" . _q($statut) . " WHERE id_message='$id_message'"); 109 spip_query("UPDATE spip_messages SET date_heure=NOW() WHERE id_message='$id_message' AND rv<>'oui'"); 110 } 111 112 // http://doc.spip.org/@action_editer_message_post_nouveau 113 function action_editer_message_post_nouveau($type, $dest='', $rv='') 114 { 115 116 $id_auteur = $GLOBALS['auteur_session']['id_auteur']; 117 118 $mydate = date("YmdHis", time() - 2 * 24 * 3600); 119 spip_query("DELETE FROM spip_messages WHERE (statut = 'redac') AND (date_heure < $mydate)"); 120 121 if ($type == 'pb') $statut = 'publie'; 122 else $statut = 'redac'; 123 124 $titre = filtrer_entites(_T('texte_nouveau_message')); 125 126 $id_message = spip_abstract_insert("spip_messages", "(titre, date_heure, statut, type, id_auteur)", "(" . _q($titre) . ", NOW(), '$statut', '$type', $id_auteur)"); 127 128 if ($rv) { 129 spip_query("UPDATE spip_messages SET rv='oui', date_heure=" . _q($rv . ' 12:00:00') . ", date_fin= " . _q($rv . ' 13:00:00') . " WHERE id_message = $id_message"); 130 } 131 132 if ($type != "affich"){ 133 spip_abstract_insert('spip_auteurs_messages', 134 "(id_auteur,id_message,vu)", 135 "('$id_auteur','$id_message','oui')"); 136 if ($dest) { 137 spip_abstract_insert('spip_auteurs_messages', 138 "(id_auteur,id_message,vu)", 139 "('$dest','$id_message','non')"); 140 } 141 } 142 redirige_par_entete(generer_url_ecrire('message_edit', "id_message=$id_message&new=oui&dest=$dest",true)); 143 } 144 145 // http://doc.spip.org/@action_editer_message_post_vieux 146 function action_editer_message_post_vieux($id_message) 147 { 148 spip_query("UPDATE spip_messages SET titre=" . _q(_request('titre')) . ", texte=" . _q(_request('texte')) . " WHERE id_message='$id_message'"); 149 150 spip_query("UPDATE spip_messages SET rv=" . _q(_request('rv')) . " WHERE id_message='$id_message'"); 151 152 if (_request('jour')) 153 change_date_message($id_message, _request('heures'),_request('minutes'),_request('mois'), _request('jour'), _request('annee'), _request('heures_fin'),_request('minutes_fin'),_request('mois_fin'), _request('jour_fin'), _request('annee_fin')); 154 } 155 156 157 // Convertir dates a calendrier correct 158 // (exemple: 31 fevrier devient debut mars, 24h12 devient 00h12 du lendemain) 159 160 // http://doc.spip.org/@change_date_message 161 function change_date_message($id_message, $heures,$minutes,$mois, $jour, $annee, $heures_fin,$minutes_fin,$mois_fin, $jour_fin, $annee_fin) 162 { 163 $date = date("Y-m-d H:i:s", mktime($heures,$minutes,0,$mois, $jour, $annee)); 164 165 $jour = journum($date); 166 $mois = mois($date); 167 $annee = annee($date); 168 $heures = heures($date); 169 $minutes = minutes($date); 170 171 // Verifier que la date de fin est bien posterieure au debut 172 $unix_debut = date("U", mktime($heures,$minutes,0,$mois, $jour, $annee)); 173 $unix_fin = date("U", mktime($heures_fin,$minutes_fin,0,$mois_fin, $jour_fin, $annee_fin)); 174 if ($unix_fin <= $unix_debut) { 175 $jour_fin = $jour; 176 $mois_fin = $mois; 177 $annee_fin = $annee; 178 $heures_fin = $heures + 1; 179 $minutes_fin = $minutes; 180 } 181 182 $date_fin = date("Y-m-d H:i:s", mktime($heures_fin,$minutes_fin,0,$mois_fin, $jour_fin, $annee_fin)); 183 184 $jour_fin = journum($date_fin); 185 $mois_fin = mois($date_fin); 186 $annee_fin = annee($date_fin); 187 $heures_fin = heures($date_fin); 188 $minutes_fin = minutes($date_fin); 189 190 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'"); 191 } 192 193 ?>
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 |
![]() |