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 | |
---|
22 | if (!defined("_ECRIRE_INC_VERSION")) return; |
---|
23 | |
---|
24 | include_spip('inc/presentation'); |
---|
25 | include_spip('inc/barre'); |
---|
26 | include_spip('inc/affichage'); |
---|
27 | include_spip('base/spip-listes'); |
---|
28 | |
---|
29 | function 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 | ?> |
---|