Subversion Repositories Applications.projet

Rev

Rev 397 | Go to most recent revision | Only display areas with differences | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 397 Rev 415
1
<?php
1
<?php
2
/*vim: set expandtab tabstop=4 shiftwidth=4: */
2
/*vim: set expandtab tabstop=4 shiftwidth=4: */
3
// +------------------------------------------------------------------------------------------------------+
3
// +------------------------------------------------------------------------------------------------------+
4
// | PHP version 4.1                                                                                      |
4
// | PHP version 4.1                                                                                      |
5
// +------------------------------------------------------------------------------------------------------+
5
// +------------------------------------------------------------------------------------------------------+
6
// | Copyright (C) 2004 Tela Botanica (accueil@tela-botanica.org)                                         |
6
// | Copyright (C) 2004 Tela Botanica (accueil@tela-botanica.org)                                         |
7
// +------------------------------------------------------------------------------------------------------+
7
// +------------------------------------------------------------------------------------------------------+
8
// | This library is free software; you can redistribute it and/or                                        |
8
// | This library is free software; you can redistribute it and/or                                        |
9
// | modify it under the terms of the GNU General Public                                                  |
9
// | modify it under the terms of the GNU General Public                                                  |
10
// | License as published by the Free Software Foundation; either                                         |
10
// | License as published by the Free Software Foundation; either                                         |
11
// | version 2.1 of the License, or (at your option) any later version.                                   |
11
// | version 2.1 of the License, or (at your option) any later version.                                   |
12
// |                                                                                                      |
12
// |                                                                                                      |
13
// | This library is distributed in the hope that it will be useful,                                      |
13
// | This library is distributed in the hope that it will be useful,                                      |
14
// | but WITHOUT ANY WARRANTY; without even the implied warranty of                                       |
14
// | but WITHOUT ANY WARRANTY; without even the implied warranty of                                       |
15
// | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU                                    |
15
// | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU                                    |
16
// | General Public License for more details.                                                             |
16
// | General Public License for more details.                                                             |
17
// |                                                                                                      |
17
// |                                                                                                      |
18
// | You should have received a copy of the GNU General Public                                            |
18
// | You should have received a copy of the GNU General Public                                            |
19
// | License along with this library; if not, write to the Free Software                                  |
19
// | License along with this library; if not, write to the Free Software                                  |
20
// | Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA                            |
20
// | Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA                            |
21
// +------------------------------------------------------------------------------------------------------+
21
// +------------------------------------------------------------------------------------------------------+
22
// CVS : $Id: projet.class.php,v 1.14 2008-09-16 14:11:05 alexandre_tb Exp $
22
// CVS : $Id: projet.class.php,v 1.14 2008-09-16 14:11:05 alexandre_tb Exp $
23
/**
23
/**
24
* Application projet
24
* Application projet
25
*
25
*
26
* La classe projet
26
* La classe projet
27
*
27
*
28
*@package projet
28
*@package projet
29
//Auteur original :
29
//Auteur original :
30
*@author        Alexandre Granier <alexandre@tela-botanica.org>
30
*@author        Alexandre Granier <alexandre@tela-botanica.org>
31
//Autres auteurs :
31
//Autres auteurs :
32
*@author        Aucun
32
*@author        Aucun
33
*@copyright     Tela-Botanica 2000-2004
33
*@copyright     Tela-Botanica 2000-2004
34
*@version       $Revision: 1.14 $
34
*@version       $Revision: 1.14 $
35
// +------------------------------------------------------------------------------------------------------+
35
// +------------------------------------------------------------------------------------------------------+
36
*/
36
*/
37
 
37
 
38
 
38
 
39
// +------------------------------------------------------------------------------------------------------+
39
// +------------------------------------------------------------------------------------------------------+
40
// |                                            ENTETE du PROGRAMME                                       |
40
// |                                            ENTETE du PROGRAMME                                       |
41
// +------------------------------------------------------------------------------------------------------+
41
// +------------------------------------------------------------------------------------------------------+
42
 
42
 
43
include_once PROJET_CHEMIN_CLASSES.'document.class.php' ;
43
include_once PROJET_CHEMIN_CLASSES.'document.class.php' ;
44
include_once PROJET_CHEMIN_CLASSES.'liste_discussion.class.php' ;
44
include_once PROJET_CHEMIN_CLASSES.'liste_discussion.class.php' ;
45
/* Permet la recuperation d'un nouvel identifiant d'une table.*/
45
/* Permet la recuperation d'un nouvel identifiant d'une table.*/
46
require_once PROJET_CHEMIN_BIBLIOTHEQUE_API.'sql/SQL_manipulation.fonct.php';
46
require_once PROJET_CHEMIN_BIBLIOTHEQUE_API.'sql/SQL_manipulation.fonct.php';
47
include_once 'Mail.php' ;
47
include_once 'Mail.php' ;
48
 
48
 
49
// +------------------------------------------------------------------------------------------------------+
49
// +------------------------------------------------------------------------------------------------------+
50
// |                                            ENTETE du PROGRAMME                                       |
50
// |                                            ENTETE du PROGRAMME                                       |
51
// +------------------------------------------------------------------------------------------------------+
51
// +------------------------------------------------------------------------------------------------------+
52
 
52
 
53
 
53
 
54
 
54
 
55
 
55
 
56
/**
56
/**
57
 * class projet
57
 * class projet
58
 *
58
 *
59
 */
59
 */
