Subversion Repositories Applications.projet

Rev

Rev 387 | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 387 Rev 431
Line 1... Line -...
1
<?php
-
 
2
//vim: set expandtab tabstop=4 shiftwidth=4:
-
 
3
 
-
 
4
// Copyright (C) 1999-2006 Tela Botanica (accueil@tela-botanica.org)
-
 
5
//
-
 
6
// Ce logiciel est un programme informatique servant � g�rer du contenu et des
-
 
7
// applications web.
-
 
8
                                                                                                      
-
 
9
// Ce logiciel est regi par la licence CeCILL soumise au droit francais et
-
 
10
// respectant les principes de diffusion des logiciels libres. Vous pouvez
-
 
11
// utiliser, modifier et/ou redistribuer ce programme sous les conditions
-
 
12
// de la licence CeCILL telle que diffusee par le CEA, le CNRS et l'INRIA 
-
 
13
// sur le site "http://www.cecill.info".
-
 
14
 
-
 
15
// En contrepartie de l'accessibilite au code source et des droits de copie,
-
 
16
// de modification et de redistribution accordes par cette licence, il n'est
-
 
17
// offert aux utilisateurs qu'une garantie limitee.  Pour les memes raisons,
-
 
18
// seule une responsabilite restreinte pese sur l'auteur du programme,  le
-
 
19
// titulaire des droits patrimoniaux et les concedants successifs.
-
 
20
 
-
 
21
// A cet egard  l'attention de l'utilisateur est attiree sur les risques
-
 
22
// associes au chargement,  a l'utilisation,  a la modification et/ou au
-
 
23
// developpement et a la reproduction du logiciel par l'utilisateur etant 
-
 
24
// donne sa specificite de logiciel libre, qui peut le rendre complexe a 
-
 
25
// manipuler et qui le reserve donc a des developpeurs et des professionnels
-
 
26
// avertis possedant  des  connaissances  informatiques approfondies.  Les
-
 
27
// utilisateurs sont donc invites a charger  et  tester  l'adequation  du
-
 
28
// logiciel a leurs besoins dans des conditions permettant d'assurer la
-
 
29
// securite de leurs systemes et ou de leurs donnees et, plus generalement, 
-
 
30
// a l'utiliser et l'exploiter dans les memes conditions de securite. 
-
 
31
 
-
 
32
// Le fait que vous puissiez acceder a cet en-tete signifie que vous avez 
-
 
33
// pris connaissance de la licence CeCILL, et que vous en avez accepte les
-
 
34
// termes.
-
 
35
// ----
-
 
36
// CVS : $Id: ezmlmAccessObject.class.php,v 1.6 2008-08-25 15:16:59 alexandre_tb Exp $
-
 
37
 
-
 
38
/**
-
 
39
* Application projet
-
 
40
*
-
 
41
* La classe ezmlmAccessObject
-
 
42
*
-
 
43
*@package projet
-
 
44
//Auteur original :
-
 
45
*@author        Alexandre Granier <alexandre@tela-botanica.org>
-
 
46
//Autres auteurs :
-
 
47
*@author        Aucun
-
 
48
*@copyright     Tela-Botanica 2000-2006
-
 
49
*@version       $Revision: 1.6 $
-
 
50
// +------------------------------------------------------------------------------------------------------+
-
 
51
*/
-
 
52
 
-
 
53
/** Etend XML_Parser_Simple */
-
 
54
require_once 'XML/Parser/Simple.php' ;
-
 
55
 
-
 
56
/**
-
 
57
 * Les codes erreurs
-
 
58
 */
-
 
59
 
-
 
60
define ('EZMLM_ACCESS_OBJECT_ACTION_NON_SUPPORTEE', 206) ;
-
 
61
/**
-
 
62
 * classe ezmlmAccessObject parse les fichiers XML
-
 
63
 * issue de ezmlm
-
 
64
 * 
-
 
65
 * @category XML  
-
 
66
 * @package projet
-
 
67
 * @author alex  
-
 
68
 */
-
 
69
 
-
 
