[ 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 // Base class for mot business persistence abstraction. 20 // 21 22 if (defined("_BD_INDEX_MOTS_MYSQL")) 23 return; 24 25 define("_BD_INDEX_MOTS_MYSQL", "1"); 26 27 require_once dirname(__FILE__). "/../index_mots.php"; 28 29 /** 30 * BD_index_mots_mysql is an implementation for MySQL of BD_index_mots business class. 31 * @package BD_mysql 32 * @author Erwan Le Bescond <elebescond@clever-age.com> 33 * @access public 34 */ 35 class BD_subscriber_link_mysql extends BD_subscriber_link { 36 37 // {{{ liste_user() 38 //fonction de listage des utilisateurs appartenant à la newsletter ayant l'id spécifié en entrée 39 //La méthode retourne un tableau contenant la liste des identifiants sub_id concerné par la newsletter 40 41 function liste ($id) { 42 $db = &$this->_getDB(); 43 44 if (DB::isError($db)) { 45 return PEAR::raiseError( 46 "[" . get_class($this). " DB_subscriber_link : liste_user_inscrit()] " . $db->getMessage(). "", 47 null, 48 null, 49 null, 50 null, 51 null, 52 false); 53 } 54 55 //cm_ls.lst_id lst_id, cm_ls.sub_id sub_id_ls, cm_ls.lsr_mode lsr_mode, cm_ls.lsr_id lsr_id "; 56 $query 57 = " SELECT cm_ls.sub_id sub_id, cm_s.sub_email email, cm_s.sub_first_name sub_first_name, cm_s.sub_middle_name sub_middle_name, cm_s.sub_last_name sub_last_name, cm_s.sub_title sub_title, cm_s.sub_profile sub_profile, cm_ls.lsr_mode mode, cm_ls.lst_id lst_id, 'NOTPENDING' statut 58 FROM " . $GLOBALS['table_prefix']. "_cm_lists_subscribers cm_ls INNER JOIN " . $GLOBALS['table_prefix']. "_cm_subscribers cm_s ON cm_ls.sub_id = cm_s.sub_id 59 WHERE cm_ls.lst_id = $id ORDER by email"; 60 $query_pending 61 = " SELECT cm_p.sub_id sub_id, cm_s.sub_email email, cm_s.sub_first_name sub_first_name, cm_s.sub_middle_name sub_middle_name, cm_s.sub_last_name sub_last_name, cm_s.sub_title sub_title, cm_s.sub_profile sub_profile, cm_p.pnd_mode mode, cm_p.lst_id lst_id, 'PENDING' statut 62 FROM " . $GLOBALS['table_prefix']. "_cm_pending cm_p INNER JOIN " . $GLOBALS['table_prefix']. "_cm_subscribers cm_s ON cm_p.sub_id = cm_s.sub_id 63 WHERE cm_p.lst_id = $id ORDER by email"; 64 65 $result = $db->query($query); 66 $result_pending = $db->query($query_pending); 67 68 if (DB::isError($result) || DB::isError($result_pending)) { 69 return PEAR::raiseError( 70 "[" . get_class( 71 $this). " DB_subscriber_link : liste_user_inscrit()] " . $result->getMessage(). "", 72 null, 73 null, 74 null, 75 null, 76 null, 77 false); 78 } 79 else { 80 while ($row = $result->fetchRow()) { 81 $tab_inscrit_classe[$row['email']] = $row; 82 } 83 84 while ($row_pending = $result_pending->fetchRow()) { 85 $tab_inscrit_pending[$row['email']] = $row; 86 } 87 88 $tab_retour2 = array(0 => $tab_inscrit_classe, 1 => $tab_inscrit_pending); 89 return ($tab_retour2); 90 } 91 } 92 93 // }}} 94 95 // {{{ liste_user_inscrit() 96 97 function liste_user_inscrit ($id) { 98 $db = &$this->_getDB(); 99 100 if (DB::isError($db)) { 101 return PEAR::raiseError( 102 "[" . get_class($this). " DB_subscriber_link : liste_user_inscrit()] " . $db->getMessage(). "", 103 null, 104 null, 105 null, 106 null, 107 null, 108 false); 109 } 110 111 $query 112 = "SELECT cm_ls.sub_id sub_id, cm_s.sub_email email, cm_ls.lsr_mode mode, cm_ls.lst_id lst_id, 'NOTPENDING' statut 113 FROM " . $GLOBALS['table_prefix']. "_cm_lists_subscribers cm_ls INNER JOIN " . $GLOBALS['table_prefix']. "_cm_subscribers cm_s ON cm_ls.sub_id = cm_s.sub_id 114 WHERE cm_ls.lst_id = $id ORDER by email"; 115 116 $result = $db->query($query); 117 118 if (DB::isError($result)) { 119 return PEAR::raiseError( 120 "[" . get_class( 121 $this). " DB_subscriber_link : liste_user_inscrit()] " . $result->getMessage(). "", 122 null, 123 null, 124 null, 125 null, 126 null, 127 false); 128 } 129 else { 130 while ($row = $result->fetchRow()) { 131 $tab_inscrit_classe[$row['email']] = $row; 132 $initial = substr($row['email'], 0, 1); 133 $tab_initial_2[$initial] = $initial; 134 } 135 136 $tab_retour2 = array(0 => $tab_inscrit_classe, 1 => $tab_initial_2); 137 return ($tab_retour2); 138 } 139 } 140 141 // }}} 142 143 function liste_user_non_inscrit ($id) { 144 $db = &$this->_getDB(); 145 146 if (DB::isError($db)) { 147 return PEAR::raiseError( 148 "[" . get_class( 149 $this). " DB_subscriber_link : liste_user_non_inscrit()] " . $db->getMessage(). "1", 150 null, 151 null, 152 null, 153 null, 154 null, 155 false); 156 } 157 158 $query 159 = "SELECT cm_ls.sub_id sub_id, cm_ls.sub_email email, cm_s.pnd_mode mode, cm_s.lst_id lst_id, 'PENDING' statut 160 FROM " . $GLOBALS['table_prefix']. "_cm_subscribers cm_ls INNER JOIN " . $GLOBALS['table_prefix']. "_cm_pending cm_s ON cm_ls.sub_id = cm_s.sub_id 161 WHERE cm_s.lst_id = $id ORDER by email "; 162 163 $result = $db->query($query); 164 165 if (DB::isError($result)) { 166 return PEAR::raiseError( 167 "[" . get_class( 168 $this). " DB_subscriber_link : liste_user_non_inscrit()] " . $result->getMessage(). "2", 169 null, 170 null, 171 null, 172 null, 173 null, 174 false); 175 } 176 else { 177 while ($row = $result->fetchRow()) { 178 $tab_non_inscrit_classe[$row['email']] = $row; 179 $initial = substr($row['email'], 0, 1); 180 $tab_initial[$initial] = $initial; 181 } 182 183 $tab_retour = array(0 => $tab_non_inscrit_classe, 1 => $tab_initial); 184 return ($tab_retour); 185 } 186 } 187 188 // }}} 189 190 function searh_mail_inscrit ($id, $email) { 191 $db = &$this->_getDB(); 192 193 if (DB::isError($db)) { 194 return PEAR::raiseError( 195 "[" . get_class($this). " DB_subscriber_link : searh_mail_inscrit()] " . $db->getMessage(). "", 196 null, 197 null, null, null, null, false); 198 } 199 200 $query = "SELECT cm_ls.sub_id sub_id, cm_s.sub_email email, cm_ls.lsr_mode mode, cm_ls.lst_id lst_id, 'NOTPENDING' statut 201 FROM " . $GLOBALS['table_prefix']. "_cm_lists_subscribers cm_ls INNER JOIN " . $GLOBALS['table_prefix']. "_cm_subscribers cm_s ON cm_ls.sub_id = cm_s.sub_id 202 WHERE cm_ls.lst_id = $id AND sub_email like '%" . $email . "%' ORDER by email "; 203 //echo $query; 204 $result = $db->query($query); 205 206 if (DB::isError($result)) { 207 return PEAR::raiseError("[" . get_class($this). " DB_subscriber_link : searh_mail_inscrit()] " . $result->getMessage(). "", null, null, null, null, null, false); 208 } 209 else { 210 while ($row = $result->fetchRow()) { 211 $tab_inscrit_classe[$row['email']] = $row; 212 $initial = substr($row['email'], 0, 1); 213 $tab_initial_2[$initial] = $initial; 214 } 215 216 $tab_retour2 = array(0 => $tab_inscrit_classe, 1 => $tab_initial_2); 217 return ($tab_retour2); 218 } 219 } 220 221 function searh_mail_non_inscrit ($id, $email) { 222 $db = &$this->_getDB(); 223 224 if (DB::isError($db)) { 225 return PEAR::raiseError("[" . get_class($this). " DB_subscriber_link : searh_mail_non_inscrit()] " . $db->getMessage(). "", null, null, null, null, null, false); 226 } 227 228 $query = "SELECT cm_p.sub_id sub_id, cm_s.sub_email email, cm_s.sub_first_name sub_first_name, cm_s.sub_middle_name sub_middle_name, cm_s.sub_last_name sub_last_name, cm_s.sub_title sub_title, cm_s.sub_profile sub_profile, cm_p.pnd_mode mode, cm_p.lst_id lst_id, 'PENDING' statut 229 FROM " . $GLOBALS['table_prefix']. "_cm_pending cm_p INNER JOIN " . $GLOBALS['table_prefix']. "_cm_subscribers cm_s ON cm_p.sub_id = cm_s.sub_id 230 WHERE cm_p.lst_id = $id AND sub_email like '%" . $email . "%' ORDER by email "; 231 //echo $query; 232 $result = $db->query($query); 233 234 if (DB::isError($result)) { 235 return PEAR::raiseError("[" . get_class($this). " DB_subscriber_link : searh_mail_non_inscrit()] " . $result->getMessage(). "", null, null, null, null, null, false); 236 } 237 else { 238 while ($row = $result->fetchRow()) { 239 $tab_inscrit_classe[$row['email']] = $row; 240 $initial = substr($row['email'], 0, 1); 241 $tab_initial_2[$initial] = $initial; 242 } 243 244 $tab_retour2 = array(0 => $tab_inscrit_classe, 1 => $tab_initial_2); 245 return ($tab_retour2); 246 } 247 } 248 } 249 ?>
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 |