[ Index ] |
|
Code source de SPIP Agora 1.4 |
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 ?>
titre
Description
Corps
titre
Description
Corps
titre
Description
Corps
titre
Corps
Généré le : Sat Feb 24 14:40:03 2007 | par Balluche grâce à PHPXref 0.7 |