source: spip-zone/_plugins_/abomailmans/genie/abomailmans_envois.php @ 44015

Last change on this file since 44015 was 44015, checked in by kent1@…, 9 years ago

Pas de cron car il ne marche pas et provoque des erreurs sql car pas de champs periodicité

  • Property svn:executable set to *
File size: 3.9 KB
Line 
1<?php
2/*
3 * Plugin Abomailmanss
4 * (c) 2009 SPIP
5 * Distribue sous licence GPL
6 *
7 */
8
9if (!defined("_ECRIRE_INC_VERSION")) return;
10include_spip('inc/abomailmans');
11include_spip('inc/distant');
12
13// 20 minutes de repit avant abomailmans (+0 a 10 minutes de cron)
14#define('_DELAI_ABOMAILMANS_MESSAGERIE', 60 * 20);
15
16// Les abomailmans de chaque liste peuvent se faire par cron
17// base sur les champs remplis de chaque liste
18// automatique tout les /periodicite/ jours
19
20function genie_abomailmans_envois_dist($time) {
21       
22        // Les listes dont la date_envoi < maintenant+periodicite
23        //pour tester on peut mettre � MINUTE penser � remettre � DAY !!
24        //$where = "periodicite!='' AND desactive='0' AND email!=''
25        //AND date_envoi < DATE_SUB(NOW(), INTERVAL periodicite DAY)";
26        //$id_liste = sql_getfetsel("id_abomailman", "spip_abomailmans", $where, '', "date_envoi", "1");
27         
28        //if ($id_liste) {
29        //      spip_log("il faut traiter liste id=$id_liste","abomailmans");
30        //      $res2 = liste_a_jour($id_liste);
31        //} else $res2 = true;
32       
33# nul, si la t�che n�a rien � faire
34# positif, si la t�che a �t� trait�e
35# n�gatif, si la t�che a commenc�, mais doit se poursuivre. Cela permet d�effectuer des t�ches par lots (pour �viter des timeout sur les ex�cutions des scripts PHP � cause de traitements trop longs).
36# Dans ce cas l�, le nombre n�gatif indiqu� correspond au nombre de secondes d�intervalle pour la prochaine ex�cution.
37
38        //return ($res1 OR $res2) ? 0 : $id_liste;
39}       
40       
41       
42
43function liste_a_jour($id_liste) {
44        $t = sql_fetsel("*", "spip_abomailmans", "id_abomailman=$id_liste");
45        if(!$t) { 
46                spip_log("requete null ...","abomailmans");
47                return;
48        } else spip_log("envoi test� avec cron abomailmans","abomailmans");
49               
50        $datas = array();
51        $nom_site = lire_meta("nom_site");
52        $email_webmaster = lire_meta("email_webmaster");
53        $charset = lire_meta('charset');
54
55
56                $sujet=$t['titre']; 
57                $date_envoi=$t['date_envoi']; 
58                $email_receipt=$t['email'];
59                $modele_defaut=$t['modele_defaut'];
60               
61                $recuptemplate = explode('&',$modele_defaut);
62                       
63                        include_spip('abomailmans_fonctions');
64                        $paramplus = recup_param($modele_defaut); //pour url
65                        $periodicite=intval($t['periodicite']);
66                //la page � envoyer doit �tre test� � maintenant moins periodicite
67                        $time = time() - (3600 * 24 * $periodicite);
68                //construction du query
69                                parse_str($paramplus,$query);
70                                $query['id_abomailman'] = $t['id_abomailman'];
71                                $query['template'] = $recuptemplate[0];
72                                $query['date'] = date('Y-m-d H:i:s', $time);
73                                 
74                //on peut verifier le fond grace � l'url
75                $url_genere = generer_url_public('abomailman_template',$query,'&'); 
76                $fond = recuperer_fond('abomailman_template',$query);
77       
78        $body = array(
79        'html'=>$fond,
80        ); 
81       
82        //Si la page renvoie un contenu
83        if (strlen($fond) > 10) {
84                               
85                // email denvoi depuis config facteur
86                if ($GLOBALS['meta']['facteur_adresse_envoi'] == 'oui'
87                          AND $GLOBALS['meta']['facteur_adresse_envoi_email'])
88                                $from_email = $GLOBALS['meta']['facteur_adresse_envoi_email'];
89                        else
90                                $from_email = $email_webmaster;
91                // nom denvoi depuis config facteur
92                if ($GLOBALS['meta']['facteur_adresse_envoi'] == 'oui'
93                          AND $GLOBALS['meta']['facteur_adresse_envoi_nom'])
94                                $from_nom = $GLOBALS['meta']['facteur_adresse_envoi_nom'];
95                        else
96                                $from_nom = $nom_site;
97                               
98                if (abomailman_mail($from_nom, $from_email, "", $email_receipt, $sujet,$body, true, $charset)) {
99                        spip_log("envoi ok = $url_genere tous les $periodicite jours sujet =".$sujet,"abomailmans");
100                        }
101        }
102        else spip_log("maintenant=".date('Y-m-d H:i:s', time())." date demande = ".$query['date']." non envoye =$url_genere : rien de neuf depuis $periodicite jours","abomailmans"); 
103       
104        // Noter que l'envoi est OK meme si envoi echoue faute de contenu, on reessaiera dans /periodicite/ jours
105        sql_updateq("spip_abomailmans", array("date_envoi" => date('Y-m-d H:i:s', time())), "id_abomailman=".$t['id_abomailman']);
106       
107        return false; # c'est bon
108}
109
110?>
Note: See TracBrowser for help on using the repository browser.