[ 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_cm.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 ".$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  ?>


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