[ 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 ".$GLOBALS['table_prefix']."_cm_subscribers 20 // 21 22 if (defined("_BD_SUBSCRIBE")) 23 return; 24 25 define("_BD_SUBSCRIBE", "1"); 26 27 require_once("PEAR.php"); 28 require_once("DB.php"); 29 require_once dirname(__FILE__). "/metier.php"; 30 31 define("SUBSCRIBERS_ALL_FIELDS", 32 "sub_id, sub_email, sub_first_name, sub_middle_name, sub_last_name, sub_title ,sub_profile"); 33 34 /** 35 * Gestion des membres inscrits à la NewsLetter 36 * @author François Xavier LACROIX <fxlacroix@clever-age.com> 37 * @access public 38 */ 39 40 class BD_subscriber_cm extends BD_metier { 41 42 /** 43 * subscriber id. 44 * @var int 45 * @access private 46 */ 47 var $_sub_id; 48 49 /** 50 * email. 51 * @var String 52 * @access private 53 */ 54 var $_sub_email; 55 56 /** 57 * First name of the subscriber 58 * @var String 59 * @access private 60 */ 61 var $_sub_first_name; 62 63 /** 64 * middle name of the subscriber 65 * @var string 66 * @access private 67 */ 68 var $_sub_middle_name; 69 70 /** 71 * Last name of subscriber 72 * @var String 73 * @access private 74 */ 75 var $_sub_last_name; 76 77 /** 78 * titre 79 * @var string 80 * @access private 81 */ 82 var $_sub_title; 83 84 /** 85 * clef de validation 86 * @var int 87 * @access private 88 */ 89 var $_sub_profile; 90 91 /** 92 * DB_article constructor. 93 * 94 * @access public 95 */ 96 97 function bdSubscriberCm () { } 98 99 // }}} 100 101 // {{{ subscriberCm() 102 103 function getIdNewsletter () { 104 return $this->_id_newsletter; 105 } 106 107 // }}} 108 109 // {{{ getIdNewsletter() 110 111 function setIdNewsletter ($id) { 112 $this->_id_newsletter = $id; 113 } 114 115 // }}} 116 117 // {{{ setIdNewsletter() 118 119 function getSubId () { 120 return $this->_sub_id; 121 } 122 123 // }}} 124 125 // {{{ getSubId() 126 127 function setSubId ($id) { 128 $this->_sub_id = $id; 129 } 130 131 // }}} 132 133 // {{{ setSubId() 134 135 function getSubEmail () { 136 return $this->_sub_email; 137 } 138 139 // }}} 140 141 // {{{ getSubEmail() 142 143 function setSubEmail ($mail) { 144 $this->_sub_email = $mail; 145 } 146 147 // }}} 148 149 // {{{ setSubEmail() 150 151 function getSubFirstName () { 152 return $this->_sub_first_name; 153 } 154 155 // }}} 156 157 // {{{ getSubFirstName() 158 159 function setSubFirstName ($fname) { 160 $this->_sub_first_name = $fname; 161 } 162 163 // }}} 164 165 // {{{ setSubFirstName() 166 167 function getSubMiddleName () { 168 return $this->_sub_middle_name; 169 } 170 171 // }}} 172 173 // {{{ getSubMiddleName() 174 175 function setSubMiddleName ($Mname) { 176 $this->_sub_middle_name = $Mname; 177 } 178 179 // }}} 180 181 // {{{ setSubMiddleName() 182 183 function getSubLastName () { 184 return $this->_sub_last_name; 185 } 186 187 // }}} 188 189 // {{{ getSubLastName() 190 191 function setSubLastName ($Mname) { 192 $this->_sub_last_name = $Mname; 193 } 194 195 // }}} 196 197 // {{{ setSubLastName() 198 199 function getSubTitle () { 200 return $this->_sub_title; 201 } 202 203 // }}} 204 205 // {{{ getSubTitle() 206 207 function setSubTitle ($title) { 208 $this->_sub_title = $title; 209 } 210 211 // }}} 212 213 // {{{ setSubTitle() 214 215 function getSubProfile () { 216 return $this->_sub_profile; 217 } 218 219 // }}} 220 221 // {{{ getSubProfile() 222 223 function setSubProfile ($profile) { 224 $this->_sub_profile = $profile; 225 } 226 227 // }}} 228 229 // {{{ setSubProfile() 230 231 //La fonction de création d'un objet dans la table des subscriber_cm 232 233 function create ($idnewsletter = 0) { 234 $db = &$this->_getDB(); 235 236 if (DB::isError($db)) { 237 return PEAR::raiseError("[" . get_class($this). " DB_subscriber_cm : create()] " . $db->getMessage(). "", 238 null, 239 null, 240 null, 241 null, 242 null, 243 false); 244 } 245 246 $query 247 = "SELECT " . SUBSCRIBERS_ALL_FIELDS . " FROM " . $GLOBALS['table_prefix']. "_cm_subscribers WHERE sub_email = '$this->_sub_email'"; 248 249 $result = $db->query($query); 250 251 //die(var_dump($result)); 252 if ($row = $result->fetchRow()) { 253 $id_sub = $row['sub_id']; 254 return ($id_sub); 255 } 256 else { 257 $string_prefix = $GLOBALS['table_prefix']. "_cm_subscribers"; 258 259 if ($this->_sub_id == null) 260 $id_sub = $this->_sub_id = $db->nextId($string_prefix, true); 261 262 if ($this->_sub_email == null) 263 $this->_sub_email = ""; 264 265 if ($this->_sub_first_name == null) 266 $this->_sub_first_name = ""; 267 268 if ($this->_sub_middle_name == null) 269 $this->_sub_middle_name = ""; 270 271 if ($this->_sub_last_name == null) 272 $this->_sub_last_name = ""; 273 274 if ($this->_sub_title == null) 275 $this->_sub_title = ""; 276 277 if ($this->_sub_profile == null) { 278 $actionId = md5('subscribe#' . $idnewsletter . '#' . $id_sub . '#' . time()); 279 $this->_sub_profile = $actionId; 280 } 281 282 $query 283 = "INSERT INTO " . $GLOBALS['table_prefix']. "_cm_subscribers (" . SUBSCRIBERS_ALL_FIELDS . ") VALUES " . "('" . $this->_sub_id . "', " . "'" . $this->_sub_email . "', " . "'" . $this->_sub_first_name . "', " . "'" . $this->_sub_middle_name . "', " . "'" . $this->_sub_last_name . "', " . "'" . $this->_sub_title . "', " . "'" . $this->_sub_profile . "')"; 284 285 //echo"<br />$query<br><br />"; 286 $result = $db->query($query); 287 if (DB::isError($result)) { 288 return PEAR::raiseError( 289 "[" . get_class($this). " DB_subscriber_cm : create()] " . $result->getMessage(). "", null, 290 null, null, 291 null, null, 292 false); 293 } 294 } 295 296 return ($id_sub); 297 } 298 // }}} 299 300 // {{{ create() 301 302 //La fonction de load() de la table ".$GLOBALS['table_prefix']."_cm_subscriber vers l'objet appelant 303 304 function load ($sub_id) { 305 $db = &$this->_getDB(); 306 307 if (DB::isError($db)) { 308 return PEAR::raiseError("[" . get_class($this). " DB_subscriber_cm : load()] " . $db->getMessage(). "", 309 null, 310 null, 311 null, 312 null, 313 null, 314 false); 315 } 316 317 $query 318 = "SELECT " . SUBSCRIBERS_ALL_FIELDS . " FROM " . $GLOBALS['table_prefix']. "_cm_subscribers WHERE sub_id = $sub_id"; 319 320 $result = $db->query($query); 321 322 if (DB::isError($result)) { 323 return PEAR::raiseError("[" . get_class($this). " DB_subscriber_cm : load()] " . $result->getMessage(). "", 324 null, 325 null, 326 null, 327 null, 328 null, 329 false); 330 } 331 else { 332 if ($row = $result->fetchRow()) { 333 $this->_sub_id = $row['sub_id']; 334 $this->_sub_email = $row['sub_email']; 335 $this->_sub_first_name = $row['sub_first_name']; 336 $this->_sub_middle_name = $row['sub_middle_name']; 337 $this->_sub_last_name = $row['sub_last_name']; 338 $this->_sub_title = $row['sub_title']; 339 $this->_sub_profile = $row['sub_profile']; 340 } 341 else { 342 return PEAR::raiseError( 343 "[" . get_class( 344 $this). " DB_subscriber_cm : load($idArticle)] Aucuns utilisateurs associés!", 345 null, 346 null, 347 null, 348 null, 349 null, 350 false); 351 } 352 $result->free(); 353 } 354 } 355 356 // }}} 357 // {{{ load() 358 359 //Charge un objet dans l'objet appelant à partir de son identifiant Email 360 function loadEmail ($mail) { 361 $db = &$this->_getDB(); 362 363 if (DB::isError($db)) { 364 return PEAR::raiseError("[" . get_class($this). " DB_subscriber_cm : loadEmail()] " . $db->getMessage(). "", 365 null, 366 null, 367 null, 368 null, 369 null, 370 false); 371 } 372 373 $query 374 = "SELECT " . SUBSCRIBERS_ALL_FIELDS . " FROM " . $GLOBALS['table_prefix']. "_cm_subscribers WHERE sub_email = '$mail'"; 375 376 $result = $db->query($query); 377 378 if (DB::isError($result)) { 379 return PEAR::raiseError( 380 "[" . get_class($this). " DB_subscriber_cm : loadEmail()] " . $result->getMessage(). "", null, 381 null, null, 382 null, null, 383 false); 384 } 385 else { 386 if ($row = $result->fetchRow()) { 387 $this->_sub_id = $row['sub_id']; 388 $this->_sub_email = $row['sub_email']; 389 $this->_sub_first_name = $row['sub_first_name']; 390 $this->_sub_middle_name = $row['sub_middle_name']; 391 $this->_sub_last_name = $row['sub_last_name']; 392 $this->_sub_title = $row['sub_title']; 393 $this->_sub_profile = $row['sub_profile']; 394 } 395 else { 396 return PEAR::raiseError( 397 "[" . get_class($this). " DB_subscriber_cm : loadEmail()] Aucuns utilisateurs associés!", 398 null, 399 null, 400 null, 401 null, 402 null, 403 false); 404 } 405 $result->free(); 406 } 407 } 408 409 // }}} 410 // {{{ loadEmail() 411 412 //La fonction de suppression d'un objet de la base à partir de l'objet appelant ou de l'id sub_id fournit par l'entrée 413 414 function delete ($sub_id = '') { 415 if ($sub_id == '') 416 $sub_id = $this->get_sub_id(); 417 418 $db = &$this->_getDB(); 419 420 if (DB::isError($db)) { 421 return PEAR::raiseError("[" . get_class($this). " DB_subscriber_cm : delete()] " . $db->getMessage(). "", 422 null, 423 null, 424 null, 425 null, 426 null, 427 false); 428 } 429 430 $query = "DELETE FROM " . $GLOBALS['table_prefix']. "_cm_subscribers WHERE sub_id = $sub_id"; 431 432 $result = $db->query($query); 433 434 if (DB::isError($result)) { 435 return PEAR::raiseError( 436 "[" . get_class($this). " DB_subscriber_cm : delete()] " . $result->getMessage(). "", null, null, 437 null, null, null, 438 false); 439 } 440 } 441 442 // }}} 443 444 // {{{ delete() 445 446 //La fonction verif() est une fonction de suppression des subscribers dans la table ".$GLOBALS['table_prefix']."_cm_subscriber 447 448 function verif () { 449 $db = &$this->_getDB(); 450 451 if (DB::isError($db)) { 452 return PEAR::raiseError("[" . get_class($this). " DB_subscriber_cm : verif()] " . $db->getMessage(). "", 453 null, 454 null, 455 null, 456 null, 457 null, 458 false); 459 } 460 461 $query = "DELETE FROM " . $GLOBALS['table_prefix']. "_cm_subscribers WHERE sub_id = $sub_id"; 462 463 $result = $db->query($query); 464 465 if (DB::isError($result)) { 466 return PEAR::raiseError("[" . get_class($this). " DB_subscriber_cm : verif()] " . $result->getMessage(). "", 467 null, 468 null, 469 null, 470 null, 471 null, 472 false); 473 } 474 else { 475 $count = 0; 476 while ($row = $result->fetchRow()) { 477 if ($this->_sub_email == $row['sub_email']) 478 $count++; 479 } 480 } 481 482 return ($count); 483 } 484 485 // }}} 486 487 // {{{ verif() 488 489 //La fonction exist_update() est une méthode qui vérifie avant d'ajouer l'objet dans la table, 490 //cette méthode permet d'updater un objet au lieu de l'ajouter et d'avoir par exemple 491 //une liste d'e-mail semblable 492 493 //function exist_update($mail){ 494 495 //} 496 // }}} 497 498 // {{{ exist_update() 499 500 /*function last_num(){ 501 502 $db = &$this->_getDB(); 503 if (DB::isError($db)) { 504 return PEAR::raiseError("[".get_class($this)." DB_subscriber_cm : verif()] ".$db->getMessage()."", null, 505 null, null, null, null, false); 506 } 507 $query = "SELECT id FROM ".$GLOBALS['table_prefix']."_cm_subscribers_seq"; 508 509 510 $result = $db->query($query); 511 512 if (DB::isError($result)) { 513 return PEAR::raiseError("[".get_class($this)." DB_subscriber_cm : load()] ".$result->getMessage()."", null, 514 null, null, null, null, false); 515 } else { 516 if ($row = $result->fetchRow()) { 517 518 $id = $row['id']; 519 $query = "UPDATE ".$GLOBALS['table_prefix']."_cm_subscribers_seq SET id=id+1"; 520 521 $result = $db->query($query); 522 return($id); 523 } 524 } 525 }*/ 526 527 function &factory ($dbParameters, $dbOptions = null) { 528 if (file_exists( 529 dirname( 530 __FILE__). "/" . $dbParameters->_dbEngine . "/subscriber_cm_" . $dbParameters->_dbEngine . ".php") 531 == false) { 532 include_once(dirname(__FILE__). "/common/subscriber_cm_common.php"); 533 $classname = "BD_subscriber_cm"; 534 } 535 else { 536 include_once( 537 dirname( 538 __FILE__). "/" . $dbParameters->_dbEngine . "/subscriber_cm_" . $dbParameters->_dbEngine . ".php"); 539 $classname = "BD_subscriber_cm_" . $dbParameters->_dbEngine; 540 } 541 542 if (!class_exists($classname)) { 543 return PEAR::raiseError("Cannot instanciate class $classname", null, null, null, null, null, false); 544 } 545 546 $obj = &new $classname; 547 $result = $obj->setDbParameters($dbParameters); 548 549 if ($dbOptions != null) { 550 $obj->setDbOptions($dbOptions); 551 } 552 553 if (PEAR::isError($result)) { 554 return $result; 555 } 556 else { 557 return $obj; 558 } 559 } 560 } 561 // }}} 562 563 // {{{ factory() 564 565 ?>
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 |