1 | <?php |
---|
2 | /******************************************************************************************/ |
---|
3 | /* SPIP-Listes est un systeme de gestion de listes d'abonnes et d'envoi d'information */ |
---|
4 | /* par email pour SPIP. http://bloog.net/spip-listes */ |
---|
5 | /* Copyright (C) 2004 Vincent CARON v.caron<at>laposte.net */ |
---|
6 | /* */ |
---|
7 | /* Ce programme est libre, vous pouvez le redistribuer et/ou le modifier selon les termes */ |
---|
8 | /* de la Licence Publique Generale GNU publiee par la Free Software Foundation */ |
---|
9 | /* (version 2). */ |
---|
10 | /* */ |
---|
11 | /* Ce programme est distribue 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 specifique. Reportez-vous à la Licence Publique Generale GNU */ |
---|
14 | /* pour plus de détails. */ |
---|
15 | /* */ |
---|
16 | /* Vous devez avoir reçu une copie de la Licence Publique Generale GNU */ |
---|
17 | /* en meme temps que ce programme ; si ce n'est pas le cas, ecrivez a la */ |
---|
18 | /* Free Software Foundation, */ |
---|
19 | /* Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, Etats-Unis. */ |
---|
20 | /******************************************************************************************/ |
---|
21 | |
---|
22 | // API a enrichir |
---|
23 | |
---|
24 | // ajouter les abonnes d'une liste a un envoi |
---|
25 | function remplir_liste_envois($id_courrier,$id_liste){ |
---|
26 | if($id_liste==0) |
---|
27 | $result_m = spip_query("SELECT id_auteur FROM spip_auteurs ORDER BY id_auteur ASC"); |
---|
28 | else |
---|
29 | $result_m = spip_query("SELECT id_auteur FROM spip_auteurs_listes WHERE id_liste="._q($id_liste)); |
---|
30 | |
---|
31 | while($row_ = spip_fetch_array($result_m)) { |
---|
32 | $id_abo = $row_['id_auteur']; |
---|
33 | spip_query("INSERT INTO spip_auteurs_courriers (id_auteur,id_courrier,statut,maj) VALUES ("._q($id_abo).","._q($id_courrier).",'a_envoyer', NOW()) "); |
---|
34 | } |
---|
35 | $res = spip_query("SELECT COUNT(id_auteur) AS n FROM spip_auteurs_courriers WHERE id_courrier="._q($id_courrier)." AND statut='a_envoyer'"); |
---|
36 | if ($row = spip_fetch_array($res)) |
---|
37 | spip_query("UPDATE spip_courriers SET total_abonnes="._q($row['n'])." WHERE id_courrier="._q($id_courrier)); |
---|
38 | } |
---|
39 | |
---|
40 | // Nombre d'abonnes a une liste |
---|
41 | function spip_listes_nb_abonnes_liste($id_liste){ |
---|
42 | $row = spip_fetch_array(spip_query("SELECT COUNT(id_auteur) AS n FROM spip_auteurs_listes WHERE id_liste=$id_liste")); |
---|
43 | $nb_abo = ( $row['n'] >1)? $row['n']." abonnés" : $row['n']." abonné"; |
---|
44 | return "(".$nb_abo.")"; |
---|
45 | } |
---|
46 | |
---|
47 | |
---|
48 | //taille d'une chaine sans saut de lignes ni espaces |
---|
49 | function spip_listes_strlen($out){ |
---|
50 | $out = preg_replace("/(\r\n|\n|\r| )+/", "", $out); |
---|
51 | return $out ; |
---|
52 | } |
---|
53 | |
---|
54 | |
---|
55 | //desabonner des listes publiques |
---|
56 | function spiplistes_desabonner($id_auteur){ |
---|
57 | $listes = spip_query ("SELECT * FROM spip_listes WHERE statut = 'liste'"); |
---|
58 | while($row = spip_fetch_array($listes)) { |
---|
59 | $id_liste = $row['id_liste'] ; |
---|
60 | $result=spip_query("DELETE FROM spip_auteurs_listes WHERE id_auteur="._q($id_auteur)." AND id_liste="._q($id_liste)); |
---|
61 | } |
---|
62 | $result=spip_query("UPDATE `spip_auteurs_elargis` SET `spip_listes_format`='non' WHERE `id_auteur` ="._q($id_auteur)); |
---|
63 | } |
---|
64 | |
---|
65 | |
---|
66 | //function spiplistes_propre($texte) |
---|
67 | // passe propre() sur un texte puis nettoye les trucs rajoutes par spip sur du html |
---|
68 | // ca s'utilise pour afficher un courrier dans l espace prive |
---|
69 | // on l'applique au courrier avant de confirmer l'envoi |
---|
70 | function spiplistes_propre($texte){ |
---|
71 | $temp_style = ereg("<style[^>]*>[^<]*</style>", $texte, $style_reg); |
---|
72 | if (isset($style_reg[0])) |
---|
73 | $style_str = $style_reg[0]; |
---|
74 | else |
---|
75 | $style_str = ""; |
---|
76 | $texte = ereg_replace("<style[^>]*>[^<]*</style>", "__STYLE__", $texte); |
---|
77 | //passer propre si y'a pas de html (balises fermantes) |
---|
78 | if( !preg_match(',</?('._BALISES_BLOCS.')[>[:space:]],iS', $texte) ) |
---|
79 | $texte = propre($texte); // pb: enleve aussi <style>... |
---|
80 | $texte = propre_bloog($texte); //nettoyer les spip class truc en trop |
---|
81 | $texte = ereg_replace("__STYLE__", $style_str, $texte); |
---|
82 | //les liens avec double début #URL_SITE_SPIP/#URL_ARTICLE |
---|
83 | $texte = ereg_replace($GLOBALS['meta']['adresse_site']."/".$GLOBALS['meta']['adresse_site'], $GLOBALS['meta']['adresse_site'], $texte); |
---|
84 | $texte = liens_absolus($texte); |
---|
85 | |
---|
86 | return $texte; |
---|
87 | } |
---|
88 | |
---|
89 | |
---|
90 | /******************************************************************************************/ |
---|
91 | /* SPIP-Listes est un systeme de gestion de listes d'abonnes et d'envoi d'information */ |
---|
92 | /* par email pour SPIP. http://bloog.net/spip-listes */ |
---|
93 | /* Copyright (C) 2004 Vincent CARON v.caron<at>laposte.net */ |
---|
94 | /* */ |
---|
95 | /* Ce programme est libre, vous pouvez le redistribuer et/ou le modifier selon les termes */ |
---|
96 | /* de la Licence Publique Generale GNU publiee par la Free Software Foundation */ |
---|
97 | /* (version 2). */ |
---|
98 | /* */ |
---|
99 | /* Ce programme est distribue car potentiellement utile, mais SANS AUCUNE GARANTIE, */ |
---|
100 | /* ni explicite ni implicite, y compris les garanties de commercialisation ou */ |
---|
101 | /* d'adaptation dans un but specifique. Reportez-vous à la Licence Publique Generale GNU */ |
---|
102 | /* pour plus de détails. */ |
---|
103 | /* */ |
---|
104 | /* Vous devez avoir reçu une copie de la Licence Publique Generale GNU */ |
---|
105 | /* en meme temps que ce programme ; si ce n'est pas le cas, ecrivez a la */ |
---|
106 | /* Free Software Foundation, */ |
---|
107 | /* Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, Etats-Unis. */ |
---|
108 | /******************************************************************************************/ |
---|
109 | ?> |
---|