From 3c8d61d95ad6f03c431195de595b82883364a840 Mon Sep 17 00:00:00 2001 From: "Committo,Ergo:sum" <esj@rezo.net> Date: Fri, 19 Jan 2007 16:46:26 +0000 Subject: [PATCH] =?UTF-8?q?T=C3=A2che=20#605=20sur=20la=20messagerie,=20fi?= =?UTF-8?q?n=20(pourrait=20etre=20optimis=C3=A9=20comme=20dans=20editer=5F?= =?UTF-8?q?auteur,=20mais=20vu=20ce=20qu'on=20s'en=20sert).?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ecrire/action/editer_message.php | 32 +++++++ ecrire/exec/message.php | 147 +++++++++++++------------------ 2 files changed, 94 insertions(+), 85 deletions(-) diff --git a/ecrire/action/editer_message.php b/ecrire/action/editer_message.php index 976483c0fb..64b29c069d 100644 --- a/ecrire/action/editer_message.php +++ b/ecrire/action/editer_message.php @@ -25,6 +25,8 @@ function action_editer_message_dist() { action_editer_message_post_vieux($arg); elseif (preg_match(',^-(\d+)$,', $arg, $r)) action_editer_message_post_supprimer($r[1]); + elseif (preg_match(',^(\d+)\W$,', $arg, $r)) + action_editer_message_post_choisir($r[1]); elseif (preg_match(',^(\d+)\W@(\d+)$,', $arg, $r)) action_editer_message_post_ajouter($r[1], $r[2]); elseif (preg_match(',^(\d+)\W:(\d+)$,', $arg, $r)) @@ -65,6 +67,36 @@ function action_editer_message_post_ajouter($id_message, $id_auteur) { "('$id_auteur','$id_message','non')"); } +function action_editer_message_post_choisir($id_message) { + spip_log("aempc" . urldecode(_request('redirect'))); + if ($id_auteur = _request('nouv_auteur')) + action_editer_message_post_ajouter($id_message, $id_auteur); + else { + include_spip('inc/mots'); + include_spip('inc/charsets'); // pour tranlitteration + $id_auteur = $GLOBALS['auteur_session']['id_auteur']; + $cherche_auteur= _request('cherche_auteur'); + $query = spip_query("SELECT id_auteur, nom FROM spip_auteurs WHERE messagerie<>'non' AND id_auteur<>'$connect_id_auteur' AND pass<>'' AND login<>''"); + $table_auteurs = array(); + $table_ids = array(); + while ($row = spip_fetch_array($query)) { + $table_auteurs[] = $row['nom']; + $table_ids[] = $row['id_auteur']; + } + $res = mots_ressemblants($cherche_auteur, $table_auteurs, $table_ids); + $n = count($res); + + if ($n == 1) + # Bingo + action_editer_message_post_ajouter($id_message, $res[0]); + # renvoyer la valeur ==> formulaire de choix si n !=1 + # notification que $res[0] a ete rajoute sinon + redirige_par_entete(parametre_url(urldecode(_request('redirect')), + 'cherche_auteur', _request('chercher_auteur'), '&')); + } +} + + function action_editer_message_post_envoyer($id_message, $statut) { spip_query("UPDATE spip_messages SET statut=" . _q($statut) . " WHERE id_message='$id_message'"); diff --git a/ecrire/exec/message.php b/ecrire/exec/message.php index cacf597880..fc376168a3 100644 --- a/ecrire/exec/message.php +++ b/ecrire/exec/message.php @@ -19,10 +19,9 @@ include_spip('inc/mots'); // http://doc.spip.org/@exec_message_dist function exec_message_dist() { - global $cherche_auteur, $connect_id_auteur,$forcer_dest,$id_message, $nouv_auteur; + global $cherche_auteur, $connect_id_auteur,$forcer_dest,$id_message; $id_message = intval($id_message); - $nouv_auteur = intval($nouv_auteur); charger_generer_url(); $row = spip_fetch_array(spip_query("SELECT type FROM spip_messages WHERE id_message=$id_message")); @@ -45,7 +44,7 @@ function exec_message_dist() } } - exec_affiche_message_dist($id_message, $cherche_auteur, $nouv_auteur, $forcer_dest); + exec_affiche_message_dist($id_message, $cherche_auteur, $forcer_dest); } // http://doc.spip.org/@http_afficher_rendez_vous @@ -63,15 +62,6 @@ function http_afficher_rendez_vous($date_heure, $date_fin) } } -// http://doc.spip.org/@sql_nouveau_participant -function sql_nouveau_participant($nouv_auteur, $id_message) -{ - spip_query("DELETE FROM spip_auteurs_messages WHERE id_auteur='$nouv_auteur' AND id_message='$id_message'"); - spip_abstract_insert('spip_auteurs_messages', - "(id_auteur,id_message,vu)", - "('$nouv_auteur','$id_message','non')"); -} - // http://doc.spip.org/@http_auteurs_ressemblants function http_auteurs_ressemblants($cherche_auteur, $id_message) { @@ -88,12 +78,12 @@ function http_auteurs_ressemblants($cherche_auteur, $id_message) return '<b>' . _T('info_recherche_auteur_zero', array('cherche_auteur' => $cherche_auteur))."</b><br />"; } else if (count($resultat) == 1) { + // action/editer_message a du prendre en compte ce cas list(, $nouv_auteur) = each($resultat); - sql_nouveau_participant($nouv_auteur, $id_message); $row = spip_fetch_array(spip_query("SELECT nom FROM spip_auteurs WHERE id_auteur=$nouv_auteur")); $nom_auteur = $row['nom']; return "<b>"._T('info_ajout_participant')."</b><br />" . - "<ul><li><span class='verdana1 spip_small'><b><span class='spip_medium'>$nom_auteur</span></b></span>\n</ul>"; + "<ul><li><span class='verdana1 spip_small'><b><span class='spip_medium'>$nom_auteur</span></b></span></li>\n</ul>"; } else if (count($resultat) < 16) { $res = ''; @@ -104,15 +94,15 @@ function http_auteurs_ressemblants($cherche_auteur, $id_message) $nom_auteur = $row['nom']; $email_auteur = $row['email']; $bio_auteur = $row['bio']; - $res .= "<li><span class='spip_medium' style='class='verdana1'><b>$nom_auteur</b></span>" . + $res .= "\n<li><span class='spip_medium verdana1'><b>$nom_auteur</b></span>" . ($email_auteur ? " ($email_auteur)" : '') . - " | <a href='" . redirige_action_auteur("editer_message","$id_message/@$id_auteur", 'message', "id_message=$id_message") + "\n <a href='" . redirige_action_auteur("editer_message","$id_message/@$id_auteur", 'message', "id_message=$id_message") . "'>" . _T('lien_ajout_destinataire'). "</a>" . (!trim($bio_auteur) ? '' : - ("<br /><span class='spip_x-small'>".propre(couper($bio_auteur, 100))."</span>\n")) . - "</font></li>\n"; + ("<br />\n<span class='spip_x-small'>".propre(couper($bio_auteur, 100))."</span>\n")) . + "</li>\n"; } return "<b>"._T('info_recherche_auteur_ok', array('cherche_auteur' => $cherche_auteur))."</b><br /><ul>$res</ul>"; } @@ -137,61 +127,51 @@ function http_visualiser_participants($auteurs_tmp) // http://doc.spip.org/@http_ajouter_participants function http_ajouter_participants($ze_auteurs, $id_message) { - $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"); - - if (spip_num_rows($result_ajout_auteurs) > 0) { - - echo "<div align='left'>"; - echo generer_url_post_ecrire('message'); - echo "<span class='verdana1 spip_small'><b>", _T('bouton_ajouter_participant')," </b></span>\n", - "<input type='hidden' name='id_message' value=\"$id_message\" />"; - - if (spip_num_rows($result_ajout_auteurs) > 50) { - echo "\n<input type='text' name='cherche_auteur' class='fondl' value='' size='20' />"; - echo "\n<input type='submit' name='Chercher' value='"._T('bouton_chercher')."' class='fondo' />"; - } - else { - echo "<select name='nouv_auteur' size='1' style='width: 150px' class='fondl'>"; - $group = false; - $group2 = false; - - while($row=spip_fetch_array($result_ajout_auteurs)) { - $id_auteur = $row['id_auteur']; - $nom = $row['nom']; - $email = $row['email']; - $statut_auteur = $row['statut']; - - $statut_auteur=ereg_replace("0minirezo", _T('info_statut_administrateur'), $statut_auteur); - $statut_auteur=ereg_replace("1comite", _T('info_statut_redacteur'), $statut_auteur); - $statut_auteur=ereg_replace("2redac", _T('info_statut_redacteur'), $statut_auteur); - $statut_auteur=ereg_replace("5poubelle", _T('info_statut_efface'), $statut_auteur); - - $premiere = strtoupper(substr(trim($nom), 0, 1)); + $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"); - if ($GLOBALS['connect_statut'] != '0minirezo') { - if ($p = strpos($email, '@')) $email = substr($email, 0, $p).'@...'; - } + if (!spip_num_rows($result_ajout_auteurs) > 0) return ''; - if ($statut_auteur != $statut_old) { - echo "\n<option value=\"x\"></option>"; - echo "\n<option value=\"x\"> $statut_auteur".'s</option>'; - } + $res = "<span class='verdana1 spip_small'><b>" . + _T('bouton_ajouter_participant') ." </b></span>\n" . + "<input type='hidden' name='id_message' value=\"$id_message\" />"; + + if (spip_num_rows($result_ajout_auteurs) > 50) { + $res .= "\n<input type='text' name='cherche_auteur' class='fondl' value='' size='20' />"; + $res .= "\n<input type='submit' value='"._T('bouton_chercher')."' class='fondo' />"; + } else { + $res .= "<select name='nouv_auteur' size='1' style='width: 150px' class='fondl'>"; + while($row=spip_fetch_array($result_ajout_auteurs)) { + $id_auteur = $row['id_auteur']; + $nom = $row['nom']; + $email = $row['email']; + $statut_auteur = $row['statut']; + $premiere = strtoupper(substr(trim($nom), 0, 1)); + + if ($GLOBALS['connect_statut'] != '0minirezo') { + if ($p = strpos($email, '@')) $email = substr($email, 0, $p).'@...'; + } + + if ($statut_auteur != $statut_old) { + $s =ereg_replace("0minirezo", _T('info_statut_administrateur'), $statut_auteur); + $s=ereg_replace("1comite", _T('info_statut_redacteur'), $s); + $s=ereg_replace("2redac", _T('info_statut_redacteur'), $s); + $s=ereg_replace("5poubelle", _T('info_statut_efface'), $s); + $res .= "\n<option value=\"x\"></option>"; + $res .= "\n<option value=\"x\"> " . $s . 's</option>'; + } - if ($premiere != $premiere_old AND ($statut_auteur != _T('info_administrateur') OR !$premiere_old)) { - echo "\n<option value=\"x\"></option>"; - } + if ($premiere != $premiere_old AND ($statut_auteur != '0minirezo' OR !$premiere_old)) + $res .= "\n<option value=\"x\"></option>"; - $texte_option = supprimer_tags(couper("$nom ($email) ", 40)); - echo "\n<option value=\"$id_auteur\"> $texte_option</option>"; - $statut_old = $statut_auteur; - $premiere_old = $premiere; - } + $res .= "\n<option value=\"$id_auteur\"> " .supprimer_tags(couper("$nom ($email) ", 40)) . "</option>"; + $statut_old = $statut_auteur; + $premiere_old = $premiere; + } - echo "</select>"; - echo "<input type='submit' name='Ajouter' value='"._T('bouton_ajouter')."' class='fondo' />"; - } - echo "</form></div>"; - } + $res .= "</select>" + . "<input type='submit' value='"._T('bouton_ajouter')."' class='fondo' />"; + } + return redirige_action_auteur('editer_message', "$id_message,", 'message', "id_message=$id_message", "<div align='left'>$res</div>", " method='post'"); } // http://doc.spip.org/@http_afficher_forum_perso @@ -209,22 +189,19 @@ function http_afficher_forum_perso($id_message) // http://doc.spip.org/@http_message_avec_participants -function http_message_avec_participants($id_message, $statut, $forcer_dest, $nouv_auteur, $cherche_auteur, $expediteur='') +function http_message_avec_participants($id_message, $statut, $forcer_dest, $cherche_auteur, $expediteur='') { global $connect_id_auteur, $couleur_claire ; - echo debut_cadre_enfonce("redacteurs-24.gif", true); if ($cherche_auteur) { - echo "\n<p align='left'><div class='cadre-info'>" . - http_auteurs_ressemblants($cherche_auteur , $id_message) . - "\n</div></p>"; + echo "\n<div align='left'><div class='cadre-info'>" + . http_auteurs_ressemblants($cherche_auteur , $id_message) + . "\n</div></div>"; } - if ($nouv_auteur > 0) sql_nouveau_participant($nouv_auteur, $id_message); - - // - // Liste des participants - // + // + // Liste des participants + // $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"); @@ -264,20 +241,18 @@ function http_message_avec_participants($id_message, $statut, $forcer_dest, $nou } if ($statut == 'redac' OR $forcer_dest) - http_ajouter_participants(join(',', $ze_auteurs), - $id_message); + echo http_ajouter_participants(join(',', $ze_auteurs), $id_message); else { echo debut_block_invisible("ajouter_auteur"), "<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>", fin_block(); } - fin_cadre_enfonce(); return $total_dest; } // http://doc.spip.org/@http_affiche_message -function http_affiche_message($id_message, $expediteur, $statut, $type, $texte, $titre, $rv, $date_heure, $date_fin, $cherche_auteur, $nouv_auteur, $forcer_dest) +function http_affiche_message($id_message, $expediteur, $statut, $type, $texte, $titre, $rv, $date_heure, $date_fin, $cherche_auteur, $forcer_dest) { global $connect_id_auteur,$connect_statut, $les_notes; @@ -319,7 +294,9 @@ function http_affiche_message($id_message, $expediteur, $statut, $type, $texte, // if ($type == 'normal') { - $total_dest = http_message_avec_participants($id_message, $statut, $forcer_dest, $nouv_auteur, $cherche_auteur, $expediteur); + echo debut_cadre_enfonce("redacteurs-24.gif", true); + $total_dest = http_message_avec_participants($id_message, $statut, $forcer_dest, $cherche_auteur, $expediteur); + fin_cadre_enfonce(); } if ($rv != "non") http_afficher_rendez_vous($date_heure, $date_fin); @@ -390,7 +367,7 @@ function http_affiche_message($id_message, $expediteur, $statut, $type, $texte, } // http://doc.spip.org/@exec_affiche_message_dist -function exec_affiche_message_dist($id_message, $cherche_auteur, $nouv_auteur, $forcer_dest) +function exec_affiche_message_dist($id_message, $cherche_auteur, $forcer_dest) { global $connect_id_auteur, $echelle, $partie_cal; $row = spip_fetch_array(spip_query("SELECT * FROM spip_messages WHERE id_message=$id_message")); @@ -445,7 +422,7 @@ function exec_affiche_message_dist($id_message, $cherche_auteur, $nouv_auteur, $ debut_droite(); - http_affiche_message($id_message, $expediteur, $statut, $type, $texte, $titre, $rv, $date_heure, $date_fin, $cherche_auteur, $nouv_auteur, $forcer_dest); + http_affiche_message($id_message, $expediteur, $statut, $type, $texte, $titre, $rv, $date_heure, $date_fin, $cherche_auteur, $forcer_dest); // reponses et bouton poster message -- GitLab