[ Index ]
 

Code source de Dolibarr 2.0.1

Accédez au Source d'autres logiciels libres

Classes | Fonctions | Variables | Constantes | Tables

title

Body

[fermer]

/htdocs/includes/modules/mailings/ -> fraise.modules.php (source)

   1  <?php
   2  /* Copyright (C) 2005 Laurent Destailleur <eldy@users.sourceforge.net>
   3   *
   4   * This program is free software; you can redistribute it and/or modify
   5   * it under the terms of the GNU General Public License as published by
   6   * the Free Software Foundation; either version 2 of the License, or
   7   * (at your option) any later version.
   8   *
   9   * This program is distributed in the hope that it will be useful,
  10   * but WITHOUT ANY WARRANTY; without even the implied warranty of
  11   * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  12   * GNU General Public License for more details.
  13   *
  14   * You should have received a copy of the GNU General Public License
  15   * along with this program; if not, write to the Free Software
  16   * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
  17   * or see http://www.gnu.org/
  18   *
  19   * $Id: fraise.modules.php,v 1.5 2005/11/08 00:21:49 eldy Exp $
  20   * $Source: /cvsroot/dolibarr/dolibarr/htdocs/includes/modules/mailings/fraise.modules.php,v $
  21   *
  22   *
  23   * L'utilisation d'adresses de courriers électroniques dans les opérations
  24   * de prospection commerciale est subordonnée au recueil du consentement 
  25   * préalable des personnes concernées.
  26   *
  27   * Le dispositif juridique applicable a été introduit par l'article 22 de 
  28   * la loi du 21 juin 2004  pour la confiance dans l'économie numérique.
  29   *
  30   * Les dispositions applicables sont définies par les articles L. 34-5 du 
  31   * code des postes et des télécommunications et L. 121-20-5 du code de la 
  32   * consommation. L'application du principe du consentement préalable en 
  33   * droit français résulte de la transposition de l'article 13 de la Directive 
  34   * européenne du 12 juillet 2002 « Vie privée et communications électroniques ». 
  35   *
  36   */
  37  
  38  /**
  39             \file       htdocs/includes/modules/mailings/fraise.modules.php
  40          \ingroup    mailing
  41          \brief      Fichier de la classe permettant de générer la liste de destinataires Fraise
  42          \version    $Revision: 1.5 $
  43  */
  44  
  45  include_once DOL_DOCUMENT_ROOT.'/includes/modules/mailings/modules_mailings.php';
  46  
  47  
  48  /**
  49          \class      mailing_fraise
  50          \brief      Classe permettant de générer la liste des destinataires Fraise
  51  */
  52  
  53  class mailing_fraise extends MailingTargets
  54  {
  55      var $name='FundationMembers';                    // Identifiant du module mailing
  56      var $desc='Membres de l\'association';           // Libellé utilisé si aucune traduction pour MailingModuleDescXXX ou XXX=name trouvée
  57      var $require_module=array('adherent');  // Module mailing actif si modules require_module actifs
  58      var $require_admin=0;                   // Module mailing actif pour user admin ou non
  59      var $picto='user';
  60      
  61      var $db;
  62      var $statssql=array();
  63  
  64  
  65      function mailing_fraise($DB)
  66      {
  67          global $langs;
  68          $langs->load("members");
  69          
  70          $this->db=$DB;
  71  
  72          // Liste des tableaux des stats espace mailing
  73          $this->statssql[0]="SELECT '".addslashes($langs->trans("FundationMembers"))."' as label, count(*) as nb FROM ".MAIN_DB_PREFIX."adherent where statut = 1";
  74      }
  75      
  76      function getNbOfRecipients()
  77      {
  78          // La requete doit retourner: nb
  79          $sql  = "SELECT count(distinct(a.email)) as nb";
  80          $sql .= " FROM ".MAIN_DB_PREFIX."adherent as a";
  81          $sql .= " WHERE a.email IS NOT NULL";
  82  
  83          return parent::getNbOfRecipients($sql); 
  84      }
  85      
  86      /**
  87       *      \brief      Affiche formulaire de filtre qui apparait dans page de selection
  88       *                  des destinataires de mailings
  89       *      \return     string      Retourne zone select
  90       */
  91      function formFilter()
  92      {
  93          global $langs;
  94          $langs->load("members");
  95          
  96          $s='';
  97          $s.='<select name="filter" class="flat">';
  98          $s.='<option value="-1">'.$langs->trans("MemberStatusShortDraft").'</option>';
  99          $s.='<option value="1" selected="true">'.$langs->trans("MemberStatusActive").'</option>';
 100          $s.='<option value="0">'.$langs->trans("MemberStatusResiliated").'</option>';
 101          $s.='</select>';
 102          return $s;
 103      }
 104      
 105      
 106      /**
 107       *      \brief      Renvoie url lien vers fiche de la source du destinataire du mailing
 108       *      \return     string      Url lien
 109       */
 110      function url($id)
 111      {
 112          return '<a href="'.DOL_URL_ROOT.'/adherents/fiche.php?rowid='.$id.'">'.img_object('',"user").'</a>';
 113      }
 114      
 115      
 116      /**
 117       *    \brief      Ajoute destinataires dans table des cibles
 118       *    \param      mailing_id    Id du mailing concerné
 119       *    \param      filterarray   Requete sql de selection des destinataires
 120       *    \return     int           < 0 si erreur, nb ajout si ok
 121       */
 122      function add_to_target($mailing_id,$filtersarray=array())
 123      {
 124          // La requete doit retourner: id, email, fk_contact, name, firstname
 125          $sql = "SELECT a.rowid as id, a.email as email, null as fk_contact, a.nom as name, a.prenom as firstname";
 126          $sql.= " FROM ".MAIN_DB_PREFIX."adherent as a";
 127          $sql.= " WHERE a.email IS NOT NULL";
 128          foreach($filtersarray as $key)
 129          {
 130              if ($key == -1) $sql.= " AND a.statut=-1";
 131              if ($key == 0)  $sql.= " AND a.statut=0";
 132              if ($key == 1)  $sql.= " AND a.statut=1";
 133          }
 134          $sql.= " ORDER BY a.email";
 135  
 136          return parent::add_to_target($mailing_id, $sql);
 137      }
 138  
 139  }
 140  
 141  ?>


Généré le : Mon Nov 26 12:29:37 2007 par Balluche grâce à PHPXref 0.7
  Clicky Web Analytics