source: pmb4.1/trunk/fuentes/pmb/admin/planificateur/mailing/mailing.class.php @ 478

Last change on this file since 478 was 478, checked in by mabarracus, 4 years ago

copy trusty code 4.1

  • Property svn:executable set to *
File size: 5.2 KB
Line 
1<?php
2// +-------------------------------------------------+
3// © 2002-2004 PMB Services / www.sigb.net pmb@sigb.net et contributeurs (voir www.sigb.net)
4// +-------------------------------------------------+
5// $Id: mailing.class.php,v 1.1 2012-07-31 10:12:16 dgoron Exp $
6
7global $class_path, $include_path;
8require_once($include_path."/parser.inc.php");
9require_once($class_path."/tache.class.php");
10require_once($class_path."/mailtpl.class.php");
11require_once($class_path."/empr_caddie.class.php");
12
13class mailing extends tache {
14       
15        function mailing($id_tache=0){
16                global $base_path;
17               
18                parent::get_messages($base_path."/admin/planificateur/".get_class());
19                $this->id_tache = $id_tache;
20        }
21       
22        //formulaire spécifique au type de tâche
23        function show_form ($param='') {
24                global $dbh, $PMBuserid;
25               
26                //paramètres pré-enregistré
27                if ($param['mailtpl_id']) {
28                        $id_sel = $param['mailtpl_id'];
29                } else {
30                        $id_sel=0;
31                }
32                if ($param['empr_caddie']) {
33                        $idemprcaddie_sel = $param['empr_caddie'];
34                } else {
35                        $idemprcaddie_sel = 0;
36                }
37               
38                $mailtpl = new mailtpls();
39
40                //Choix du template de mail
41                $form_task .= "
42                <div class='row'>
43                        <div class='colonne3'>
44                                <label for='mailing_template'>".$this->msg["planificateur_mailing_template"]."</label>
45                        </div>
46                        <div class='colonne_suite' >
47                                ".$mailtpl->get_sel('mailtpl_id',$id_sel)."
48                        </div>
49                </div>
50                <div class='row' >&nbsp;</div>";
51               
52                $liste = empr_caddie::get_cart_list();
53                $gen_select_empr_caddie = "<select name='empr_caddie' id='empr_caddie'>";
54                if (sizeof($liste)) {
55                        while (list($cle, $valeur) = each($liste)) {
56                                $rqt_autorisation=explode(" ",$valeur['autorisations']);
57                                if (array_search ($PMBuserid, $rqt_autorisation)!==FALSE || $PMBuserid==1) {
58                                        if($valeur['idemprcaddie']==$idemprcaddie_sel){
59                                                $gen_select_empr_caddie .= "<option value='".$valeur['idemprcaddie']."' selected='selected'>".$valeur['name']."</option>";
60                                        } else {
61                                                $gen_select_empr_caddie .= "<option value='".$valeur['idemprcaddie']."'>".$valeur['name']."</option>";
62                                        }               
63                                       
64                                }
65                        }       
66                }
67                $gen_select_empr_caddie .= "</select>";
68
69                //Choix du panier d'emprunteurs
70                $form_task .= "<div class='row'>
71                        <div class='colonne3'>
72                                <label for='mailing_caddie'>".$this->msg["planificateur_mailing_caddie_empr"]."</label>
73                        </div>
74                        <div class='colonne_suite'>
75                                ".$gen_select_empr_caddie."
76                        </div>
77                </div>";       
78                       
79                return $form_task;
80        }
81       
82        function task_execution() {
83                global $dbh,$msg, $PMBusername;
84               
85                if (SESSrights & CIRCULATION_AUTH) {
86                        $parameters = $this->unserialize_task_params(); 
87                        if ($parameters['empr_caddie'] && $parameters['mailtpl_id']) { 
88                                $percent = 0;
89                                if($this->statut == WAITING) {
90                                        $this->send_command(RUNNING);
91                                }
92                                if($this->statut == RUNNING) {
93                                        if (method_exists($this->proxy, 'pmbesMailing_sendMailingCaddie')) {
94                                                $result = $this->proxy->pmbesMailing_sendMailingCaddie($parameters['empr_caddie'], $parameters['mailtpl_id']);
95                                                if ($result) {
96                                                        $this->report[] = "<tr><td>
97                                                                <h1>$msg[empr_mailing_titre_resultat]</h1>
98                                                                <strong>$msg[admin_mailtpl_sel]</strong>
99                                                                ".htmlentities($result["name"],ENT_QUOTES,$charset)."<br />
100                                                                <strong>$msg[empr_mailing_form_obj_mail]</strong>
101                                                                ".htmlentities($result["object_mail"],ENT_QUOTES,$charset)."
102                                                                </td></tr>";
103                                                       
104                                                        $tpl_report = "<tr><td>
105                                                                <strong>$msg[empr_mailing_resultat_envoi]</strong>";
106                                                        $msg[empr_mailing_recap_comptes] = str_replace("!!total_envoyes!!", $result["nb_mail_sended"], $msg[empr_mailing_recap_comptes]) ;
107                                                        $msg[empr_mailing_recap_comptes] = str_replace("!!total!!", $result["nb_mail"], $msg[empr_mailing_recap_comptes]) ;
108                                                        $tpl_report .= $msg[empr_mailing_recap_comptes] ;
109                                                       
110                                                        $sql = "select id_empr, empr_mail, empr_nom, empr_prenom from empr, empr_caddie_content where flag='2' and empr_caddie_id=".$parameters['empr_caddie']." and object_id=id_empr ";
111                                                        $sql_result = mysql_query($sql) ;
112                                                        if (mysql_num_rows($sql_result)) {
113                                                                $tpl_report .= "<hr /><div class='row'>
114                                                                        <strong>$msg[empr_mailing_liste_erreurs]</strong> 
115                                                                        </div>";
116                                                                while ($obj_erreur=mysql_fetch_object($sql_result)) {
117                                                                        $tpl_report .= "<div class='row'>
118                                                                                ".$obj_erreur->empr_nom." ".$obj_erreur->empr_prenom." (".$obj_erreur->empr_mail.")
119                                                                                </div>
120                                                                                ";
121                                                                }
122                                                        }
123                                                        $tpl_report .= "</td></tr>";
124
125                                                        $this->report[] = $tpl_report;
126                                                        $this->update_progression(100);
127                                                }       
128                                        } else {
129                                                $this->report[] = "<tr><td>".sprintf($msg["planificateur_function_rights"],"sendMailingCaddie","pmbesMailing",$PMBusername)."</td></tr>";
130                                        }
131                                }
132                        } else {
133                                $this->report[] = "<tr><td>".$this->msg["mailing_unknown"]."</td></tr>";
134                        }
135                } else {
136                        $this->report[] = "<tr><th>".sprintf($msg["planificateur_rights_bad_user_rights"], $PMBusername)."</th></tr>";
137                }
138        }
139
140        function make_serialized_task_params() {
141        global $empr_caddie, $mailtpl_id;
142                $t = parent::make_serialized_task_params();
143               
144                $t["empr_caddie"] = $empr_caddie;
145                $t["mailtpl_id"] = $mailtpl_id;
146
147        return serialize($t);
148        }
149       
150        function unserialize_task_params() {
151        $params = $this->get_task_params();
152               
153                return $params;
154    }
155}
Note: See TracBrowser for help on using the repository browser.