[90] | 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 | ?> |
---|