60
class projet
60
class projet
61
{
61
{
62
 
62
 
63
    /** Aggregations: */
63
    /** Aggregations: */
64
 
64
 
65
    /**
65
    /**
66
     * Le tableau d'objet document associés au projet
66
     * Le tableau d'objet document associés au projet
67
     *
67
     *
68
     */
68
     */
69
    var $_documents_associes = array();
69
    var $_documents_associes = array();
70
 
70
 
71
    var $_listes_associes = array();
71
    var $_listes_associes = array();
72
 
72
 
73
    /** Compositions: */
73
    /** Compositions: */
74
 
74
 
75
    /*** Attributes: ***/
75
    /*** Attributes: ***/
76
 
76
 
77
    /**
77
    /**
78
     * L'identifiant du projet.
78
     * L'identifiant du projet.
79
     * @access private
79
     * @access private
80
     */
80
     */
81
    var $_id_projet;
81
    var $_id_projet;
82
 
82
 
83
    /**
83
    /**
84
     * Le titre du projet, tel que dans la base de donnée.
84
     * Le titre du projet, tel que dans la base de donnée.
85
     * @access private
85
     * @access private
86
     */
86
     */
87
    var $_titre;
87
    var $_titre;
88
    /**
88
    /**
89
     * La description du projet, tel que dans la base.
89
     * La description du projet, tel que dans la base.
90
     * @access private
90
     * @access private
91
     */
91
     */
92
    var $_description;
92
    var $_description;
93
    /**
93
    /**
94
     * L'URL d'un site sur le projet. Facultatif.
94
     * L'URL d'un site sur le projet. Facultatif.
95
     * @access private
95
     * @access private
96
     */
96
     */
97
    var $_espace_internet;
97
    var $_espace_internet;
98
    /**
98
    /**
99
     * Le nom du wikini associe au projet, avec la syntaxe wikini. Vide par defaut.
99
     * Le nom du wikini associe au projet, avec la syntaxe wikini. Vide par defaut.
100
     * @access private
100
     * @access private
101
     */
101
     */
102
    var $_nom_wikini;
102
    var $_nom_wikini;
103
    /**
103
    /**
104
     * Date de creation du projet. A priori ne varie pas dans le temps.
104
     * Date de creation du projet. A priori ne varie pas dans le temps.
105
     * @access private
105
     * @access private
106
     */
106
     */
107
    var $_date_creation;
107
    var $_date_creation;
108
    /**
108
    /**
109
     * Le chemin relatif vers le repertoire contenant les wikinis.
109
     * Le chemin relatif vers le repertoire contenant les wikinis.
110
     * @access private
110
     * @access private
111
     */
111
     */
112
    var $_chemin_wikini;
112
    var $_chemin_wikini;
113
    /**
113
    /**
114
     * Une connexion vers la base de donnee.
114
     * Une connexion vers la base de donnee.
115
     * @access private
115
     * @access private
116
     */
116
     */
117
    var $_db;
117
    var $_db;
118
 
118
 
119
    /**
119
    /**
120
     * Contient le nom du repertoire du projet tel que sur le disque.
120
     * Contient le nom du repertoire du projet tel que sur le disque.
121
     * @access private
121
     * @access private
122
     */
122
     */
123
    var $_nom_repertoire;
123
    var $_nom_repertoire;
124
 
124
 
125
    /**
125
    /**
126
     * Le chemin jusqu'au repertoire ou seront stockes les fichiers.
126
     * Le chemin jusqu'au repertoire ou seront stockes les fichiers.
127
     * @access private
127
     * @access private
128
     */
128
     */
129
    var $_chemin_repertoire;
129
    var $_chemin_repertoire;
130
 
130
 
131
    /**
131
    /**
132
     * Vaut vrai si le projet est un projet racine et s'il est le seul.
132
     * Vaut vrai si le projet est un projet racine et s'il est le seul.
133
     * @access private
133
     * @access private
134
     */
134
     */
135
    var $_est_racine;
135
    var $_est_racine;
136
    /**
136
    /**
137
     * Le resume du projet
137
     * Le resume du projet
138
     * @access private
138
     * @access private
139
     */
139
     */
140
    var $_resume;
140
    var $_resume;
141
    /**
141
    /**
142
     * Contient le numero du type du projet
142
     * Contient le numero du type du projet
143
     * @access private
143
     * @access private
144
     */
144
     */
145
    var $_type;
145
    var $_type;
146
 
146
 
147
	/**
147
	/**
148
     * Indique si l'inscription au projet est moderes
148
     * Indique si l'inscription au projet est moderes
149
     * @access private
149
     * @access private
150
     */
150
     */
151
    var $_isModere;
151
    var $_isModere;
152
 
152
 
153
	/**
153
	/**
154
     * Indique si le projet a des documents
154
     * Indique si le projet a des documents
155
     * @access private
155
     * @access private
156
     */
156
     */
157
    var $_avoirDocument;
157
    var $_avoirDocument;
158
 
158
 
159
    /**
159
    /**
160
     * tableau contenant les themes associes au projet
160
     * tableau contenant les themes associes au projet
161
     */
161
     */
162
    var $_themes = array();
162
    var $_themes = array();
163
    /**
163
    /**
164
     *
164
     *
165
     * PHP5
165
     * PHP5
166
     * @return projet
166
     * @return projet
167
     * @access public
167
     * @access public
168
     */
168
     */
169
    function __construct( &$dbObject,  $id_projet = "")
169
    function __construct( &$dbObject,  $id_projet = "")
170
    {
170
    {
171
      $this->projet($dbObject,  $id_projet);
171
      $this->projet($dbObject,  $id_projet);
172
 
172
 
173
    } // end of member function __construct
173
    } // end of member function __construct
174
 
174
 
175
    /**
175
    /**
176
     *
176
     *
177
     *
177
     *
178
     * @param DB dbObject Un objet PEAR:DB
178
     * @param DB dbObject Un objet PEAR:DB
179
     * @param int id_projet On passe un identifiant de projet au constructeur. Cela lui permet de faire une
179
     * @param int id_projet On passe un identifiant de projet au constructeur. Cela lui permet de faire une
180
     * premiere requete pour les infos de bases comme le titre, le description etc.
180
     * premiere requete pour les infos de bases comme le titre, le description etc.
181
     * @return projet
181
     * @return projet
182
     * @access public
182
     * @access public
183
     */
183
     */
184
    function projet( &$dbObject,  $id_projet = "")
184
    function projet( &$dbObject,  $id_projet = "")
185
    {
185
    {
186
        $this->_db = $dbObject ;
186
        $this->_db = $dbObject ;
187
        if ($id_projet != "") {
187
        if (intval($id_projet)) {
188
            $requete = "select * from projet where p_id=".$this->_db->escapeSimple($id_projet)." " ;
188
			$resultat = $this->_db->query(sprintf("SELECT * FROM projet WHERE p_id=%d -- %s",
-
 
189
												  intval($id_projet),
189
            $resultat = $this->_db->query ($requete) ;
190
												  __FILE__ . ':' . __LINE__));
190
            if (DB::isError($resultat)) {
191
            if (DB::isError($resultat)) {
191
                die ("Echec de la requete<br />".$resultat->getMessage()."<br />".$resultat->getDebugInfo()) ;
192
                die ("Echec de la requete<br />".$resultat->getMessage()."<br />".$resultat->getDebugInfo()) ;
192
            }
193
            }
193
            $ligne = $resultat->fetchRow (DB_FETCHMODE_OBJECT) ;
194
            $ligne = $resultat->fetchRow (DB_FETCHMODE_OBJECT) ;
194
 
195
 
195
            // Affectations dans les proprietes
196
            // Affectations dans les proprietes
196
            $this->_id_projet = $ligne->p_id ;
197
            $this->_id_projet = $ligne->p_id ;
197
            $this->_titre = $ligne->p_titre ;
198
            $this->_titre = $ligne->p_titre ;
198
            $this->_description = $ligne->p_description ;
199
            $this->_description = $ligne->p_description ;
199
            $this->_espace_internet = $ligne->p_espace_internet ;
200
            $this->_espace_internet = $ligne->p_espace_internet ;
200
            $this->_date_creation = $ligne->p_date_creation ;
201
            $this->_date_creation = $ligne->p_date_creation ;
201
            $this->_nom_wikini = $ligne->p_wikini ;
202
            $this->_nom_wikini = $ligne->p_wikini ;
202
            $this->_resume = $ligne->p_resume;
203
            $this->_resume = $ligne->p_resume;
203
            $this->_type = $ligne->p_type ;
204
            $this->_type = $ligne->p_type ;
204
            // On recupere le nom du repertoire
205
            // On recupere le nom du repertoire
205
            $this->_nom_repertoire = $ligne->p_nom_repertoire ;
206
            $this->_nom_repertoire = $ligne->p_nom_repertoire ;
206
            $this->_isModere = $ligne->p_modere;
207
            $this->_isModere = $ligne->p_modere;
207
			$this->_avoirDocument = $ligne->p_avoir_document;
208
			$this->_avoirDocument = $ligne->p_avoir_document;
208
            // on regarde si on a a faire au projet racine
209
            // on regarde si on a a faire au projet racine
209
            if (PROJET_UTILISE_HIERARCHIE) {
210
            if (PROJET_UTILISE_HIERARCHIE) {
210
	            $requete = 'select  ph_id_projet_pere, ph_id_projet_fils from projet_hierarchie where ph_id_projet_fils='.$this->_db->escapeSimple($this->_id_projet) ;
211
	            $requete = 'select  ph_id_projet_pere, ph_id_projet_fils from projet_hierarchie where ph_id_projet_fils='.$this->_db->escapeSimple($this->_id_projet) ;
211
	            $resultat = $this->_db->query ($requete) ;
212
	            $resultat = $this->_db->query ($requete) ;
212
	            if (DB::isError ($resultat)) {
213
	            if (DB::isError ($resultat)) {
213
	                return ("Echec de la requete : $requete<br />".$resultat->getMessage()) ;
214
	                return ("Echec de la requete : $requete<br />".$resultat->getMessage()) ;
214
	            }
215
	            }
215
	            if (!$resultat->numRows()) {
216
	            if (!$resultat->numRows()) {
216
	                $this->_est_racine = true ;
217
	                $this->_est_racine = true ;
217
	            } else {
218
	            } else {
218
	                $this->_est_racine = false ;
219
	                $this->_est_racine = false ;
219
	            }
220
	            }
220
            }
221
            }
221
 
222
 
222
            /** Recuperation des themes */
223
            /** Recuperation des themes */
223
            $requete_theme = 'select pat_id_theme, pt_label_theme from projet_avoir_theme, projet_theme'.
224
            $requete_theme = 'select pat_id_theme, pt_label_theme from projet_avoir_theme, projet_theme'.
224
            			 ' where pat_id_projet='.$this->_db->escapeSimple($this->_id_projet).' and pat_id_theme=pt_id_theme';
225
            			 ' where pat_id_projet='.$this->_db->escapeSimple($this->_id_projet).' and pat_id_theme=pt_id_theme';
225
            $resultat_theme = $GLOBALS['projet_db']->query ($requete_theme);
226
            $resultat_theme = $GLOBALS['projet_db']->query ($requete_theme);
226
            if (DB::isError($resultat_theme)) {
227
            if (DB::isError($resultat_theme)) {
227
            	return ("Echec de la requete : $requete_theme<br />".$resultat_theme->getMessage()) ;
228
            	return ("Echec de la requete : $requete_theme<br />".$resultat_theme->getMessage()) ;
228
            }
229
            }
229
            if ($resultat_theme->numRows() != 0) {
230
            if ($resultat_theme->numRows() != 0) {
230
 
231
 
231
            	while ($ligne_theme = $resultat_theme->fetchRow(DB_FETCHMODE_OBJECT)) {
232
            	while ($ligne_theme = $resultat_theme->fetchRow(DB_FETCHMODE_OBJECT)) {
232
            		$this->_themes[$ligne_theme->pat_id_theme] = $ligne_theme->pt_label_theme;
233
            		$this->_themes[$ligne_theme->pat_id_theme] = $ligne_theme->pt_label_theme;
233
            	}
234
            	}
234
 
235
 
235
            }
236
            }
236
        }
237
        }
237
    } // end of member function projet
238
    } // end of member function projet
238
 
239
 
239
    /**
240
    /**
240
     *
241
     *
241
     *
242
     *
242
     * @param DB dbObject Un objet PEAR:DB
243
     * @param DB dbObject Un objet PEAR:DB
243
     * @param int id_projet On passe un identifiant de projet au constructeur.
244
     * @param int id_projet On passe un identifiant de projet au constructeur.
244
     * @return bool
245
     * @return bool
245
     * @access public
246
     * @access public
246
     */
247
     */
247
    function projetExiste( &$dbObject,  $id_projet)
248
    function projetExiste( &$dbObject,  $id_projet)
248
    {
249
    {
249
        if ($id_projet != "") {
250
        if (intval($id_projet)) {
250
            $requete = "select * from projet where p_id=".$dbObject->escapeSimple($id_projet)." " ;
251
			$resultat = $dbObject->query(sprintf("SELECT * FROM projet WHERE p_id=%d -- %s",
-
 
252
												 intval($id_projet),
251
            $resultat = $dbObject->query ($requete) ;
253
												 __FILE__ . ':' . __LINE__));
252
            if (DB::isError($resultat)) {
254
            if (DB::isError($resultat)) {
253
                die ("Echec de la requete<br />".$resultat->getMessage()."<br />".$resultat->getDebugInfo()) ;
255
                die ("Echec de la requete<br />".$resultat->getMessage()."<br />".$resultat->getDebugInfo()) ;
254
            }
256
            }
255
            if ($resultat->numRows() != 0) {
257
            if ($resultat->numRows() != 0) {
256
                return true ;
258
                return true ;
257
            }
259
            }
258
        }
260
        }
259
    } // end of member function projet
261
    } // end of member function projet
260
 
262
 
261
    /**
263
    /**
262
     *
264
     *
263
     *
265
     *
264
     * @param int id_projet
266
     * @param int id_projet
265
     * @return string
267
     * @return string
266
     * @access public
268
     * @access public
267
     */
269
     */
268
    function getTitre( $id_projet = "" )
270
    function getTitre( $id_projet = "" )
269
    {
271
    {
270
        return $this->_titre ;
272
        return $this->_titre ;
271
    } // end of member function getTitre
273
    } // end of member function getTitre
272
 
274
 
273
    /**
275
    /**
274
     *
276
     *
275
     *
277
     *
276
     * @return string
278
     * @return string
277
     * @access public
279
     * @access public
278
     */
280
     */
279
    function getResume( )
281
    function getResume( )
280
    {
282
    {
281
        return $this->_resume ;
283
        return $this->_resume ;
282
    } // end of member function getResume
284
    } // end of member function getResume
283
 
285
 
284
    /**
286
    /**
285
     * Renvoie l'identifiant du projet courant.
287
     * Renvoie l'identifiant du projet courant.
286
     *
288
     *
287
     * @return int
289
     * @return int
288
     * @access public
290
     * @access public
289
     */
291
     */
290
    function getId( )
292
    function getId( )
291
    {
293
    {
292
        return $this->_id_projet ;
294
        return $this->_id_projet ;
293
    } // end of member function getId
295
    } // end of member function getId
294
 
296
 
295
    /**
297
    /**
296
     *
298
     *
297
     *
299
     *
298
     * @return string
300
     * @return string
299
     * @access public
301
     * @access public
300
     */
302
     */
301
    function getDescription( )
303
    function getDescription( )
302
    {
304
    {
303
        return $this->_description;
305
        return $this->_description;
304
    } // end of member function getDescription
306
    } // end of member function getDescription
305
 
307
 
306
    /**
308
    /**
307
     *
309
     *
308
     *
310
     *
309
     * @return string
311
     * @return string
310
     * @access public
312
     * @access public
311
     */
313
     */
312
    function getEspaceInternet( )
314
    function getEspaceInternet( )
313
    {
315
    {
314
        return $this->_espace_internet;
316
        return $this->_espace_internet;
315
    } // end of member function getEspaceInternet
317
    } // end of member function getEspaceInternet
316
 
318
 
317
    /**
319
    /**
318
     * Charge dans l'objet projet, les listes de discussion
320
     * Charge dans l'objet projet, les listes de discussion
319
     * ['nom_liste']
321
     * ['nom_liste']
320
     * ['domaine']
322
     * ['domaine']
321
     * ['adresse']
323
     * ['adresse']
322
     *
324
     *
323
     * @return boolean  true en cas de succès
325
     * @return boolean  true en cas de succès
324
     * @access public
326
     * @access public
325
     */
327
     */
326
    function getListesAssociees( )
328
    function getListesAssociees( )
327
    {
329
    {
328
        // On rajoute un test pour eviter l'appel SQL si il a deja ete fait une fois
330
        // On rajoute un test pour eviter l'appel SQL si il a deja ete fait une fois
329
        if (count($this->_listes_associes) > 0) return ;
331
        if (count($this->_listes_associes) > 0) return ;
330
        $requete = "select pl_id_liste from projet_lien_liste where pl_id_projet=".$this->_db->escapeSimple($this->_id_projet) ;
332
        $requete = "select pl_id_liste from projet_lien_liste where pl_id_projet=".$this->_db->escapeSimple($this->_id_projet) ;
331
        $resultat = $this->_db->query ($requete) ;
333
        $resultat = $this->_db->query ($requete) ;
332
        if (DB::isError ($resultat)) {
334
        if (DB::isError ($resultat)) {
333
            return ("Echec de la requete : $requete<br />".$resultat->getMessage()) ;
335
            return ("Echec de la requete : $requete<br />".$resultat->getMessage()) ;
334
        }
336
        }
335
        $retour = array() ;
337
        $retour = array() ;
336
        if ($resultat->numRows()) {
338
        if ($resultat->numRows()) {
337
            $ligne = $resultat->fetchRow (DB_FETCHMODE_OBJECT) ;
339
            $ligne = $resultat->fetchRow (DB_FETCHMODE_OBJECT) ;
338
            $this->_listes_associes[] = new liste_discussion($ligne->pl_id_liste, $this->_db) ;
340
            $this->_listes_associes[] = new liste_discussion($ligne->pl_id_liste, $this->_db) ;
339
 
341
 
340
        }
342
        }
341
    } // end of member function getListesAssociees
343
    } // end of member function getListesAssociees
342
 
344
 
343
    /**
345
    /**
344
     * Renvoie vrai si le projet a au moins une liste
346
     * Renvoie vrai si le projet a au moins une liste
345
     *
347
     *
346
     * @return bool
348
     * @return bool
347
     * @access public
349
     * @access public
348
     */
350
     */
349
    function avoirListe( )
351
    function avoirListe( )
350
    {
352
    {
351
        $this->getListesAssociees() ;
353
        $this->getListesAssociees() ;
352
        if (count($this->_listes_associes)) {
354
        if (count($this->_listes_associes)) {
353
            return true ;
355
            return true ;
354
        }
356
        }
355
        return false ;
357
        return false ;
356
    }
358
    }
357
 
359
 
358
    /**
360
    /**
359
     * Renvoie vrai si le projet a au moins un document, fichier ou repertoire
361
     * Renvoie vrai si le projet a au moins un document, fichier ou repertoire
360
     *
362
     *
361
     * Mis en place pour des raisons de performances avant la methode getListesDocuments etait utilisee
363
     * Mis en place pour des raisons de performances avant la methode getListesDocuments etait utilisee
362
     *
364
     *
363
     * @return bool
365
     * @return bool
364
     * @access public
366
     * @access public
365
     */
367
     */
366
    function avoirDocument( )
368
    function avoirDocument( )
367
    {
369
    {
368
        return $this->_avoirDocument;
370
        return $this->_avoirDocument;
369
    }
371
    }
370
 
372
 
371
    /**
373
    /**
372
     * Permet de fixer la colonne p_avoir_document a 1
374
     * Permet de fixer la colonne p_avoir_document a 1
373
     *
375
     *
374
     * Mis en place pour des raisons de performances avant la methode getListesDocuments etait utilisee
376
     * Mis en place pour des raisons de performances avant la methode getListesDocuments etait utilisee
375
     *
377
     *
376
     * @param bool
378
     * @param bool
377
     * @return mixed true si la requete fonctionne
379
     * @return mixed true si la requete fonctionne
378
     * @access public
380
     * @access public
379
     */
381
     */
380
    function setAvoirDocument($bool)
382
    function setAvoirDocument($bool)
381
    {
383
    {
382
        $val = 0 ;
384
        $val = 0 ;
383
        if ($bool) $val = 1;
385
        if ($bool) $val = 1;
384
        $requete = 'update projet set p_avoir_document='.$this->_db->escapeSimple($val).' where p_id='.$this->_db->escapeSimple($this->_id_projet);
386
        $requete = 'update projet set p_avoir_document='.$this->_db->escapeSimple($val).' where p_id='.$this->_db->escapeSimple($this->_id_projet);
385
        $resultat = $this->_db->query ($requete) ;
387
        $resultat = $this->_db->query ($requete) ;
386
        if (DB::isError($resultat)) {
388
        if (DB::isError($resultat)) {
387
            echo ("Echec de la requete<br />".$resultat->getMessage()."<br />".$resultat->getDebugInfo()) ;
389
            echo ("Echec de la requete<br />".$resultat->getMessage()."<br />".$resultat->getDebugInfo()) ;
388
        }
390
        }
389
        return true;
391
        return true;
390
    }
392
    }
391
 
393
 
392
    /**
394
    /**
393
     * Renvoie la liste des documents associes sous forme d'un tableau, avec les
395
     * Renvoie la liste des documents associes sous forme d'un tableau, avec les
394
     * informations afferentes. 0 => "nom (cliquable)"
396
     * informations afferentes. 0 => "nom (cliquable)"
395
     "Taille"
397
     "Taille"
396
     "Date
398
     "Date
397
     * de creation"          "Prorietaire"          "Visibilite"          "Action
399
     * de creation"          "Prorietaire"          "Visibilite"          "Action
398
     * (cliquable)"
400
     * (cliquable)"
399
     *
401
     *
400
     * @param visibilite visibilite Si visibilite est prive, tous les fichiers sont renvoyes ainsi qu'une entree
402
     * @param visibilite visibilite Si visibilite est prive, tous les fichiers sont renvoyes ainsi qu'une entree
401
     * pour indiquer la visibilite du document.
403
     * pour indiquer la visibilite du document.
402
     * @return Array
404
     * @return Array
403
     * @access public
405
     * @access public
404
     */
406
     */
405
    function getListesDocuments( $chemin, $chemin_icones = "icones/", $id_repertoire = '', $date = '' )
407
    function getListesDocuments( $chemin, $chemin_icones = "icones/", $id_repertoire = '', $date = '' )
406
    {
408
    {
407
        // On realise une requete sur projet_documents avec une jointure sur l'annuaire
409
        // On realise une requete sur projet_documents avec une jointure sur l'annuaire
408
        // et sur gen_type_de_fichier pour envoyer un resultat complet.
410
        // et sur gen_type_de_fichier pour envoyer un resultat complet.
409
        // On exclue les fichiers racines cad pd_pere is null
411
        // On exclue les fichiers racines cad pd_pere is null
410
        $requete = "select pd_id from projet_documents where pd_ce_projet=".$this->_db->escapeSimple($this->_id_projet) ;
412
        $requete = "select pd_id from projet_documents where pd_ce_projet=".$this->_db->escapeSimple($this->_id_projet) ;
411
        if ($id_repertoire != '') $requete .= ' and pd_pere='.$this->_db->escapeSimple($id_repertoire);
413
        if ($id_repertoire != '') $requete .= ' and pd_pere='.$this->_db->escapeSimple($id_repertoire);
412
        if ($id_repertoire != '' && $id_repertoire == 0) $requete .= ' and pd_pere=0';
414
        if ($id_repertoire != '' && $id_repertoire == 0) $requete .= ' and pd_pere=0';
413
        if ($date != '') $requete .= ' and pd_date_de_mise_a_jour > date_sub (NOW(), interval 1 week)';
415
        if ($date != '') $requete .= ' and pd_date_de_mise_a_jour > date_sub (NOW(), interval 1 week)';
414
        $requete .= ' order by pd_nom' ;
416
        $requete .= ' order by pd_nom' ;
415
        $resultat = $this->_db->query ($requete) ;
417
        $resultat = $this->_db->query ($requete) ;
416
        if (DB::isError($resultat)) {
418
        if (DB::isError($resultat)) {
417
            return ("Echec de la requete<br />".$resultat->getMessage()."<br />".$resultat->getDebugInfo()) ;
419
            return ("Echec de la requete<br />".$resultat->getMessage()."<br />".$resultat->getDebugInfo()) ;
418
        }
420
        }
419
        $tableau_document = array() ;
421
        $tableau_document = array() ;
420
        // Un compteur
422
        // Un compteur
421
        $i = 0 ;
423
        $i = 0 ;
422
        while ($ligne = $resultat->fetchRow (DB_FETCHMODE_OBJECT)) {
424
        while ($ligne = $resultat->fetchRow (DB_FETCHMODE_OBJECT)) {
423
            array_push ($tableau_document, new document ($ligne->pd_id, $i, $chemin, $chemin_icones)) ;
425
            array_push ($tableau_document, new document ($ligne->pd_id, $i, $chemin, $chemin_icones)) ;
424
        }
426
        }
425
        return $tableau_document ;
427
        return $tableau_document ;
426
    }
428
    }
427
 
429
 
428
 
430
 
429
    /**
431
    /**
430
     * Renvoie un tableau avec tous les repertoires d'un projet, imbrique. ['rep1'],
432
     * Renvoie un tableau avec tous les repertoires d'un projet, imbrique. ['rep1'],
431
     * ['rep2'] => array (['rep21'], 	['rep22']), etc .
433
     * ['rep2'] => array (['rep21'], 	['rep22']), etc .
432
     *
434
     *
433
     * @return Array
435
     * @return Array
434
     * @access public
436
     * @access public
435
     */
437
     */
436
    function getListeRepertoireHierarchisee( )
438
    function getListeRepertoireHierarchisee( )
437
    {
439
    {
438
        // On ne prend que les repertoires
440
        // On ne prend que les repertoires
439
        $requete = "select pd_id, pd_pere, pd_nom from projet_documents where pd_ce_projet=".$this->_db->escapeSimple($this->_id_projet).' and pd_ce_type=0 order by pd_nom' ;
441
        $requete = "select pd_id, pd_pere, pd_nom from projet_documents where pd_ce_projet=".$this->_db->escapeSimple($this->_id_projet).' and pd_ce_type=0 order by pd_nom' ;
440
        $resultat = $this->_db->query ($requete) ;
442
        $resultat = $this->_db->query ($requete) ;
441
        if (DB::isError($resultat)) {
443
        if (DB::isError($resultat)) {
442
            return ("Echec de la requete<br />".$resultat->getMessage()."<br />".$resultat->getDebugInfo()) ;
444
            return ("Echec de la requete<br />".$resultat->getMessage()."<br />".$resultat->getDebugInfo()) ;
443
        }
445
        }
444
        $tableau_document = array() ;
446
        $tableau_document = array() ;
445
		/*
447
		/*
446
        while ($ligne = $resultat->fetchRow (DB_FETCHMODE_OBJECT)) {
448
        while ($ligne = $resultat->fetchRow (DB_FETCHMODE_OBJECT)) {
447
            array_push ($tableau_document, new document ($ligne->pd_id, $this->_db));
449
            array_push ($tableau_document, new document ($ligne->pd_id, $this->_db));
448
        }
450
        }
449
        */
451
        */
450
        $tableau = array();
452
        $tableau = array();
451
        $tab = array();
453
        $tab = array();
452
 
454
 
453
 
455
 
454
        while ($ligne = $resultat->fetchRow (DB_FETCHMODE_OBJECT)) {
456
        while ($ligne = $resultat->fetchRow (DB_FETCHMODE_OBJECT)) {
455
            array_push ($tableau, array ('id' => $ligne->pd_id,
457
            array_push ($tableau, array ('id' => $ligne->pd_id,
456
										'id_pere' => $ligne->pd_pere,
458
										'id_pere' => $ligne->pd_pere,
457
										'fils' => array(),
459
										'fils' => array(),
458
										'label' => $ligne->pd_nom));
460
										'label' => $ligne->pd_nom));
459
 
461
 
460
        }
462
        }
461
 
463
 
462
        // la $tableau reste un tableau de valeur a plat
464
        // la $tableau reste un tableau de valeur a plat
463
 
465
 
464
 
466
 
465
		$i = 0;
467
		$i = 0;
466
        foreach ($tableau as $noeud) {
468
        foreach ($tableau as $noeud) {
467
        	// On teste si le noeud est racine si oui on l ajoute a l arbre sinon on ne l ajoute pas
469
        	// On teste si le noeud est racine si oui on l ajoute a l arbre sinon on ne l ajoute pas
468
        	if ($noeud['id_pere'] == 0) {
470
        	if ($noeud['id_pere'] == 0) {
469
        		$tab[$i] = $noeud;
471
        		$tab[$i] = $noeud;
470
        		$this->construireArbre($tab[$i], $tableau) ;
472
        		$this->construireArbre($tab[$i], $tableau) ;
471
        	}
473
        	}
472
        	$i++;
474
        	$i++;
473
        }
475
        }
474
        return $tab;
476
        return $tab;
475
    } // end of member function getListeRepertoireHierarchisee
477
    } // end of member function getListeRepertoireHierarchisee
476
 
478
 
477
	function construireArbre(&$noeud, $tableau) {
479
	function construireArbre(&$noeud, $tableau) {
478
    	$j = 0;
480
    	$j = 0;
479
    	foreach ($tableau as $element) {
481
    	foreach ($tableau as $element) {
480
        	// pour chaque element on teste
482
        	// pour chaque element on teste
481
        	if ($element['id_pere'] == $noeud['id']) {
483
        	if ($element['id_pere'] == $noeud['id']) {
482
        		$noeud['fils'][$j]= $element ;
484
        		$noeud['fils'][$j]= $element ;
483
        		$this->construireArbre($noeud['fils'][$j],$tableau);
485
        		$this->construireArbre($noeud['fils'][$j],$tableau);
484
        	}
486
        	}
485
        	$j++;
487
        	$j++;
486
        }
488
        }
487
    }
489
    }
488
 
490
 
489
    /**
491
    /**
490
     * Renvoie un tableau comprenant tous les objets projet de la base.
492
     * Renvoie un tableau comprenant tous les objets projet de la base.
491
     *
493
     *
492
     * @return Array
494
     * @return Array
493
     * @static
495
     * @static
494
     * @access public
496
     * @access public
495
     */
497
     */
496
    function getTousLesProjets(&$objetDB, $exclu = '')
498
    function getTousLesProjets(&$objetDB, $exclu = '')
497
    {
499
    {
498
    	$sql = '';
500
    	$sql = '';
499
        if (is_object($this) && isset ($this->_projet_exclu) && count($this->_projet_exclu)) {
501
        if (is_object($this) && isset ($this->_projet_exclu) && count($this->_projet_exclu)) {
500
        	$sql = 'where p_id not in (';
502
        	$sql = 'where p_id not in (';
501
            foreach ($this->_projet_exclu as $valeur) {
503
            foreach ($this->_projet_exclu as $valeur) {
502
            	$sql .= $objetDB->escapeSimple($valeur).',' ;
504
            	$sql .= $objetDB->escapeSimple($valeur).',' ;
503
            }
505
            }
504
            $sql[count($sql)-1] = ')';
506
            $sql[count($sql)-1] = ')';
505
        }
507
        }
506
        $requete = 'select p_id from projet '.$sql.' order by p_titre' ;
508
        $requete = 'select p_id from projet '.$sql.' order by p_titre' ;
507
        $resultat = $objetDB->query ($requete) ;
509
        $resultat = $objetDB->query ($requete) ;
508
        if (DB::isError($resultat)) {
510
        if (DB::isError($resultat)) {
509
            echo ("Echec de la requete<br />".$resultat->getMessage()."<br />".$resultat->getDebugInfo()) ;
511
            echo ("Echec de la requete<br />".$resultat->getMessage()."<br />".$resultat->getDebugInfo()) ;
510
        }
512
        }
511
        $tableau_resultat = array() ;
513
        $tableau_resultat = array() ;
512
        while ($ligne = $resultat->fetchRow (DB_FETCHMODE_OBJECT)) {
514
        while ($ligne = $resultat->fetchRow (DB_FETCHMODE_OBJECT)) {
513
            array_push ($tableau_resultat, new projet ($objetDB, $ligne->p_id)) ;
515
            array_push ($tableau_resultat, new projet ($objetDB, $ligne->p_id)) ;
514
        }
516
        }
515
        return $tableau_resultat ;
517
        return $tableau_resultat ;
516
    } // end of member function getTousLesProjets
518
    } // end of member function getTousLesProjets
517
 
519
 
518
    /**
520
    /**
519
     * Renvoie un tableau comprenant les objets projet de la base du type $type.
521
     * Renvoie un tableau comprenant les objets projet de la base du type $type.
520
     *
522
     *
521
     * @return Array
523
     * @return Array
522
     * @static
524
     * @static
523
     * @access public
525
     * @access public
524
     */
526
     */
525
    function getProjetDuType($type, &$objetDB)
527
    function getProjetDuType($type, &$objetDB)
526
    {
528
    {
527
        $requete = "select p_id from projet where p_type=".$objetDB->escapeSimple($type)." order by p_titre" ;
529
        $requete = "select p_id from projet where p_type=".$objetDB->escapeSimple($type)." order by p_titre" ;
528
        $resultat = $objetDB->query ($requete) ;
530
        $resultat = $objetDB->query ($requete) ;
529
        if (DB::isError($resultat)) {
531
        if (DB::isError($resultat)) {
530
            die ("Echec de la requete<br />".$resultat->getMessage()."<br />".$resultat->getDebugInfo()) ;
532
            die ("Echec de la requete<br />".$resultat->getMessage()."<br />".$resultat->getDebugInfo()) ;
531
        }
533
        }
532
        $tableau_resultat = array() ;
534
        $tableau_resultat = array() ;
533
        while ($ligne = $resultat->fetchRow (DB_FETCHMODE_OBJECT)) {
535
        while ($ligne = $resultat->fetchRow (DB_FETCHMODE_OBJECT)) {
534
            array_push ($tableau_resultat, new projet ($objetDB, $ligne->p_id)) ;
536
            array_push ($tableau_resultat, new projet ($objetDB, $ligne->p_id)) ;
535
        }
537
        }
536
        return $tableau_resultat ;
538
        return $tableau_resultat ;
537
    } // end of member function getTousLesProjets
539
    } // end of member function getTousLesProjets
538
 
540
 
539
    /**
541
    /**
540
     * Renvoie un le projet racine.
542
     * Renvoie un le projet racine.
541
     *
543
     *
542
     * @return projet
544
     * @return projet
543
     * @static
545
     * @static
544
     * @access public
546
     * @access public
545
     */
547
     */
546
    function getProjetRacine(&$objetDB)
548
    function getProjetRacine(&$objetDB)
547
    {
549
    {
548
        $requete = "select p_id from projet where p_id not in (select ph_id_projet_fils from projet_hierarchie)" ;
550
        $requete = "select p_id from projet where p_id not in (select ph_id_projet_fils from projet_hierarchie)" ;
549
        $resultat = $objetDB->query ($requete) ;
551
        $resultat = $objetDB->query ($requete) ;
550
        if (DB::isError($resultat)) {
552
        if (DB::isError($resultat)) {
551
            die ("Echec de la requete<br />".$resultat->getMessage()."<br />".$resultat->getDebugInfo()) ;
553
            die ("Echec de la requete<br />".$resultat->getMessage()."<br />".$resultat->getDebugInfo()) ;
552
        }
554
        }
553
        if ($resultat->numRows() == 1) {
555
        if ($resultat->numRows() == 1) {
554
            $ligne = $resultat->fetchRow(DB_FETCHMODE_OBJECT) ;
556
            $ligne = $resultat->fetchRow(DB_FETCHMODE_OBJECT) ;
555
            return new projet($objetDB, $ligne->p_id) ;
557
            return new projet($objetDB, $ligne->p_id) ;
556
        }
558
        }
557
        $tableau_resultat = array() ;
559
        $tableau_resultat = array() ;
558
        while ($ligne = $resultat->fetchRow (DB_FETCHMODE_OBJECT)) {
560
        while ($ligne = $resultat->fetchRow (DB_FETCHMODE_OBJECT)) {
559
            array_push ($tableau_resultat, new projet ($objetDB, $ligne->p_id)) ;
561
            array_push ($tableau_resultat, new projet ($objetDB, $ligne->p_id)) ;
560
        }
562
        }
561
        return $tableau_resultat ;
563
        return $tableau_resultat ;
562
    } // end of member function getTousLesProjets
564
    } // end of member function getTousLesProjets
563
 
565
 
564
    /**
566
    /**
565
     * Desctructeur de la classe. Libere la memoire, ferme les connexions et fichiers.
567
     * Desctructeur de la classe. Libere la memoire, ferme les connexions et fichiers.
566
     *
568
     *
567
     * @return void
569
     * @return void
568
     * @access public
570
     * @access public
569
     */
571
     */
570
    function __destruct( )
572
    function __destruct( )
571
    {
573
    {
572
 
574
 
573
    } // end of member function __destruct
575
    } // end of member function __destruct
574
 
576
 
575
    /**
577
    /**
576
     * Supprime le projet courrant. Il s'ensuit une suppression en cascade de tous les
578
     * Supprime le projet courrant. Il s'ensuit une suppression en cascade de tous les
577
     * elements lies.
579
     * elements lies.
578
     *
580
     *
579
     * @return void
581
     * @return void
580
     * @access public
582
     * @access public
581
     */
583
     */
582
    function supprimer( )
584
    function supprimer( )
583
    {
585
    {
584
 
586
 
585
    } // end of member function supprimer
587
    } // end of member function supprimer
586
 
588
 
587
    /**
589
    /**
588
     * Permet d'enregistrer une ligne dans la table concernee.
590
     * Permet d'enregistrer une ligne dans la table concernee.
589
     *
591
     *
590
     * @param Array tableau_de_valeur Le tableau de valeur a inserer dans la base avec pour cle les noms des elements
592
     * @param Array tableau_de_valeur Le tableau de valeur a inserer dans la base avec pour cle les noms des elements
591
     * du formulaire.
593
     * du formulaire.
592
     * @return int
594
     * @return int
593
     * @access public
595
     * @access public
594
     */
596
     */
595
    function enregistrerSQL( $tableau_de_valeur )
597
    function enregistrerSQL( $tableau_de_valeur )
596
    {
598
    {
597
        $nom_repertoire = projet::genereNomRepertoire($tableau_de_valeur['projet_titre'], $this->_db) ;
599
        $nom_repertoire = projet::genereNomRepertoire($tableau_de_valeur['projet_titre'], $this->_db) ;
598
        if (!$this->_creationRepertoire ($nom_repertoire)) {
600
        if (!$this->_creationRepertoire ($nom_repertoire)) {
599
            echo 'Impossible de cr&eacute;e un r&eacute;pertoire'.$nom_repertoire ;
601
            echo 'Impossible de cr&eacute;e un r&eacute;pertoire'.$nom_repertoire ;
600
            return false ;
602
            return false ;
601
        }
603
        }
602
        // Traitement du type
604
        // Traitement du type
603
        if (!PROJET_UTILISE_TYPE) {
605
        if (!PROJET_UTILISE_TYPE) {
604
            $tableau_de_valeur['projet_type'] = 0 ;
606
            $tableau_de_valeur['projet_type'] = 0 ;
605
        }
607
        }
606
        $id = SQL_obtenirNouveauId($this->_db, 'projet', 'p_id') ;
608
        $id = SQL_obtenirNouveauId($this->_db, 'projet', 'p_id') ;
607
        $requete = 'insert into projet set p_id='.$this->_db->escapeSimple($id) ;
609
        $requete = 'insert into projet set p_id='.$this->_db->escapeSimple($id) ;
608
        if (!isset($tableau_de_valeur['projet_wikini'])) {
610
        if (!isset($tableau_de_valeur['projet_wikini'])) {
609
        	$tableau_de_valeur['projet_wikini']='';
611
        	$tableau_de_valeur['projet_wikini']='';
610
        }
612
        }
611
        $requete .= ', p_titre="'.$tableau_de_valeur['projet_titre'].'", p_description="'.$tableau_de_valeur['projet_description'].'"'.
613
        $requete .= ', p_titre="'.$tableau_de_valeur['projet_titre'].'", p_description="'.$tableau_de_valeur['projet_description'].'"'.
612
                    ', p_espace_internet="'.$tableau_de_valeur['projet_espace_internet'].'", p_date_creation=NOW()'.
614
                    ', p_espace_internet="'.$tableau_de_valeur['projet_espace_internet'].'", p_date_creation=NOW()'.
613
                    ', p_wikini="'.$tableau_de_valeur['projet_wikini'].'", p_nom_repertoire="'.$nom_repertoire.'", p_resume="'.$tableau_de_valeur['projet_resume'].
615
                    ', p_wikini="'.$tableau_de_valeur['projet_wikini'].'", p_nom_repertoire="'.$nom_repertoire.'", p_resume="'.$tableau_de_valeur['projet_resume'].
614
                    '", p_type="'.$tableau_de_valeur['projet_type'].'", p_modere="'.$tableau_de_valeur['projet_moderation'].'"' ;
616
                    '", p_type="'.$tableau_de_valeur['projet_type'].'", p_modere="'.$tableau_de_valeur['projet_moderation'].'"' ;
615
        $resultat = $this->_db->query ($requete) ;
617
        $resultat = $this->_db->query ($requete) ;
616
 
618
 
617
        if (DB::isError($resultat)) {
619
        if (DB::isError($resultat)) {
618
            return ("Echec de la requete<br />".$resultat->getMessage()."<br />".$resultat->getDebugInfo()) ;
620
            return ("Echec de la requete<br />".$resultat->getMessage()."<br />".$resultat->getDebugInfo()) ;
619
        }
621
        }
620
 
622
 
621
        // On affecte a l'objet projet son identifiant
623
        // On affecte a l'objet projet son identifiant
622
        $this->_id_projet = $id ;
624
        $this->_id_projet = $id ;
623
 
625
 
624
        //insertion dans projet_herarchie
626
        //insertion dans projet_herarchie
625
		if (PROJET_UTILISE_HIERARCHIE) {
627
		if (PROJET_UTILISE_HIERARCHIE) {
626
	        $requete = 'insert into projet_hierarchie set ph_id_projet_pere='.$this->_db->escapeSimple($tableau_de_valeur['projet_asso']).
628
	        $requete = 'insert into projet_hierarchie set ph_id_projet_pere='.$this->_db->escapeSimple($tableau_de_valeur['projet_asso']).
627
	                    ', ph_id_projet_fils='.$this->_db->escapeSimple($id) ;
629
	                    ', ph_id_projet_fils='.$this->_db->escapeSimple($id) ;
628
	        $resultat = $this->_db->query ($requete) ;
630
	        $resultat = $this->_db->query ($requete) ;
629
		}
631
		}
630
 
632
 
631
		/** enregistrement dans projet_avoir_theme */
633
		/** enregistrement dans projet_avoir_theme */
632
		$requete_theme = '';
634
		$requete_theme = '';
633
		foreach ($tableau_de_valeur['projet_theme'] as $cle => $valeur) {
635
		foreach ($tableau_de_valeur['projet_theme'] as $cle => $valeur) {
634
			$requete_theme = 'insert into projet_avoir_theme set pat_id_projet='.$this->_db->escapeSimple($id).', pat_id_theme='.$this->_db->escapeSimple($cle);
636
			$requete_theme = 'insert into projet_avoir_theme set pat_id_projet='.$this->_db->escapeSimple($id).', pat_id_theme='.$this->_db->escapeSimple($cle);
635
			$resultat_theme = $GLOBALS['projet_db']->query($requete_theme);
637
			$resultat_theme = $GLOBALS['projet_db']->query($requete_theme);
636
			if (DB::isError($resultat_theme)) {
638
			if (DB::isError($resultat_theme)) {
637
				return $resultat_theme->getMessage();
639
				return $resultat_theme->getMessage();
638
			}
640
			}
639
		}
641
		}
640
        return true ;
642
        return true ;
641
    }
643
    }
642
 
644
 
643
    /**
645
    /**
644
     * Permet de mettre a jour une ligne dans la table concernee.
646
     * Permet de mettre a jour une ligne dans la table concernee.
645
     *
647
     *
646
     * @param Array tableau_de_valeur Le tableau de valeur a inserer dans la base avec pour cle les noms des elements
648
     * @param Array tableau_de_valeur Le tableau de valeur a inserer dans la base avec pour cle les noms des elements
647
     * du formulaire.
649
     * du formulaire.
648
     * @return int
650
     * @return int
649
     * @access public
651
     * @access public
650
     */
652
     */
651
    function majSQL( $tableau_de_valeur )
653
    function majSQL( $tableau_de_valeur )
652
    {
654
    {
653
        // Traitement du type
655
        // Traitement du type
654
        if (!PROJET_UTILISE_TYPE) {
656
        if (!PROJET_UTILISE_TYPE) {
655
            $tableau_de_valeur['projet_type'] = 0 ;
657
            $tableau_de_valeur['projet_type'] = 0 ;
656
        }
658
        }
657
        $requete = 'update projet set ';
659
        $requete = 'update projet set ';
658
        $requete .= 'p_titre="'.$tableau_de_valeur['projet_titre'].'", p_description="'.$tableau_de_valeur['projet_description'].'"'.
660
        $requete .= 'p_titre="'.$tableau_de_valeur['projet_titre'].'", p_description="'.$tableau_de_valeur['projet_description'].'"'.
659
                    ', p_espace_internet="'.$tableau_de_valeur['projet_espace_internet'].'"'.
661
                    ', p_espace_internet="'.$tableau_de_valeur['projet_espace_internet'].'"'.
660
                    ', p_resume="'.$tableau_de_valeur['projet_resume'].'", p_type="'.$tableau_de_valeur['projet_type'].'"'.
662
                    ', p_resume="'.$tableau_de_valeur['projet_resume'].'", p_type="'.$tableau_de_valeur['projet_type'].'"'.
661
                    ', p_modere='.$tableau_de_valeur['projet_moderation'].
663
                    ', p_modere='.$tableau_de_valeur['projet_moderation'].
662
                    ' where p_id="'.$this->_id_projet.'"' ;
664
                    ' where p_id="'.$this->_id_projet.'"' ;
663
        $resultat = $this->_db->query ($requete) ;
665
        $resultat = $this->_db->query ($requete) ;
664
        if (DB::isError($resultat)) {
666
        if (DB::isError($resultat)) {
665
            return ("Echec de la requete<br />".$resultat->getMessage()."<br />".$resultat->getDebugInfo()) ;
667
            return ("Echec de la requete<br />".$resultat->getMessage()."<br />".$resultat->getDebugInfo()) ;
666
        }
668
        }
667
 
669
 
668
        if (PROJET_UTILISE_HIERARCHIE) {
670
        if (PROJET_UTILISE_HIERARCHIE) {
669
	        // suppression dans projet_hierarchie
671
	        // suppression dans projet_hierarchie
670
 
672
 
671
	        $requete = 'delete from projet_hierarchie where ph_id_projet_fils='.$this->_db->escapeSimple($this->_id_projet) ;
673
	        $requete = 'delete from projet_hierarchie where ph_id_projet_fils='.$this->_db->escapeSimple($this->_id_projet) ;
672
	        $resultat = $this->_db->query ($requete) ;
674
	        $resultat = $this->_db->query ($requete) ;
673
 
675
 
674
	        //insertion dans projet_hierarchie
676
	        //insertion dans projet_hierarchie
675
 
677
 
676
	        $requete = 'insert into projet_hierarchie set ph_id_projet_pere='.$this->_db->escapeSimple($tableau_de_valeur['projet_asso']).
678
	        $requete = 'insert into projet_hierarchie set ph_id_projet_pere='.$this->_db->escapeSimple($tableau_de_valeur['projet_asso']).
677
	                    ', ph_id_projet_fils='.$this->_id_projet ;
679
	                    ', ph_id_projet_fils='.$this->_id_projet ;
678
	        $resultat = $this->_db->query ($requete) ;
680
	        $resultat = $this->_db->query ($requete) ;
679
        }
681
        }
680
 
682
 
681
        /** enregistrement dans projet_avoir_theme */
683
        /** enregistrement dans projet_avoir_theme */
682
 
684
 
683
        $requete_suppression_theme = 'delete from projet_avoir_theme where pat_id_projet='.$this->_db->escapeSimple($this->_id_projet);
685
        $requete_suppression_theme = 'delete from projet_avoir_theme where pat_id_projet='.$this->_db->escapeSimple($this->_id_projet);
684
        $resultat_suppression_theme  = $GLOBALS['projet_db']->query($requete_suppression_theme);
686
        $resultat_suppression_theme  = $GLOBALS['projet_db']->query($requete_suppression_theme);
685
 
687
 
686
		$requete_theme = '';
688
		$requete_theme = '';
687
		foreach ($tableau_de_valeur['projet_theme'] as $cle => $valeur) {
689
		foreach ($tableau_de_valeur['projet_theme'] as $cle => $valeur) {
688
			$requete_theme = 'insert into projet_avoir_theme set pat_id_projet='.$this->_db->escapeSimple($this->_id_projet).
690
			$requete_theme = 'insert into projet_avoir_theme set pat_id_projet='.$this->_db->escapeSimple($this->_id_projet).
689
							', pat_id_theme='.$this->_db->escapeSimple($cle);
691
							', pat_id_theme='.$this->_db->escapeSimple($cle);
690
			$resultat_theme = $GLOBALS['projet_db']->query($requete_theme);
692
			$resultat_theme = $GLOBALS['projet_db']->query($requete_theme);
691
			if (DB::isError($resultat_theme)) {
693
			if (DB::isError($resultat_theme)) {
692
				return $resultat_theme->getMessage();
694
				return $resultat_theme->getMessage();
693
			}
695
			}
694
		}
696
		}
695
        return true ;
697
        return true ;
696
    } // end of member function enregistrerSQL
698
    } // end of member function enregistrerSQL
697
 
699
 
698
    /**
700
    /**
699
     * Met a jour dans la base de donnee le champs p_nom_wikini
701
     * Met a jour dans la base de donnee le champs p_nom_wikini
700
     *
702
     *
701
     * @param int nom_wikini Le nouveau nom wikini
703
     * @param int nom_wikini Le nouveau nom wikini
702
     * @return bool
704
     * @return bool
703
     * @access public
705
     * @access public
704
     */
706
     */
705
    function majNomWikini( $nom_wikini )
707
    function majNomWikini( $nom_wikini )
706
    {
708
    {
707
        $requete = 'update projet set p_wikini="'.$nom_wikini.'" where p_id="'.$this->_id_projet.'"' ;
709
        $requete = 'update projet set p_wikini="'.$nom_wikini.'" where p_id="'.$this->_id_projet.'"' ;
708
        $resultat = $this->_db->query ($requete) ;
710
        $resultat = $this->_db->query ($requete) ;
709
        if (DB::isError ($resultat)) {
711
        if (DB::isError ($resultat)) {
710
            return ('Echec de la requete : '.$requete.'<br />'.$resultat->getMessage()) ;
712
            return ('Echec de la requete : '.$requete.'<br />'.$resultat->getMessage()) ;
711
        }
713
        }
712
        return true ;
714
        return true ;
713
    } // end of member function majNomWikini
715
    } // end of member function majNomWikini
714
 
716
 
715
	function majSQLVisibilite($id_liste, $visible) {
717
	function majSQLVisibilite($id_liste, $visible) {
716
 
718
 
717
        $requete = 'UPDATE projet_liste set pl_visibilite='.$this->_db->escapeSimple($visible).' '.
719
        $requete = 'UPDATE projet_liste set pl_visibilite='.$this->_db->escapeSimple($visible).' '.
718
        'WHERE pl_id_liste ='.$id_liste;
720
        'WHERE pl_id_liste ='.$id_liste;
719
 
721
 
720
        $resultat = $this->_db->query ($requete) ;
722
        $resultat = $this->_db->query ($requete) ;
721
        if (DB::isError($resultat)) {
723
        if (DB::isError($resultat)) {
722
            die ("Echec de la requete<br />".$resultat->getMessage()."<br />".$resultat->getDebugInfo()) ;
724
            die ("Echec de la requete<br />".$resultat->getMessage()."<br />".$resultat->getDebugInfo()) ;
723
        }
725
        }
724
        return true;
726
        return true;
725
    }
727
    }
726
 
728
 
727
    /**
729
    /**
728
     *
730
     *
729
     *
731
     *
730
     * @param string code_sql
732
     * @param string code_sql
731
     * @return bool
733
     * @return bool
732
     * @access public
734
     * @access public
733
     */
735
     */
734
    function suppressionSQL()
736
    function suppressionSQL()
735
    {
737
    {
736
        $msg = '' ;
738
        $msg = '' ;
737
        // Supression du repertoire du projet
739
        // Supression du repertoire du projet
738
        if (!$this->_suppression_repertoire()) {
740
        if (!$this->_suppression_repertoire()) {
739
            $msg = 'La suppression du repertoire n\'a pas fonctionne' ;
741
            $msg = 'La suppression du repertoire n\'a pas fonctionne' ;
740
        }
742
        }
741
        // A ajouter la suppression des documents associes
743
        // A ajouter la suppression des documents associes
742
 
744
 
743
        // La suppression des evenements associés
745
        // La suppression des evenements associés
744
 
746
 
745
        // Le projet lui-meme
747
        // Le projet lui-meme
746
        $requete = "delete from projet where p_id=".$this->_db->escapeSimple($this->_id_projet) ;
748
        $requete = "delete from projet where p_id=".$this->_db->escapeSimple($this->_id_projet) ;
747
        $resultat = $this->_db->query ($requete) ;
749
        $resultat = $this->_db->query ($requete) ;
748
 
750
 
749
        if (PROJET_UTILISE_HIERARCHIE) {
751
        if (PROJET_UTILISE_HIERARCHIE) {
750
	        $requete = "delete from projet_hierarchie where ph_id_projet_fils=".$this->_db->escapeSimple($this->_id_projet) ;
752
	        $requete = "delete from projet_hierarchie where ph_id_projet_fils=".$this->_db->escapeSimple($this->_id_projet) ;
751
	        $resultat = $this->_db->query ($requete) ;
753
	        $resultat = $this->_db->query ($requete) ;
752
        }
754
        }
753
        $requete = "delete from projet_statut_utilisateurs where psu_id_projet=".$this->_db->escapeSimple($this->_id_projet) ;
755
        $requete = "delete from projet_statut_utilisateurs where psu_id_projet=".$this->_db->escapeSimple($this->_id_projet) ;
754
        $resultat = $this->_db->query ($requete) ;
756
        $resultat = $this->_db->query ($requete) ;
755
        return $msg ;
757
        return $msg ;
756
    } // end of member function suppressionSQL
758
    } // end of member function suppressionSQL
757
 
759
 
758
    /**
760
    /**
759
     * Supprime le repertoire associe au projet (le repertoire doit etre vide).
761
     * Supprime le repertoire associe au projet (le repertoire doit etre vide).
760
     *
762
     *
761
     * @return void
763
     * @return void
762
     * @access private
764
     * @access private
763
     */
765
     */
764
    function _suppression_repertoire( )
766
    function _suppression_repertoire( )
765
    {
767
    {
766
        return rmdir ($this->_chemin_repertoire.$this->_nom_repertoire) ;
768
        return rmdir ($this->_chemin_repertoire.$this->_nom_repertoire) ;
767
    } // end of member function _suppression_repertoire
769
    } // end of member function _suppression_repertoire
768
 
770
 
769
    /**
771
    /**
770
     * Permet de creer le repertoire associe au projet.
772
     * Permet de creer le repertoire associe au projet.
771
     *
773
     *
772
     * @param string nom_repertoire Le nom du répertoire à créer.
774
     * @param string nom_repertoire Le nom du répertoire à créer.
773
     * @return boolean
775
     * @return boolean
774
     * @access private
776
     * @access private
775
     */
777
     */
776
    function _creationRepertoire( $nom_repertoire )
778
    function _creationRepertoire( $nom_repertoire )
777
    {
779
    {
778
        return mkdir ($this->_chemin_repertoire.$nom_repertoire) ;
780
        return mkdir ($this->_chemin_repertoire.$nom_repertoire) ;
779
    } // end of member function _creationRepertoire
781
    } // end of member function _creationRepertoire
780
 
782
 
781
    /**
783
    /**
782
     * Permet d'indiquer ou seront stockes les fichiers.
784
     * Permet d'indiquer ou seront stockes les fichiers.
783
     *
785
     *
784
     * @param string cheminRepertoire Le chemin jusqu'au repertoire ou seront stockes les fichiers.
786
     * @param string cheminRepertoire Le chemin jusqu'au repertoire ou seront stockes les fichiers.
785
     * @return void
787
     * @return void
786
     * @access public
788
     * @access public
787
     */
789
     */
788
    function setCheminRepertoire( $cheminRepertoire )
790
    function setCheminRepertoire( $cheminRepertoire )
789
    {
791
    {
790
        $this->_chemin_repertoire = $cheminRepertoire ;
792
        $this->_chemin_repertoire = $cheminRepertoire ;
791
    } // end of member function setCheminRepertoire
793
    } // end of member function setCheminRepertoire
792
 
794
 
793
    /**
795
    /**
794
     * Genere un nom de repertoire a partir de la premiere lettre de la chaine passe en
796
     * Genere un nom de repertoire a partir de la premiere lettre de la chaine passe en
795
     * parametre et de l'identifiant du dernier projet.
797
     * parametre et de l'identifiant du dernier projet.
796
     *
798
     *
797
     * @param string chaine Une chaine a partir de laquelle sera generer le nom du repertoire.
799
     * @param string chaine Une chaine a partir de laquelle sera generer le nom du repertoire.
798
     * @param DB objetDB un objet PEAR::DB
800
     * @param DB objetDB un objet PEAR::DB
799
     * @return string
801
     * @return string
800
     * @static
802
     * @static
801
     * @access public
803
     * @access public
802
     */
804
     */
803
    function genereNomRepertoire( $chaine, &$objetDB )
805
    function genereNomRepertoire( $chaine, &$objetDB )
804
    {
806
    {
805
        $requete = "select p_id from projet order by p_id desc limit 0,1" ;
807
        $requete = "select p_id from projet order by p_id desc limit 0,1" ;
806
        $resultat = $objetDB->query ($requete) ;
808
        $resultat = $objetDB->query ($requete) ;
807
        if (DB::isError ($resultat)) {
809
        if (DB::isError ($resultat)) {
808
            return ("Echec de la requete : $requete<br />".$resultat->getMessage()) ;
810
            return ("Echec de la requete : $requete<br />".$resultat->getMessage()) ;
809
        }
811
        }
810
        if ($resultat->numRows() > 0) {
812
        if ($resultat->numRows() > 0) {
811
	        $ligne = $resultat->fetchRow (DB_FETCHMODE_OBJECT) ;
813
	        $ligne = $resultat->fetchRow (DB_FETCHMODE_OBJECT) ;
812
	        $nom = strtoupper(substr($chaine, 0, 1)) ;
814
	        $nom = strtoupper(substr($chaine, 0, 1)) ;
813
	        $nom .= $ligne->p_id + 1 ;
815
	        $nom .= $ligne->p_id + 1 ;
814
        }
816
        }
815
	    else {
817
	    else {
816
	    	$nom = strtoupper(substr($chaine, 0, 1)) ;
818
	    	$nom = strtoupper(substr($chaine, 0, 1)) ;
817
	        $nom .=  1 ;
819
	        $nom .=  1 ;
818
	    }
820
	    }
819
        return $nom ;
821
        return $nom ;
820
 
822
 
821
    } // end of member function genereNomRepertoire
823
    } // end of member function genereNomRepertoire
822
 
824
 
823
    /**
825
    /**
824
     * Permet de recuperer le nom du repertoire d'un projet.
826
     * Permet de recuperer le nom du repertoire d'un projet.
825
     *
827
     *
826
     * @return string
828
     * @return string
827
     * @access public
829
     * @access public
828
     */
830
     */
829
    function getNomRepertoire( )
831
    function getNomRepertoire( )
830
    {
832
    {
831
        return $this->_nom_repertoire ;
833
        return $this->_nom_repertoire ;
832
    } // end of member function getNomRepertoire
834
    } // end of member function getNomRepertoire
833
 
835
 
834
    /**
836
    /**
835
     *  Ajoute une liste a un projet
837
     *  Ajoute une liste a un projet
836
     *  Effectue une insertion dans projet_lien_liste
838
     *  Effectue une insertion dans projet_lien_liste
837
     *
839
     *
838
     * @param liste_discussion liste Une instance de la classe liste_discussion
840
     * @param liste_discussion liste Une instance de la classe liste_discussion
839
     * @return void
841
     * @return void
840
     * @access public
842
     * @access public
841
     */
843
     */
842
    function ajouterListe( &$liste )
844
    function ajouterListe( &$liste )
843
    {
845
    {
844
        $requete = "insert into projet_lien_liste set pl_id_liste=".$this->_db->escapeSimple($liste->getId()).
846
        $requete = "insert into projet_lien_liste set pl_id_liste=".$this->_db->escapeSimple($liste->getId()).
845
                    ', pl_id_projet='.$this->_db->escapeSimple($this->_id_projet) ;
847
                    ', pl_id_projet='.$this->_db->escapeSimple($this->_id_projet) ;
846
        $resultat = $this->_db->query ($requete) ;
848
        $resultat = $this->_db->query ($requete) ;
847
        if (DB::isError ($resultat)) {
849
        if (DB::isError ($resultat)) {
848
            return ("Echec de la requete : $requete<br />".$resultat->getMessage()) ;
850
            return ("Echec de la requete : $requete<br />".$resultat->getMessage()) ;
849
        }
851
        }
850
    }
852
    }
851
 
853
 
852
    /**
854
    /**
853
     * Supprime la liste de discussion associee au projet
855
     * Supprime la liste de discussion associee au projet
854
     *
856
     *
855
     * @return void
857
     * @return void
856
     * @access public
858
     * @access public
857
     */
859
     */
858
    function supprimerListe(&$liste)
860
    function supprimerListe(&$liste)
859
    {
861
    {
860
        $requete = 'delete from projet_lien_liste where pl_id_liste='.$this->_db->escapeSimple($liste->getId()) ;
862
        $requete = 'delete from projet_lien_liste where pl_id_liste='.$this->_db->escapeSimple($liste->getId()) ;
861
        $resultat = $this->_db->query ($requete) ;
863
        $resultat = $this->_db->query ($requete) ;
862
        if (DB::isError ($resultat)) {
864
        if (DB::isError ($resultat)) {
863
            return ('Echec de la requete : '.$requete.'<br />'.$resultat->getMessage()) ;
865
            return ('Echec de la requete : '.$requete.'<br />'.$resultat->getMessage()) ;
864
        }
866
        }
865
        $requete = 'delete from projet_liste where pl_id_liste='.$this->_db->escapeSimple($liste->getId()) ;
867
        $requete = 'delete from projet_liste where pl_id_liste='.$this->_db->escapeSimple($liste->getId()) ;
866
        $resultat = $this->_db->query ($requete) ;
868
        $resultat = $this->_db->query ($requete) ;
867
        if (DB::isError ($resultat)) {
869
        if (DB::isError ($resultat)) {
868
            return ('Echec de la requete : '.$requete.'<br />'.$resultat->getMessage()) ;
870
            return ('Echec de la requete : '.$requete.'<br />'.$resultat->getMessage()) ;
869
        }
871
        }
870
    }
872
    }
871
 
873
 
872
 
874
 
873
    /**
875
    /**
874
     * Renvoie vrai si le projet est racine.
876
     * Renvoie vrai si le projet est racine.
875
     *
877
     *
876
     * @return bool
878
     * @return bool
877
     * @access public
879
     * @access public
878
     */
880
     */
879
    function isRacine( )
881
    function isRacine( )
880
    {
882
    {
881
        return $this->_est_racine ;
883
        return $this->_est_racine ;
882
    } // end of member function isRacine
884
    } // end of member function isRacine
883
 
885
 
884
    /**
886
    /**
885
     * Renvoie le nombre d'inscrits au projet. Effectue une requete dans la table
887
     * Renvoie le nombre d'inscrits au projet. Effectue une requete dans la table
886
     * projet_statut_utilisateurs
888
     * projet_statut_utilisateurs
887
     *
889
     *
888
     * @return int
890
     * @return int
889
     * @access public
891
     * @access public
890
     */
892
     */
891
    function getNombreInscrits( )
893
    function getNombreInscrits( )
892
    {
894
    {
893
        $requete = 'select count(psu_id_utilisateur) as nbre from projet_statut_utilisateurs where psu_id_projet='.$this->_db->escapeSimple($this->_id_projet) ;
895
        $requete = 'select count(psu_id_utilisateur) as nbre from projet_statut_utilisateurs where psu_id_projet='.$this->_db->escapeSimple($this->_id_projet) ;
894
        $resultat = $this->_db->query ($requete) ;
896
        $resultat = $this->_db->query ($requete) ;
895
        if (DB::isError ($resultat)) {
897
        if (DB::isError ($resultat)) {
896
            die ('Echec de la requete : '.$requete.'<br />'.$resultat->getMessage()) ;
898
            die ('Echec de la requete : '.$requete.'<br />'.$resultat->getMessage()) ;
897
        }
899
        }
898
        $ligne = $resultat->fetchRow (DB_FETCHMODE_OBJECT) ;
900
        $ligne = $resultat->fetchRow (DB_FETCHMODE_OBJECT) ;
899
        return $ligne->nbre ;
901
        return $ligne->nbre ;
900
    } // end of member function getNombreInscrits
902
    } // end of member function getNombreInscrits
901
 
903
 
902
 
904
 
903
    /**
905
    /**
904
     * Renvoie un tableau contenant les identifiants des fils du projet courant.
906
     * Renvoie un tableau contenant les identifiants des fils du projet courant.
905
     *
907
     *
906
     * @return Array
908
     * @return Array
907
     * @access public
909
     * @access public
908
     */
910
     */
909
    function getHierarchie( )
911
    function getHierarchie( )
910
    {
912
    {
911
        $requete = 'select ph_id_projet_fils from projet_hierarchie where ph_id_projet_pere='.$this->_db->escapeSimple($this->_id_projet) ;
913
        $requete = 'select ph_id_projet_fils from projet_hierarchie where ph_id_projet_pere='.$this->_db->escapeSimple($this->_id_projet) ;
912
        $resultat = $this->_db->query ($requete) ;
914
        $resultat = $this->_db->query ($requete) ;
913
        if (DB::isError ($resultat)) {
915
        if (DB::isError ($resultat)) {
914
            die ('Echec de la requete : '.$requete.'<br />'.$resultat->getMessage()) ;
916
            die ('Echec de la requete : '.$requete.'<br />'.$resultat->getMessage()) ;
915
        }
917
        }
916
        $tableau_resultat = array() ;
918
        $tableau_resultat = array() ;
917
        while ($ligne = $resultat->fetchRow(DB_FETCHMODE_OBJECT)) {
919
        while ($ligne = $resultat->fetchRow(DB_FETCHMODE_OBJECT)) {
918
            array_push ($tableau_resultat, $ligne->ph_id_projet_fils) ;
920
            array_push ($tableau_resultat, $ligne->ph_id_projet_fils) ;
919
        }
921
        }
920
        return $tableau_resultat ;
922
        return $tableau_resultat ;
921
    } // end of member function getHierarchie
923
    } // end of member function getHierarchie
922
 
924
 
923
    /**
925
    /**
924
     * Renvoie l'identifiant du pere du projet courrant.
926
     * Renvoie l'identifiant du pere du projet courrant.
925
     *
927
     *
926
     * @return int
928
     * @return int
927
     * @access public
929
     * @access public
928
     */
930
     */
929
    function getIdPere()
931
    function getIdPere()
930
    {
932
    {
931
        $requete = 'select ph_id_projet_pere from projet_hierarchie where ph_id_projet_fils='.$this->_db->escapeSimple($this->_id_projet) ;
933
        $requete = 'select ph_id_projet_pere from projet_hierarchie where ph_id_projet_fils='.$this->_db->escapeSimple($this->_id_projet) ;
932
        $resultat = $this->_db->query ($requete) ;
934
        $resultat = $this->_db->query ($requete) ;
933
        if (DB::isError ($resultat)) {
935
        if (DB::isError ($resultat)) {
934
            die ('Echec de la requete : '.$requete.'<br />'.$resultat->getMessage()) ;
936
            die ('Echec de la requete : '.$requete.'<br />'.$resultat->getMessage()) ;
935
        }
937
        }
936
        $tableau_resultat = array() ;
938
        $tableau_resultat = array() ;
937
        $ligne = $resultat->fetchRow(DB_FETCHMODE_OBJECT) ;
939
        $ligne = $resultat->fetchRow(DB_FETCHMODE_OBJECT) ;
938
        return $ligne->ph_id_projet_pere ;
940
        return $ligne->ph_id_projet_pere ;
939
    } // end of member function getIdPere()
941
    } // end of member function getIdPere()
940
 
942
 
941
    /**
943
    /**
942
     * Renvoie le nom Wiki du wikini associe au projet.
944
     * Renvoie le nom Wiki du wikini associe au projet.
943
     *
945
     *
944
     * @return string
946
     * @return string
945
     * @access public
947
     * @access public
946
     */
948
     */
947
    function getWikini( )
949
    function getWikini( )
948
    {
950
    {
949
        return $this->_nom_wikini ;
951
        return $this->_nom_wikini ;
950
    } // end of member function getWikini
952
    } // end of member function getWikini
951
 
953
 
952
    /**
954
    /**
953
     * Renvoie le type du projet, ou zero si le projet n'a pas de type.
955
     * Renvoie le type du projet, ou zero si le projet n'a pas de type.
954
     *
956
     *
955
     * @return int
957
     * @return int
956
     * @access public
958
     * @access public
957
     */
959
     */
958
    function getType( )
960
    function getType( )
959
    {
961
    {
960
        return $this->_type ;
962
        return $this->_type ;
961
    } // end of member function getType
963
    } // end of member function getType
962
 
964
 
963
    /**
965
    /**
964
     * Renvoie les themes du projet, ou zero si le projet n'a pas de type.
966
     * Renvoie les themes du projet, ou zero si le projet n'a pas de type.
965
     *
967
     *
966
     * @return int
968
     * @return int
967
     * @access public
969
     * @access public
968
     */
970
     */
969
    function getThemes( )
971
    function getThemes( )
970
    {
972
    {
971
        return $this->_themes ;
973
        return $this->_themes ;
972
    } // end of member function getType
974
    } // end of member function getType
973
 
975
 
974
	/**
976
	/**
975
     * Renvoie 1 si les inscriptions au projet sont moderees.
977
     * Renvoie 1 si les inscriptions au projet sont moderees.
976
     *
978
     *
977
     * @return int
979
     * @return int
978
     * @access public
980
     * @access public
979
     */
981
     */
980
    function isModere( )
982
    function isModere( )
981
    {
983
    {
982
        return $this->_isModere ;
984
        return $this->_isModere ;
983
    } // end of member function getType
985
    } // end of member function getType
984
 
986
 
985
 
987
 
986
 
988
 
987
    /**
989
    /**
988
     * initAttributes sets all projet attributes to its default value make
990
     * initAttributes sets all projet attributes to its default value make
989
     * sure to call this method within your class constructor
991
     * sure to call this method within your class constructor
990
     */
992
     */
991
    function initAttributes( )
993
    function initAttributes( )
992
    {
994
    {
993
        $this->chemin_wikini = "projet/wikini/";
995
        $this->chemin_wikini = "projet/wikini/";
994
    }
996
    }
995
 
997
 
996
 
998
 
997
} // end of projet
999
} // end of projet
998
?>
1000
?>