[ 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/ -> syndic.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 Syndic business persistence abstraction.
  20  //
  21  
  22  if (defined("_BD_SYNDIC"))
  23      return;
  24  
  25  define("_BD_SYNDIC", "1");
  26  
  27  require_once dirname(__FILE__). "/metier.php";
  28  
  29  define("SYNDIC_ALL_FIELDS",
  30         " id_syndic, id_rubrique, id_secteur, nom_site, url_site, url_syndic, descriptif, maj, syndication, statut, date_heure, date_syndic, date_index, moderation ");
  31  
  32  /**
  33   * BD_syndic is a base class for syndic business persistence abstraction implementations, and must be
  34   * inherited by all such.
  35   * @package    BD
  36   * @author  Antoine Angénieux <aangenieux@clever-age.com>
  37   * @author     Erwan Le Bescond <elebescond@clever-age.com>
  38   * @access    public
  39   */
  40  class BD_syndic extends BD_metier {
  41  
  42      // {{{ properties
  43  
  44      /**
  45       * Syndication ID.
  46       * @var     int
  47       * @access  private
  48       */
  49      var $_syndicId;
  50  
  51      /**
  52       * Heading ID.
  53       * @var     int
  54       * @access  private
  55       */
  56      var $_rubriqueId;
  57  
  58      /**
  59       * Sector ID .
  60       * @var     int
  61       * @access  private
  62       */
  63      var $_secteurId;
  64  
  65      /**
  66       * Site Name.
  67       * @var     String
  68       * @access  private
  69       */
  70      var $_nomSite;
  71  
  72      /**
  73       * Site Url.
  74       * @var     String
  75       * @access  private
  76       */
  77      var $_urlSite;
  78  
  79      /**
  80       * Syndication URL.
  81       * @var     String
  82       * @access  private
  83       */
  84      var $_urlSyndic;
  85  
  86      /**
  87       * Description.
  88       * @var     String
  89       * @access  private
  90       */
  91      var $_descriptif;
  92  
  93      /**
  94       * Update Date.
  95       * @var     Date
  96       * @access  private
  97       */
  98      var $_majDate;
  99  
 100      /**
 101       * Syndication.
 102       * @var     String
 103       * @access  private
 104       */
 105      var $_syndication;
 106  
 107      // }}}
 108  
 109      /**
 110       * Statut.
 111       * @var     String
 112       * @access  private
 113       */
 114      var $_statut;
 115  
 116      /**
 117       * _statutsHisto
 118       * historique des statuts pour cet instance d'objet
 119       * @access private
 120       * @var Array 
 121       **/
 122      var $_statutsHisto = array();
 123  
 124      /**
 125       * Date.
 126       * @var     Date
 127       * @access  private
 128       */
 129      var $_date;
 130  
 131      /**
 132       * Syndication Date.
 133       * @var     Date
 134       * @access  private
 135       */
 136      var $_dateSyndic;
 137  
 138      /**
 139       * Index Date.
 140       * @var     Date
 141       * @access  private
 142       */
 143      var $_dateIndex;
 144  
 145      /**
 146       * Moderation.
 147       * @var     String
 148       * @access  private
 149       */
 150      var $_moderation;
 151  
 152      /**
 153      * _rubriqueIdsHisto
 154      * historique des rubriques pour cet instance d'objet
 155      * @access private
 156      * @var Array 
 157      **/
 158      var $_rubriqueIdsHisto = array();
 159  
 160      // {{{ factory()
 161  
 162      /**
 163       * This method is a factory static method. It should be used to get any
 164       * specific implementation instace of Syndic business data type.
 165       * @param   BD_parameters DB connection parameters
 166       * @access public
 167       */
 168      function &factory ($dbParameters, $dbOptions = null) {
 169          if (file_exists(
 170                  dirname(__FILE__). "/" . $dbParameters->_dbEngine . "/syndic_" . $dbParameters->_dbEngine . ".php")
 171              == false) {
 172              include_once(dirname(__FILE__). "/common/syndic_common.php");
 173              $classname = "BD_syndic_common";
 174          }
 175          else {
 176              include_once(
 177                  dirname(__FILE__). "/" . $dbParameters->_dbEngine . "/syndic_" . $dbParameters->_dbEngine . ".php");
 178              $classname = "BD_syndic_" . $dbParameters->_dbEngine;
 179          }
 180  
 181          if (!class_exists($classname)) {
 182              return PEAR::raiseError("Cannot instanciate class $classname", null, null, null, null, null, false);
 183          }
 184  
 185          $obj = &new $classname;
 186          $result = $obj->setDbParameters($dbParameters);
 187  
 188          if ($dbOptions != null) {
 189              $obj->setDbOptions($dbOptions);
 190          }
 191  
 192          if (PEAR::isError($result)) {
 193              return $result;
 194          }
 195          else {
 196              return $obj;
 197          }
 198      }
 199  
 200      // }}}
 201  
 202      // {{{ constructor
 203  
 204      /**
 205       * DB_syndic constructor.
 206       *
 207       * @access public
 208       */
 209  
 210  	function BD_syndic () { }
 211  
 212      // }}}
 213  
 214      // {{{ getSyndicId()
 215  
 216      /**
 217       * Returns the Syndication ID
 218       * @return  int
 219       * @access  public
 220       */
 221  
 222  	function getSyndicId () {
 223          return $this->_syndicId;
 224      }
 225  
 226      // }}}
 227  
 228      // {{{ setSyndicId()
 229  
 230      /**
 231       * Sets the Syndication ID
 232       * @param   int
 233       * @access  public
 234       */
 235  
 236  	function setSyndicid ($syndicId) {
 237          $this->_syndicId = $syndicId;
 238      }
 239  
 240      // }}}
 241  
 242      // {{{ getRubriqueID()
 243  
 244      /**
 245       * Returns the heading ID
 246       * @return  int
 247       * @access  public
 248       */
 249  
 250  	function getRubriqueID () {
 251          return $this->_rubriqueId;
 252      }
 253  
 254      // }}}
 255  
 256      // {{{ setRubriqueId()
 257  
 258      /**
 259       * Sets the heading ID
 260       * @param   int
 261       * @access  public
 262       */
 263  
 264  	function setRubriqueId ($rubriqueId) {
 265          if (isset($this->_rubriqueId)and ($this->_rubriqueId != $rubriqueId)) {
 266              // on sauvegarde cette rubrique
 267              $this->_rubriqueIdsHisto[] = $this->_rubriqueId;
 268          }
 269  
 270          $this->_rubriqueId = $rubriqueId;
 271      }
 272  
 273      // }}}
 274  
 275      // {{{ getRubriqueIdsHisto
 276  
 277  	function getRubriqueIdsHisto () {
 278          return $this->_rubriqueIdsHisto;
 279      }
 280  
 281      // }}}
 282  
 283      // {{{ getSecteurId()
 284  
 285      /**
 286       * Returns the sector ID
 287       * @return  int
 288       * @access  public
 289       */
 290  
 291  	function getSecteurID () {
 292          return $this->_secteurId;
 293      }
 294  
 295      // }}}
 296  
 297      // {{{ setSecteurId()
 298  
 299      /**
 300       * Sets the sector ID
 301       * @param   int
 302       * @access  public
 303       */
 304  
 305  	function setSecteurId ($secteurId) {
 306          $this->_secteurId = $secteurId;
 307      }
 308  
 309      // }}}
 310  
 311      // {{{ getNomSite()
 312  
 313      /**
 314       * Returns the Site Name
 315       * @return  String
 316       * @access  public
 317       */
 318  
 319  	function getNomSite () {
 320          return $this->_nomSite;
 321      }
 322  
 323      // }}}
 324  
 325      // {{{ setNomSite()
 326  
 327      /**
 328       * Sets the Site Name
 329       * @param   String
 330       * @access  public
 331       */
 332  
 333  	function setNomSite ($nomSite) {
 334          $this->_nomSite = corriger_caracteres($nomSite);
 335      }
 336  
 337      // }}}
 338  
 339      // {{{ getUrlSite()
 340  
 341      /**
 342       * Returns Site URL
 343       * @return  String
 344       * @access  public
 345       */
 346  
 347  	function getUrlSite () {
 348          return $this->_urlSite;
 349      }
 350  
 351      // }}}
 352  
 353      // {{{ setUrlSite()
 354  
 355      /**
 356       * Sets Site URL
 357       * @param   String
 358       * @access  public
 359       */
 360  
 361  	function setUrlSite ($urlSite) {
 362          $this->_urlSite = corriger_caracteres($urlSite);
 363      }
 364  
 365      // }}}
 366  
 367      // {{{ getUrlSyndic()
 368  
 369      /**
 370       * Returns Syndication URL
 371       * @return  String
 372       * @access  public
 373       */
 374  
 375  	function getUrlSyndic () {
 376          return $this->_urlSyndic;
 377      }
 378  
 379      // }}}
 380  
 381      // {{{ setUrlSyndic()
 382  
 383      /**
 384       * Sets Syndication URL
 385       * @param   String
 386       * @access  public
 387       */
 388  
 389  	function setUrlSyndic ($urlSyndic) {
 390          $this->_urlSyndic = corriger_caracteres($urlSyndic);
 391      }
 392  
 393      // }}}
 394  
 395      // {{{ getDescriptif()
 396  
 397      /**
 398       * Returns description
 399       * @return  String
 400       * @access  public
 401       */
 402  
 403  	function getDescriptif () {
 404          return $this->_descriptif;
 405      }
 406  
 407      // }}}
 408  
 409      // {{{ setDescriptif()
 410  
 411      /**
 412       * Sets description
 413       * @param   String
 414       * @access  public
 415       */
 416  
 417  	function setDescriptif ($descriptif) {
 418          $this->_descriptif = corriger_caracteres($descriptif);
 419      }
 420  
 421      // }}}
 422  
 423      // {{{ getMajDate()
 424  
 425      /**
 426       * Returns the syndication update date
 427       * @return  Date
 428       * @access  public
 429       */
 430  
 431  	function getMajDate () {
 432          return $this->_majDate;
 433      }
 434  
 435      // }}}
 436  
 437      // {{{ setMajDate()
 438  
 439      /**
 440       * Sets the syndication update date
 441       * @param   Date
 442       * @access  public
 443       */
 444  
 445  	function setMajDate ($majDate) {
 446          $this->_majDate = $majDate;
 447      }
 448  
 449      // }}}
 450  
 451      // {{{ getSyndication()
 452  
 453      /**
 454       * Returns syndication
 455       * @return  String
 456       * @access  public
 457       */
 458  
 459  	function getSyndication () {
 460          return $this->_syndication;
 461      }
 462  
 463      // }}}
 464  
 465      // {{{ setSyndication()
 466  
 467      /**
 468       * Sets syndication
 469       * @param   String
 470       * @access  public
 471       */
 472  
 473  	function setSyndication ($syndication) {
 474          $this->_syndication = corriger_caracteres($syndication);
 475      }
 476  
 477      // }}}
 478  
 479      // {{{ getStatut()
 480  
 481      /**
 482       * Returns statut
 483       * @return  String
 484       * @access  public
 485       */
 486  
 487  	function getStatut () {
 488          return $this->_statut;
 489      }
 490  
 491      // }}}
 492  
 493      // {{{ setStatut()
 494  
 495      /**
 496       * Sets statut
 497       * @param   String
 498       * @access  public
 499       */
 500  	function setStatut ($statut) {
 501          if (isset($this->_statut)and ($statut != $this->_statut)) {
 502              // on sauvegarde ce statut
 503              $this->_statutsHisto[] = $this->_statut;
 504          }
 505  
 506          $this->_statut = corriger_caracteres($statut);
 507      }
 508  
 509      // }}}
 510  
 511      // {{{ getDate()
 512  
 513      /**
 514       * Returns the date ????
 515       * @return  Date
 516       * @access  public
 517       */
 518  
 519  	function getDate () {
 520          return $this->_date;
 521      }
 522  
 523      // }}}
 524  
 525      // {{{ setDate()
 526  
 527      /**
 528       * Sets the date ????
 529       * @param   Date
 530       * @access  public
 531       */
 532  
 533  	function setDate ($date) {
 534          $this->_date = $date;
 535      }
 536  
 537      // }}}
 538  
 539      // {{{ getDateSyndic()
 540  
 541      /**
 542       * Returns Syndication date
 543       * @return  Date
 544       * @access  public
 545       */
 546  
 547  	function getDateSyndic () {
 548          return $this->_dateSyndic;
 549      }
 550  
 551      // }}}
 552  
 553      // {{{ setDateSyndic()
 554  
 555      /**
 556       * Sets Syndication date
 557       * @param   Date
 558       * @access  public
 559       */
 560  
 561  	function setDateSyndic ($dateSyndic) {
 562          $this->_dateSyndic = $dateSyndic;
 563      }
 564  
 565      // }}}
 566  
 567      // {{{ getDateIndex()
 568  
 569      /**
 570       * Returns Index date
 571       * @return  Date
 572       * @access  public
 573       */
 574  
 575  	function getDateIndex () {
 576          return $this->_dateIndex;
 577      }
 578  
 579      // }}}
 580  
 581      // {{{ setDateIndex()
 582  
 583      /**
 584       * Sets Index date
 585       * @param   Date
 586       * @access  public
 587       */
 588  
 589  	function setDateIndex ($dateIndex) {
 590          $this->_dateIndex = $dateIndex;
 591      }
 592  
 593      // }}}
 594  
 595      // {{{ getModeration()
 596  
 597      /**
 598       * Returns moderation
 599       * @return  String
 600       * @access  public
 601       */
 602  
 603  	function getModeration () {
 604          return $this->_moderation;
 605      }
 606  
 607      // }}}
 608  
 609      // {{{ setModeration()
 610  
 611      /**
 612       * Sets moderation
 613       * @param   String
 614       * @access  public
 615       */
 616  
 617  	function setModeration ($moderation) {
 618          $this->_moderation = corriger_caracteres($moderation);
 619      }
 620  
 621      // }}}
 622  
 623      // {{{ create()
 624  
 625      /**
 626       * This method is used to create a new syndication in the database
 627       * @access public
 628       */
 629  
 630  	function create () {
 631          $db = &$this->_getDB();
 632  
 633          if (DB::isError($db)) {
 634              return PEAR::raiseError("[" . get_class($this). " DB_syndic : create()] " . $db->getMessage(). "", null,
 635                                      null, null,
 636                                      null, null,
 637                                      false);
 638          }
 639  
 640          $string_prefix = $GLOBALS['table_prefix']. "_syndic";
 641          $syndicId = $db->nextId($string_prefix, true);
 642  
 643          if (DB::isError($syndicId)) {
 644              return PEAR::raiseError("[" . get_class($this). " DB_syndic : create()] " . $syndicId->getMessage(). "",
 645                                      null,
 646                                      null,
 647                                      null,
 648                                      null,
 649                                      null,
 650                                      false);
 651          }
 652  
 653          $this->_syndicId = $syndicId;
 654  
 655          //if ($this->_date == "NOW()") $date = "NOW()"; else $date = "'".$db->quoteString($this->_date)."'";
 656          //if ($this->_dateSyndic == "NOW()") $dateSyndic = "NOW()"; else $dateSyndic = "'".$db->quoteString($this->_dateSyndic)."'";
 657  
 658          $maDate = new Date();
 659          $isoDate = $maDate->getDate(DATE_FORMAT_ISO);
 660          $this->setDate($isoDate);
 661          $this->setDateSyndic($isoDate);
 662  
 663          // calcul du secteur ... 
 664          $rubriqueMetier = &recuperer_instance_rubrique();
 665          $rubriqueMetier->load($this->_rubriqueId);
 666          $this->_secteurId = $rubriqueMetier->findSectorId();
 667  
 668          $query
 669              = "INSERT INTO " . $GLOBALS['table_prefix']. "_syndic (" . SYNDIC_ALL_FIELDS . ") VALUES (" . "" . $this->_syndicId . ", " . "" . $this->_rubriqueId . ", " . "" . $this->_secteurId . ", " . "'" . $db->quoteString(
 670                                                                                                                                                                                                                      $this->_nomSite). "', " . "'" . $db->quoteString(
 671                                                                                                                                                                                                                                                          $this->_urlSite). "', " . "'" . $db->quoteString(
 672                                                                                                                                                                                                                                                                                              $this->_urlSyndic). "', " . "'" . $db->quoteString(
 673                                                                                                                                                                                                                                                                                                                                    $this->_descriptif). "', " . "'" . $db->quoteString(
 674                                                                                                                                                                                                                                                                                                                                                                           $this->_majDate). "', " . "'" . $db->quoteString(
 675                                                                                                                                                                                                                                                                                                                                                                                                               $this->_syndication). "', " . "'" . $db->quoteString(
 676                                                                                                                                                                                                                                                                                                                                                                                                                                                       $this->_statut). "', " . "'" . $db->quoteString(
 677                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          $this->_date). "', " . "'" . $db->quoteString(
 678                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           $this->_dateSyndic). "', " . "'" . $db->quoteString(
 679                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  $this->_dateIndex). "', " . "'" . $db->quoteString(
 680                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        $this->_moderation). "')";
 681  
 682          //echo "<br>".$this->_nomSite."<br>";
 683  
 684          //echo $query."<br>";
 685          $result = $db->query($query);
 686  
 687          if (DB::isError($result)) {
 688              return PEAR::raiseError("[" . get_class($this). " DB_syndic : create()] " . $result->getMessage(). "", null,
 689                                      null, null,
 690                                      null, null,
 691                                      false);
 692          }
 693  
 694          if ($this->getStatut() == 'publie') { // il faut mettre à jour la rubrique
 695              $rubriqueMetier = &recuperer_instance_rubrique();
 696              $rubriqueMetier->load($this->getRubriqueID());
 697              $statut = $rubriqueMetier->getStatutFromRubrique($this->getRubriqueID());
 698  
 699              if ($statut != $rubriqueMetier->getStatut()) {
 700                  $rubriqueMetier->setStatut($statut);
 701                  $rubriqueMetier->update();
 702              }
 703  
 704              // on remet aussi la date à jour
 705              $dateCalcul = $rubriqueMetier->getDateFromRubrique($rubriqueMetier->getRubriqueID());
 706              $dateRubrique = new Date($rubriqueMetier->getDate());
 707  
 708              if (Date::compare($dateCalcul, $dateRubrique) != 0) {
 709                  $rubriqueMetier->setDate($dateCalcul->getDate());
 710                  $rubriqueMetier->update(); // va enclencher la recursivite
 711                  $update_date = true;
 712              }
 713              unset($rubriqueMetier);
 714          }
 715      }
 716  
 717      // }}}
 718  
 719      // {{{ update()
 720  
 721      /**
 722       * This method is used to update a syndication in the database
 723       * @access public
 724       */
 725  	function update () {
 726          $db = &$this->_getDB();
 727  
 728          if (DB::isError($db)) {
 729              return PEAR::raiseError("[" . get_class($this). " DB_syndic : update()] " . $db->getMessage(). "", null,
 730                                      null, null,
 731                                      null, null,
 732                                      false);
 733          }
 734  
 735          $maDate = new Date();
 736          $this->setMajDate($maDate->getDate(DATE_FORMAT_ISO));
 737  
 738          // calcul du secteur ... à chaque fois 
 739          $rubriqueMetier = &recuperer_instance_rubrique();
 740          $rubriqueMetier->load($this->_rubriqueId);
 741          $this->_secteurId = $rubriqueMetier->findSectorId();
 742  
 743          $query
 744              = "UPDATE " . $GLOBALS['table_prefix']. "_syndic " . "SET id_syndic = " . $this->_syndicId . ", " . "id_rubrique = " . $this->_rubriqueId . ", id_secteur = " . $this->_secteurId . ", " . "nom_site = '" . $db->quoteString(
 745                                                                                                                                                                                                                              $this->_nomSite). "', url_site = '" . $db->quoteString(
 746                                                                                                                                                                                                                                                                        $this->_urlSite). "', " . "url_syndic = '" . $db->quoteString(
 747                                                                                                                                                                                                                                                                                                                         $this->_urlSyndic). "', descriptif = '" . $db->quoteString(
 748                                                                                                                                                                                                                                                                                                                                                                       $this->_descriptif). "', " . "maj = '" . $db->quoteString(
 749                                                                                                                                                                                                                                                                                                                                                                                                                    $this->_majDate). "', syndication = '" . $db->quoteString(
 750                                                                                                                                                                                                                                                                                                                                                                                                                                                                 $this->_syndication). "', " . "statut = '" . $db->quoteString(
 751                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  $this->_statut). "', date_heure = '" . $db->quoteString(
 752                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             $this->_date). "', " . "date_syndic = '" . $db->quoteString(
 753                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            $this->_dateSyndic). "', date_index = '" . $db->quoteString(
 754                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           $this->_dateIndex). "', " . "moderation = '" . $db->quoteString(
 755                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              $this->_moderation). "' " . "WHERE id_syndic = " . $this->_syndicId;
 756          //echo $query."<br>";
 757  
 758          $result = $db->query($query);
 759  
 760          if (DB::isError($result)) {
 761              return PEAR::raiseError("[" . get_class($this). " DB_syndic : update()] " . $result->getMessage(). "", null,
 762                                      null, null,
 763                                      null, null,
 764                                      false);
 765          }
 766  
 767          // Mise à jour des rubriques liées
 768          $this->updateRelatedObjects();
 769      }
 770  
 771      // }}}
 772  
 773      // {{{ load()
 774  
 775      /**
 776       * This method is used to load a syndication from the database
 777       * @access  public
 778       * @param   int $syndicId ID of syndication to load
 779       */
 780  
 781  	function load ($idSyndic) {
 782          $db = &$this->_getDB();
 783  
 784          if (DB::isError($db)) {
 785              return PEAR::raiseError("[" . get_class($this). " DB_syndic : load()] " . $db->getMessage(). "", null, null,
 786                                      null, null, null,
 787                                      false);
 788          }
 789  
 790          $query
 791              = "SELECT " . SYNDIC_ALL_FIELDS . " FROM " . $GLOBALS['table_prefix']. "_syndic WHERE id_syndic = $idSyndic";
 792  
 793          //echo "<br>" . $query . "<br>";
 794  
 795          $result = $db->query($query);
 796  
 797          if (DB::isError($result)) {
 798              return PEAR::raiseError("[" . get_class($this). " DB_syndic : load()] " . $result->getMessage(). "", null,
 799                                      null, null,
 800                                      null, null,
 801                                      false);
 802          }
 803          else {
 804              if ($row = $result->fetchRow()) {
 805                  $maDate = new Date($row['maj']);
 806                  $row['maj'] = $maDate->getDate(DATE_FORMAT_TIMESTAMP);
 807  
 808                  $this->_fetchData($row);
 809              }
 810              else {
 811                  return PEAR::raiseError(
 812                             "[" . get_class(
 813                                       $this). " DB_syndic : load($idSyndic)] Aucune syndication ne correspond pas à cet ID!",
 814                             null,
 815                             null,
 816                             null,
 817                             null,
 818                             null,
 819                             false);
 820              }
 821              $result->free();
 822          }
 823      }
 824  
 825      // }}}
 826  
 827      // {{{ delete()
 828  
 829      /**
 830       * This method is used to delete a syndication from the database
 831       * @access  public
 832       * @param   int $id_syndic ID of syndication to delete
 833       */
 834  
 835  	function delete ($idSyndic) {
 836          $db = &$this->_getDB();
 837  
 838          if (DB::isError($db)) {
 839              return PEAR::raiseError("[" . get_class($this). " DB_syndic : delete()] " . $db->getMessage(). "", null,
 840                                      null, null,
 841                                      null, null,
 842                                      false);
 843          }
 844  
 845          $query = "DELETE FROM " . $GLOBALS['table_prefix']. "_syndic WHERE id_syndic = $idSyndic";
 846  
 847          $result = $db->query($query);
 848  
 849          if (DB::isError($result)) {
 850              return PEAR::raiseError("[" . get_class($this). " DB_syndic : delete()] " . $result->getMessage(). "", null,
 851                                      null, null,
 852                                      null, null,
 853                                      false);
 854          }
 855  
 856          // mise a jour des statuts et des dates
 857          $rubriqueMetier = &recuperer_instance_rubrique();
 858          $rubriqueMetier->load($this->getRubriqueID());
 859          $statut = $rubriqueMetier->getStatutFromRubrique($this->getRubriqueID());
 860  
 861          if ($statut != $rubriqueMetier->getStatut()) {
 862              $rubriqueMetier->setStatut($statut);
 863              $rubriqueMetier->update();
 864          }
 865  
 866          $rubriqueMetier->load($this->getRubriqueID());
 867          $dateCalcul = $rubriqueMetier->getDateFromRubrique($rubriqueMetier->getRubriqueID());
 868          $dateRubrique = new Date($rubriqueMetier->getDate());
 869  
 870          if (Date::compare($dateCalcul, $dateRubrique) != 0) {
 871              $rubriqueMetier->setDate($dateCalcul->getDate());
 872              $rubriqueMetier->update();
 873          }
 874  
 875          unset($rubriqueMetier);
 876      }
 877  
 878      // }}}
 879  
 880      // {{{ _fetchData()
 881  
 882      /**
 883       * This method is used to fetch result set fields into the object fields
 884       * @access  private
 885       * @param   int $row the row to fetch
 886       */
 887  
 888  	function _fetchData ($row) {
 889          $this->setSyndicId($row['id_syndic']);
 890          $this->setRubriqueId($row['id_rubrique']);
 891          $this->setSecteurId($row['id_secteur']);
 892          $this->setNomSite($row['nom_site']);
 893          $this->setUrlSite($row['url_site']);
 894          $this->setUrlSyndic($row['url_syndic']);
 895          $this->setDescriptif($row['descriptif']);
 896          $this->setMajDate($row['maj']);
 897          $this->setSyndication($row['syndication']);
 898          $this->setStatut($row['statut']);
 899          $this->setDate($row['date_heure']);
 900          $this->setDateSyndic($row['date_syndic']);
 901          $this->setDateIndex($row['date_index']);
 902          $this->setModeration($row['moderation']);
 903      }
 904  
 905      // }}}
 906  
 907      // {{{ deleteMajDateAndStatut($myDate, $statut = null)
 908  
 909      /**
 910       * This method is used to delete the update date and the statut of syndication
 911       * @access  public
 912       * @param   Date $myDate
 913       * @param   String $statut
 914       */
 915  
 916  	function deleteMajDateAndStatut ($myDate, $statut = null) {
 917          $db = &$this->_getDB();
 918  
 919          if (DB::isError($db)) {
 920              return PEAR::raiseError(
 921                         "[" . get_class($this). " DB_syndic : deleteMajDateAndStatut()] " . $db->getMessage(). "", null,
 922                         null, null,
 923                         null, null,
 924                         false);
 925          }
 926  
 927          $dateTmp = new Date($mydate);
 928          $mydate = $dateTmp->getDate(DATE_FORMAT_ISO);
 929  
 930          $query = "DELETE FROM " . $GLOBALS['table_prefix']. "_syndic WHERE maj < '$myDate'";
 931  
 932          if ($statut != null)
 933              $query .= " AND statut = '$statut'";
 934  
 935          //echo '<br><br>' . $query . '<br>';
 936          $result = $db->query($query);
 937  
 938          if (DB::isError($result)) {
 939              return PEAR::raiseError(
 940                         "[" . get_class($this). " DB_syndic : deleteMajDateAndStatut()] " . $result->getMessage(). "",
 941                         null, null, null, null, null, false);
 942          }
 943      }
 944  
 945      // }}}
 946  
 947      // {{{ getAllSyndicIds()
 948  
 949      /**
 950       * This method is used to get all syndication ID
 951       * @access  public
 952       */
 953  
 954  	function getAllSyndicIds () {
 955          $syndicIds = array();
 956          $db = &$this->_getDB();
 957  
 958          if (DB::isError($db)) {
 959              return PEAR::raiseError("[" . get_class($this). " DB_syndic : getAllSyndicIds()] " . $db->getMessage(). "", null, null, null, null, null, false);
 960          }
 961  
 962          $query = "SELECT id_syndic FROM " . $GLOBALS['table_prefix']. "_syndic";
 963  
 964          //echo '<br>' . $query . '<br>';
 965          $result = $db->query($query);
 966  
 967          if (DB::isError($result)) {
 968              return PEAR::raiseError("[" . get_class($this). " DB_syndic : getAllSyndicIds()] " . $result->getMessage(). "", null, null, null, null, null, false);
 969          }
 970  
 971          while ($row = $result->fetchRow()) {
 972              $syndicIds[] = $row['id_syndic'];
 973          }
 974  
 975          $result->free();
 976          return $syndicIds;
 977      }
 978  
 979      // }}}
 980  
 981      // {{{ getAllSyndicIdsForStatut($statut)
 982  
 983      /**
 984       * This method is used to get all syndication ID
 985       * @access  public
 986       */
 987  
 988  	function getAllSyndicIdsForStatut ($statut) {
 989          $syndicIds = array();
 990          $db = &$this->_getDB();
 991  
 992          if (DB::isError($db)) {
 993              return PEAR::raiseError("[" . get_class($this). " DB_syndic : getAllSyndicIdsForStatut()] " . $db->getMessage(). "", null, null, null, null, null, false);
 994          }
 995  
 996          $query = "SELECT id_syndic FROM " . $GLOBALS['table_prefix']. "_syndic WHERE statut='$statut'";
 997  
 998          //echo '<br>' . $query . '<br>';
 999          $result = $db->query($query);
1000  
1001          if (DB::isError($result)) {
1002              return PEAR::raiseError("[" . get_class($this). " DB_syndic : getAllSyndicIdsForStatut()] " . $result->getMessage(). "", null, null, null, null, null, false);
1003          }
1004  
1005          while ($row = $result->fetchRow()) {
1006              $syndicIds[] = $row['id_syndic'];
1007          }
1008  
1009          $result->free();
1010          return $syndicIds;
1011      }
1012  
1013      // }}}
1014  
1015      // {{{ getMaxDateHeure($id_rubrique,$statut)
1016  
1017  	function getMaxDateHeure ($id_rubrique, $statut) {
1018          $db = &$this->_getDB();
1019  
1020          if (DB::isError($db)) {
1021              return PEAR::raiseError("[" . get_class($this). " DB_syndic : getMaxDateHeure()] " . $db->getMessage(). "", null, null, null, null, null, false);
1022          }
1023  
1024          $query = "SELECT MAX(date_heure) AS date_h FROM " . $GLOBALS['table_prefix']. "_syndic WHERE id_rubrique='$id_rubrique' AND statut='" . $statut . "'";
1025  
1026          $result = $db->query($query);
1027  
1028          if (DB::isError($result)) {
1029              return PEAR::raiseError("[" . get_class($this). " DB_syndic : getMaxDateHeure()] " . $result->getMessage(). "", null, null, null, null, null, false);
1030          }
1031  
1032          if ($row = $result->fetchRow()) {
1033              $result->free();
1034              if ($row["date_h"] == null) {
1035                  return new Date('1970-01-01 00:00:00');
1036              }
1037              else {
1038                  return new Date($row["date_h"]);
1039              }
1040          }
1041  
1042          $result->free();
1043      }
1044  
1045      // }}}
1046  
1047      // {{{ getRubriqueIDsByStatus($statut)
1048  
1049      /**
1050       * This method is used to get heading ID in the table of syndication for a specific statut
1051       * @access  public
1052       * @param   String $statut
1053       */
1054  
1055  	function getRubriqueIDsByStatus ($statut) {
1056          $rubriqueIds = array();
1057          $db = &$this->_getDB();
1058  
1059          if (DB::isError($db)) {
1060              return PEAR::raiseError("[" . get_class($this). " DB_syndic : getRubriqueIDsByStatus()] " . $db->getMessage(). "", null, null, null, null, null, false);
1061          }
1062  
1063          $query = "SELECT DISTINCT id_rubrique FROM " . $GLOBALS['table_prefix']. "_syndic WHERE statut = '$statut'";
1064  
1065          $result = $db->query($query);
1066  
1067          if (DB::isError($result)) {
1068              return PEAR::raiseError("[" . get_class($this). " DB_syndic : getRubriqueIDsByStatus()] " . $result->getMessage(). "", null, null, null, null, null, false);
1069          }
1070  
1071          while ($row = $result->fetchRow()) {
1072              $rubriqueIds[] = $row['id_rubrique'];
1073          }
1074  
1075          $result->free();
1076          return $rubriqueIds;
1077      }
1078  
1079      // }}}
1080  
1081      // {{{ howManySyndicIdForStatut($statut)
1082  
1083      /**
1084       * This method is used to count syndication ID for a specific statut
1085       * @access  public
1086       * @param   String $statut
1087       */
1088  
1089  	function howManySyndicIdForStatut ($statut) {
1090          $howManySyndicId = 0;
1091          $db = &$this->_getDB();
1092  
1093          if (DB::isError($db)) {
1094              return PEAR::raiseError("[" . get_class($this). " DB_syndic : howManySyndicIdForStatut()] " . $db->getMessage(). "", null, null, null, null, null, false);
1095          }
1096  
1097          $query = "SELECT COUNT(id_syndic) as cnt FROM " . $GLOBALS['table_prefix']. "_syndic WHERE statut='$statut'";
1098  
1099          $result = $db->query($query);
1100  
1101          if (DB::isError($result)) {
1102              return PEAR::raiseError("[" . get_class($this). " DB_syndic : howManySyndicIdForStatut()] " . $result->getMessage(). "", null, null, null, null, null, false);
1103          }
1104  
1105          if ($row = $result->fetchRow()) {
1106              $howManySyndicId = intval($row["cnt"]);
1107          }
1108  
1109          $result->free();
1110          return $howManySyndicId;
1111      }
1112  
1113      // }}}
1114  
1115      // {{{ howManySyndicIdForSyndication($syndic)
1116  
1117      /**
1118       * This method is used to count syndication ID for a specific syndication
1119       * @access  public
1120       * @param   String $syndication
1121       */
1122  
1123  	function howManySyndicIdForSyndication ($syndic) {
1124          $howManySyndicId = 0;
1125          $db = &$this->_getDB();
1126  
1127          if (DB::isError($db)) {
1128              return PEAR::raiseError("[" . get_class($this). " DB_syndic : howManySyndicIdForSyndication()] " . $db->getMessage(). "", null, null, null, null, null, false);
1129          }
1130  
1131          $query = "SELECT COUNT(id_syndic) as cnt FROM " . $GLOBALS['table_prefix']. "_syndic WHERE syndication='$syndic'";
1132  
1133          $result = $db->query($query);
1134  
1135          if (DB::isError($result)) {
1136              return PEAR::raiseError("[" . get_class($this). " DB_syndic : howManySyndicIdForSyndication()] " . $result->getMessage(). "", null, null, null, null, null, false);
1137          }
1138  
1139          if ($row = $result->fetchRow()) {
1140              $howManySyndicId = intval($row["cnt"]);
1141          }
1142  
1143          $result->free();
1144          return $howManySyndicId;
1145      }
1146  
1147      // }}}
1148  
1149      // {{{ updateSecteursForRubriques()
1150  
1151      /**
1152       * This method is used to update sector ID for a specific heading ID
1153       * @access  public
1154       * @param   int $id_secteur
1155       * @param   int $rubriques_totales
1156       */
1157  
1158  	function updateSecteursForRubriques ($id_secteur, $rubriques_totales) {
1159          $db = &$this->_getDB();
1160  
1161          if (DB::isError($db)) {
1162              return PEAR::raiseError("[" . get_class($this). " DB_syndic : updateSecteursForRubriques()] " . $db->getMessage(). "", null, null, null, null, null, false);
1163          }
1164  
1165          $query = "UPDATE " . $GLOBALS['table_prefix']. "_syndic SET id_secteur=$id_secteur WHERE id_rubrique IN ($rubriques_totales)";
1166  
1167          $result = $db->query($query);
1168  
1169          if (DB::isError($result)) {
1170              return PEAR::raiseError("[" . get_class($this). " DB_syndic : updateSecteursForRubriques()] " . $result->getMessage(). "", null, null, null, null, null, false);
1171          }
1172      }
1173  
1174      // }}}
1175  
1176      // }}}
1177  
1178      // {{{ getSyndicIdsForStatutAndDateIndex($statut)
1179  
1180      /**
1181       * Returns an array of Syndic IDS.
1182       *
1183       * @return Array of SyndicsIds
1184       * @param $month
1185       * @param $year
1186       * @access public
1187       */
1188  
1189      function &getSyndicIdsForStatutAndDateIndex ($statut) {
1190          $result = array();
1191          $db = &$this->_getDB();
1192  
1193          if (DB::isError($db)) {
1194              return PEAR::raiseError("[" . get_class($this). " DB_syndic : getSyndicIdsForStatutAndDateIndex()] " . $db->getMessage(). "", null, null, null, null, null, false);
1195          }
1196  
1197          $maDate = new Date();
1198          $maDate->subtractSeconds(intval(3600 * 24 * 7));
1199  
1200          $query = "SELECT id_syndic FROM " . $GLOBALS['table_prefix']. "_syndic WHERE statut='$statut' AND date_index < '" . $maDate->getDate(DATE_FORMAT_ISO). "' ORDER BY date_index";
1201  
1202          $queryResult = $db->limitQuery($query, 0, 1);
1203  
1204          if (DB::isError($queryResult)) {
1205              return PEAR::raiseError("[" . get_class($this). " DB_syndic : getSyndicIdsForStatutAndDateIndex()] " . $queryResult->getMessage(). "", null, null, null, null, null, false);
1206          }
1207  
1208          while ($row = $queryResult->fetchRow()) {
1209              $result[] = $row['id_syndic'];
1210          }
1211  
1212          $queryResult->free();
1213          return $result;
1214      }
1215  
1216      // }}}
1217  
1218      // {{{ getAllForSyndicationAndStatutAndIntervalHour($syndication, $statut, $hour)
1219  
1220      /**
1221       * Returns an array of Syndication.
1222       *
1223       *
1224       * @return Array of Syndication
1225       * @param $syndication
1226       * @param $statut
1227       * @param $hour
1228       * @access public
1229       */
1230  
1231      function &getAllForSyndicationAndStatutAndIntervalHour ($syndication, $statut, $hour) {
1232          $result = array();
1233          $db = &$this->_getDB();
1234  
1235          if (DB::isError($db)) {
1236              return PEAR::raiseError("[" . get_class($this). " DB_syndic : getAllForSyndicationAndStatutAndIntervalHour()] " . $db->getMessage(). "", null, null, null, null, null, false);
1237          }
1238  
1239          $maDate = new Date();
1240          $maDate->subtractSeconds(intval(3600 * $hour));
1241  
1242          $query = "SELECT * FROM " . $GLOBALS['table_prefix']. "_syndic WHERE syndication='$syndication' AND statut='$statut' AND date_syndic < '" . $maDate->getDate(DATE_FORMAT_ISO). "'";
1243          //$query = "SELECT * FROM ".$GLOBALS['table_prefix']."_syndic WHERE syndication='$syndication' AND statut='$statut' AND date_syndic < DATE_SUB(NOW(), INTERVAL $hour HOUR) ORDER BY date_syndic LIMIT 0,1";
1244  
1245          //echo "<br>$query<br>";
1246  
1247          $queryResult = $db->limitQuery($query, 0, 1);
1248  
1249          if (DB::isError($queryResult)) {
1250              return PEAR::raiseError("[" . get_class($this). " DB_syndic : getAllForSyndicationAndStatutAndIntervalHour()] " . $queryResult->getMessage(). "", null, null, null, null, null, false);
1251          }
1252  
1253          while ($row = $queryResult->fetchRow()) {
1254              $resultSyndic = &BD_syndic::factory($this->getDbParameters(), $this->getDbOptions());
1255              $resultSyndic->setSyndicId($row['id_syndic']);
1256              $resultSyndic->setRubriqueId($row['id_rubrique']);
1257              $resultSyndic->setSecteurId($row['id_secteur']);
1258              $resultSyndic->setNomSite($row['nom_site']);
1259              $resultSyndic->setUrlSite($row['url_site']);
1260              $resultSyndic->setUrlSyndic($row['url_syndic']);
1261              $resultSyndic->setDescriptif($row['descriptif']);
1262              $resultSyndic->setMajDate($row['maj']);
1263              $resultSyndic->setSyndication($row['syndication']);
1264              $resultSyndic->setStatut($row['statut']);
1265              $resultSyndic->setDate($row['date_heure']);
1266              $resultSyndic->setDateSyndic($row['date_syndic']);
1267              $resultSyndic->setDateIndex($row['date_index']);
1268              $resultSyndic->setModeration($row['moderation']);
1269              $result[] = &$resultSyndic;
1270          }
1271  
1272          $queryResult->free();
1273          return $result;
1274      }
1275  
1276      // }}}
1277  
1278      // {{{ getAllSyndicForSyndicIdAndsyndication($id_syndic)
1279  
1280      /**
1281       * Returns an array of Syndication.
1282       *
1283       *
1284       * @return Array of Syndication
1285       * @param $id_syndic
1286       * @access public
1287       */
1288  
1289      function &getAllSyndicForSyndicIdAndsyndication ($id_syndic) {
1290          $result = array();
1291          $db = &$this->_getDB();
1292  
1293          if (DB::isError($db)) {
1294              return PEAR::raiseError("[" . get_class($this). " DB_syndic : getAllSyndicForSyndicIdAndsyndication()] " . $db->getMessage(). "", null, null, null, null, null, false);
1295          }
1296  
1297          $query = "SELECT * FROM " . $GLOBALS['table_prefix']. "_syndic WHERE id_syndic=$id_syndic AND syndication='oui' OR syndication='sus' OR syndication='off'";
1298  
1299          //echo "<br>$query<br>";
1300  
1301          $queryResult = $db->query($query);
1302  
1303          if (DB::isError($queryResult)) {
1304              return PEAR::raiseError("[" . get_class($this). " DB_syndic : getAllSyndicForSyndicIdAndsyndication()] " . $queryResult->getMessage(). "", null, null, null, null, null, false);
1305          }
1306  
1307          while ($row = $queryResult->fetchRow()) {
1308              $resultSyndic = &BD_syndic::factory($this->getDbParameters(), $this->getDbOptions());
1309              $resultSyndic->setSyndicId($row['id_syndic']);
1310              $resultSyndic->setRubriqueId($row['id_rubrique']);
1311              $resultSyndic->setSecteurId($row['id_secteur']);
1312              $resultSyndic->setNomSite($row['nom_site']);
1313              $resultSyndic->setUrlSite($row['url_site']);
1314              $resultSyndic->setUrlSyndic($row['url_syndic']);
1315              $resultSyndic->setDescriptif($row['descriptif']);
1316              $resultSyndic->setMajDate($row['maj']);
1317              $resultSyndic->setSyndication($row['syndication']);
1318              $resultSyndic->setStatut($row['statut']);
1319              $resultSyndic->setDate($row['date_heure']);
1320              $resultSyndic->setDateSyndic($row['date_syndic']);
1321              $resultSyndic->setDateIndex($row['date_index']);
1322              $resultSyndic->setModeration($row['moderation']);
1323              $result[] = &$resultSyndic;
1324          }
1325  
1326          $queryResult->free();
1327          return $result;
1328      }
1329  
1330      // }}}
1331  
1332      // {{{ unlinkAllExceptsyndicIds($syndicId)
1333  
1334      /**
1335       * This method is used to delete all the syndicated articles exceptfor a specific syndication ID
1336       * @access  public
1337       * @param   int $syndicId ID of syndication to delete
1338       */
1339  
1340  	function unlinkAllExceptsyndicIds ($syndicId) {
1341          if ((is_null($syndicId))or ($syndicId <= 0))
1342              return;
1343  
1344          $db = &$this->_getDB();
1345  
1346          if (DB::isError($db)) {
1347              return PEAR::raiseError("[" . get_class($this). " DB_syndic : unlinkAllExceptsyndicIds()] " . $db->getMessage(). "", null, null, null, null, null, false);
1348          }
1349  
1350          $query = "DELETE FROM " . $GLOBALS['table_prefix']. "_syndic_articles WHERE id_syndic NOT IN (0,$syndicId)";
1351  
1352          //echo '<br>' . $query . '<br>';
1353          $result = $db->query($query);
1354  
1355          if (DB::isError($result)) {
1356              return PEAR::raiseError("[" . get_class($this). " DB_syndic : unlinkAllExceptsyndicIds()] " . $result->getMessage(). "", null, null, null, null, null, false);
1357          }
1358  
1359          $query = "DELETE FROM " . $GLOBALS['table_prefix']. "_mots_syndic WHERE id_syndic NOT IN ($syndicId)";
1360  
1361          //echo '<br>' . $query . '<br>';
1362          $result = $db->query($query);
1363  
1364          if (DB::isError($result)) {
1365              return PEAR::raiseError("[" . get_class($this). " DB_syndic : unlinkAllExceptsyndicIds()] " . $result->getMessage(). "", null, null, null, null, null, false);
1366          }
1367  
1368          $query = "DELETE FROM " . $GLOBALS['table_prefix']. "_forum WHERE id_syndic NOT IN (0,$syndicId)";
1369  
1370          //echo '<br>' . $query . '<br>';
1371          $result = $db->query($query);
1372  
1373          if (DB::isError($result)) {
1374              return PEAR::raiseError("[" . get_class($this). " DB_syndic : unlinkAllExceptsyndicIds()] " . $result->getMessage(). "", null, null, null, null, null, false);
1375          }
1376      }
1377  
1378      // }}}
1379  
1380      // {{{ getAllForStatut($statut)
1381  
1382      /**
1383       * Returns an array of Syndic.
1384       *
1385       * @return Array of Syndic
1386       * @param $statut
1387       * @access public
1388       */
1389  
1390      function &getAllForStatut ($statut) {
1391          $syndics = array();
1392          $db = &$this->_getDB();
1393  
1394          if (DB::isError($db)) {
1395              return PEAR::raiseError("[" . get_class($this). " DB_syndic : getAllForStatut()] " . $db->getMessage(). "", null, null, null, null, null, false);
1396          }
1397  
1398          $query = "SELECT * FROM " . $GLOBALS['table_prefix']. "_syndic WHERE statut='$statut'";
1399  
1400          //echo "<br><br>$query<br><br>";
1401          $queryResult = $db->query($query);
1402  
1403          if (DB::isError($queryResult)) {
1404              return PEAR::raiseError("[" . get_class($this). " DB_syndic : getAllForStatut()] " . $queryResult->getMessage(). "", null, null, null, null, null, false);
1405          }
1406  
1407          while ($row = $queryResult->fetchRow()) {
1408              $resultSyndic = &BD_syndic::factory($this->getDbParameters(), $this->getDbOptions());
1409  
1410              $maDate = new Date($row['maj']);
1411              $row['maj'] = $maDate->getDate(DATE_FORMAT_TIMESTAMP);
1412  
1413              $resultSyndic->_fetchData($row);
1414              $syndics[] = &$resultSyndic;
1415          }
1416  
1417          $queryResult->free();
1418          return $syndics;
1419      }
1420  
1421      // }}}
1422  
1423      // {{{ howManySiteForMot($conf_mot, $aff_articles, $statut)
1424  
1425  	function howManySiteForMot ($conf_mot, $aff_articles, $statut) {
1426          $howManySite = 0;
1427          $db = &$this->_getDB();
1428  
1429          if (DB::isError($db)) {
1430              return PEAR::raiseError("[" . get_class($this). " DB_site : howManySiteForMot()] " . $db->getMessage(). "", null, null, null, null, null, false);
1431          }
1432  
1433          $query = "SELECT COUNT(*) as cnt FROM " . $GLOBALS['table_prefix']. "_mots_syndic lien, " . $GLOBALS['table_prefix']. "_syndic syndic WHERE lien.id_mot=$conf_mot AND syndic.id_syndic=lien.id_syndic    AND syndic.statut LIKE '$aff_articles' AND syndic.statut!='$statut'";
1434  
1435          $result = $db->query($query);
1436  
1437          if (DB::isError($result)) {
1438              return PEAR::raiseError("[" . get_class($this). " DB_site : howManySiteForMot()] " . $result->getMessage(). "", null, null, null, null, null, false);
1439          }
1440  
1441          if ($row = $result->fetchRow()) {
1442              $$howManySite = intval($row["cnt"]);
1443          }
1444  
1445          $result->free();
1446          return $howManySite;
1447      }
1448      // }}}    
1449  
1450      // {{{ getAllSyndics()
1451  
1452      function &getAllSyndics () {
1453          $result = array();
1454          $db = &$this->_getDB();
1455  
1456          if (DB::isError($db)) {
1457              return PEAR::raiseError("[" . get_class($this). " DB_syndic : getAllSyndics()] " . $db->getMessage(). "", null, null, null, null, null, false);
1458          }
1459  
1460          $query = "SELECT * FROM " . $GLOBALS['table_prefix']. "_syndic";
1461  
1462          //echo "<br>$query<br>";
1463  
1464          $queryResult = $db->query($query);
1465  
1466          if (DB::isError($queryResult)) {
1467              return PEAR::raiseError("[" . get_class($this). " DB_syndic : getAllSyndics()] " . $queryResult->getMessage(). "", null, null, null, null, null, false);
1468          }
1469  
1470          while ($row = $queryResult->fetchRow()) {
1471              $resultSyndic = &BD_syndic::factory($this->getDbParameters(), $this->getDbOptions());
1472              $resultSyndic->setSyndicId($row['id_syndic']);
1473              $resultSyndic->setRubriqueId($row['id_rubrique']);
1474              $resultSyndic->setSecteurId($row['id_secteur']);
1475              $resultSyndic->setNomSite($row['nom_site']);
1476              $resultSyndic->setUrlSite($row['url_site']);
1477              $resultSyndic->setUrlSyndic($row['url_syndic']);
1478              $resultSyndic->setDescriptif($row['descriptif']);
1479              $resultSyndic->setMajDate($row['maj']);
1480              $resultSyndic->setSyndication($row['syndication']);
1481              $resultSyndic->setStatut($row['statut']);
1482              $resultSyndic->setDate($row['date_heure']);
1483              $resultSyndic->setDateSyndic($row['date_syndic']);
1484              $resultSyndic->setDateIndex($row['date_index']);
1485              $resultSyndic->setModeration($row['moderation']);
1486              $result[] = &$resultSyndic;
1487          }
1488  
1489          $queryResult->free();
1490          return $result;
1491      }
1492  
1493      // }}}
1494  
1495      // {{{ getSyndicsForRubriqueIdAndStatut($rubriqueId, $statut, $orderBy)
1496  
1497      /**
1498       * Returns an array of Syndic.
1499       *
1500       * @return Array of Syndic
1501       * @param $rubriqueId
1502       * @param $statut
1503       * @param $orderBy
1504       * @access public
1505       */
1506  
1507      function &getSyndicsForRubriqueIdAndStatut ($rubriqueId, $statut, $orderBy) {
1508          $syndics = array();
1509          $db = &$this->_getDB();
1510  
1511          if (DB::isError($db)) {
1512              return PEAR::raiseError("[" . get_class($this). " DB_syndic : getSyndicsForRubriqueIdAndStatut()] " . $db->getMessage(). "", null, null, null, null, null, false);
1513          }
1514  
1515          $query = "SELECT " . SYNDIC_ALL_FIELDS . " FROM " . $GLOBALS['table_prefix']. "_syndic WHERE id_rubrique=$rubriqueId AND statut!='$statut'";
1516  
1517          if ($orderBy != null)
1518              $query .= " ORDER BY $orderBy";
1519  
1520          //echo "<br><br>$query<br><br>";
1521  
1522          $queryResult = $db->query($query);
1523  
1524          if (DB::isError($queryResult)) {
1525              return PEAR::raiseError("[" . get_class($this). " DB_syndic : getSyndicsForRubriqueIdAndStatut()] " . $queryResult->getMessage(). "", null, null, null, null, null, false);
1526          }
1527  
1528          while ($row = $queryResult->fetchRow()) {
1529              $resultSyndic = &BD_syndic::factory($this->getDbParameters(), $this->getDbOptions());
1530  
1531              $maDate = new Date($row['maj']);
1532              $row['maj'] = $maDate->getDate(DATE_FORMAT_TIMESTAMP);
1533  
1534              $resultSyndic->_fetchData($row);
1535              $syndics[] = &$resultSyndic;
1536          }
1537  
1538          $queryResult->free();
1539          return $syndics;
1540      }
1541  
1542  // }}}    
1543  
1544  }
1545  ?>


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