source: trunk/spip/esqueleto-redcta/plugins/spip-listes_1_9_2/exec/gerer_courrier.php @ 90

Last change on this file since 90 was 90, checked in by guille, 15 years ago

importacion de spip-listes-1_9_2

File size: 15.6 KB
Line 
1<?php
2
3/******************************************************************************************/
4/* SPIP-listes est un systï¿œe de gestion de listes d'information par email pour SPIP      */
5/* Copyright (C) 2004 Vincent CARON  v.caron<at>laposte.net , http://bloog.net            */
6/*                                                                                        */
7/* Ce programme est libre, vous pouvez le redistribuer et/ou le modifier selon les termes */
8/* de la Licence Publique Gᅵᅵale GNU publiï¿œ par la Free Software Foundation            */
9/* (version 2).                                                                           */
10/*                                                                                        */
11/* Ce programme est distribuï¿œcar potentiellement utile, mais SANS AUCUNE GARANTIE,       */
12/* ni explicite ni implicite, y compris les garanties de commercialisation ou             */
13/* d'adaptation dans un but spï¿œifique. Reportez-vous ï¿œla Licence Publique Gᅵᅵale GNU  */
14/* pour plus de dï¿œails.                                                                  */
15/*                                                                                        */
16/* Vous devez avoir reï¿œ une copie de la Licence Publique Gᅵᅵale GNU                    */
17/* en mï¿œe temps que ce programme ; si ce n'est pas le cas, ï¿œrivez ï¿œla                  */
18/* Free Software Foundation,                                                              */
19/* Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, ï¿œats-Unis.                   */
20/******************************************************************************************/
21
22if (!defined("_ECRIRE_INC_VERSION")) return;
23
24include_spip('inc/presentation');
25include_spip('inc/barre');
26include_spip('inc/affichage');
27include_spip('base/spip-listes');
28
29function exec_gerer_courrier(){
30
31        global $connect_statut;
32        global $connect_toutes_rubriques;
33        global $connect_id_auteur;
34
35        $type = _request('type');
36        $new = _request('new');
37        $id_message = _request('id_message');
38        $modifier_message = _request('modifier_message');
39        $titre = _request('titre');
40        $texte = _request('texte');
41
42        $envoi_test = _request('envoi_test');
43        $change_statut = _request('change_statut');
44        $supp_dest = _request('supp_dest');
45        $envoi = _request('envoi');
46        $adresse_test = _request('adresse_test');
47        $choisir_dest = _request('choisir_dest');
48        $destinataire = _request('destinataire');
49
50        $nomsite=lire_meta("nom_site"); 
51        $urlsite=lire_meta("adresse_site"); 
52
53        // Admin SPIP-Listes
54        echo debut_page(_T('spiplistes:spip_listes'), "redacteurs", "spiplistes");
55
56        if ($connect_statut != "0minirezo" ) {
57                echo "<p><b>"._T('spiplistes:acces_a_la_page')."</b></p>";
58                echo fin_page();
59                exit;
60        }
61
62        if (($connect_statut == "0minirezo") OR ($connect_id_auteur == $id_auteur)) {
63                $statut_auteur=$statut;
64                spip_listes_onglets("messagerie", _T('spiplistes:spip_listes'));
65        }
66
67        debut_gauche();
68        spip_listes_raccourcis();
69        creer_colonne_droite();
70        debut_droite("messagerie");
71
72        // MODE COURRIER: Affichage d'un courrier---------------------------------------
73
74        //Ajouter le destinataire  si on le connait
75        $result = spip_query("SELECT id_liste, texte, email_test FROM spip_courriers WHERE id_courrier="._q($id_message));
76
77        while($row = spip_fetch_array($result)) {
78                $id_liste = $row["id_liste"] ;
79                if(     email_valide($row["email_test"]) )
80                        $test = 'oui' ;
81               
82                if(($choisir_dest OR $envoi_test)){
83                        if($envoi_test AND email_valide($adresse_test)){
84                                $destinataire = $adresse_test ;
85                                $res3 = spip_query("SELECT id_auteur FROM spip_auteurs WHERE email = "._q($adresse_test)." ORDER BY id_auteur ASC ");
86                                if(spip_num_rows($res3)==0){
87                                        $erreur_mail_pas_bon = "<h3>"._T('spiplistes:sans_envoi')."</h3>\n"; 
88                                }
89                                else{
90                                        //definir adresse email de test
91                                        spip_query("UPDATE spip_courriers SET email_test="._q($adresse_test).", total_abonnes=1 WHERE id_courrier="._q($id_message));
92                                        $change_statut = "ready";
93                                }
94                        }
95                        //definir liste d envoi
96                        if(intval($destinataire)){
97                                spip_query("UPDATE spip_courriers SET id_liste="._q($destinataire)." WHERE id_courrier="._q($id_message));
98                                //passer le mail en pret a l envoi
99                                $change_statut = "ready";
100                        }
101                       
102                        //definir liste d envoi de tous les contacts : pas dans emil test
103                        if($destinataire=="tous")
104                                $change_statut = "ready";
105                }
106        }
107
108        if(intval($id_message)){
109                if ($modifier_message == "oui")
110                        spip_query("UPDATE spip_courriers SET titre="._q($titre).", texte="._q($texte)." WHERE id_courrier="._q($id_message)); 
111               
112                if ($change_statut) {
113                        spip_query("UPDATE spip_courriers SET statut="._q($change_statut)." WHERE id_courrier="._q($id_message));
114                        if($change_statut == "ready"){
115                                //enregistrer le texte propre dans la base pour envoi
116                                $result_m = spip_query("SELECT * FROM spip_courriers WHERE id_courrier="._q($id_message));
117                               
118                                while($row = spip_fetch_array($result_m)) {
119                                        $titre = $row['titre'];
120                                        $texte = $row['texte'];
121                                }
122                                $texte = spiplistes_propre($texte);
123                                spip_query("UPDATE spip_courriers SET titre="._q($titre).", texte="._q($texte)." WHERE id_courrier="._q($id_message));
124                        }
125                       
126                        if($change_statut == 'publie'){
127                                // si on annule un envoi, effacer les abonnes en attente
128                                spip_query("DELETE FROM spip_auteurs_courriers WHERE id_courrier="._q($id_message));
129                        }
130                }
131               
132                // A securiser ?
133                if ($envoi) {
134                        spip_query("UPDATE spip_courriers SET statut='encour' WHERE id_courrier="._q($id_message));
135                        spip_query("DELETE FROM spip_auteurs_courriers WHERE id_courrier="._q($id_message));
136               
137                        spip_log("test ? ->".$test."idliste->$id_liste");
138                        if(intval($id_liste) OR ($id_liste==0 AND $test!='oui') )
139                                remplir_liste_envois($id_message,$id_liste) ;
140                }
141        }
142
143        //le message
144        $result_m = spip_query("SELECT * FROM spip_courriers WHERE id_courrier="._q($id_message));
145        while($row = spip_fetch_array($result_m)) {
146                $id_message = $row['id_courrier'];
147                $id_liste = $row['id_liste'];
148                $email_test = $row['email_test'];
149               
150                $date_heure = $row["date"];
151                $titre = typo($row["titre"]);
152                $texte = $row["texte"];
153                $message_texte = $row["message_texte"];
154                $type = $row["type"];
155                $statut = $row["statut"];
156                $expediteur = $row['id_auteur'];               
157               
158                $le_type = _T('spiplistes:message_type');
159                $la_couleur = "red";
160               
161                $total_abonnes = $row["total_abonnes"];
162                $nb_emails_envoyes = $row["nb_emails_envoyes"];
163                $nb_emails_echec = $row["nb_emails_echec"];
164                $nb_emails_non_envoyes = $row["nb_emails_non_envoyes"];
165                $nb_emails_texte = $row["nb_emails_texte"];
166                $nb_emails_html = $row["nb_emails_html"];
167                $debut_envoi = $row["date_debut_envoi"];
168                $fin_envoi = $row["date_fin_envoi"];
169               
170                //trouver un destinataire
171                $destinataire = ''; //secu
172                $pret_envoi=false;
173               
174                if($email_test !=''){
175                        $destinataire = $email_test ;
176                        if(email_valide($destinataire)){                               
177                                $destinataire = _T('spiplistes:email_test2').$destinataire ;
178                                $pret_envoi=true;
179                        }
180                        else{
181                                $erreur_mail == 'oui';
182                        }
183                }
184               
185                elseif(intval($id_liste) !=0){
186                        $query_ = spip_query ("SELECT * FROM spip_listes WHERE id_liste = "._q($id_liste));
187                        $row = spip_fetch_array($query_);
188                        $destinataire = _T('spiplistes:la_liste').' <a href="'.generer_url_ecrire('listes','id_liste='.$id_liste).'">'.$row['titre'].'</a>';
189                        //ajouter le nombre d'inscrits
190                        // ici
191                        $pret_envoi=true;
192                }
193                elseif( ($statut == 'ready' OR $statut == 'encour') && $id_liste == 0){
194                        $destinataire = _T('spiplistes:abonees');
195                        $pret_envoi=true;
196                }
197       
198                echo debut_cadre_relief(_DIR_PLUGIN_SPIPLISTES.'img_pack/stock_mail_send.gif');
199                //echo "tklo $destinataire, $email_test , $id_liste";
200               
201                if($erreur_mail){
202                        echo "<h3>"._T('spiplistes:sans_envoi')."</h3>" ;
203                }
204                if ($statut == 'redac' && !$pret_envoi) {
205                        echo "<span style='font-size:120%;color:red;font-weight:bold'>"._T('spiplistes:message_en_cours')." <br />"._T('spiplistes:modif_envoi')."</span>";
206                }
207               
208                if ($statut == 'ready' && $pret_envoi) {
209                        echo "<span style='font-size:120%;color:red'>
210                        <b>"._T('spiplistes:message_presque_envoye')."</b></span><br /> "._T('spiplistes:a_destination').$destinataire."<br />"._T('spiplistes:confirme_envoi');
211                        echo "<form action='?exec=gerer_courrier&id_message=".$id_message."' method='post'>";
212                        echo "<div style='text-align:center'><input type='submit' name='envoi' value='"._T('spiplistes:envoyer')."' class='fondo' /></div>";
213                        echo "</form>";
214                }
215               
216                if ($statut == 'encour'){
217                        if ($expediteur == $connect_id_auteur  OR ($type == 'nl' AND $connect_statut == '0minirezo') OR ($type == 'auto' AND $connect_statut == '0minirezo')) {
218                                echo "<div style='float:right'>";
219                                echo icone (_T('icone_supprimer_message'), generer_url_ecrire('spip_listes','detruire_message='.$id_message), _DIR_PLUGIN_SPIPLISTES.'img_pack/poubelle_msg.gif', _DIR_PLUGIN_SPIPLISTES.'img_pack/poubelle_msg.gif');
220                                echo "</div>";
221                        }
222                        echo "<p><span style='font-size:120%;color:red'>
223                        <b>"._T('spiplistes:envoi_program')."</b></span><br /> "._T('spiplistes:a_destination').$destinataire."<br /><br />
224                        <a href='?exec=spip_listes'>["._T('spiplistes:voir_historique')."]</a></p>";
225                }
226               
227                if ($statut == 'publie')  {
228                        echo "<span style='font-size:120%;color:red'>
229                        <b>"._T('spiplistes:message_arch')."</b></span>";
230                        echo "<ul>";
231                        echo "<li>"._T('spiplistes:envoyer_a').$destinataire."</li>";
232                        echo "<li>"._T('spiplistes:envoi_date').$date_heure."</li>";
233                        echo "<ul>";
234                        echo "<li>"._T('spiplistes:envoi_debut').$debut_envoi."</li>";
235                        echo "<li>"._T('spiplistes:envoi_fin').$fin_envoi."</li>";
236                        echo "</ul>";
237                        echo "<li>"._T('spiplistes:nbre_abonnes').$total_abonnes."</li>";
238                        echo "<ul>";
239                        echo "<li>"._T('spiplistes:format_html').$nb_emails_html."</li>";
240                        echo "<li>"._T('spiplistes:format_texte').$nb_emails_texte."</li>";
241                        echo "<li>"._T('spiplistes:desabonnes').": ".$nb_emails_non_envoyes."</li>";
242                        echo "</ul>";
243                        echo "<li>"._T('spiplistes:erreur_envoi').$nb_emails_echec."</li>";
244                        echo "</ul>";
245                }
246               
247                echo fin_cadre_relief();
248               
249                $texte_original = $texte;
250                if($statut != 'encour' AND $statut != 'publie' AND $statut != 'ready')
251                        $texte = spiplistes_propre($texte);
252               
253                echo "<div style='margin-top:20px;border: 1px solid $la_couleur; background-color: $couleur_fond; padding: 5px;' class='cadre cadre-r'>"; // debut cadre de couleur
254                //debut_cadre_relief("messagerie-24.gif");
255                echo "<table width=100% cellpadding=0 cellspacing=0 border=0>";
256                echo "<tr><td width=100%>";
257                if ($statut=="redac" OR $statut=="ready") {
258                        echo "<div style='float:right; margin:10px'>";
259                        echo icone (_T('spiplistes:bouton_modifier'),generer_url_ecrire('courrier_edit','id_message='.$id_message), _DIR_PLUGIN_SPIPLISTES."img_pack/stock_mail.gif");
260                        echo "</div>";
261                }
262               
263                echo "<span style='font-size:120%;color:$la_couleur'><b>$le_type</b></span><br />";
264                echo "<h3>$titre</h3>";
265                echo "<br class='nettoyeur' />";
266                echo debut_boite_info();
267                echo _T('spiplistes:version_html')." <a href=\"".generer_url_ecrire('courrier_preview','id_message='.$id_message)."\" title=\""._T('spiplistes:plein_ecran')."\"><small>(+)</small></a><br />\n";
268                echo "<iframe src=\"?exec=courrier_preview&id_message=$id_message\" width=\"100%\" height=\"500\"></iframe>\n";
269                echo fin_boite_info();   
270                echo "<p>";
271                echo debut_boite_info();
272               
273                if($message_texte !=''){
274                        $alt = _T('spiplistes:calcul_patron');
275                }
276                else{
277                        $alt = _T('spiplistes:calcul_html');
278                        $message_texte = spiplistes_version_texte($texte);
279                }
280               
281                echo _T('spiplistes:version_texte')." <a href='#' title='$alt'><small>(?)</small></a><br />";
282               
283                echo "<textarea name='texte' rows='20' class='formo' cols='40' wrap=soft>";
284                echo $message_texte ;
285                echo "</textarea><p>\n";
286               
287                echo fin_boite_info();
288                echo "<br />";
289               
290                if($statut=="redac" OR $statut=="ready"){
291                        //envoi de test
292                        echo "<form action='".generer_url_ecrire('gerer_courrier','id_message='.$id_message)."' method='post'>";
293                        echo debut_boite_info();
294                        echo "<div style='font-size:12px;font-familly:Verdana,Garamond,Times,serif;color:#000000;'>";
295                        if(!$pret_envoi){
296                                echo "<b>"._T('spiplistes:envoi')."</b><p style='font-familly : Georgia,Garamond,Times,serif'>"._T('spiplistes:envoi_texte')."</p>";
297                                echo debut_cadre_enfonce();
298                                echo "<input style='float:left' type='text' name='adresse_test' value='"._T('spiplistes:email_adresse')."' class='fondo' size='35' onfocus=\"this.value=''\" />" ;
299                                echo "<div style='font-size:12px;font-familly:Verdana,Garamond,Times,serif;color:#000000;'>";
300                                echo "<div style='float:right'><input type='submit' name='envoi_test' value='"._T('spiplistes:email_tester')."' class='fondo'  /></div>";
301                                echo "<div style='clear:both;'> </div>";
302                                echo "</div>" ;
303                                echo fin_cadre_enfonce() ;
304                               
305                                $list = spip_query ("SELECT * FROM spip_listes WHERE statut = 'liste' OR statut = 'inact' ");
306                                echo "<div style='font-size:14px;font-weight:bold'>"._T('spiplistes:destinataires')."</div>";
307                                echo "<div style='float:right'><input type='submit' name='choisir_dest' value='"._T('spiplistes:choisir_cette')."' class='fondo' /></div>";
308                                echo "<select name='destinataire' >";
309                                echo "<option value='tous'>"._T('spiplistes:toutes')."</option>" ;
310                                while($row = spip_fetch_array($list)) {
311                                        $id_liste = $row['id_liste'] ;
312                                        $titre = $row['titre'] ;
313                                        echo "<option value='$id_liste'>$titre</option>" ;
314                                }
315                                echo "</select>";
316                        }
317                        else{
318                                echo "<p style='text-align:center;font-weight:bold'>"._T('spiplistes:confirme_envoi')."</p>";
319                        }
320                }
321                echo "</div>";
322
323                echo fin_boite_info();
324                echo "</form>";
325
326                echo "</td></tr></table>";
327                if($statut != 'publie'){
328                        echo "<div style='margin:auto;margin-top:10px'>";
329                        echo icone (_T('icone_supprimer_message'), '?exec=spip_listes&detruire_message='.$id_message, _DIR_PLUGIN_SPIPLISTES.'img_pack/poubelle_msg.gif', _DIR_PLUGIN_SPIPLISTES.'img_pack/poubelle_msg.gif');
330                        echo "</div>";
331                }
332                echo "</div>"; // fin du cadre de couleur
333               
334                echo "<p style='font-family: Arial, Verdana,sans-serif;font-size:10px;font-weight:bold'>".$GLOBALS['spiplistes_version']."<p>" ;
335               
336        }//while               
337
338        echo fin_gauche(), fin_page();
339}
340/******************************************************************************************/
341/* SPIP-listes est un systï¿œe de gestion de listes d'abonnï¿œ et d'envoi d'information     */
342/* par email  pour SPIP.                                                                  */
343/* Copyright (C) 2004 Vincent CARON  v.caron<at>laposte.net , http://bloog.net            */
344/*                                                                                        */
345/* Ce programme est libre, vous pouvez le redistribuer et/ou le modifier selon les termes */
346/* de la Licence Publique Gᅵᅵale GNU publiï¿œ par la Free Software Foundation            */
347/* (version 2).                                                                           */
348/*                                                                                        */
349/* Ce programme est distribuï¿œcar potentiellement utile, mais SANS AUCUNE GARANTIE,       */
350/* ni explicite ni implicite, y compris les garanties de commercialisation ou             */
351/* d'adaptation dans un but spï¿œifique. Reportez-vous ï¿œla Licence Publique Gᅵᅵale GNU  */
352/* pour plus de dï¿œails.                                                                  */
353/*                                                                                        */
354/* Vous devez avoir reï¿œ une copie de la Licence Publique Gᅵᅵale GNU                    */
355/* en mï¿œe temps que ce programme ; si ce n'est pas le cas, ï¿œrivez ï¿œla                  */
356/* Free Software Foundation,                                                              */
357/* Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, ï¿œats-Unis.                   */
358/******************************************************************************************/
359?>
Note: See TracBrowser for help on using the repository browser.