source: trunk/spip/esqueleto-redcta/plugins/spip-listes_1_9_2/inc/spiplistes_cron.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: 7.3 KB
Line 
1<?php
2
3/******************************************************************************************/
4/* SPIP-listes est un systeme de gestion de listes d'abonnes et d'envoi d'information     */
5/* par email  pour SPIP.                                                                  */
6/* Copyright (C) 2004 Vincent CARON  v.caron<at>laposte.net , http://bloog.net            */
7/*                                                                                        */
8/* Ce programme est libre, vous pouvez le redistribuer et/ou le modifier selon les termes */
9/* de la Licence Publique Generale GNU publiee par la Free Software Foundation            */
10/* (version 2).                                                                           */
11/*                                                                                        */
12/* Ce programme est distribue car potentiellement utile, mais SANS AUCUNE GARANTIE,       */
13/* ni explicite ni implicite, y compris les garanties de commercialisation ou             */
14/* d'adaptation dans un but specifique. Reportez-vous a la Licence Publique Generale GNU  */
15/* pour plus de details.                                                                  */
16/*                                                                                        */
17/* Vous devez avoir recu une copie de la Licence Publique Generale GNU                    */
18/* en meme temps que ce programme ; si ce n'est pas le cas, ecrivez a la                  */
19/* Free Software Foundation,                                                              */
20/* Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, etats-Unis.                   */
21/******************************************************************************************/
22
23function cron_spiplistes_cron($t){
24
25        $nomsite = $GLOBALS['meta']['nom_site'];
26       
27        // ---------------------------------------------------------------------------------------------
28        // Taches de fond
29       
30        //
31        // Envoi du mail quoi de neuf
32        //
33       
34        $time = time();
35        spip_log("liste meleuse cron");
36               
37        // Verifier toutes les listes et determiner les dates d'envoi
38       
39        $list_bg = spip_query ("SELECT * FROM spip_listes WHERE statut = 'liste' OR statut = 'inact'");
40       
41        while($row = spip_fetch_array($list_bg)) {
42       
43                $id_liste_bg = $row['id_liste'] ;
44                $titre_bg = $row['titre'] ;
45                $titre_message = $row['titre_message'] ;
46                $last_maj_bg = strtotime($row["maj"]);
47                $auto_bg =  $row["message_auto"];
48                $periode_bg = $row["periode"];
49       
50               
51                $temps = $time - $last_maj_bg ;
52                $top = 3600 * 24 * $periode_bg ;
53               
54                if ( ($auto_bg == 'oui') AND ($periode_bg > 0) AND ( $temps > $top) ) {
55                spip_log("la liste $id_liste_bg demande un envoi");
56                        //squelette du patron
57                        $patron = $row["patron"] ;
58                        $lang_bg = $row["lang"];
59                        spip_log('->'.$lang_bg);
60                        //Maj de la date d'envoi
61                        spip_query("UPDATE spip_listes SET maj=NOW() WHERE id_liste="._q($id_liste_bg)); 
62       
63               
64                        // preparation mail
65                       
66                        $date = date('Y-m-d H:i:s',$last_maj_bg) ;
67                       
68                        include_spip('public/assembler');
69                        $contexte_patron = array('date' => $date,'patron'=>$patron, 'lang'=>$lang_bg);
70                        $texte_patron_bg = recuperer_fond('patrons/'.$patron, $contexte_patron);
71                        //$texte_patron_bg = recuperer_page(generer_url_public('patron_switch',"patron=$patron&date=$date",true)) ;             
72                       
73                        $titre_patron_bg = ($titre_message =="") ? $titre_bg." de ".$nomsite : $titre_message;
74                        $titre_bg = $titre_patron_bg;
75                       
76                        spip_log("Message choppe -> $titre".$titre_bg, "spiplistes");
77       
78                        // ne pas envoyer des textes de moins de 10 caracteres
79                        include_spip('inc/spiplistes_api');
80                        $taille = strlen(spip_listes_strlen(spiplistes_version_texte($texte_patron_bg))) ;
81                        spip_log("taille -> $taille","spiplistes");
82                        //spip_log("txt -> ".spiplistes_version_texte($texte_patron_bg),"spiplistes");
83       
84                        if ( $taille > 10 ) {
85       
86                                        include_spip('inc/filtres');
87                                        $texte_patron_bg = liens_absolus($texte_patron_bg);
88                                        // si un mail a pu etre genere, on l'ajoute a la pile d'envoi
89                                        $type_bg = 'auto';
90                                        $statut_bg = 'encour';
91                                       
92                                        // creer le courrier
93                                        $result = spip_query("INSERT INTO spip_courriers (titre, texte, date, statut, type, id_auteur, id_liste)
94                                                VALUES ("._q($titre_bg).","._q($texte_patron_bg).", NOW(),"._q($statut_bg).","._q($type_bg).", '1',"._q($id_liste_bg).")");
95                                       
96                                        $id_message_bg = spip_insert_id();
97                                       
98                                        //generer la pile d'envoi
99                                         remplir_liste_envois($id_message_bg,$id_liste_bg);
100                                        spip_log("remplir courrier $id_message_bg, liste : $id_liste_bg");
101                                } else {
102                                        spip_log("envoi mail nouveautes : pas de nouveautes ->$taille");
103                                               
104                                        $type_bg = 'auto';
105                                        $statut_bg = 'publie';
106       
107                                        $result = spip_query("INSERT INTO spip_courriers (titre, texte, date, statut, type, id_auteur, id_liste)
108                                         VALUES ("._q(_L("Pas d'envoi"))
109                                         .","._q(_L("aucune nouveaut&eacute;, le mail automatique n'a pas &eacute;t&eacute; envoy&eacute;"))
110                                         .", NOW(),"._q($statut_bg).","._q($type_bg).", '1' ,"._q($id_liste_bg)." )");
111                                        $id_message_bg = spip_insert_id();
112                       
113                                } // y'a du neuf
114                } // c'est l'heure
115       
116        }// fin du test nb listes
117       
118        /**************/
119       
120        // Envoi d'un mail automatique ?
121        $result_pile = spip_query("SELECT COUNT(id_courrier) AS n FROM spip_courriers WHERE statut='encour'");
122        if (($row = spip_fetch_array($result_pile)) && $row['n']){
123                spip_log("appel meleuse");
124                include_spip('inc/spiplistes_meleuse');
125               
126                $result_pile = spip_query("SELECT COUNT(id_courrier) AS n FROM spip_courriers WHERE statut='encour'");
127                if (($row = spip_fetch_array($result_pile)) && $row['n']){
128                        spip_log("spiplistes cron : il reste des courriers a envoyer !");
129                        return (0 - $t);
130                }
131        }
132        return 1; 
133}
134
135/******************************************************************************************/
136/* SPIP-listes est un systeme de gestion de listes d'abonnes et d'envoi d'information     */
137/* par email  pour SPIP.                                                                  */
138/* Copyright (C) 2004 Vincent CARON  v.caron<at>laposte.net , http://bloog.net            */
139/*                                                                                        */
140/* Ce programme est libre, vous pouvez le redistribuer et/ou le modifier selon les termes */
141/* de la Licence Publique Generale GNU publiee par la Free Software Foundation            */
142/* (version 2).                                                                           */
143/*                                                                                        */
144/* Ce programme est distribue car potentiellement utile, mais SANS AUCUNE GARANTIE,       */
145/* ni explicite ni implicite, y compris les garanties de commercialisation ou             */
146/* d'adaptation dans un but specifique. Reportez-vous a la Licence Publique Generale GNU  */
147/* pour plus de details.                                                                  */
148/*                                                                                        */
149/* Vous devez avoir recu une copie de la Licence Publique Generale GNU                    */
150/* en meme temps que ce programme ; si ce n'est pas le cas, ecrivez a la                  */
151/* Free Software Foundation,                                                              */
152/* Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, etats-Unis.                   */
153/******************************************************************************************/
154
155?>
Note: See TracBrowser for help on using the repository browser.