[ Index ]
 

Code source de SPIP Agora 1.4

Accédez au Source d'autres logiciels libresSoutenez Angelica Josefina !

title

Body

[fermer]

/Agora1-4/ecrire/include/clevermail/ -> subscribe.php (source)

   1  <?php
   2  /*****************************************************
   3  * This file is part of Agora, web based content management system.
   4  *
   5  * Agora is free software; you can redistribute it and/or modify
   6  * it under the terms of the GNU General Public License as published by
   7  * the Free Software Foundation; version 2 of the License.
   8  *
   9  * Agora 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 (file "COPYING").
  13  *
  14  * Copyright © Arnaud Martin, Antoine Pitrou et Philippe Rivière.
  15  * List of authors detailed in "copyright_fr.html" file.
  16  * E-mail : agora@sig.premier-ministre.gouv.fr
  17  * Web site : http://www.agora.gouv.fr
  18  *****************************************************/
  19  /*
  20  -------------Ajout Clever Age abstraction BD---------
  21  */
  22  require_once (dirname(__FILE__). "/../../../ecrire/include/bd/inc_subscriber_factory.php");
  23  
  24  require_once (dirname(__FILE__). "/../../../ecrire/include/bd/inc_newsletter_factory.php");
  25  require_once dirname(__FILE__). '/admin/include/settings.php';
  26  require_once (dirname(__FILE__). "/../../../ecrire/include/bd/inc_subscriber_pending_factory.php");
  27  /*
  28  ----------------fin zone d'ajout---------------------
  29  */
  30  
  31  // Ajout Olivier Mansour 
  32  // gestion de la constante CM_MAIL_FROM (reliquat Clever Link) 
  33  define("CM_MAIL_FROM", lire_meta('CM_MAIL_FROM'));
  34  define("CM_MAIL_ADMIN", lire_meta('CM_MAIL_ADMIN'));
  35  // fin ajout
  36  
  37  if (isset($_POST['cm_sub_list']) && $_POST['cm_sub_list'] != '') {
  38      $listId = (int)$_POST['cm_sub_list'];
  39      $newsletterMetier = &recuperer_instance_newsletter();
  40      $loadOK = $newsletterMetier->load($listId);
  41  
  42      if (PEAR::isError($loadOK)) {
  43          die ($loadOK->getMessage());
  44      }
  45  
  46      $address = $_POST['cm_sub_address'];
  47      $mode = (int)$_POST['cm_sub_mode'];
  48      $return = $_POST['cm_sub_return'];
  49  
  50      /***** MODIFICATION fxlacroix@clever-age.com ****************/
  51      /*********** Exploitation du type de modération d'une newsletter    ************/
  52  
  53      if (ereg("^[^@ ]+@[^@ ]+\.[^@. ]+$", $address)) {
  54          /***** MODIFICATION elebescond@clever-age.com ****************/
  55          $subscriberMetier = &recuperer_instance_subscriber();
  56          $mySubscriber = $subscriberMetier->getSubscriberForEmail($address);
  57  
  58          if (PEAR::isError($mySubscriber)) {
  59              die ($mySubscriber->getMessage);
  60          }
  61  
  62          if ($mySubscriber == 0) {
  63              // Nouvelle adresse e-mail
  64              $subscriberMetier->setEmail($address);
  65              $subscriberMetier->setProfile(md5($address . '#' . time()));
  66              $createOK = $subscriberMetier->create();
  67  
  68              if (PEAR::isError($createOK)) {
  69                  die ($createOK->getMessage());
  70              }
  71              $mySubscriber = &$subscriberMetier;
  72          }
  73          if ($mySubscriber->isSubscribing($newsletterMetier)) {
  74              // Inscription à cette liste déjà présente
  75              // On met à jour pour éventuellement changer le mode
  76              $changeModeForListId = $mySubscriber->changeModeForList($newsletterMetier, $mode);
  77  
  78              if (PEAR::isError($changeModeForListId)) {
  79                  die ($changeModeForListId->getMessage());
  80              }
  81              $cm_sub = 'ok_already';
  82          }
  83          else {
  84              // Nouvelle inscription à cette liste
  85              $actionId = md5('subscribe#' . $newsletterMetier->getId(). '#' . $mySubscriber->getId(). '#' . time());
  86  
  87              if (!$mySubscriber->isPending($newsletterMetier)) {
  88                  $pendOK = $mySubscriber->suspend($newsletterMetier, 'subscribe', $mode, $actionId);
  89                  if (PEAR::isError($pendOK)) {
  90                      die ($pendOK->getMessage());
  91                  }
  92              }
  93  
  94              // Composition du message de demande de confirmation
  95              $subject = ((int)$newsletterMetier->getSubjectTag() == 1
  96                             ? '[' . $newsletterMetier->getName(). '] ' : ''). $newsletterMetier->getSubscribeSubject();
  97              $template = array();
  98              $template['#ADDRESS#'] = $address;
  99              $template['#FORMAT#'] = ($mode == 1 ? 'HTML' : 'texte');
 100              $CM_BASE_URL = lire_meta("CM_BASE_URL");
 101              $CM_BASE_TEMPLATE = lire_meta("CM_BASE_TEMPLATE");
 102              $URL_SITE_SPIP = lire_meta("adresse_site");
 103  
 104              // rajout d'un / éventuellement 
 105              if (substr($URL_SITE_SPIP, strlen($URL_SITE_SPIP) - 1, 1) != '/')
 106                  $URL_SITE_SPIP .= '/';
 107  
 108              //$template['#URL#']= $CM_BASE_URL.$GLOBALS['SCRIPT_NAME'].'?id='.$actionId.'&typeAction=do';
 109              //$template['#UNSUBSCRIBE#'] = $CM_BASE_URL.$GLOBALS['SCRIPT_NAME'].'?id='.$actionId.'&typeAction=rm';;
 110              $template['#URL#'] = $URL_SITE_SPIP . $CM_BASE_TEMPLATE . '?id=' . $actionId . '&typeAction=do';
 111              $template['#UNSUBSCRIBE#'] = $URL_SITE_SPIP . $CM_BASE_TEMPLATE . '?id=' . $actionId . '&typeAction=rm';
 112              //die($template['#UNSUBSCRIBE#']);
 113              /*
 114              $template['#URL#']     = CM_BASE_URL.'do.php?id='.$actionId;
 115              $template['#UNSUBSCRIBE#'] = CM_BASE_URL.'rm.php?id='.$actionId;
 116              */
 117              $message = $newsletterMetier->getSubscribeText();
 118  
 119              while (list($from, $to) = each($template)) {
 120                  $message = str_replace($from, $to, $message);
 121              }
 122              // Envoi du message
 123  
 124              switch ($newsletterMetier->getModeration()) {
 125                  case "email":
 126                      mail($address, $subject, $message, 'From: ' . CM_MAIL_FROM);
 127                      break;
 128  
 129                  case "mod":
 130                      mail($address, _T('sujet_lettre'), _T('message_lettre'), 'From: ' . CM_MAIL_FROM);
 131                      if ($newsletterMetier->getModeratorEmail() != '') {
 132                          mail($newsletterMetier->getModeratorEmail(), $subject, $message, 'From: ' . CM_MAIL_FROM);
 133                      }
 134                      break;
 135  
 136                  case "open":
 137                      mail($address, _T('sujet_accepte'), _T('message_inscrit'), 'From: ' . CM_MAIL_FROM);
 138                      $sub = &recuperer_instance_subscriber_pending();
 139                      $sub->deleteUserAction($listId, $actionId);
 140                      unset ($sub);
 141                      $link = $template['#URL#'];
 142                      $_GET['id'] = $actionId;
 143                      require_once dirname(__FILE__). '/do.php';
 144                      break;
 145              }
 146              $cm_sub = 'ok';
 147          }
 148  
 149                                  /***** FIN MODIFICATION elebescond@clever-age.com ****************/
 150                                  /*
 151                                  if (!$recId = $db->getOne("SELECT sub_id FROM ".CM_TABLE_PREFIX."_subscribers WHERE sub_email='".$address."'")) {
 152                                      // Nouvelle adresse e-mail
 153                                       $recId = $db->nextId(CM_TABLE_PREFIX.'_subscribers');
 154                                      $db->query("INSERT INTO ".CM_TABLE_PREFIX."_subscribers (sub_id, sub_email, sub_profile) VALUES (".$recId.", '".$address."', '".md5($recId.'#'.$address.'#'.time())."')");
 155                                  }
 156                                  if ($db->getOne("SELECT COUNT(*) FROM ".CM_TABLE_PREFIX."_lists_subscribers WHERE lst_id = ".$listId." AND sub_id = ".$recId) == 1) {
 157                                      // Inscription à cette liste déjà présente
 158                                      // On met à jour pour éventuellement changer le mode
 159                                      $db->query("UPDATE ".CM_TABLE_PREFIX."_lists_subscribers SET lsr_mode=".$mode." WHERE lst_id = ".$listId." AND sub_id = ".$recId);
 160                                      $cm_sub = 'ok_already';
 161                                  } else {
 162                                      // Nouvelle inscription à cette liste
 163                                      $actionId = md5('subscribe#'.$listId.'#'.$recId.'#'.time());
 164                                      if ($db->getOne("SELECT COUNT(*) FROM ".CM_TABLE_PREFIX."_pending WHERE lst_id = ".$listId." AND sub_id = ".$recId) == 0) {
 165                                          $db->query("INSERT INTO ".CM_TABLE_PREFIX."_pending (lst_id, sub_id, pnd_action, pnd_mode, pnd_action_date, pnd_action_id) VALUES (".$listId.", ".$recId.", 'subscribe', ".$mode.", ".time().", '".$actionId."')");
 166                                      }
 167                          
 168                                      // Composition du message de demande de confirmation
 169                                      $list = $db->getRow("SELECT * FROM ".CM_TABLE_PREFIX."_lists WHERE lst_id=".$listId);
 170                                      $subject = ((int)$list['lst_subject_tag'] == 1 ? '['.$list['lst_name'].'] ' : '').$list['lst_subscribe_subject'];
 171                                      $template = array();
 172                                      $template['#ADDRESS#'] = $address;
 173                                      $template['#FORMAT#']  = ($mode == 1 ? 'HTML' : 'texte');
 174                                      $template['#URL#']     = CM_BASE_URL.'do.php?id='.$actionId;
 175                                      $template['#UNSUBSCRIBE#'] = CM_BASE_URL.'rm.php?id='.$actionId;
 176                                      $message = $list['lst_subscribe_text'];
 177                                      while (list($from, $to) = each($template)) {
 178                                          $message = str_replace($from, $to, $message);
 179                                      }
 180                                      // Envoi du message
 181                                      mail($address, $subject, $message, 'From: '.CM_MAIL_FROM);
 182                                      $cm_sub = 'ok';
 183                                  }
 184                                  */
 185                                  } else {
 186                                      $cm_sub = 'ko_bad';
 187                                  }
 188                              //header('Location: '.$return.(strpos($return, '?') ? '&' : '?').'cm_sub='.$cm_sub.'&cm_sub_address='.$address.'#clevermailform');
 189                              //exit;
 190                              } else {
 191                              //header('Location: '.CM_BASE_URL);
 192                              //exit;
 193                              }
 194  ?>


Généré le : Sat Feb 24 14:40:03 2007 par Balluche grâce à PHPXref 0.7