[ 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_link.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  // $id$
  20  // Base class for the table  ".$GLOBALS['table_prefix']."_cm_lists_subscribers
  21  //
  22  
  23  if (defined("_BD_SUBSCRIBE_LINK"))
  24      return;
  25  
  26  define("_BD_SUBSCRIBE_LINK", "1");
  27  
  28  require_once("PEAR.php");
  29  require_once("DB.php");
  30  require_once dirname(__FILE__). "/metier.php";
  31  require_once dirname(__FILE__). "/inc_subscriber_cm_factory.php";
  32  require_once dirname(__FILE__). "/inc_subscriber_pending_factory.php";
  33  
  34  define("TIMEMAX", 2592000); //Nombre de seconde dans un mois
  35  define("SUBSCRIBERS_LINK", "lst_id, sub_id, lsr_mode, lsr_id");
  36  define("NEWSLETTER_ALL_LIST",
  37         "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");
  38  define("SUBSCRIBERS_ALL_FIELDS",
  39         "sub_id, sub_email, sub_first_name, sub_middle_name, sub_last_name, sub_title ,sub_profile");
  40  define("SUBSCRIBERS_PENDING", "lst_id, sub_id, pnd_action, pnd_mode, pnd_action_date, pnd_action_id");
  41  /**
  42   * Gestion des membres inscrits à la NewsLetter
  43    * @author  François Xavier LACROIX <fxlacroix@clever-age.com>
  44   * @access  public
  45   */
  46  
  47  class BD_subscriber_link extends BD_metier {
  48  
  49      /**
  50       * subscriber id.
  51       * @var    int
  52       * @access  private
  53       */
  54      var $_lst_id;
  55  
  56      /**
  57       * sub_id.
  58       * @var     int
  59       * @access  private
  60       */
  61      var $_sub_id;
  62  
  63      /**
  64       * lsr_mode
  65       * @var     int
  66       * @access  private
  67       */
  68      var $_lsr_mode;
  69  
  70      /**
  71       * lsr_id
  72       * @var     string
  73       * @access  private
  74       */
  75      var $_lsr_id;
  76  
  77      /**
  78         * DB_subscriber link constructor.
  79         *
  80         * @access public
  81         */
  82      // {{{ bdSubscriberLink
  83  	function bdSubscriberLink () { }
  84  
  85      // }}}
  86  
  87      // {{{ getLstId()
  88  	function getLstId () {
  89          return $this->_lst_id;
  90      }
  91  
  92      // }}}
  93  
  94      // {{{ setLstId()
  95  	function setLstId ($id) {
  96          $this->_lst_id = $id;
  97      }
  98  
  99      // }}}
 100  
 101      // {{{ getSubId()
 102  	function getSubId () {
 103          return $this->_sub_id;
 104      }
 105  
 106      // }}}
 107  
 108      // {{{ setSubId()
 109  	function setSubId ($id) {
 110          $this->_sub_id = $id;
 111      }
 112  
 113      // }}}
 114  
 115      // {{{ getLsrMode()
 116  	function getLsrMode () {
 117          return $this->_lsr_mode;
 118      }
 119  
 120      // }}}
 121  
 122      // {{{ setLsrMode()
 123  	function setLsrMode ($id) {
 124          $this->_lsr_mode = $id;
 125      }
 126  
 127      // }}}
 128  
 129      // {{{ getLsrId()
 130  	function getLsrId () {
 131          return $this->_lsr_id;
 132      }
 133  
 134      // }}}
 135  
 136      // {{{ setLsrId()
 137  	function setLsrId ($id) {
 138          $this->_lsr_id = $id;
 139      }
 140  
 141      // }}}
 142  
 143      // {{{ Create()
 144      //Fonction de création d'un objet dans la table ".$GLOBALS['table_prefix']."_cm_lists_subscribers
 145  
 146  	function create () {
 147          $db = &$this->_getDB();
 148  
 149          if (DB::isError($db)) {
 150              return PEAR::raiseError("[" . get_class($this). " DB_subscriber_link : create()] " . $db->getMessage(). "",
 151                                      null,
 152                                      null,
 153                                      null,
 154                                      null,
 155                                      null,
 156                                      false);
 157          }
 158  
 159          if ($this->_lst_id == null)
 160              $this->_lst_id = 0;
 161  
 162          if ($this->_sub_id == null)
 163              $this->_sub_id = 0;
 164  
 165          if ($this->_lsr_mode == null)
 166              $this->_lsr_mode = 0;
 167  
 168          if ($this->_lsr_id == null) {
 169              $actionId = md5('subscribe#' . $id_newsletter . '#' . $id_sub . '#' . time());
 170              $this->_lsr_id = $actionId;
 171          }
 172  
 173          $query
 174              = "INSERT INTO " . $GLOBALS['table_prefix']. "_cm_lists_subscribers (" . SUBSCRIBERS_LINK . ") VALUES " . "('" . $this->_lst_id . "', " . "'" . $this->_sub_id . "', " . "'" . $this->_lsr_mode . "', " . "'" . $this->_lsr_id . "')";
 175  
 176          //echo"<br />$query<br><br />";
 177          $result = $db->query($query);
 178  
 179          if (DB::isError($result)) {
 180              return PEAR::raiseError(
 181                         "[" . get_class($this). " DB_subscriber_link : create()] " . $result->getMessage(). "", null,
 182                         null, null,
 183                         null, null,
 184                         false);
 185          }
 186      }
 187  
 188      // }}}
 189  
 190      // {{{ load_sub() 
 191      //Load_sub() charge un objet de la base par son identifiant sub_id
 192  
 193  	function loadSub ($sub_id) {
 194          $db = &$this->_getDB();
 195  
 196          if (DB::isError($db)) {
 197              return PEAR::raiseError("[" . get_class($this). " DB_subscriber_link : loadSub()] " . $db->getMessage(). "",
 198                                      null,
 199                                      null,
 200                                      null,
 201                                      null,
 202                                      null,
 203                                      false);
 204          }
 205  
 206          $query
 207              = "SELECT " . SUBSCRIBERS_LINK . " FROM " . $GLOBALS['table_prefix']. "_cm_lists_subscribers WHERE sub_id = $sub_id";
 208          $result = $db->query($query);
 209  
 210          if (DB::isError($result)) {
 211              return PEAR::raiseError(
 212                         "[" . get_class($this). " DB_subscriber_link : loadSub()] " . $result->getMessage(). "", null,
 213                         null, null,
 214                         null, null,
 215                         false);
 216          }
 217          else {
 218              if ($row = $result->fetchRow()) {
 219                  $this->_lst_id = $row['lst_id'];
 220                  $this->_sub_id = $row['sub_id'];
 221                  $this->_lsr_mode = $row['lsr_mode'];
 222                  $this->_lsr_id = $row['lsr_id'];
 223              }
 224              else {
 225                  return PEAR::raiseError(
 226                             "[" . get_class($this). " DB_subscriber_link : loadSub($idArticle)] Aucuns liens associés!",
 227                             null,
 228                             null,
 229                             null,
 230                             null,
 231                             null,
 232                             false);
 233              }
 234              $result->free();
 235          }
 236      }
 237  
 238      // }}}
 239  
 240      // {{{ load_lst()
 241      //load_lst() charge un objet de la base par son identifiant lst_id
 242  
 243  	function loadLst ($lst_id) {
 244          $db = &$this->_getDB();
 245  
 246          if (DB::isError($db)) {
 247              return PEAR::raiseError("[" . get_class($this). " DB_subscriber_link : loadLst()] " . $db->getMessage(). "",
 248                                      null,
 249                                      null,
 250                                      null,
 251                                      null,
 252                                      null,
 253                                      false);
 254          }
 255  
 256          $query
 257              = "SELECT " . SUBSCRIBERS_LINK . " FROM " . $GLOBALS['table_prefix']. "_cm_lists_subscribers WHERE lst_id = $lst_id";
 258  
 259          $result = $db->query($query);
 260  
 261          if (DB::isError($result)) {
 262              return PEAR::raiseError(
 263                         "[" . get_class($this). " DB_subscriber_link : loadLst()] " . $result->getMessage(). "", null,
 264                         null, null,
 265                         null, null,
 266                         false);
 267          }
 268          else {
 269              if ($row = $result->fetchRow()) {
 270                  $this->_lst_id = $row['lst_id'];
 271                  $this->_sub_id = $row['sub_id'];
 272                  $this->_lsr_mode = $row['lsr_mode'];
 273                  $this->_lsr_id = $row['lsr_id'];
 274              }
 275              else {
 276                  return PEAR::raiseError(
 277                             "[" . get_class($this). " DB_subscriber_link : loadLst()] Aucuns liens associés!", null,
 278                             null, null,
 279                             null, null,
 280                             false);
 281              }
 282              $result->free();
 283          }
 284      }
 285  
 286      // }}}
 287  
 288      // {{{ LoadLstSub()
 289      //loadLstSub() charge un objet de la base par son identifiant lst_id
 290  
 291  	function loadLstSub ($lst_id = '', $sub_id = '') {
 292          $db = &$this->_getDB();
 293  
 294          if (DB::isError($db)) {
 295              return PEAR::raiseError(
 296                         "[" . get_class($this). " DB_subscriber_link : loadLstSub()] " . $db->getMessage(). "", null,
 297                         null, null,
 298                         null, null,
 299                         false);
 300          }
 301  
 302          $query
 303              = "SELECT " . SUBSCRIBERS_LINK . " FROM " . $GLOBALS['table_prefix']. "_cm_lists_subscribers WHERE lst_id = $lst_id AND sub_id=$sub_id";
 304  
 305          $result = $db->query($query);
 306  
 307          if (DB::isError($result)) {
 308              return PEAR::raiseError(
 309                         "[" . get_class($this). " DB_subscriber_link : loadLstSub()] " . $result->getMessage(). "", null,
 310                         null, null,
 311                         null, null,
 312                         false);
 313          }
 314          else {
 315              if ($row = $result->fetchRow()) {
 316                  $this->_lst_id = $row['lst_id'];
 317                  $this->_sub_id = $row['sub_id'];
 318                  $this->_lsr_mode = $row['lsr_mode'];
 319                  $this->_lsr_id = $row['lsr_id'];
 320              }
 321              else {
 322                  return PEAR::raiseError(
 323                             "[" . get_class($this). " DB_subscriber_link : loadLstSub()] Aucuns liens associés!", null,
 324                             null, null,
 325                             null, null,
 326                             false);
 327              }
 328              $result->free();
 329          }
 330      }
 331  
 332      // }}}
 333  
 334      // {{{ deleteSub()
 335      //La fonction delete sub() supprimer un objet de la base par son sub_id
 336      //Si le sub est en entrée, alors la méthode supprimer l'objet identifié par cette valeur d'entrée
 337      //Sinon la fonction supprime l'élément associé à l'objet appelant
 338  
 339  	function deleteSub ($sub_id = '') {
 340          if ($sub_id == null) {
 341              $sub_id = $this->get_sub_id();
 342          }
 343          //echo $sub_id." <br>".$query;
 344  
 345          $db = &$this->_getDB();
 346  
 347          if (DB::isError($db)) {
 348              return PEAR::raiseError(
 349                         "[" . get_class($this). " DB_subscriber_link : deleteSub() by sub] " . $db->getMessage(). "",
 350                         null,
 351                         null,
 352                         null,
 353                         null,
 354                         null,
 355                         false);
 356          }
 357  
 358          $query = "DELETE FROM " . $GLOBALS['table_prefix']. "_cm_lists_subscribers WHERE sub_id = $sub_id";
 359  
 360          //echo $query;
 361  
 362          $result = $db->query($query);
 363  
 364          if (DB::isError($result)) {
 365              return PEAR::raiseError(
 366                         "[" . get_class($this). " DB_subscriber_link : deleteSub() by sub] " . $result->getMessage(). "",
 367                         null,
 368                         null,
 369                         null,
 370                         null,
 371                         null,
 372                         false);
 373          }
 374      }
 375  
 376      // }}}
 377  
 378      // {{{ deleteLst()
 379      //La fonction delete_lst() supprimer un objet de la base par son lst_id
 380      //Si le sub est en entrée, alors la méthode supprimer l'objet identifié par cette valeur d'entrée
 381      //Sinon la fonction supprime l'élément associé à l'objet appelant
 382  
 383  	function deleteLst ($lst_id = '') {
 384          if ($lst_id == '')
 385              $lst_id = $this->get_lst_id();
 386  
 387          $db = &$this->_getDB();
 388  
 389          if (DB::isError($db)) {
 390              return PEAR::raiseError(
 391                         "[" . get_class($this). " DB_subscriber_link : deleteLst() by lst] " . $db->getMessage(). "",
 392                         null,
 393                         null,
 394                         null,
 395                         null,
 396                         null,
 397                         false);
 398          }
 399  
 400          $query = "DELETE FROM " . $GLOBALS['table_prefix']. "_cm_lists_subscribers WHERE lst_id = $lst_id";
 401  
 402          //echo $query;
 403  
 404          $result = $db->query($query);
 405  
 406          if (DB::isError($result)) {
 407              return PEAR::raiseError(
 408                         "[" . get_class($this). " DB_subscriber_link : deleteLst() by lst] " . $result->getMessage(). "",
 409                         null,
 410                         null,
 411                         null,
 412                         null,
 413                         null,
 414                         false);
 415          }
 416      }
 417  
 418      // }}}
 419  
 420      // {{{ deleteUserList()
 421      //La fonction delete user_list fait intervenir la classe link & ".$GLOBALS['table_prefix']."_cm_lists_subscribers
 422      //En premier lieu, il supprime l'élément dans la table link correspondant au id lst_id & sub_id
 423      //Puis il veérifie que l'utilisateur est inscrit à une autre list de newsletter
 424      //Si il ne trouve pas d'autres inscription, la méthode supprime le subscriber
 425  
 426  	function deleteUserList ($lst_id, $sub_id) {
 427          $db = &$this->_getDB();
 428  
 429          if (DB::isError($db)) {
 430              return PEAR::raiseError(
 431                         "[" . get_class($this). " DB_subscriber_link : deleteUserList()] " . $db->getMessage(). "", null,
 432                         null, null,
 433                         null, null,
 434                         false);
 435          }
 436  
 437          $query
 438              = "DELETE FROM " . $GLOBALS['table_prefix']. "_cm_lists_subscribers WHERE lst_id = $lst_id AND sub_id=$sub_id";
 439  
 440          $result = $db->query($query);
 441  
 442          if (DB::isError($result)) {
 443              return PEAR::raiseError(
 444                         "[" . get_class($this). " DB_subscriber_link : deleteUserList()] " . $result->getMessage(). "",
 445                         null,
 446                         null,
 447                         null,
 448                         null,
 449                         null,
 450                         false);
 451          }
 452          else {
 453              $query
 454                  = "SELECT " . SUBSCRIBERS_LINK . " FROM " . $GLOBALS['table_prefix']. "_cm_lists_subscribers WHERE sub_id=$sub_id";
 455  
 456              $result = $db->query($query);
 457              if (DB::isError($result)) {
 458                  return PEAR::raiseError(
 459                             "[" . get_class(
 460                                       $this). " DB_subscriber_link : deleteUserList()] " . $result->getMessage(). "",
 461                             null,
 462                             null,
 463                             null,
 464                             null,
 465                             null,
 466                             false);
 467              }
 468              else {
 469                  if (!($row = $result->fetchRow())) {
 470                      $query
 471                          = "SELECT " . SUBSCRIBERS_PENDING . " FROM " . $GLOBALS['table_prefix']. "_cm_pending WHERE sub_id=$sub_id";
 472  
 473                      $result = $db->query($query);
 474                      if (DB::isError($result)) {
 475                          return PEAR::raiseError(
 476                                     "[" . get_class(
 477                                               $this). " DB_subscriber_link : deleteUserList()] " . $result->getMessage(). "",
 478                                     null,
 479                                     null, null, null, null, false);
 480                      }
 481                      else {
 482                          if (!($row = $result->fetchRow())) {
 483                              $sub = &recuperer_instance_subscriber_cm();
 484                              $sub->load($sub_id);
 485                              $retour = $sub->getSubEmail();
 486                              $sub->delete($sub_id);
 487                              unset($sub);
 488                              return ($retour);
 489                          }
 490                          else
 491                              $sub = &recuperer_instance_subscriber_cm();
 492  
 493                          $sub->load($sub_id);
 494                          $retour = $sub->getSubEmail();
 495                          unset($sub);
 496                          return ($retour);
 497                      }
 498                  }
 499                  else
 500                      $sub = &recuperer_instance_subscriber_cm();
 501  
 502                  $sub->load($sub_id);
 503                  $retour = $sub->getSubEmail();
 504                  unset($sub);
 505                  return ($retour);
 506              }
 507          }
 508      }
 509  
 510      // }}}
 511  
 512      // {{{ factory()  
 513      //Fonction factory pour l'instanciation de l'objet
 514  
 515      function &factory ($dbParameters, $dbOptions = null) {
 516          if (file_exists(dirname(__FILE__). "/" . $dbParameters->_dbEngine . "/subscriber_link_" . $dbParameters->_dbEngine . ".php") == false) {
 517              include_once(dirname(__FILE__). "/common/subscriber_link_common.php");
 518              $classname = "BD_subscriber_link";
 519          }
 520          else {
 521              include_once(dirname(__FILE__). "/" . $dbParameters->_dbEngine . "/subscriber_link_" . $dbParameters->_dbEngine . ".php");
 522              $classname = "BD_subscriber_link_" . $dbParameters->_dbEngine;
 523          }
 524  
 525          if (!class_exists($classname)) {
 526              return PEAR::raiseError("Cannot instanciate class $classname", null, null, null, null, null, false);
 527          }
 528  
 529          $obj = &new $classname;
 530          $result = $obj->setDbParameters($dbParameters);
 531  
 532          if ($dbOptions != null) {
 533              $obj->setDbOptions($dbOptions);
 534          }
 535  
 536          if (PEAR::isError($result)) {
 537              return $result;
 538          }
 539          else {
 540              return $obj;
 541          }
 542      }
 543  
 544      // }}}
 545  
 546      // {{{ nbUserHtmlText()  HTML / TEXT
 547      //La fonction nbuser retourne le nombre de users pour une lettre id de la table link
 548  
 549  	function nbUserHtmlText ($id) {
 550          $tabmode2 = array();
 551          $db = &$this->_getDB();
 552  
 553          if (DB::isError($db)) {
 554              return PEAR::raiseError("[" . get_class($this). " DB_subscriber_link : nbUser()] " . $db->getMessage(). "", null, null, null, null, null, false);
 555          }
 556  
 557          $query = "SELECT COUNT(*) compteur, lsr_mode FROM " . $GLOBALS['table_prefix']. "_cm_lists_subscribers WHERE lst_id = $id GROUP BY lsr_mode";
 558  
 559          $result = $db->query($query);
 560  
 561          if (DB::isError($result)) {
 562              return PEAR::raiseError("[" . get_class($this). " DB_subscriber_link : nbUser()] " . $result->getMessage(). "", null, null, null, null, null, false);
 563          }
 564          else {
 565              $iHtml = 0;
 566              $iTxt = 0;
 567              while ($row = $result->fetchRow()) {
 568                  if ($row['lsr_mode'] == 0) {
 569                      $iHtml = $row['compteur'];
 570                  }
 571                  else {
 572                      $iTxt = $row['compteur'];
 573                  }
 574              }
 575          }
 576  
 577          $tabmode2[0] = $iTxt;
 578          $tabmode2[1] = $iHtml;
 579          return ($tabmode2);
 580      }
 581      // }}}
 582  
 583      // {{{ verification()
 584      //Fonction de vérification si les users ne sont pas et dans pending et dans link
 585      //Supprimer les utilisateurs qui ne sont pas dans la tables des subscribers mais
 586      //dans la table des pending et des link
 587  
 588  	function verification () {
 589          $db = &$this->_getDB();
 590  
 591          if (DB::isError($db)) {
 592              return PEAR::raiseError("[" . get_class($this). " DB_subscriber_link : verification()] " . $db->getMessage(). "", null, null, null, null, null, false);
 593          }
 594  
 595          $query = "SELECT " . SUBSCRIBERS_LINK . " FROM " . $GLOBALS['table_prefix']. "_cm_lists_subscribers";
 596  
 597          $result1 = $db->query($query);
 598  
 599          if (DB::isError($result1)) {
 600              return PEAR::raiseError("[" . get_class($this). " DB_subscriber_link : verification()] " . $result1->getMessage(). "", null, null, null, null, null, false);
 601          }
 602          else {
 603              $i = 0;
 604              while ($row = $result1->fetchRow()) {
 605                  $id = $row['lst_id'];
 606                  $sub = $row['sub_id'];
 607                  $sub_pend = &recuperer_instance_subscriber_pending();
 608  
 609                  if ($sub_pend->loadLstSub($id, $sub)) {
 610                      $sub_pend->deleteLstSub($id, $sub);
 611                      $i++;
 612                  }
 613                  unset($sub_pend);
 614              }
 615          }
 616  
 617          $result1->free();
 618  
 619          $query = "SELECT " . SUBSCRIBERS_LINK . " FROM " . $GLOBALS['table_prefix']. "_cm_lists_subscribers";
 620  
 621          $result2 = $db->query($query);
 622  
 623          if (DB::isError($result2)) {
 624              return PEAR::raiseError("[" . get_class($this). " DB_subscriber_link : verification()] " . $result2->getMessage(). "", null, null, null, null, null, false);
 625          }
 626          else {
 627              $tab = "";
 628              while ($row = $result2->fetchRow()) {
 629                  $tab[] = $row['sub_id'];
 630              }
 631          }
 632  
 633          $result2->free();
 634  
 635          $query = "SELECT " . SUBSCRIBERS_PENDING . " FROM " . $GLOBALS['table_prefix']. "_cm_pending";
 636  
 637          $result3 = $db->query($query);
 638  
 639          if (DB::isError($result3)) {
 640              return PEAR::raiseError("[" . get_class($this). " DB_subscriber_link : verification()] " . $result3->getMessage(). "", null, null, null, null, null, false);
 641          }
 642          else {
 643              while ($row = $result3->fetchRow()) {
 644                  $tab[] = $row['sub_id'];
 645              }
 646          }
 647  
 648          $result3->free();
 649  
 650          if ($tab)
 651              foreach ($tab as $t) {
 652                  $query = "SELECT " . SUBSCRIBERS_ALL_FIELDS . " FROM " . $GLOBALS['table_prefix']. "_cm_subscribers WHERE sub_id=$t";
 653  
 654                  $result4 = $db->query($query);
 655  
 656                  if (DB::isError($result4)) {
 657                      return PEAR::raiseError("[" . get_class($this). " DB_subscriber_link : verification()] " . $result4->getMessage(). "", null, null, null, null, null, false);
 658                  }
 659                  else {
 660                      if (!($row = $result4->fetchRow())) {
 661                          $query = "DELETE FROM " . $GLOBALS['table_prefix']. "_cm_pending WHERE sub_id=$t";
 662  
 663                          $result = $db->query($query);
 664  
 665                          $query = "DELETE FROM " . $GLOBALS['table_prefix']. "_cm_lists_subscribers WHERE sub_id=$t";
 666  
 667                          $result = $db->query($query);
 668                          //$result->free();
 669                          $i++;
 670                      }
 671                  }
 672                  $result4->free();
 673              }
 674  
 675          $query = "SELECT " . SUBSCRIBERS_ALL_FIELDS . " FROM " . $GLOBALS['table_prefix']. "_cm_subscribers";
 676  
 677          $result5 = $db->query($query);
 678  
 679          if (DB::isError($result5)) {
 680              return PEAR::raiseError("[" . get_class($this). " DB_subscriber_link : verification()] " . $result5->getMessage(). "", null, null, null, null, null, false);
 681          }
 682          else {
 683              $tab = "";
 684              while ($row = $result5->fetchRow()) {
 685                  $tab[] = $row['sub_id'];
 686              }
 687          }
 688  
 689          $result5->free();
 690  
 691          if ($tab) {
 692              foreach ($tab as $t) {
 693                  $query = "SELECT " . SUBSCRIBERS_PENDING . " FROM " . $GLOBALS['table_prefix']. "_cm_pending WHERE sub_id=$t";
 694  
 695                  $result6 = $db->query($query);
 696  
 697                  if (DB::isError($result6)) {
 698                      return PEAR::raiseError("[" . get_class($this). " DB_subscriber_link : verification()] " . $result6->getMessage(). "", null, null, null, null, null, false);
 699                  }
 700                  else {
 701                      if (!($row = $result6->fetchRow())) {
 702                          $query = "SELECT " . SUBSCRIBERS_LINK . " FROM " . $GLOBALS['table_prefix']. "_cm_lists_subscribers";
 703  
 704                          $result7 = $db->query($query);
 705                          if (DB::isError($result7)) {
 706                              return PEAR::raiseError("[" . get_class($this). " DB_subscriber_link : verification()] " . $result7->getMessage(). "", null, null, null, null, null, false);
 707                          }
 708                          else {
 709                              if (!($row = $result7->fetchRow())) {
 710                                  $query = "DELETE FROM " . $GLOBALS['table_prefix']. "_cm_subscribers WHERE sub_id=$t";
 711  
 712                                  $result = $db->query($query);
 713  
 714                                  if (DB::isError($result)) {
 715                                      return PEAR::raiseError("[" . get_class($this). " DB_subscriber_link : verification()] " . $result7->getMessage(). "", null, null, null, null, null, false);
 716                                  }
 717                                  $i++;
 718                              }
 719                              $result7->free();
 720                          }
 721                      }
 722                  }
 723                  $result6->free();
 724              }
 725          }
 726  
 727          $query = "SELECT " . SUBSCRIBERS_PENDING . " FROM " . $GLOBALS['table_prefix']. "_cm_pending";
 728  
 729          //echo '<br />' . $query . '<br />';
 730          $result8 = $db->query($query);
 731  
 732          if (DB::isError($result8)) {
 733              return PEAR::raiseError("[" . get_class($this). " DB_subscriber_link : verification()] " . $result8->getMessage(). "", null, null, null, null, null, false);
 734          }
 735          else {
 736              while ($row = $result8->fetchRow()) {
 737                  $tab = $row['pnd_action_date'];
 738                  if (time() - $tab > TIMEMAX) {
 739                      $query = "DELETE FROM " . $GLOBALS['table_prefix']. "_cm_pending WHERE sub_id=" . $row['sub_id']. " AND lst_id=" . $row['lst_id'];
 740  
 741                      $result = $db->query($query);
 742                      $i++;
 743                  }
 744              }
 745  
 746              $result8->free();
 747  
 748              return $i;
 749          }
 750  
 751          // }}}
 752  
 753          // {{{ vider()
 754          //La méthode vider supprimer tous les utilisateurs de la liste correspondante
 755  
 756  		function vider ($id) {
 757              $db = &$this->_getDB();
 758  
 759              if (DB::isError($db)) {
 760                  return PEAR::raiseError("[" . get_class($this). " DB_subscriber_link : vider()] " . $db->getMessage(). "", null, null, null, null, null, false);
 761              }
 762  
 763              $query = "SELECT " . SUBSCRIBERS_LINK . " FROM " . $GLOBALS['table_prefix']. "_cm_lists_subscribers WHERE lst_id = $id";
 764  
 765              $result = $db->query($query);
 766  
 767              if (DB::isError($result)) {
 768                  return PEAR::raiseError("[" . get_class($this). " DB_subscriber_link : vider()] " . $result->getMessage(). "", null, null, null, null, null, false);
 769              }
 770              else {
 771                  while ($row = $result->fetchRow()) {
 772                      $this->deleteUserList($id, $row['sub_id']);
 773                  }
 774              }
 775          }
 776      }
 777  
 778  // }}}
 779  }
 780  ?>


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