source: spip-zone/_plugins_/Association/Associaspip/action/modifier_relances.php @ 48017

Last change on this file since 48017 was 48017, checked in by jeannolapin@…, 10 years ago

Associaspip Passage du formulaire des mails de relance en CVT ce qui permet d'avoir un retour sur les mails envoyés(succes/echec/nombre de mails envoyes/membres sans emais)

File size: 2.4 KB
Line 
1<?php
2/***************************************************************************\
3 *  Associaspip, extension de SPIP pour gestion d'associations             *
4 *                                                                         *
5 *  Copyright (c) 2007 Bernard Blazin & François de Montlivault (V1)       *
6 *  Copyright (c) 2010-2011 Emmanuel Saint-James & Jeannot Lapin (V2)       *
7 *                                                                         *
8 *  Ce programme est un logiciel libre distribue sous licence GNU/GPL.     *
9 *  Pour plus de details voir le fichier COPYING.txt ou l'aide en ligne.   *
10\***************************************************************************/
11
12
13if (!defined("_ECRIRE_INC_VERSION")) return;
14
15// envoi du mail aux destinataires sélectionnés et chgt du statut de relance
16
17function action_modifier_relances() {
18               
19        $securiser_action = charger_fonction('securiser_action', 'inc');
20        $count = $securiser_action();
21
22        $sujet = _request('sujet');
23        $message=html_entity_decode(_request('message'), ENT_QUOTES, 'UTF-8');
24        $statut_tab=(isset($_POST["statut"])) ? $_POST["statut"]:array(); /* contient un tableau id_auteur => statut_interne */
25
26        $adresse=$GLOBALS['association_metas']['email'];
27        $exp=$GLOBALS['association_metas']['nom'].'<'.$adresse.'>'; 
28        $envoyer_mail = charger_fonction('envoyer_mail', 'inc');
29       
30        /* on recupere les adresses emails de tous les auteurs selectionnes */
31        include_spip('inc/association_coordonnees');
32        $emails_auteurs = association_recuperer_emails(array_keys($statut_tab)); /* cette fonction renvoie un tableau auteur_id => array(emails) */
33
34        /* initialise les valeurs retournees */
35        $emails_envoyes_ok = 0;
36        $emails_envoyes_echec = 0;
37        $nb_membres_avec_email = 0;
38        $membres_sans_email = array();
39
40        foreach ($emails_auteurs as $id_auteur => $emails) {
41                /* identification des membres avec ou sans email */
42                if (count($emails)) {
43                        $nb_membres_avec_email++;
44                } else {
45                        $membres_sans_email[]=$id_auteur;
46                }
47
48                /* envoi des mails */
49                foreach ($emails as $email) {
50                        if (!$envoyer_mail($email, $sujet, $message, $exp)) {
51                                $emails_envoyes_echec++;
52                                spip_log("non envoi du mail a ".$email);
53                        } elseif ($statut_tab[$id]=="echu") {
54                                $emails_envoyes_ok++;
55                                sql_updateq('spip_asso_membres', 
56                                        array("statut_interne"=> 'relance'),
57                                        "id_auteur=$id_auteur");
58                        }
59                }
60        }
61
62        return array($emails_envoyes_ok, $emails_envoyes_echec, $nb_membres_avec_email, $membres_sans_email);
63}
64?>
Note: See TracBrowser for help on using the repository browser.