[ 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 Document business persistence abstraction. 20 // 21 22 if (defined("_BD_SUBSCRIBE_PENDING")) 23 return; 24 25 define("_BD_SUBSCRIBE_PENDING", "1"); 26 27 require_once("PEAR.php"); 28 require_once("DB.php"); 29 require_once dirname(__FILE__). "/metier.php"; 30 require_once dirname(__FILE__). "/inc_subscriber_pending_factory.php"; 31 32 define("SUBSCRIBERS_PENDING", "lst_id, sub_id, pnd_action, pnd_mode, pnd_action_date, pnd_action_id"); 33 define("SUBSCRIBERS_LINK", "lst_id, sub_id, lsr_mode, lsr_id"); 34 define("NEWSLETTER_ALL_LIST", 35 "lst_id, lst_name, lst_comment, lst_moderation, lst_moderator_email, lst_subscribe_subject, lst_subscribe_text, lst_subject, lst_unsubscribe_subject, lst_unsubscribe_text, lst_subject_tag, lst_html_skeleton, lst_text_skeleton, lst_nb_articles"); 36 define("SUBSCRIBERS_ALL_FIELDS", 37 "sub_id, sub_email, sub_first_name, sub_middle_name, sub_last_name, sub_title ,sub_profile"); 38 39 /** 40 * Gestion des membres en attente de validation par un mail de confirmation 41 * @author François Xavier LACROIX <fxlacroix@clever-age.com> 42 * @access public 43 */ 44 45 class BD_subscriber_pending extends BD_metier { 46 47 /** 48 * subscriber id. 49 * @var int 50 * @access private 51 */ 52 var $_lst_id; 53 54 /** 55 * sub_id. 56 * @var int 57 * @access private 58 */ 59 var $_sub_id; 60 61 /** 62 * lsr_mode 63 * @var int 64 * @access private 65 */ 66 var $_pnd_action; 67 68 /** 69 * lsr_id 70 * @var int 71 * @access private 72 */ 73 var $_pnd_mode; 74 75 /** 76 * lsr_id 77 * @var int 78 * @access private 79 */ 80 var $_pnd_action_date; 81 82 /** 83 * lsr_id 84 * @var int 85 * @access private 86 */ 87 var $_pnd_action_id; 88 89 /** 90 * DB_subscriber pending constructor. 91 * 92 * @access public 93 */ 94 95 function bdSubscriberPending () { } 96 97 // }}} 98 99 // {{{ bdSubscriberPending 100 101 function getLstId () { 102 return $this->_lst_id; 103 } 104 105 // }}} 106 107 // {{{ getLstId() 108 109 function setLstId ($id) { 110 $this->_lst_id = $id; 111 } 112 113 // }}} 114 115 // {{{ setLstId() 116 117 function getSubId () { 118 return $this->_sub_id; 119 } 120 121 // }}} 122 123 // {{{ getSubId() 124 125 function setSubId ($id) { 126 $this->_sub_id = $id; 127 } 128 129 // }}} 130 131 // {{{ setSubId() 132 133 function getPndAction () { 134 return $this->_pnd_action; 135 } 136 137 // }}} 138 139 // {{{ getPndAction() 140 141 function setPndAction ($id) { 142 $this->_pnd_action = $id; 143 } 144 145 // }}} 146 147 // {{{ setPndAction() 148 149 function getPndMode () { 150 return $this->_pnd_mode; 151 } 152 153 // }}} 154 155 // {{{ getPndMode () 156 157 function setPndMode ($id) { 158 $this->_pnd_mode = $id; 159 } 160 161 // }}} 162 163 // {{{ setPndMode () 164 165 function getPndActionDate () { 166 return $this->_pnd_action; 167 } 168 169 // }}} 170 171 // {{{ getPndActionDate() 172 173 function setPndActionDate ($id) { 174 $this->_pnd_action = $id; 175 } 176 177 // }}} 178 179 // {{{ setPndActionDate() 180 181 function getPndActionId () { 182 return $this->_pnd_action_id; 183 } 184 185 // }}} 186 187 // {{{ getPndActionId () 188 189 function setPndActionId ($id) { 190 $this->_pnd_action_id = $id; 191 } 192 193 // }}} 194 195 // {{{ setPndActionId () 196 197 //Fonction de création d'un objet dans la table ".$GLOBALS['table_prefix']."_cm_pending : les utilisateurs en attente de confirmation 198 199 function create () { 200 $db = &$this->_getDB(); 201 202 if (DB::isError($db)) { 203 return PEAR::raiseError( 204 "[" . get_class($this). " DB_subscriber_pending : create()] " . $db->getMessage(). "", null, 205 null, null, 206 null, null, 207 false); 208 } 209 210 if ($this->_lst_id == null) 211 $this->_lst_id = 0; 212 213 if ($this->_sub_id == null) 214 $this->_sub_id = 0; 215 216 if ($this->_pnd_action == null) 217 $this->_pnd_action = 0; 218 219 if ($this->_pnd_mode == null) 220 $this->_pnd_mode = ""; 221 222 if ($this->_pnd_action_date == null) 223 $this->_pnd_action_date = time(); 224 225 if ($this->_pnd_action_id == null) 226 $this->_pnd_action_id = md5('subscribe#' . $idnewsletter . '#' . $id_sub . '#' . time()); 227 228 $query 229 = "INSERT INTO " . $GLOBALS['table_prefix']. "_cm_pending (" . SUBSCRIBERS_PENDING . ") VALUES " . "('" . $this->_lst_id . "', " . "'" . $this->_sub_id . "', " . "'" . $this->_pnd_action . "', " . "'" . $this->_pnd_mode . "', " . "'" . $this->_pnd_action_date . "', " . "'" . $this->_pnd_action_id . "')"; 230 231 //echo"<br />$query<br><br />"; 232 233 $result = $db->query($query); 234 235 if (DB::isError($result)) { 236 return PEAR::raiseError( 237 "[" . get_class($this). " DB_subscriber_pending : create()] " . $result->getMessage(). "", null, 238 null, null, 239 null, null, 240 false); 241 } 242 } 243 244 // }}} 245 // {{{ Create() 246 247 //LoadSub() charge un objet de la base subscriber_cm_pending par son identifiant sub_id 248 249 function loadSub ($sub_id = '', $list_id = '') { 250 $db = &$this->_getDB(); 251 252 if (DB::isError($db)) { 253 return PEAR::raiseError("[" . get_class($this). " DB_subscriber_pending : load()] " . $db->getMessage(). "", 254 null, 255 null, 256 null, 257 null, 258 null, 259 false); 260 } 261 262 $query 263 = "SELECT " . SUBSCRIBERS_PENDING . " FROM " . $GLOBALS['table_prefix']. "_cm_pending WHERE sub_id = $sub_id"; 264 265 $result = $db->query($query); 266 267 if (DB::isError($result)) { 268 return PEAR::raiseError( 269 "[" . get_class($this). " DB_subscriber_pending : load()] " . $result->getMessage(). "", null, 270 null, null, 271 null, null, 272 false); 273 } 274 else { 275 if ($row = $result->fetchRow()) { 276 $this->_lst_id = $row['lst_id']; 277 $this->_sub_id = $row['sub_id']; 278 $this->_pnd_action = $row['pnd_action']; 279 $this->_pnd_mode = $row['pnd_mode']; 280 $this->_pnd_action_date = $row['pnd_action_date']; 281 $this->_pnd_action_id = $row['pnd_action_id']; 282 } 283 else { 284 return PEAR::raiseError( 285 "[" . get_class($this). " DB_subscriber_pending : load($idArticle)] Aucuns liens associés!", 286 null, 287 null, 288 null, 289 null, 290 null, 291 false); 292 } 293 $result->free(); 294 } 295 } 296 // }}} 297 // {{{ loadSub() 298 299 //loadLst() charge un objet de ".$GLOBALS['table_prefix']."_cm_subscriber_pending de la base, par son identifiant lst_id 300 301 function loadLst ($lst_id) { 302 $db = &$this->_getDB(); 303 304 if (DB::isError($db)) { 305 return PEAR::raiseError("[" . get_class($this). " DB_subscriber_pending : load()] " . $db->getMessage(). "", 306 null, 307 null, 308 null, 309 null, 310 null, 311 false); 312 } 313 314 $query 315 = "SELECT " . SUBSCRIBERS_PENDING . " FROM " . $GLOBALS['table_prefix']. "_cm_pending WHERE lst_id = $lst_id"; 316 317 $result = $db->query($query); 318 319 if (DB::isError($result)) { 320 return PEAR::raiseError( 321 "[" . get_class($this). " DB_subscriber_pending : load()] " . $result->getMessage(). "", null, 322 null, null, 323 null, null, 324 false); 325 } 326 else { 327 if ($row = $result->fetchRow()) { 328 $this->_lst_id = $row['lst_id']; 329 $this->_sub_id = $row['sub_id']; 330 $this->_pnd_action = $row['pnd_action']; 331 $this->_pnd_mode = $row['pnd_mode']; 332 $this->_pnd_action_date = $row['pnd_action_date']; 333 $this->_pnd_action_id = $row['pnd_action_id']; 334 } 335 else { 336 return PEAR::raiseError( 337 "[" . get_class($this). " DB_subscriber_pending: load()] Aucuns liens associés!", null, 338 null, null, 339 null, null, 340 false); 341 } 342 $result->free(); 343 } 344 } 345 346 // }}} 347 // {{{ loadLst() 348 349 //loadLsSubt() charge un objet de ".$GLOBALS['table_prefix']."_cm_subscriber_pending de la base, par son identifiant lst_id et SubId 350 351 function loadLstSub ($lst_id, $sub_id) { 352 $db = &$this->_getDB(); 353 354 if (DB::isError($db)) { 355 return PEAR::raiseError("[" . get_class($this). " DB_subscriber_pending : load()] " . $db->getMessage(). "", 356 null, 357 null, 358 null, 359 null, 360 null, 361 false); 362 } 363 364 $query 365 = "SELECT " . SUBSCRIBERS_PENDING . " FROM " . $GLOBALS['table_prefix']. "_cm_pending WHERE lst_id = $lst_id AND sub_id=$sub_id"; 366 367 $result = $db->query($query); 368 369 if (DB::isError($result)) { 370 return PEAR::raiseError( 371 "[" . get_class($this). " DB_subscriber_pending : load()] " . $result->getMessage(). "", null, 372 null, null, 373 null, null, 374 false); 375 } 376 else { 377 if ($row = $result->fetchRow()) { 378 $this->_lst_id = $row['lst_id']; 379 $this->_sub_id = $row['sub_id']; 380 $this->_pnd_action = $row['pnd_action']; 381 $this->_pnd_mode = $row['pnd_mode']; 382 $this->_pnd_action_date = $row['pnd_action_date']; 383 $this->_pnd_action_id = $row['pnd_action_id']; 384 } 385 else { 386 return 0; 387 } 388 389 $result->free(); 390 return 1; 391 } 392 } 393 394 // }}} 395 // {{{ loadLst() 396 397 //La fonction delete sub() supprimer un objet de la base ".$GLOBALS['table_prefix']."_cm_subscribr_cm_pending par son sub_id 398 //Si le sub est en entrée, alors la méthode supprimer l'objet identifié par cette valeur d'entrée 399 //Sinon la fonction supprime l'élément associé à l'objet appelant 400 401 function deleteSub ($sub_id = '') { 402 if ($sub_id == null) { 403 $sub_id = $this->getSubId(); 404 } 405 406 //echo $sub_id." <br>".$query; 407 408 $db = &$this->_getDB(); 409 410 if (DB::isError($db)) { 411 return PEAR::raiseError( 412 "[" . get_class($this). " DB_subscriber_pending : delete() by sub] " . $db->getMessage(). "", 413 null, 414 null, 415 null, 416 null, 417 null, 418 false); 419 } 420 421 $query = "DELETE FROM " . $GLOBALS['table_prefix']. "_cm_pending WHERE sub_id = $sub_id"; 422 423 //echo $query; 424 425 $result = $db->query($query); 426 427 if (DB::isError($result)) { 428 return PEAR::raiseError( 429 "[" . get_class($this). " DB_subscriber_pending : delete() by sub] " . $result->getMessage(). "", 430 null, 431 null, 432 null, 433 null, 434 null, 435 false); 436 } 437 } 438 439 // }}} 440 // {{{ deleteSub() 441 442 //La fonction delete_lst() supprimer un objet de la base par son lst_id 443 //Si le sub est en entrée, alors la méthode supprimer l'objet identifié par cette valeur d'entrée 444 //Sinon la fonction supprime l'élément associé à l'objet appelant 445 446 function deleteLst ($lst_id = '') { 447 if ($lst_id == '') 448 $lst_id = $this->get_lst_id(); 449 450 $db = &$this->_getDB(); 451 452 if (DB::isError($db)) { 453 return PEAR::raiseError( 454 "[" . get_class($this). " DB_subscriber_pending : delete() by lst] " . $db->getMessage(). "", 455 null, 456 null, 457 null, 458 null, 459 null, 460 false); 461 } 462 463 $query = "DELETE FROM " . $GLOBALS['table_prefix']. "_cm_pending WHERE lst_id = $lst_id"; 464 465 //echo $query; 466 467 $result = $db->query($query); 468 469 if (DB::isError($result)) { 470 return PEAR::raiseError( 471 "[" . get_class($this). " DB_subscriber_pending : delete() by lst] " . $result->getMessage(). "", 472 null, 473 null, 474 null, 475 null, 476 null, 477 false); 478 } 479 } 480 481 // }}} 482 // {{{ deleteLst() 483 484 //La fonction delete_lstSub() supprimer un objet de la base par son lst_id et son Subid 485 486 function deleteLstSub ($lst_id, $sub_id) { 487 $db = &$this->_getDB(); 488 489 if (DB::isError($db)) { 490 return PEAR::raiseError( 491 "[" . get_class($this). " DB_subscriber_pending : delete() by lst] " . $db->getMessage(). "", 492 null, 493 null, 494 null, 495 null, 496 null, 497 false); 498 } 499 500 $query = "DELETE FROM " . $GLOBALS['table_prefix']. "_cm_pending WHERE lst_id = $lst_id AND sub_id=$sub_id"; 501 502 //echo $query; 503 504 $result = $db->query($query); 505 506 if (DB::isError($result)) { 507 return PEAR::raiseError( 508 "[" . get_class($this). " DB_subscriber_pending : delete() by lst] " . $result->getMessage(). "", 509 null, 510 null, 511 null, 512 null, 513 null, 514 false); 515 } 516 } 517 518 // }}} 519 // {{{ deleteLstSub() 520 521 //La fonction delete user_list fait intervenir la classe pending & ".$GLOBALS['table_prefix']."_cm_lists_pending 522 //En premier lieu, il supprime l'élément dans la table link correspondant au id lst_id & sub_id 523 //Puis il veérifie que l'utilisateur est inscrit à une autre list de newsletter 524 //Alors la méthode supprime l'élément en cas de non trouvé 525 526 function deleteUserList ($lst_id, $sub_id) { 527 $db = &$this->_getDB(); 528 529 if (DB::isError($db)) { 530 return PEAR::raiseError( 531 "[" . get_class($this). " DB_subscriber_pending : delete_user()] " . $db->getMessage(). "", null, 532 null, null, 533 null, null, 534 false); 535 } 536 537 $query = "DELETE FROM " . $GLOBALS['table_prefix']. "_cm_pending WHERE lst_id = $lst_id AND sub_id=$sub_id"; 538 539 $result = $db->query($query); 540 541 if (DB::isError($result)) { 542 return PEAR::raiseError( 543 "[" . get_class($this). " DB_subscriber_pending : delete_user()] " . $result->getMessage(). "", 544 null, 545 null, 546 null, 547 null, 548 null, 549 false); 550 } 551 else { 552 $query 553 = "SELECT " . SUBSCRIBERS_PENDING . " FROM " . $GLOBALS['table_prefix']. "_cm_pending WHERE sub_id=$sub_id AND lst_id = $lst_id"; 554 555 $result = $db->query($query); 556 if (DB::isError($result)) { 557 return PEAR::raiseError( 558 "[" . get_class( 559 $this). " DB_subscriber_pending : delete_user()] " . $result->getMessage(). "", 560 null, 561 null, 562 null, 563 null, 564 null, 565 false); 566 } 567 else { 568 if (!($row = $result->fetchRow())) { 569 $query 570 = "SELECT " . SUBSCRIBERS_LINK . " FROM " . $GLOBALS['table_prefix']. "_cm_lists_subscribers WHERE sub_id=$sub_id"; 571 572 $result = $db->query($query); 573 if (DB::isError($result)) { 574 return PEAR::raiseError( 575 "[" . get_class( 576 $this). " DB_subscriber_pending : delete_user()] " . $result->getMessage(). "", 577 null, 578 null, 579 null, 580 null, 581 null, 582 false); 583 } 584 else { 585 if (!($row = $result->fetchRow())) { 586 $sub = &recuperer_instance_subscriber_cm(); 587 $sub->load($sub_id); 588 $retour = $sub->getSubEmail(); 589 $sub->delete($sub_id); 590 unset($sub); 591 return ($retour); 592 } 593 } 594 } 595 } 596 } 597 598 $sub = &recuperer_instance_subscriber_cm(); 599 $sub->load($sub_id); 600 $retour = $sub->getSubEmail(); 601 unset($sub); 602 return ($retour); 603 } 604 605 // }}} 606 // {{{ deleteUserList() 607 608 //La fonction deleteUserAction supprime un utilisateur dans la base a partir de son actionID 609 610 function deleteUserAction ($lst_id, $action_id) { 611 $db = &$this->_getDB(); 612 613 if (DB::isError($db)) { 614 return PEAR::raiseError( 615 "[" . get_class($this). " DB_subscriber_pending : delete_user()] " . $db->getMessage(). "", null, 616 null, null, 617 null, null, 618 false); 619 } 620 621 $query 622 = "DELETE FROM " . $GLOBALS['table_prefix']. "_cm_pending WHERE lst_id = $lst_id AND pnd_action_id =$action_id"; 623 624 $result = $db->query($query); 625 626 if (DB::isError($result)) { 627 return PEAR::raiseError( 628 "[" . get_class($this). " DB_subscriber_pending : delete_user()] " . $result->getMessage(). "", 629 null, 630 null, 631 null, 632 null, 633 null, 634 false); 635 } 636 else { 637 //$query = "SELECT ".SUBSCRIBERS_LINK." FROM ".$GLOBALS['table_prefix']."_cm_lists_subscribers WHERE sub_id=$sub_id"; 638 // 639 // $result = $db->query($query); 640 641 // if (DB::isError($result)) { 642 // return PEAR::raiseError("[".get_class($this)." DB_subscriber_pending : delete_user()] ".$result->getMessage()."", null, 643 // null, null, null, null, false); 644 // } else { 645 // if (!($row = $result->fetchRow())) { 646 // $sub = &recuperer_instance_subscriber_cm(); 647 // $sub->load($sub_id); 648 // $retour = $sub->getSubEmail(); 649 // $sub->delete($sub_id); 650 // unset($sub); 651 // return($retour); 652 // } 653 // else 654 // $sub = &recuperer_instance_subscriber_cm(); 655 // $sub->load($sub_id); 656 // $retour = $sub->getSubEmail(); 657 // unset($sub); 658 // return($retour); 659 // } 660 } 661 } 662 663 // }}} 664 // {{{ deleteUserList() 665 666 //Fonction factory pour l'instanciation de l'objet 667 668 function &factory ($dbParameters, $dbOptions = null) { 669 if (file_exists(dirname( 670 __FILE__). "/" . $dbParameters->_dbEngine . "/subscriber_pending_" . $dbParameters->_dbEngine . ".php") == false) 671 { 672 include_once(dirname(__FILE__). "/common/subscriber_pending_common.php"); 673 $classname = "BD_subscriber_pending"; 674 } 675 else { 676 include_once(dirname( 677 __FILE__). "/" . $dbParameters->_dbEngine . "/subscriber_pending_" . $dbParameters->_dbEngine . ".php"); 678 $classname = "BD_subscriber_pending_" . $dbParameters->_dbEngine; 679 } 680 681 if (!class_exists($classname)) { 682 return PEAR::raiseError("Cannot instanciate class $classname", null, null, null, null, null, false); 683 } 684 685 $obj = &new $classname; 686 $result = $obj->setDbParameters($dbParameters); 687 688 if ($dbOptions != null) { 689 $obj->setDbOptions($dbOptions); 690 } 691 692 if (PEAR::isError($result)) { 693 return $result; 694 } 695 else { 696 return $obj; 697 } 698 } 699 700 // }}} 701 // {{{ factory() 702 703 //fonction de listage des utilisateurs appartenant à la newsletter ayant l'id spécifié en entrée 704 //La méthode retourne un tableau contenant la liste des identifiants sub_id concerné par la newsletter, et non inscrits 705 706 // Ajout Olivier Mansour 707 // 2 argument pour ne rappatrier par défaut que les personnes en attente d'inscription 708 709 function listeUser ($id, $id_action = 'subscribe') { 710 $this->loadLst($id); 711 712 $db = &$this->_getDB(); 713 714 if (DB::isError($db)) { 715 return PEAR::raiseError( 716 "[" . get_class($this). " DB_subscriber_pending : liste_user()] " . $db->getMessage(). "", null, 717 null, null, 718 null, null, 719 false); 720 } 721 722 if ($id_action == '') { 723 $query 724 = "SELECT " . SUBSCRIBERS_PENDING . " FROM " . $GLOBALS['table_prefix']. "_cm_pending WHERE lst_id = $id"; 725 } 726 else { 727 $query 728 = "SELECT " . SUBSCRIBERS_PENDING . " FROM " . $GLOBALS['table_prefix']. "_cm_pending WHERE lst_id = $id AND pnd_action = '" . $id_action . "'"; 729 } 730 731 $result = $db->query($query); 732 733 if (DB::isError($result)) { 734 return PEAR::raiseError( 735 "[" . get_class($this). " DB_subscriber_pending : liste_user()] " . $result->getMessage(). "", 736 null, 737 null, 738 null, 739 null, 740 null, 741 false); 742 } 743 else { 744 while ($row = $result->fetchRow()) { 745 $tab_user[] = $row['sub_id']; 746 } 747 748 $i = 0; 749 750 while ($tab_user[$i]) { 751 $query 752 = "SELECT " . SUBSCRIBERS_ALL_FIELDS . " FROM " . $GLOBALS['table_prefix']. "_cm_subscribers WHERE sub_id =" . $tab_user[$i++]; 753 754 $result = $db->query($query); 755 if (DB::isError($result)) { 756 return PEAR::raiseError( 757 "[" . get_class( 758 $this). " DB_subscriber_pending : liste_user()] " . $result->getMessage(). "", 759 null, 760 null, 761 null, 762 null, 763 null, 764 false); 765 } 766 else { 767 while ($row = $result->fetchRow()) { 768 $tab_subscriber[] = $row['sub_id']; 769 //die(var_dump($tab_subscriber)); 770 //die("ahahaha"); 771 //echo $row['sub_email']; 772 //$num = $row['sub_id']; 773 //$name = $row['sub_email']; 774 //echo "<td><a href='$page?suppress=$num&id_newsletter=$id'><img src='../suppress.gif' height='10' width='10' alt='supprimer $name'></a></td>"; 775 //echo "</tr>"; 776 } 777 } 778 } 779 780 //die(var_dump($tab_user)); 781 return ($tab_subscriber); 782 } 783 } 784 // }}} 785 // {{{ listeUser() 786 787 //La fonction nbuser retourne le nombre de users pour une lettre id 788 789 // Ajout Olivier Mansour 790 // 2 argument pour ne rappatrier par défaut que les personnes en attente d'inscription 791 792 function nbUser ($id, $id_action = 'subscribe') { 793 $db = &$this->_getDB(); 794 795 if (DB::isError($db)) { 796 return PEAR::raiseError( 797 "[" . get_class($this). " DB_subscriber_link : liste_user()] " . $db->getMessage(). "", null, 798 null, null, 799 null, null, 800 false); 801 } 802 803 if ($id_action == '') { 804 $query = "SELECT COUNT(*) as cnt FROM " . $GLOBALS['table_prefix']. "_cm_pending WHERE lst_id = $id"; 805 } 806 else { 807 $query 808 = "SELECT COUNT(*) as cnt FROM " . $GLOBALS['table_prefix']. "_cm_pending WHERE lst_id = $id AND pnd_action = '" . $id_action . "'"; 809 } 810 811 $result = $db->query($query); 812 813 if (DB::isError($result)) { 814 return PEAR::raiseError( 815 "[" . get_class($this). " DB_subscriber_link : load()] " . $result->getMessage(). "", null, null, 816 null, null, null, 817 false); 818 } 819 else { // correction Olivier Mansour 820 $count = 0; 821 if ($row = $result->fetchRow()) { 822 $count = intval($row["cnt"]); 823 } 824 } 825 826 return ($count); 827 } 828 829 // }}} 830 // {{{ nbUser() 831 832 // {{{ nbUserHtmlText() HTML / TEXT 833 //La fonction nbuser retourne le nombre de users pour une lettre id de la table pending 834 835 function nbUserHtmlText ($id) { 836 $db = &$this->_getDB(); 837 838 if (DB::isError($db)) { 839 return PEAR::raiseError("[" . get_class($this). " DB_subscriber_link : nbUser()] " . $db->getMessage(). "", 840 null, 841 null, 842 null, 843 null, 844 null, 845 false); 846 } 847 848 $query 849 = "SELECT COUNT(*) compteur, pnd_mode FROM " . $GLOBALS['table_prefix']. "_cm_pending WHERE lst_id = $id GROUP BY pnd_mode "; 850 851 //echo $query; 852 853 $result = $db->query($query); 854 855 if (DB::isError($result)) { 856 return PEAR::raiseError( 857 "[" . get_class($this). " DB_subscriber_link : nbUser()] " . $result->getMessage(). "", null, 858 null, null, 859 null, null, 860 false); 861 } 862 else { 863 $iHtml = 0; 864 $iTxt = 0; 865 while ($row = $result->fetchRow()) { 866 if ($row['lsr_mode'] == 0) { 867 $iHtml = $row['compteur']; 868 } 869 else { 870 $iTxt = $row['compteur']; 871 } 872 } 873 } 874 875 $tabmode2[0] = $iTxt; 876 $tabmode2[1] = $iHtml; 877 return ($tabmode2); 878 } 879 // }}} 880 881 //La méthode vider supprimer tous les utilisateurs de la liste correspondante 882 883 function vider ($id) { 884 $db = &$this->_getDB(); 885 886 if (DB::isError($db)) { 887 return PEAR::raiseError( 888 "[" . get_class($this). " DB_subscriber_pending : vider()] " . $db->getMessage(). "", null, null, 889 null, null, null, 890 false); 891 } 892 893 $query 894 = "SELECT " . SUBSCRIBERS_PENDING . " FROM " . $GLOBALS['table_prefix']. "_cm_pending WHERE lst_id = $id"; 895 896 $result = $db->query($query); 897 898 if (DB::isError($result)) { 899 return PEAR::raiseError( 900 "[" . get_class($this). " DB_subscriber_pending : vider()] " . $result->getMessage(). "", null, 901 null, null, 902 null, null, 903 false); 904 } 905 else { 906 while ($row = $result->fetchRow()) { 907 908 //$sub = &recuperer_instance_subscriber_cm(); 909 //$sub->load($row['sub_id']); 910 //$sub->delete($row['sub_id']); 911 //unset($sub); 912 $this->deleteUserList($id, $row['sub_id']); 913 } 914 } 915 } 916 // }}} 917 // {{{ vider() 918 919 } 920 ?>
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 |