70
class ezmlmAccessObject extends XML_Parser_Simple {
-
 
71
	
-
 
72
	/**
-
 
73
	 * Le domaine de la liste
-
 
74
	 */
-
 
75
	 
-
 
76
	var $domaine ;
-
 
77
	 
-
 
78
	 /**
-
 
79
	  * Le nom de la liste
-
 
80
	 */
-
 
81
	  
-
 
82
	var $liste ;
-
 
83
	  
-
 
84
	  /**
-
 
85
	  * Les actions valides
-
 
86
	  */
-
 
87
	   
-
 
88
	var $actions_supportees = array ('calendrier_messages',
-
 
89
									 'message',
-
 
90
									 'derniers_messages',
-
 
91
									 'messages_auteur',
-
 
92
									 'messages_mois',
-
 
93
									 'messages_thread',
-
 
94
									 'supprimer',
-
 
95
									 'liste_abonnes',
-
 
96
									 'nombre_messages');
-
 
97
	   
-
 
98
	/**
-
 
99
	* l'action selectionnee
-
 
100
	*/
-
 
101
	var $action ;
-
 
102
	
-
 
103
	/**
-
 
104
	 * La langue 'fr-FR'
-
 
105
	 */
-
 
106
	 var $langue ;
-
 
107
	
-
 
108
	/**
-
 
109
	 * L'url de base
-
 
110
	 */
-
 
111
	 var $url ;
-
 
112
	
-
 
113
	/**
-
 
114
	 * L'identifiant du repertoire
-
 
115
	 */ 
-
 
116
	var $identifiant_repertoire ;
-
 
117
	
-
 
118
	/**
-
 
119
	 * Identifiant message
-
 
120
	 */
-
 
121
	
-
 
122
	var $identifiant_message;
-
 
123
 
-
 
124
	/**
-
 
125
	 * L'identifiant du repertoire
-
 
126
	 */ 
-
 
127
	var $_numeroRepertoireSuivant ;
-
 
128
	
-
 
129
	/**
-
 
130
	 * L'identifiant du repertoire
-
 
131
	 */ 
-
 
132
	var $hash_auteur ;
-
 
133
	
-
 
134
	/**
-
 
135
	 * Le mois a afficher
-
 
136
	 */ 
-
 
137
	var $mois ;
-
 
138
	
-
 
139
	var $_numeraRepertoirePrecedent;
-
 
140
	
-
 
141
	/**
-
 
142
	 * Identifiant message
-
 
143
	 */
-
 
144
	
-
 
145
	var $_numeroFichierSuivant;
-
 
146
	
-
 
147
	var $_numeroFichierPrecedent;
-
 
148
	
-
 
149
	var $chemin_fichier_xml;
-
 
150
	
-
 
151
	/**
-
 
152
	 * Creation de l'objet d'acces
-
 
153
	 * 
-
 
154
	 */
-
 
155
	
-
 
156
	function ezmlmAccessObject ($action, $domaine, $liste, $langue = 'fr', $url = '') {
-
 
157
		$this->XML_Parser_Simple(null, 'func') ;
-
 
158
		$this->action = $action ;
-
 
159
		$this->domaine = $domaine ;
-
 
160
		$this->liste = $liste ;
-
 
161
		$this->langue = $langue ;
-
 
162
		$this->url = $url ;
-
 
163
	}
-
 
164
	
-
 
165
	/**
-
 
166
	 * Gestion des balises
-
 
167
	 * 
-
 
168
	 * Cette methode specifie les balises reconnus par ezmlmAccessObject
-
 
169
	 * Elle remplace la methode handleElement de XML_Parser_Simple
-
 
170
	 * 
-
 
171
	 * @access public
-
 
172
	 * @param string nom de l'element (Voir la doc de PHP)
-
 
173
	 * @param array attributes
-
 
174
	 * @param 
-
 
175
	 * @link http://fr.php.net/manual/fr/ref.xml.php manuel
-
 
176
	 */
-
 
177
	
-
 
178
	function handleElement_ezmlm_message ($name, $attribs, $data) {
-
 
179
		echo $data ;		
-
 
180
	}
-
 
181
	
-
 
182
	function handleElement_message_suivant ($name, $attribs, $data) {
-
 
183
		$this->_numeroRepertoireSuivant = $attribs['NUMERO_REPERTOIRE'] ;
-
 
184
		$this->_numeroFichierSuivant = $attribs['NUMERO'] ;
-
 
185
	}
-
 
186
	
-
 
187
	function handleElement_message_precedent ($name, $attribs, $data) {
-
 
188
		$this->_numeroRepertoirePrecedent = $attribs['NUMERO_REPERTOIRE'] ;
-
 
189
		$this->_numeroFichierPrecedent = $attribs['NUMERO'] ;
-
 
190
	}
-
 
191
	function handleElement_ezmlm_calendrier_messages ($name, $attribs, $data) { echo $data ; }
-
 
192
	
-
 
193
	function handleElement_ezmlm_derniers_messages ($name, $attribs, $data) { echo $data ; }
-
 
194
	
-
 
195
	function handleElement_ezmlm_messages_auteur ($name, $attribs, $data) { echo $data ; }
-
 
196
	
-
 
197
	function handleElement_ezmlm_messages_mois ($name, $attribs, $data) { echo $data ; }
-
 
198
	
-
 
199
	function handleElement_ezmlm_messages_thread ($name, $attribs, $data) { echo $data ; }
-
 
200
	
-
 
201
	function handleElement_ezmlm_liste_abonnes ($name, $attribs, $data) { echo $data ; }
-
 
202
	
-
 
203
	function handleElement_ezmlm_nombre_messages ($name, $attribs, $data) { echo $data ; }
-
 
204
	/**
-
 
205
	 * Choix de l'action
-
 
206
	 * 
-
 
207
	 * Liste des actions :
-
 
208
	 * 'calendrier_messages'
-
 
209
	 * 
-
 
210
	 * @access public
-
 
211
	 * @param string	une action qui doit etre support�
-
 
212
	 */
-
 
213
	
-
 
214
	function setAction($action) {
-
 
215
		// verification de l'action 
-
 
216
		if (!in_array($action, $this->actions_supportees)) {
-
 
217
			return raiseError(EZMLM_ACCESS_OBJECT_ACTION_NON_SUPPORTEE) ;	
-
 
218
		}
-
 
219
		$this->action = $action ;
-
 
220
		
-
 
221
		// Libere les ressources (XML_Parser::free)
-
 
222
		$this->free();
-
 
223
		
-
 
224
		// On vide l url
-
 
225
		//$this->url = '';
-
 
226
		$this->chemin_fichier_xml = '';
-
 
227
		// Charge la nouvelle action
-
 
228
		$this->load() ;
-
 
229
	}
-
 
230
	
-
 
231
	/**
-
 
232
	 * Charge une action
-
 
233
	 * 
-
 
234
	 * cad affecte un fichier xml au parser
-
 
235
	 * 
-
 
236
	 * @access public
-
 
237
	 */
-
 
238
	function load() {
-
 
239
		$this->chemin_fichier_xml = PROJET_SERVEUR_VPOPMAIL.'/'.$this->action.'.php?domaine='.
-
 
240
                         $this->domaine.'&liste='.$this->liste.'&langue='.
-
 
241
                         $this->langue ;
-
 
242
		if ($this->url != '') $this->chemin_fichier_xml.= '&url='.urlencode($this->url) ; 
-
 
243
		if (isset ($this->identifiant_repertoire)) 
-
 
244
			$this->chemin_fichier_xml .= '&actionargs[]='.$this->identifiant_repertoire ;
-
 
245
		if (isset ($this->identifiant_message)) 
-
 
246
			$this->chemin_fichier_xml .= '&actionargs[]='.$this->identifiant_message ;
-
 
247
		if (isset ($this->hash_auteur)) 
-
 
248
			$this->chemin_fichier_xml .= '&actionargs[]='.$this->hash_auteur ;
-
 
249
		if (isset ($this->mois)) 
-
 
250
			$this->chemin_fichier_xml .= '&actionargs[]='.$this->mois ;
-
 
251
		
-
 
252
		$this->setInputFile($this->chemin_fichier_xml) ;
-
 
253
	}
-
 
254
	
-
 
255
	/**
-
 
256
	 * Precise un message a extraire
-
 
257
	 * 
-
 
258
	 * On indique le numero de repertoire ezmlm et le numero du message
-
 
259
	 * @param	integer	le numero du repertoire
-
 
260
	 * @param 	integer le numero du message
-
 
261
	 * 
-
 
262
	 */
-
 
263
	 
-
 
264
	 function setIdMessage ($identifiant_repertoire, $identifiant_message) {
-
 
265
	 	$this->identifiant_repertoire = $identifiant_repertoire ;
-
 
266
	 	$this->identifiant_message = $identifiant_message ;	
-
 
267
	 }
-
 
268
	 
-
 
269
	 	/**
-
 
270
	 * Precise un auteur
-
 
271
	 * 
-
 
272
	 * On indique le numero de repertoire ezmlm et le numero du message
-
 
273
	 * @param	string	le hash d'un auteur
-
 
274
	 * 
-
 
275
	 */
-
 
276
	 
-
 
277
	 function setHashAuteur ($hash_auteur) {
-
 
278
	 	$this->hash_auteur = $hash_auteur;	
-
 
279
	 }
-
 
280
	 /**
-
 
281
	 * Precise un mois
-
 
282
	 * 
-
 
283
	 * On indique le numero de repertoire ezmlm et le num�ro du message
-
 
284
	 * @param	string	le hash d'un auteur
-
 
285
	 * 
-
 
286
	 */
-
 
287
	 
-
 
288
	 function setMois ($mois) {
-
 
289
	 	$this->mois = $mois;	
-
 
290
	 }
-
 
291
	 
-
 
292
	 /**
-
 
293
	  * Renvoi le numero du repertoire suivant
-
 
294
	  * 
-
 
295
	  * 
-
 
296
	 */
-
 
297
	 function getNumeroRepertoireSuivant() { return $this->_numeroRepertoireSuivant; } 
-
 
298
	 
-
 
299
	 function getNumeroFichierSuivant () { return $this->_numeroFichierSuivant ; }
-
 
300
	 
-
 
301
	 function getNumeroRepertoirePrecedent() { return $this->_numeroRepertoirePrecedent; }
-
 
302
	 
-
 
303
	 function getNumeroFichierPrecedent () { return $this->_numeroFichierPrecedent ; }
-
 
304
	 
-
 
305
	 function getNumeroMessage () { return $this->_numeroMessage ; }
-
 
306
	 
-
 
307
	 function getNombreTotalMessage () { return $this->_nombreTotalMessage ; }
-
 
308
	 
-
 
309
	 function parse()
-
 
310
    {
-
 
311
  		if (substr(phpversion(), 0, 1) == '5') {
-
 
312
  			try {
-
 
313
			    $xml = new SimpleXMLElement($this->chemin_fichier_xml, null, true);
-
 
314
			    switch ($this->action) {
-
 
315
  				case 'calendrier_messages' :echo $xml; 
-
 
316
	  				echo $xml->ezmlm_calendrier_messages;
-
 
317
	  				break;
-
 
318
	  				case 'message':
-
 
319
	  				echo $xml;
-
 
320
	  				$this->_numeroRepertoirePrecedent = $xml->message_precedent['numero_repertoire'];
-
 
321
	  				$this->_numeroRepertoireSuivant = $xml->message_suivant['numero_repertoire'];
-
 
322
	  				$this->_numeroFichierSuivant = $xml->message_suivant['numero'];
-
 
323
	  				$this->_numeroFichierPrecedent = $xml->message_precedent['numero'];
-
 
324
	  				$this->_numeroMessage = $xml->numero;
-
 
325
	  				$this->_nombreTotalMessage = $xml->numero['total_message'];
-
 
326
  				break;
-
 
327
  					case 'nombre_messages':
-
 
328
  					
-
 
329
  					echo $xml[0];
-
 
330
  					
-
 
331
  				break;
-
 
332
  					case 'liste_abonnes':
-
 
333
  					return $xml;
-
 
334
  				break;
-
 
335
  				default :
-
 
336
  					echo $xml;
-
 
337
  					
-
 
338
  				}
-
 
339
			    $error = 'Erreur dans l\'acc&egrave;s au fichier:<br />'.$this->chemin_fichier_xml.'<br />';
-
 
340
			    $error = '';
-
 
341
			   throw new Exception($error);
-
 
342
			}
-
 
343
			catch (Exception $e) {
-
 
344
			    echo $e->getMessage().'<br />';
-
 
345
			    //echo $this->chemin_fichier_xml;
-
 
346
			}
-
 
347
  			
-
 
348
  		} else {
-
 
349
  			return parent::parse();
-
 
350
  		}
-
 
351
    }
-
 
352
}
-
 
