[ Index ] |
|
Code source de SPIP 1.8.3 |
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 ?>
titre
Description
Corps
titre
Description
Corps
titre
Description
Corps
titre
Corps
Généré le : Thu Feb 22 22:27:47 2007 | par Balluche grâce à PHPXref 0.7 |