[ Index ] |
|
Code source de SPIP Agora 1.4 |
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 ?>
titre
Description
Corps
titre
Description
Corps
titre
Description
Corps
titre
Corps
Généré le : Sat Feb 24 14:40:03 2007 | par Balluche grâce à PHPXref 0.7 |