353
 
-
 
354
?>
-
 
355
1
<?php
-
 
2
//vim: set expandtab tabstop=4 shiftwidth=4:
-
 
3
 
-
 
4
// Copyright (C) 1999-2006 Tela Botanica (accueil@tela-botanica.org)
-
 
5
//
-
 
6
// Ce logiciel est un programme informatique servant � g�rer du contenu et des
-
 
7
// applications web.
-
 
8
                                                                                                      
-
 
9
// Ce logiciel est regi par la licence CeCILL soumise au droit francais et
-
 
10
// respectant les principes de diffusion des logiciels libres. Vous pouvez
-
 
11
// utiliser, modifier et/ou redistribuer ce programme sous les conditions
-
 
12
// de la licence CeCILL telle que diffusee par le CEA, le CNRS et l'INRIA 
-
 
13
// sur le site "http://www.cecill.info".
-
 
14
 
-
 
15
// En contrepartie de l'accessibilite au code source et des droits de copie,
-
 
16
// de modification et de redistribution accordes par cette licence, il n'est
-
 
17
// offert aux utilisateurs qu'une garantie limitee.  Pour les memes raisons,
-
 
18
// seule une responsabilite restreinte pese sur l'auteur du programme,  le
-
 
19
// titulaire des droits patrimoniaux et les concedants successifs.
-
 
