[ 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/bd/ -> subscriber_pending.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  // 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  ?>


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