[ 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/ -> petition.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 Petition business persistence abstraction.
  20  //
  21  
  22  if (defined("_BD_PETITION"))
  23      return;
  24  
  25  define("_BD_PETITION", "1");
  26  
  27  require_once("PEAR.php");
  28  require_once("DB.php");
  29  require_once dirname(__FILE__). "/metier.php";
  30  
  31  define("PETITION_ALL_FIELDS", " id_article, email_unique, site_obli, site_unique, message, texte, maj ");
  32  
  33  /**
  34   * BD_petition is a base class for petition business persistence abstraction implementations, and must be
  35   * inherited by all such.
  36   * @package    BD
  37   * @author  Antoine Angénieux <aangenieux@clever-age.com>
  38   * @author     Erwan Le Bescond <elebescond@clever-age.com>
  39   * @access    public
  40   */
  41  class BD_petition extends BD_metier {
  42  
  43      // {{{ properties
  44  
  45      /**
  46       * Article ID.
  47       * @var     int
  48       * @access  private
  49       */
  50      var $_articleId;
  51  
  52      /**
  53       * email.
  54       * @var     String
  55       * @access  private
  56       */
  57      var $_emailUnique;
  58  
  59      /**
  60       * obligatory site .
  61       * @var     String
  62       * @access  private
  63       */
  64      var $_siteObli;
  65  
  66      /**
  67       * Unique Site.
  68       * @var     String
  69       * @access  private
  70       */
  71      var $_siteUnique;
  72  
  73      /**
  74       * message.
  75       * @var     String
  76       * @access  private
  77       */
  78      var $_message;
  79  
  80      /**
  81       * texte.
  82       * @var     String
  83       * @access  private
  84       */
  85      var $_texte;
  86  
  87      /**
  88       * Update Date.
  89       * @var     Date
  90       * @access  private
  91       */
  92      var $_majDate;
  93  
  94      // }}}
  95  
  96      // {{{ factory()
  97  
  98      /**
  99       * This method is a factory static method. It should be used to get any
 100       * specific implementation instace of Petition business data type.
 101       * @param   BD_parameters DB connection parameters
 102       * @access public
 103       */
 104      function &factory ($dbParameters, $dbOptions = null) {
 105          if (file_exists(
 106                  dirname(__FILE__). "/" . $dbParameters->_dbEngine . "/petition_" . $dbParameters->_dbEngine . ".php")
 107              == false) {
 108              include_once (dirname(__FILE__). "/common/petition_common.php");
 109              $classname = "BD_petition_common";
 110          }
 111          else {
 112              include_once
 113                  (dirname(__FILE__). "/" . $dbParameters->_dbEngine . "/petition_" . $dbParameters->_dbEngine . ".php");
 114              $classname = "BD_petition_" . $dbParameters->_dbEngine;
 115          }
 116  
 117          if (!class_exists($classname)) {
 118              return PEAR::raiseError("Cannot instanciate class $classname", null, null, null, null, null, false);
 119          }
 120  
 121          $obj = &new $classname;
 122          $result = $obj->setDbParameters($dbParameters);
 123  
 124          if ($dbOptions != null) {
 125              $obj->setDbOptions($dbOptions);
 126          }
 127  
 128          if (PEAR::isError($result)) {
 129              return $result;
 130          }
 131          else {
 132              return $obj;
 133          }
 134      }
 135  
 136      // }}}
 137  
 138      // {{{ constructor
 139  
 140      /**
 141       * DB_petition constructor.
 142       *
 143       * @access public
 144       */
 145  
 146  	function BD_petition () { }
 147  
 148      // }}}
 149  
 150      // {{{ getArticleId()
 151  
 152      /**
 153       * Returns the Article ID
 154       * @return  int
 155       * @access  public
 156       */
 157  
 158  	function getArticleId () {
 159          return $this->_articleId;
 160      }
 161  
 162      // }}}
 163  
 164      // {{{ setArticleId()
 165  
 166      /**
 167       * Sets the Article ID
 168       * @param   int
 169       * @access  public
 170       */
 171  
 172  	function setArticleid ($articleId) {
 173          $this->_articleId = $articleId;
 174      }
 175  
 176      // }}}
 177  
 178      // {{{ getEmailUnique()
 179  
 180      /**
 181       * Returns the unique Email
 182       * @return  String
 183       * @access  public
 184       */
 185  
 186  	function getEmailUnique () {
 187          return $this->_emailUnique;
 188      }
 189  
 190      // }}}
 191  
 192      // {{{ setEmailUnique()
 193  
 194      /**
 195       * Sets the Unqiue Email
 196       * @param   String
 197       * @access  public
 198       */
 199  
 200  	function setEmailUnique ($emailUnique) {
 201          $this->_emailUnique = corriger_caracteres($emailUnique);
 202      }
 203  
 204      // }}}
 205  
 206      // {{{ getSiteObli()
 207  
 208      /**
 209       * Returns the Obligatory Site
 210       * @return  String
 211       * @access  public
 212       */
 213  
 214  	function getSiteObli () {
 215          return $this->_siteObli;
 216      }
 217  
 218      // }}}
 219  
 220      // {{{ setSiteObli()
 221  
 222      /**
 223       * Sets the Obligatory Site
 224       * @param   String
 225       * @access  public
 226       */
 227  
 228  	function setSiteObli ($siteObli) {
 229          $this->_siteObli = corriger_caracteres($siteObli);
 230      }
 231  
 232      // }}}
 233  
 234      // {{{ getsiteUnique()
 235  
 236      /**
 237       * Returns the unique Site
 238       * @return  String
 239       * @access  public
 240       */
 241  
 242  	function getSiteUnique () {
 243          return $this->_siteUnique;
 244      }
 245  
 246      // }}}
 247  
 248      // {{{ setSiteUnique()
 249  
 250      /**
 251       * Sets the unique Site
 252       * @param   String
 253       * @access  public
 254       */
 255  
 256  	function setSiteUnique ($siteUnique) {
 257          $this->_siteUnique = corriger_caracteres($siteUnique);
 258      }
 259  
 260      // }}}
 261  
 262      // {{{ getMessage()
 263  
 264      /**
 265       * Returns the Message
 266       * @return  String
 267       * @access  public
 268       */
 269  
 270  	function getMessage () {
 271          return $this->_message;
 272      }
 273  
 274      // }}}
 275  
 276      // {{{ setMessage()
 277  
 278      /**
 279       * Sets the Message
 280       * @param   String
 281       * @access  public
 282       */
 283  
 284  	function setMessage ($message) {
 285          $this->_message = corriger_caracteres($message);
 286      }
 287  
 288      // }}}
 289  
 290      // {{{ getTexte()
 291  
 292      /**
 293       * Returns the Text
 294       * @return  String
 295       * @access  public
 296       */
 297  
 298  	function getTexte () {
 299          return $this->_texte;
 300      }
 301  
 302      // }}}
 303  
 304      // {{{ setTexte()
 305  
 306      /**
 307       * Sets the Text
 308       * @param   String
 309       * @access  public
 310       */
 311  
 312  	function setTexte ($texte) {
 313          $this->_texte = corriger_caracteres($texte);
 314      }
 315  
 316      // }}}
 317  
 318      // {{{ getMajDate()
 319  
 320      /**
 321       * Returns the petition update date
 322       * @return  Date
 323       * @access  public
 324       */
 325  
 326  	function getMajDate () {
 327          return $this->_majDate;
 328      }
 329  
 330      // }}}
 331  
 332      // {{{ setMajDate()
 333  
 334      /**
 335       * Sets the petition update date
 336       * @param   Date
 337       * @access  public
 338       */
 339  
 340  	function setMajDate ($majDate) {
 341          $this->_majDate = $majDate;
 342      }
 343  
 344      // }}}
 345  
 346      // {{{ create()
 347  
 348  	function create () {
 349          $db = &$this->_getDB();
 350  
 351          if (DB::isError($db)) {
 352              return PEAR::raiseError("[" . get_class($this). " DB_petition : create()] " . $db->getMessage(). "", null,
 353                                      null, null,
 354                                      null, null,
 355                                      false);
 356          }
 357  
 358          $string_prefix = $GLOBALS['table_prefix']. "_petitions";
 359          $signatureId = $db->nextId($string_prefix, true);
 360  
 361          if (DB::isError($petitionId)) {
 362              return PEAR::raiseError("[" . get_class($this). " DB_petition : create()] " . $petitionId->getMessage(). "",
 363                                      null,
 364                                      null,
 365                                      null,
 366                                      null,
 367                                      null,
 368                                      false);
 369          }
 370  
 371          $this->_petitionId = $petitionId;
 372  
 373          $query
 374              = "INSERT INTO " . $GLOBALS['table_prefix']. "_petitions (" . PETITION_ALL_FIELDS . ") VALUES " . "" . $this->_articleId . ", " . "'" . $db->quoteString(
 375                                                                                                                                                          $this->_emailUnique). "', " . "'" . $db->quoteString(
 376                                                                                                                                                                                                  $this->_siteObli). "', " . "'" . $db->quoteString(
 377                                                                                                                                                                                                                                       $this->_siteUnique). "', " . "'" . $db->quoteString(
 378                                                                                                                                                                                                                                                                              $this->_message). "', " . "'" . $db->quoteString(
 379                                                                                                                                                                                                                                                                                                                  $this->_texte). "', " . "'" . $db->quoteString(
 380                                                                                                                                                                                                                                                                                                                                                    $this->_majDate). "')";
 381  
 382          $result = $db->query($query);
 383  
 384          if (DB::isError($result)) {
 385              return PEAR::raiseError("[" . get_class($this). " DB_petition : create()] " . $result->getMessage(). "",
 386                                      null,
 387                                      null,
 388                                      null,
 389                                      null,
 390                                      null,
 391                                      false);
 392          }
 393      }
 394  
 395      // }}}
 396  
 397      // {{{ update()
 398  
 399  	function update () {
 400          $db = &$this->_getDB();
 401  
 402          if (DB::isError($db)) {
 403              return PEAR::raiseError("[" . get_class($this). " DB_petition : update()] " . $db->getMessage(). "", null,
 404                                      null, null,
 405                                      null, null,
 406                                      false);
 407          }
 408  
 409          $maDate = new Date();
 410          $this->setMajDate($this->getDate(DATE_FORMAT_ISO));
 411  
 412          $query
 413              = "UPDATE " . $GLOBALS['table_prefix']. "_petitions " . "SET id_article = " . $this->_articleId . ", " . "email_unique = '" . $db->quoteString(
 414                                                                                                                                                $this->_emailUnique). "', site_obli = '" . $db->quoteString(
 415                                                                                                                                                                                               $this->_siteObli). "', " . "site_unique = '" . $db->quoteString(
 416                                                                                                                                                                                                                                                  $this->_siteUnique). "', message = '" . $db->quoteString(
 417                                                                                                                                                                                                                                                                                              $this->_message). "', " . "maj = '" . $db->quoteString(
 418                                                                                                                                                                                                                                                                                                                                        $this->_majDate). "' " . "WHERE id_signature = " . $this->_signatureId;
 419  
 420          $result = $db->query($query);
 421  
 422          if (DB::isError($result)) {
 423              return PEAR::raiseError("[" . get_class($this). " DB_petition : update()] " . $result->getMessage(). "",
 424                                      null,
 425                                      null,
 426                                      null,
 427                                      null,
 428                                      null,
 429                                      false);
 430          }
 431      }
 432  
 433      // }}}
 434  
 435      // {{{ load()
 436  
 437  	function load ($idArticle) {
 438          $db = &$this->_getDB();
 439  
 440          if (DB::isError($db)) {
 441              return PEAR::raiseError("[" . get_class($this). " DB_petition : load()] " . $db->getMessage(). "", null,
 442                                      null, null,
 443                                      null, null,
 444                                      false);
 445          }
 446  
 447          $query
 448              = "SELECT " . PETITION_ALL_FIELDS . " FROM " . $GLOBALS['table_prefix']. "_petitions WHERE id_article = $idArticle";
 449  
 450          //echo $query."<br>";
 451          $result = $db->query($query);
 452  
 453          if (DB::isError($result)) {
 454              return PEAR::raiseError("[" . get_class($this). " DB_petition : load()] " . $result->getMessage(). "", null,
 455                                      null, null,
 456                                      null, null,
 457                                      false);
 458          }
 459          else {
 460              if ($row = $result->fetchRow()) {
 461                  $maDate = new Date($row['maj']);
 462                  $row['maj'] = $maDate->getDate(DATE_FORMAT_TIMESTAMP);
 463  
 464                  $this->_fetchData($row);
 465              }
 466              else {
 467                  return PEAR::raiseError(
 468                             "[" . get_class(
 469                                       $this). " DB_petition : load($idPetition)] Aucune petition ne correspond pas à cet ID!",
 470                             99,
 471                             null,
 472                             null,
 473                             null,
 474                             null,
 475                             false);
 476              }
 477              $result->free();
 478          }
 479      }
 480  
 481      // }}}
 482  
 483      // {{{ replace($id_article, $email_unique, $site_obli, $site_unique, $message, $texte_petition)
 484  
 485  	function replace ($id_article, $email_unique, $site_obli, $site_unique, $message, $texte_petition) {
 486          $db = &$this->_getDB();
 487  
 488          if (DB::isError($db)) {
 489              return PEAR::raiseError("[" . get_class($this). " DB_petition : replace()] " . $db->getMessage(). "", null,
 490                                      null, null,
 491                                      null, null,
 492                                      false);
 493          }
 494  
 495          $query = "SELECT id_article FROM " . $GLOBALS['table_prefix']. "_petitions WHERE id_article=$id_article";
 496  
 497          $result = $db->query($query);
 498  
 499          if (DB::isError($result)) {
 500              return PEAR::raiseError("[" . get_class($this). " DB_petition : writeMeta()] " . $result->getMessage(). "",
 501                                      null,
 502                                      null,
 503                                      null,
 504                                      null,
 505                                      null,
 506                                      false);
 507          }
 508  
 509          if ($result->numRows() > 0) {
 510              $query
 511                  = "UPDATE " . $GLOBALS['table_prefix']. "_petitions SET email_unique='$email_unique', site_obli='$site_obli', site_unique='$site_unique', message='$message', texte='$texte_petition' WHERE id_article=$id_article";
 512              /*
 513              $query = "REPLACE ".$GLOBALS['table_prefix']."_petitions (id_article, email_unique, site_obli, site_unique, message, texte) ".
 514                  "VALUES ($id_article, '$email_unique', '$site_obli', '$site_unique', '$message', '$texte_petition')";
 515              */
 516  
 517              $result = $db->query($query);
 518              if (DB::isError($result)) {
 519                  return PEAR::raiseError(
 520                             "[" . get_class($this). " DB_petition : replace()] " . $result->getMessage(). "", null, null,
 521                             null, null, null,
 522                             false);
 523              }
 524          }
 525          else {
 526              $query
 527                  = "INSERT INTO " . $GLOBALS['table_prefix']. "_petitions(id_article, email_unique, site_obli, site_unique, message, texte) VALUES ($id_article, '$email_unique', '$site_obli', '$site_unique', '$message', '$texte_petition')";
 528  
 529              $result = $db->query($query);
 530              if (DB::isError($result)) {
 531                  return PEAR::raiseError(
 532                             "[" . get_class($this). " DB_petition : replace()] " . $result->getMessage(). "", null, null,
 533                             null, null, null,
 534                             false);
 535              }
 536          }
 537      }
 538  
 539      // }}}
 540  
 541      // {{{ delete()
 542  
 543  	function delete ($idArticle) {
 544          $db = &$this->_getDB();
 545  
 546          if (DB::isError($db)) {
 547              return PEAR::raiseError("[" . get_class($this). " DB_petition : delete()] " . $db->getMessage(). "", null,
 548                                      null, null,
 549                                      null, null,
 550                                      false);
 551          }
 552  
 553          $query = "DELETE FROM " . $GLOBALS['table_prefix']. "_petitions WHERE id_article = $idArticle";
 554  
 555          $result = $db->query($query);
 556  
 557          if (DB::isError($result)) {
 558              return PEAR::raiseError("[" . get_class($this). " DB_petition : delete()] " . $result->getMessage(). "",
 559                                      null,
 560                                      null,
 561                                      null,
 562                                      null,
 563                                      null,
 564                                      false);
 565          }
 566      }
 567  
 568      // }}}
 569  
 570      // {{{ _fetchData()
 571  
 572  	function _fetchData ($row) {
 573          $this->setArticleId($row['id_article']);
 574          $this->setEmailUnique($row['email_unique']);
 575          $this->setSiteObli($row['site_obli']);
 576          $this->setSiteUnique($row['site_unique']);
 577          $this->setMessage($row['message']);
 578          $this->setTexte($row['texte']);
 579          $this->setMajDate($row['maj']);
 580      }
 581  
 582      // }}}
 583  
 584      // {{{ deleteMajDate($myDate)
 585  
 586      /**
 587       * This method is used to delete all petitions former to mydate
 588       * @access  public
 589       */
 590  
 591  	function deleteMajDate ($myDate) {
 592          $db = &$this->_getDB();
 593  
 594          if (DB::isError($db)) {
 595              return PEAR::raiseError("[" . get_class($this). " DB_petition : deleteMajDate()] " . $db->getMessage(). "", null, null, null, null, null, false);
 596          }
 597  
 598          $dateTmp = new Date($mydate);
 599          $mydate = $dateTmp->getDate(DATE_FORMAT_ISO);
 600  
 601          $query = "DELETE FROM " . $GLOBALS['table_prefix']. "_petitions WHERE maj < '$mydate'";
 602  
 603          $result = $db->query($query);
 604  
 605          if (DB::isError($result)) {
 606              return PEAR::raiseError("[" . get_class($this). " DB_petition : deleteMajDate()] " . $result->getMessage(). "", null, null, null, null, null, false);
 607          }
 608      }
 609  
 610      // }}}
 611  
 612      // {{{ getAllForArticleId($id_article)
 613  
 614      /**
 615       * This method returns an array of petition
 616       * @return  int
 617       * @access  public
 618       */
 619      function &getAllForArticleId ($id_article) {
 620          $result = array();
 621          $db = &$this->_getDB();
 622  
 623          if (DB::isError($db)) {
 624              return PEAR::raiseError("[" . get_class($this). " DB_petition : getAllForArticleId()] " . $db->getMessage(). "", null, null, null, null, null, false);
 625          }
 626  
 627          $query = "SELECT " . PETITION_ALL_FIELDS . " FROM " . $GLOBALS['table_prefix']. "_petitions WHERE id_article=$id_article";
 628  
 629          $queryResult = $db->query($query);
 630  
 631          if (DB::isError($result)) {
 632              return PEAR::raiseError("[" . get_class($this). " DB_petition : getAllForArticleId()] " . $queryResult->getMessage(). "", null, null, null, null, null, false);
 633          }
 634  
 635          while ($row = $queryResult->fetchRow()) {
 636              $resultPetition = &BD_petition::factory($this->getDbParameters(), $this->getDbOptions());
 637  
 638              $maDate = new Date($row['maj']);
 639              $row['maj'] = $maDate->getDate(DATE_FORMAT_TIMESTAMP);
 640  
 641              $resultPetition->_fetchData($row);
 642  
 643              $result[] = &$resultPetition;
 644          }
 645  
 646          $queryResult->free();
 647  
 648          return $result;
 649      }
 650  
 651  // }}}
 652  
 653  }
 654  ?>


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