20
 
-
 
21
// A cet egard  l'attention de l'utilisateur est attiree sur les risques
-
 
22
// associes au chargement,  a l'utilisation,  a la modification et/ou au
-
 
23
// developpement et a la reproduction du logiciel par l'utilisateur etant 
-
 
24
// donne sa specificite de logiciel libre, qui peut le rendre complexe a 
-
 
25
// manipuler et qui le reserve donc a des developpeurs et des professionnels
-
 
26
// avertis possedant  des  connaissances  informatiques approfondies.  Les
-
 
27
// utilisateurs sont donc invites a charger  et  tester  l'adequation  du
-
 
28
// logiciel a leurs besoins dans des conditions permettant d'assurer la
-
 
29
// securite de leurs systemes et ou de leurs donnees et, plus generalement, 
-
 
30
// a l'utiliser et l'exploiter dans les memes conditions de securite. 
-
 
31
 
-
 
32
// Le fait que vous puissiez acceder a cet en-tete signifie que vous avez 
-
 
33
// pris connaissance de la licence CeCILL, et que vous en avez accepte les
-
 
34
// termes.
-
 
35
// ----
-
 
36
// CVS : $Id: ezmlmAccessObject.class.php,v 1.5 2007-06-25 12:15:06 alexandre_tb Exp $
-
 
