[ Index ]
 

Code source de SPIP Agora 1.4

Accédez au Source d'autres logiciels libresSoutenez Angelica Josefina !

title

Body

[fermer]

/Agora1-4/ecrire/ -> inc_objet.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  // Ce fichier ne sera execute qu'une fois
  20  if (defined("_ECRIRE_INC_OBJET"))
  21      return;
  22  
  23  define("_ECRIRE_INC_OBJET", "1");
  24  
  25  include_ecrire  ('inc_objet_base.php');
  26  
  27  //
  28  // --- Creation de classe concrete ----
  29  //
  30  // Il faut creer deux classes :
  31  //   - une pour la factory
  32  //   - une pour le descripteur d'objet
  33  //
  34  // Le descripteur d'objet doit declarer le constructeur, qui peut
  35  // etre laisse vide.
  36  //
  37  // La factory doit declarer 1) le constructeur, qui regle normalement
  38  // le nom des champs, de la table sql, et du descripteur d'objet ;
  39  // ainsi que 2) la methode new_object, qui prend le $id d'un objet en
  40  // argument et initialise les champs du nouvel objet selon la
  41  // semantique choisie pour icelui.
  42  //
  43  // Ensuite il faut instancier et enregistrer la factory et fournir
  44  // une fonction globale d'appel d'objet. Le plus simple est de
  45  // recopier la fonction fournie et de changer les noms.
  46  //
  47  
  48  // --------------------------------------------------------------------
  49  
  50  //
  51  // Factory d'articles
  52  //
  53  
  54  class ArticleFactory extends _ObjectFactory {
  55      // Initialiser les variables de classe
  56  	function ArticleFactory () {
  57          $this->fast_vars_list = array('id_article', 'id_rubrique', 'id_secteur', 'titre', 'surtitre',
  58                                      'soustitre', 'descriptif', 'date', 'date_redac', 'visites', 'referers', 'statut');
  59          $this->slow_vars_list = array('chapo', 'texte', 'ps');
  60          $this->sql_table = $GLOBALS['table_prefix']. '_articles';
  61          $this->object_class = 'Article';
  62      }
  63  
  64      // Initialiser les variables d'objet
  65  	function new_object ($id) {
  66          $this->set_object_field($id, 'titre', 'Nouvel article');
  67          $this->set_object_field($id, 'statut', 'poubelle');
  68      }
  69  }
  70  
  71  class Article extends _Object {
  72      // Ne rien faire
  73  	function Article () { }
  74  }
  75  
  76  add_factory ('article'); // Retourne 'article_factory'
  77  
  78  function fetch_article ($critere, $fast = true) {
  79      return $GLOBALS['article_factory']->fetch_object($critere, $fast);
  80  }
  81  
  82  // --------------------------------------------------------------------
  83  
  84  //
  85  // Factory de breves
  86  //
  87  
  88  class BreveFactory extends _ObjectFactory {
  89      // Initialiser les variables de classe
  90  	function BreveFactory () {
  91          $this->fast_vars_list = array('id_breve',
  92                                      'id_rubrique', 'titre', 'lien_titre', 'lien_url', 'date_heure', 'statut');
  93          $this->slow_vars_list = array('texte');
  94          $this->sql_table = 'spip_breves';
  95          $this->object_class = 'Breve';
  96      }
  97  
  98      // Initialiser les variables d'objet
  99  	function new_object ($id) {
 100          $this->set_object_field($id, 'titre', 'Nouvelle breve');
 101          $this->set_object_field($id, 'statut', 'refuse');
 102      }
 103  }
 104  
 105  class Breve extends _Object {
 106      // Ne rien faire
 107  	function Breve () { }
 108  }
 109  
 110  add_factory ('breve'); // Retourne 'article_factory'
 111  
 112  function fetch_breve ($critere, $fast = true) {
 113      return $GLOBALS['breve_factory']->fetch_object($critere, $fast);
 114  }
 115  
 116  // --------------------------------------------------------------------
 117  
 118  //
 119  // Factory de documents
 120  //
 121  
 122  class DocumentFactory extends _ObjectFactory {
 123      // Initialiser les variables de classe
 124  	function DocumentFactory () {
 125          $this->fast_vars_list = array('id_document', 'id_vignette', 'id_type',
 126                                      'titre', 'descriptif', 'fichier', 'largeur', 'hauteur', 'taille', 'mode', 'date');
 127          $this->slow_vars_list = '';
 128          $this->sql_table = 'spip_documents';
 129          $this->object_class = 'Document';
 130      }
 131  
 132      // Initialiser les variables d'objet
 133  	function new_object ($id) {
 134          $this->set_object_field($id, 'titre', 'nouveau document');
 135      }
 136  }
 137  
 138  class Document extends _Object {
 139      // Ne rien faire
 140  	function Document () { }
 141  }
 142  
 143  add_factory ('document'); // Retourne 'article_factory'
 144  
 145  function fetch_document ($critere, $fast = true) {
 146      //var_dump($GLOBALS['document_factory']);
 147      return $GLOBALS['document_factory']->fetch_object($critere, $fast);
 148  }
 149  ?>


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