Subversion Repositories Sites.tela-botanica.org

Rev

Rev 609 | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
4 david 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
?>