37
 
-
 
38
/**
-
 
39
* Application projet
-
 
40
*
-
 
41
* La classe ezmlmAccessObject
-
 
42
*
-
 
43
*@package projet
-
 
44
//Auteur original :
-
 
45
*@author        Alexandre Granier <alexandre@tela-botanica.org>
-
 
46
//Autres auteurs :
-
 
47
*@author        Aucun
-
 
48
*@copyright     Tela-Botanica 2000-2006
-
 
49
*@version       $Revision: 1.5 $
-
 
50
// +------------------------------------------------------------------------------------------------------+
-
 
51
*/
-
 
52
 
-
 
53
/** Etend XML_Parser_Simple */
-
 
54
require_once 'XML/Parser/Simple.php' ;
-
 
55
 
-
 
56
/**
-
 
57
 * Les codes erreurs
-
 
58
 */
-
 
59
 
-
 
60
define ('EZMLM_ACCESS_OBJECT_ACTION_NON_SUPPORTEE', 206) ;
-
 
61
/**
-
 
62
 * classe ezmlmAccessObject parse les fichiers XML
-
 
63
 * issue de ezmlm
-
 
64
 * 
-
 
65
 * @category XML  
-
 
66
 * @package projet
-
 
67
 * @author alex  
-
 
68
 */
-
 
69
 
-
 
