[ Index ]
 

Code source de SPIP 1.8.3

Accédez au Source d'autres logiciels libres | Soutenez Angelica Josefina !

title

Body

[fermer]

/ecrire/ -> inc_objet.php3 (source)

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


Généré le : Thu Feb 22 22:27:47 2007 par Balluche grâce à PHPXref 0.7