70
class ezmlmAccessObject extends XML_Parser_Simple {
-
 
71
	
-
 
72
	/**
-
 
73
	 * Le domaine de la liste
-
 
74
	 */
-
 
75
	 
-
 
76
	var $domaine ;
-
 
77
	 
-
 
78
	 /**
-
 
79
	  * Le nom de la liste
-
 
80
	 */
-
 
81
	  
-
 
82
	var $liste ;
-
 
83
	  
-
 
84
	  /**
-
 
85
	  * Les actions valides
-
 
86
	  */
-
 
87
	   
-
 
88
	var $actions_supportees = array ('calendrier_messages',
-
 
89
									 'message',
-
 
90
									 'derniers_messages',
-
 
91
									 'messages_auteur',
-
 
92
									 'messages_mois',
-
 
93
									 'messages_thread',
-
 
94
									 'supprimer',
-
 
95
									 'liste_abonnes',
-
 
96
									 'nombre_messages');
-
 
97
	   
-
 
98
	/**
-
 
99
	* l'action selectionnee
-
 
100
	*/
-
 
101
	var $action ;
-
 
102
	
-
 
103
	/**
-
 
104
	 * La langue 'fr-FR'
-
 
105
	 */
-
 
106
	 var $langue ;
-
 
107
	
-
 
108
	/**
-
 
109
	 * L'url de base
-
 
110
	 */
-
 
111
	 var $url ;
-
 
112
	
-
 
113
	/**
-
 
114
	 * L'identifiant du repertoire
-
 
115
	 */ 
-
 
116
	var $identifiant_repertoire ;
-
 
117
	
-
 
118
	/**
-
 
119
	 * Identifiant message
-
 
120
	 */
-
 
121
	
-
 
122
	var $identifiant_message;
-
 
123
 
-
 
124
	/**
-
 
125
	 * L'identifiant du repertoire
-
 
126
	 */ 
-
 
127
	var $_numeroRepertoireSuivant ;
-
 
128
	
-
 
129
	/**
-
 
130
	 * L'identifiant du repertoire
-
 
131
	 */ 
-
 
132
	var $hash_auteur ;
-
 
133
	
-
 
134
	/**
-
 
135
	 * Le mois a afficher
-
 
136
	 */ 
-
 
137
	var $mois ;
-
 
138
	
-
 
139
	var $_numeraRepertoirePrecedent;
-
 
140
	
-
 
141
	/**
-
 
142
	 * Identifiant message
-
 
143
	 */
-
 
144
	
-
 
145
	var $_numeroFichierSuivant;
-
 
146
	
-
 
147
	var $_numeroFichierPrecedent;
-
 
148
	
-
 
149
	var $chemin_fichier_xml;
-
 
150
	
-
 
151
	/**
-
 
152
	 * Creation de l'objet d'acces
-
 
153
	 * 
-
 
154
	 */
-
 
155
	
-
 
156
	function ezmlmAccessObject ($action, $domaine, $liste, $langue = 'fr', $url = '') {
-
 
157
		$this->XML_Parser_Simple(null, 'func') ;
-
 
158
		$this->action = $action ;
-
 
159
		$this->domaine = $domaine ;
-
 
160
		$this->liste = $liste ;
-
 
161
		$this->langue = $langue ;
-
 
162
		$this->url = $url ;
-
 
163
	}
-
 
164
	
-
 
165
	/**
-
 
166
	 * Gestion des balises
-
 
167
	 * 
-
 
168
	 * Cette methode specifie les balises reconnus par ezmlmAccessObject
-
 
169
	 * Elle remplace la methode handleElement de XML_Parser_Simple
-
 
170
	 * 
-
 
171
	 * @access public
-
 
172
	 * @param string nom de l'element (Voir la doc de PHP)
-
 
173
	 * @param array attributes
-
 
174
	 * @param 
-
 
175
	 * @link http://fr.php.net/manual/fr/ref.xml.php manuel
-
 
176
	 */
-
 
177
	
-
 
178
	function handleElement_ezmlm_message ($name, $attribs, $data) {
-
 
179
		echo $data ;		
-
 
180
	}
-
 
181
	
-
 
182
	function handleElement_message_suivant ($name, $attribs, $data) {
-
 
183
		$this->_numeroRepertoireSuivant = $attribs['NUMERO_REPERTOIRE'] ;
-
 
184
		$this->_numeroFichierSuivant = $attribs['NUMERO'] ;
-
 
185
	}
-
 
186
	
-
 
187
	function handleElement_message_precedent ($name, $attribs, $data) {
-
 
188
		$this->_numeroRepertoirePrecedent = $attribs['NUMERO_REPERTOIRE'] ;
-
 
189
		$this->_numeroFichierPrecedent = $attribs['NUMERO'] ;
-
 
190
	}
-
 
191
	function handleElement_ezmlm_calendrier_messages ($name, $attribs, $data) { echo $data ; }
-
 
192
	
-
 
193
	function handleElement_ezmlm_derniers_messages ($name, $attribs, $data) { echo $data ; }
-
 
194
	
-
 
195
	function handleElement_ezmlm_messages_auteur ($name, $attribs, $data) { echo $data ; }
-
 
196
	
-
 
197
	function handleElement_ezmlm_messages_mois ($name, $attribs, $data) { echo $data ; }
-
 
198
	
-
 
199
	function handleElement_ezmlm_messages_thread ($name, $attribs, $data) { echo $data ; }
-
 
200
	
-
 
201
	function handleElement_ezmlm_liste_abonnes ($name, $attribs, $data) { echo $data ; }
-
 
202
	
-
 
203
	function handleElement_ezmlm_nombre_messages ($name, $attribs, $data) { echo $data ; }
-
 
204
	/**
-
 
205
	 * Choix de l'action
-
 
206
	 * 
-
 
207
	 * Liste des actions :
-
 
208
	 * 'calendrier_messages'
-
 
209
	 * 
-
 
210
	 * @access public
-
 
211
	 * @param string	une action qui doit etre support�
-
 
212
	 */
-
 
213
	
-
 
214
	function setAction($action) {
-
 
215
		// verification de l'action 
-
 
216
		if (!in_array($action, $this->actions_supportees)) {
-
 
217
			return raiseError(EZMLM_ACCESS_OBJECT_ACTION_NON_SUPPORTEE) ;	
-
 
218
		}
-
 
219
		$this->action = $action ;
-
 
220
		
-
 
221
		// Libere les ressources (XML_Parser::free)
-
 
222
		$this->free();
-
 
223
		
-
 
224
		// On vide l url
-
 
225
		//$this->url = '';
-
 
226
		$this->chemin_fichier_xml = '';
-
 
227
		// Charge la nouvelle action
-
 
228
		$this->load() ;
-
 
229
	}
-
 
230
	
-
 
231
	/**
-
 
232
	 * Charge une action
-
 
233
	 * 
-
 
234
	 * cad affecte un fichier xml au parser
-
 
235
	 * 
-
 
236
	 * @access public
-
 
237
	 */
-
 
238
	function load() {
-
 
239
		$this->chemin_fichier_xml = PROJET_SERVEUR_VPOPMAIL.'/'.$this->action.'.php?domaine='.
-
 
240
                         $this->domaine.'&liste='.$this->liste.'&langue='.
-
 
241
                         $this->langue ;
-
 
242
		if ($this->url != '') $this->chemin_fichier_xml.= '&url='.urlencode($this->url) ; 
-
 
243
		if (isset ($this->identifiant_repertoire)) 
-
 
244
			$this->chemin_fichier_xml .= '&actionargs[]='.$this->identifiant_repertoire ;
-
 
245
		if (isset ($this->identifiant_message)) 
-
 
246
			$this->chemin_fichier_xml .= '&actionargs[]='.$this->identifiant_message ;
-
 
247
		if (isset ($this->hash_auteur)) 
-
 
248
			$this->chemin_fichier_xml .= '&actionargs[]='.$this->hash_auteur ;
-
 
249
		if (isset ($this->mois)) 
-
 
250
			$this->chemin_fichier_xml .= '&actionargs[]='.$this->mois ;
-
 
251
		
-
 
252
		$this->setInputFile($this->chemin_fichier_xml) ;
-
 
253
	}
-
 
254
	
-
 
255
	/**
-
 
256
	 * Precise un message a extraire
-
 
257
	 * 
-
 
258
	 * On indique le numero de repertoire ezmlm et le numero du message
-
 
259
	 * @param	integer	le numero du repertoire
-
 
260
	 * @param 	integer le numero du message
-
 
261
	 * 
-
 
262
	 */
-
 
263
	 
-
 
264
	 function setIdMessage ($identifiant_repertoire, $identifiant_message) {
-
 
265
	 	$this->identifiant_repertoire = $identifiant_repertoire ;
-
 
266
	 	$this->identifiant_message = $identifiant_message ;	
-
 
267
	 }
-
 
268
	 
-
 
269
	 	/**
-
 
270
	 * Precise un auteur
-
 
271
	 * 
-
 
272
	 * On indique le numero de repertoire ezmlm et le numero du message
-
 
273
	 * @param	string	le hash d'un auteur
-
 
274
	 * 
-
 
275
	 */
-
 
276
	 
-
 
277
	 function setHashAuteur ($hash_auteur) {
-
 
278
	 	$this->hash_auteur = $hash_auteur;	
-
 
279
	 }
-
 
280
	 /**
-
 
281
	 * Precise un mois
-
 
282
	 * 
-
 
283
	 * On indique le numero de repertoire ezmlm et le num�ro du message
-
 
284
	 * @param	string	le hash d'un auteur
-
 
285
	 * 
-
 
286
	 */
-
 
287
	 
-
 
288
	 function setMois ($mois) {
-
 
289
	 	$this->mois = $mois;	
-
 
290
	 }
-
 
291
	 
-
 
292
	 /**
-
 
293
	  * Renvoi le numero du repertoire suivant
-
 
294
	  * 
-
 
295
	  * 
-
 
296
	 */
-
 
297
	 function getNumeroRepertoireSuivant() { return $this->_numeroRepertoireSuivant; } 
-
 
298
	 
-
 
299
	 function getNumeroFichierSuivant () { return $this->_numeroFichierSuivant ; }
-
 
300
	 
-
 
301
	 function getNumeroRepertoirePrecedent() { return $this->_numeroRepertoirePrecedent; }
-
 
302
	 
-
 
303
	 function getNumeroFichierPrecedent () { return $this->_numeroFichierPrecedent ; }
-
 
304
	 
-
 
305
	 function getNumeroMessage () { return $this->_numeroMessage ; }
-
 
306
	 
-
 
307
	 function getNombreTotalMessage () { return $this->_nombreTotalMessage ; }
-
 
308
	 
-
 
309
	 function parse()
-
 
310
    {
-
 
311
  		if (substr(phpversion(), 0, 1) == '5') {
-
 
312
  			try {
-
 
313
			    $xml = new SimpleXMLElement($this->chemin_fichier_xml, null, true);
-
 
314
			    switch ($this->action) {
-
 
315
  				case 'calendrier_messages' :echo utf8_decode($xml); 
-
 
316
				trigger_error ($this->chemin_fichier_xml);
-
 
317
	  				echo utf8_decode($xml->ezmlm_calendrier_messages);
-
 
318
	  				break;
-
 
319
	  				case 'message':
-
 
320
	  				echo utf8_decode ($xml);
-
 
321
	  				$this->_numeroRepertoirePrecedent = $xml->message_precedent['numero_repertoire'];
-
 
322
	  				$this->_numeroRepertoireSuivant = $xml->message_suivant['numero_repertoire'];
-
 
323
	  				$this->_numeroFichierSuivant = $xml->message_suivant['numero'];
-
 
324
	  				$this->_numeroFichierPrecedent = $xml->message_precedent['numero'];
-
 
325
	  				$this->_numeroMessage = $xml->numero;
-
 
326
	  				$this->_nombreTotalMessage = $xml->numero['total_message'];
-
 
327
  				break;
-
 
328
  					case 'nombre_messages':
-
 
329
  					
-
 
330
  					echo $xml[0];
-
 
331
  					
-
 
332
  				break;
-
 
333
  					case 'liste_abonnes':
-
 
334
  					return $xml;
-
 
335
  				break;
-
 
336
  				default :
-
 
337
  					echo utf8_decode($xml);
-
 
338
  					
-
 
339
  				}
-
 
340
			    $error = 'Erreur dans l\'acc&egrave;s au fichier:<br />'.$this->chemin_fichier_xml.'<br />';
-
 
341
			    $error = '';
-
 
342
			   throw new Exception($error);
-
 
343
			}
-
 
344
			catch (Exception $e) {
-
 
345
			    echo $e->getMessage().'<br />';
-
 
346
			    //echo $this->chemin_fichier_xml;
-
 
347
			}
-
 
348
  			
-
 
349
  		} else {
-
 
350
  			return parent::parse();
-
 
351
  		}
-
 
352
    }
-
 
353
}
-
 
354
 
-
 
355
?>
-
 
356