Subversion Repositories Applications.projet

Rev

Rev 280 | Rev 298 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 280 Rev 288
Line 17... Line 17...
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.11 2008-02-08 09:05:21 alexandre_tb Exp $
22
// CVS : $Id: projet.class.php,v 1.12 2008-05-21 14:35:26 alexandre_tb Exp $
23
/**
23
/**
24
* Application projet
24
* Application projet
25
*
25
*
26
* La classe projet
26
* La classe projet
27
*
27
*
Line 29... Line 29...
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.11 $
34
*@version       $Revision: 1.12 $
35
// +------------------------------------------------------------------------------------------------------+
35
// +------------------------------------------------------------------------------------------------------+
36
*/
36
*/
Line 37... Line 37...
37
 
37
 
Line 153... Line 153...
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
    /**
-
 
160
     * tableau contenant les themes associes au projet
-
 
161
     */
-
 
162
    var $_themes = array();
159
    /**
163
    /**
160
     *
164
     *
161
     * PHP5
165
     * PHP5
162
     * @return projet
166
     * @return projet
163
     * @access public
167
     * @access public
Line 171... Line 175...
171
    /**
175
    /**
172
     *
176
     *
173
     *
177
     *
174
     * @param DB dbObject Un objet PEAR:DB
178
     * @param DB dbObject Un objet PEAR:DB
175
     * @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
176
     * première requête 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.
177
     * @return projet
181
     * @return projet
178
     * @access public
182
     * @access public
179
     */
183
     */
180
    function projet( &$dbObject,  $id_projet = "")
184
    function projet( &$dbObject,  $id_projet = "")
181
    {
185
    {
Line 186... Line 190...
186
            if (DB::isError($resultat)) {
190
            if (DB::isError($resultat)) {
187
                die ("Echec de la requete<br />".$resultat->getMessage()."<br />".$resultat->getDebugInfo()) ;
191
                die ("Echec de la requete<br />".$resultat->getMessage()."<br />".$resultat->getDebugInfo()) ;
188
            }
192
            }
189
            $ligne = $resultat->fetchRow (DB_FETCHMODE_OBJECT) ;
193
            $ligne = $resultat->fetchRow (DB_FETCHMODE_OBJECT) ;
Line 190... Line 194...
190
 
194
 
191
            // Affectations dans les propriétés
195
            // Affectations dans les proprietes
192
            $this->_id_projet = $ligne->p_id ;
196
            $this->_id_projet = $ligne->p_id ;
193
            $this->_titre = $ligne->p_titre ;
197
            $this->_titre = $ligne->p_titre ;
194
            $this->_description = $ligne->p_description ;
198
            $this->_description = $ligne->p_description ;
195
            $this->_espace_internet = $ligne->p_espace_internet ;
199
            $this->_espace_internet = $ligne->p_espace_internet ;
196
            $this->_date_creation = $ligne->p_date_creation ;
200
            $this->_date_creation = $ligne->p_date_creation ;
197
            $this->_nom_wikini = $ligne->p_wikini ;
201
            $this->_nom_wikini = $ligne->p_wikini ;
198
            $this->_resume = $ligne->p_resume;
202
            $this->_resume = $ligne->p_resume;
199
            $this->_type = $ligne->p_type ;
203
            $this->_type = $ligne->p_type ;
200
            // On récupère le nom du répertoire
204
            // On recupere le nom du repertoire
201
            $this->_nom_repertoire = $ligne->p_nom_repertoire ;
205
            $this->_nom_repertoire = $ligne->p_nom_repertoire ;
202
            $this->_isModere = $ligne->p_modere;
206
            $this->_isModere = $ligne->p_modere;
203
			$this->_avoirDocument = $ligne->p_avoir_document;
207
			$this->_avoirDocument = $ligne->p_avoir_document;
204
            // on regarde si on a à faire au projet racine
208
            // on regarde si on a a faire au projet racine
205
            if (PROJET_UTILISE_HIERARCHIE) {
209
            if (PROJET_UTILISE_HIERARCHIE) {
206
	            $requete = 'select  ph_id_projet_pere, ph_id_projet_fils from projet_hierarchie where ph_id_projet_fils='.$this->_id_projet ;
210
	            $requete = 'select  ph_id_projet_pere, ph_id_projet_fils from projet_hierarchie where ph_id_projet_fils='.$this->_id_projet ;
207
	            $resultat = $this->_db->query ($requete) ;
211
	            $resultat = $this->_db->query ($requete) ;
208
	            if (DB::isError ($resultat)) {
212
	            if (DB::isError ($resultat)) {
209
	                die ("Echec de la requete : $requete<br />".$resultat->getMessage()) ;
213
	                return ("Echec de la requete : $requete<br />".$resultat->getMessage()) ;
210
	            }
214
	            }
211
	            if (!$resultat->numRows()) {
215
	            if (!$resultat->numRows()) {
212
	                $this->_est_racine = true ;
216
	                $this->_est_racine = true ;
213
	            } else {
217
	            } else {
214
	                $this->_est_racine = false ;
218
	                $this->_est_racine = false ;
215
	            }
219
	            }
-
 
220
            }
-
 
221
            
-
 
222
            /** Recuperation des themes */
-
 
223
            $requete_theme = 'select pat_id_theme, pt_label_theme from projet_avoir_theme, projet_theme'.
-
 
224
            			 ' where pat_id_projet='.$this->_id_projet.' and pat_id_theme=pt_id_theme';
-
 
225
            $resultat_theme = $GLOBALS['projet_db']->query ($requete_theme);
-
 
226
            if (DB::isError($resultat_theme)) {
-
 
227
            	return ("Echec de la requete : $requete_theme<br />".$resultat_theme->getMessage()) ;
-
 
228
            }
-
 
229
            if ($resultat_theme->numRows() != 0) {
-
 
230
            	
-
 
231
            	while ($ligne_theme = $resultat_theme->fetchRow(DB_FETCHMODE_OBJECT)) {
-
 
232
            		$this->_themes[$ligne_theme->pat_id_theme] = $ligne_theme->pt_label_theme;	
-
 
233
            	}
-
 
234
            	
216
            }
235
            }
217
        }
236
        }
Line 218... Line 237...
218
    } // end of member function projet
237
    } // end of member function projet
219
 
238
 
Line 304... Line 323...
304
     * @return boolean  true en cas de succès
323
     * @return boolean  true en cas de succès
305
     * @access public
324
     * @access public
306
     */
325
     */
307
    function getListesAssociees( )
326
    function getListesAssociees( )
308
    {
327
    {
309
        // On rajoute un test pour éviter l'appel SQL si il a déjà été fait une fois
328
        // On rajoute un test pour eviter l'appel SQL si il a deja ete fait une fois
310
        if (count($this->_listes_associes) > 0) return ;
329
        if (count($this->_listes_associes) > 0) return ;
311
        $requete = "select pl_id_liste from projet_lien_liste where pl_id_projet=".$this->_id_projet ;
330
        $requete = "select pl_id_liste from projet_lien_liste where pl_id_projet=".$this->_id_projet ;
312
        $resultat = $this->_db->query ($requete) ;
331
        $resultat = $this->_db->query ($requete) ;
313
        if (DB::isError ($resultat)) {
332
        if (DB::isError ($resultat)) {
314
            die ("Echec de la requete : $requete<br />".$resultat->getMessage()) ;
333
            return ("Echec de la requete : $requete<br />".$resultat->getMessage()) ;
315
        }
334
        }
316
        $retour = array() ;
335
        $retour = array() ;
317
        if ($resultat->numRows()) {
336
        if ($resultat->numRows()) {
318
            $ligne = $resultat->fetchRow (DB_FETCHMODE_OBJECT) ;
337
            $ligne = $resultat->fetchRow (DB_FETCHMODE_OBJECT) ;
319
            $this->_listes_associes[] = new liste_discussion($ligne->pl_id_liste, $this->_db) ;
338
            $this->_listes_associes[] = new liste_discussion($ligne->pl_id_liste, $this->_db) ;
Line 348... Line 367...
348
    {
367
    {
349
        return $this->_avoirDocument;
368
        return $this->_avoirDocument;
350
    }
369
    }
Line 351... Line 370...
351
 
370
 
352
    /**
371
    /**
353
     * Permet de fixer la colonne p_avoir_document à 1 
372
     * Permet de fixer la colonne p_avoir_document a 1 
354
     *
373
     *
355
     * Mis en place pour des raisons de performances avant la methode getListesDocuments etait utilisee
374
     * Mis en place pour des raisons de performances avant la methode getListesDocuments etait utilisee
356
     * 
375
     * 
357
     * @param bool 
376
     * @param bool 
Line 370... Line 389...
370
        return true;
389
        return true;
371
    }
390
    }
Line 372... Line 391...
372
 
391
 
373
    /**
392
    /**
374
     * Renvoie la liste des documents associes sous forme d'un tableau, avec les
393
     * Renvoie la liste des documents associes sous forme d'un tableau, avec les
375
     * informations afférentes. 0 => "nom (cliquable)"
394
     * informations afferentes. 0 => "nom (cliquable)"
376
     "Taille"
395
     "Taille"
377
     "Date
396
     "Date
378
     * de creation"          "Prorietaire"          "Visibilite"          "Action
397
     * de creation"          "Prorietaire"          "Visibilite"          "Action
379
     * (cliquable)"
398
     * (cliquable)"
380
     *
399
     *
381
     * @param visibilite visibilite Si visibilite est prive, tous les fichiers sont renvoyes ainsi qu'une entree
400
     * @param visibilite visibilite Si visibilite est prive, tous les fichiers sont renvoyes ainsi qu'une entree
382
     * pour indiquer la visibilite du document.
401
     * pour indiquer la visibilite du document.
383
     * @return Array
402
     * @return Array
384
     * @access public
403
     * @access public
385
     */
404
     */
386
    function getListesDocuments( $chemin, $chemin_icones = "icones/", $id_repertoire = '' )
405
    function getListesDocuments( $chemin, $chemin_icones = "icones/", $id_repertoire = '', $date = '' )
387
    {
406
    {
388
        // On realise une requete sur projet_documents avec une jointure sur l'annuaire
407
        // On realise une requete sur projet_documents avec une jointure sur l'annuaire
389
        // et sur gen_type_de_fichier pour envoyer un resultat complet.
408
        // et sur gen_type_de_fichier pour envoyer un resultat complet.
390
        // On exclue les fichiers racines cad pd_pere is null
409
        // On exclue les fichiers racines cad pd_pere is null
391
        $requete = "select pd_id from projet_documents where pd_ce_projet=".$this->_id_projet ;
410
        $requete = "select pd_id from projet_documents where pd_ce_projet=".$this->_id_projet ;
392
        if ($id_repertoire != '') $requete .= ' and pd_pere='.$id_repertoire;
411
        if ($id_repertoire != '') $requete .= ' and pd_pere='.$id_repertoire;
-
 
412
        if ($id_repertoire == 0) $requete .= ' and pd_pere=0';
393
        if ($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)';
394
        $requete .= ' order by pd_nom' ;
414
        $requete .= ' order by pd_nom' ;
395
        $resultat = $this->_db->query ($requete) ;
415
        $resultat = $this->_db->query ($requete) ;
396
        if (DB::isError($resultat)) {
416
        if (DB::isError($resultat)) {
397
            return ("Echec de la requete<br />".$resultat->getMessage()."<br />".$resultat->getDebugInfo()) ;
417
            return ("Echec de la requete<br />".$resultat->getMessage()."<br />".$resultat->getDebugInfo()) ;
Line 417... Line 437...
417
    {
437
    {
418
        // On ne prend que les repertoires
438
        // On ne prend que les repertoires
419
        $requete = "select pd_id, pd_pere, pd_nom from projet_documents where pd_ce_projet=".$this->_id_projet.' and pd_ce_type=0 order by pd_nom' ;
439
        $requete = "select pd_id, pd_pere, pd_nom from projet_documents where pd_ce_projet=".$this->_id_projet.' and pd_ce_type=0 order by pd_nom' ;
420
        $resultat = $this->_db->query ($requete) ;
440
        $resultat = $this->_db->query ($requete) ;
421
        if (DB::isError($resultat)) {
441
        if (DB::isError($resultat)) {
422
            die ("Echec de la requete<br />".$resultat->getMessage()."<br />".$resultat->getDebugInfo()) ;
442
            return ("Echec de la requete<br />".$resultat->getMessage()."<br />".$resultat->getDebugInfo()) ;
423
        }
443
        }
424
        $tableau_document = array() ;
444
        $tableau_document = array() ;
425
		/*
445
		/*
426
        while ($ligne = $resultat->fetchRow (DB_FETCHMODE_OBJECT)) {
446
        while ($ligne = $resultat->fetchRow (DB_FETCHMODE_OBJECT)) {
427
            array_push ($tableau_document, new document ($ligne->pd_id, $this->_db));
447
            array_push ($tableau_document, new document ($ligne->pd_id, $this->_db));
Line 540... Line 560...
540
        }
560
        }
541
        return $tableau_resultat ;
561
        return $tableau_resultat ;
542
    } // end of member function getTousLesProjets
562
    } // end of member function getTousLesProjets
Line 543... Line 563...
543
 
563
 
544
    /**
564
    /**
545
     * Desctructeur de la classe. Libère la mémoire, ferme les connexions et fichiers.
565
     * Desctructeur de la classe. Libere la memoire, ferme les connexions et fichiers.
546
     *
566
     *
547
     * @return void
567
     * @return void
548
     * @access public
568
     * @access public
549
     */
569
     */
Line 552... Line 572...
552
 
572
 
Line 553... Line 573...
553
    } // end of member function __destruct
573
    } // end of member function __destruct
554
 
574
 
555
    /**
575
    /**
556
     * Supprime le projet courrant. Il s'ensuit une suppression en cascade de tous les
576
     * Supprime le projet courrant. Il s'ensuit une suppression en cascade de tous les
557
     * éléments liés.
577
     * elements lies.
558
     *
578
     *
559
     * @return void
579
     * @return void
560
     * @access public
580
     * @access public
561
     */
581
     */
Line 562... Line 582...
562
    function supprimer( )
582
    function supprimer( )
Line 563... Line 583...
563
    {
583
    {
564
 
584
 
565
    } // end of member function supprimer
585
    } // end of member function supprimer
566
 
586
 
567
    /**
587
    /**
568
     * Permet d'enregistrer une ligne dans la table concernée.
588
     * Permet d'enregistrer une ligne dans la table concernee.
569
     *
589
     *
570
     * @param Array tableau_de_valeur Le tableau de valeur a insérer dans la base avec pour clé les noms des éléments
590
     * @param Array tableau_de_valeur Le tableau de valeur a inserer dans la base avec pour cle les noms des elements
571
     * du formulaire.
591
     * du formulaire.
572
     * @return int
592
     * @return int
573
     * @access public
593
     * @access public
574
     */
594
     */
575
    function enregistrerSQL( $tableau_de_valeur )
595
    function enregistrerSQL( $tableau_de_valeur )
576
    {
596
    {
577
        $nom_repertoire = projet::genereNomRepertoire($tableau_de_valeur['projet_titre'], $this->_db) ;
597
        $nom_repertoire = projet::genereNomRepertoire($tableau_de_valeur['projet_titre'], $this->_db) ;
578
        if (!$this->_creationRepertoire ($nom_repertoire)) {
598
        if (!$this->_creationRepertoire ($nom_repertoire)) {
579
            echo 'Impossible de crée un répertoire'.$nom_repertoire ;
599
            echo 'Impossible de cr&eacute;e un r&eacute;pertoire'.$nom_repertoire ;
580
            return false ;
600
            return false ;
Line 593... Line 613...
593
                    ', p_wikini="'.$tableau_de_valeur['projet_wikini'].'", p_nom_repertoire="'.$nom_repertoire.'", p_resume="'.$tableau_de_valeur['projet_resume'].
613
                    ', p_wikini="'.$tableau_de_valeur['projet_wikini'].'", p_nom_repertoire="'.$nom_repertoire.'", p_resume="'.$tableau_de_valeur['projet_resume'].
594
                    '", p_type='.$tableau_de_valeur['projet_type'].', p_modere="'.$tableau_de_valeur['projet_moderation'].'"' ;
614
                    '", p_type='.$tableau_de_valeur['projet_type'].', p_modere="'.$tableau_de_valeur['projet_moderation'].'"' ;
595
        $resultat = $this->_db->query ($requete) ;
615
        $resultat = $this->_db->query ($requete) ;
Line 596... Line 616...
596
 
616
 
597
        if (DB::isError($resultat)) {
617
        if (DB::isError($resultat)) {
598
            die ("Echec de la requete<br />".$resultat->getMessage()."<br />".$resultat->getDebugInfo()) ;
618
            return ("Echec de la requete<br />".$resultat->getMessage()."<br />".$resultat->getDebugInfo()) ;
Line 599... Line 619...
599
        }
619
        }
600
 
620
 
Line 601... Line 621...
601
        // On affecte à l'objet projet son identifiant
621
        // On affecte a l'objet projet son identifiant
602
        $this->_id_projet = $id ;
622
        $this->_id_projet = $id ;
603
 
623
 
604
        //insertion dans projet_hierarchie
624
        //insertion dans projet_herarchie
605
		if (PROJET_UTILISE_HIERARCHIE) {
625
		if (PROJET_UTILISE_HIERARCHIE) {
606
	        $requete = 'insert into projet_hierarchie set ph_id_projet_pere='.$tableau_de_valeur['projet_asso'].
626
	        $requete = 'insert into projet_hierarchie set ph_id_projet_pere='.$tableau_de_valeur['projet_asso'].
-
 
627
	                    ', ph_id_projet_fils='.$id ;
-
 
628
	        $resultat = $this->_db->query ($requete) ;
-
 
629
		}
-
 
630
		
-
 
631
		/** enregistrement dans projet_avoir_theme */
-
 
632
		$requete_theme = '';
-
 
633
		foreach ($tableau_de_valeur['projet_theme'] as $cle => $valeur) {
-
 
634
			$requete_theme = 'insert into projet_avoir_theme set pat_id_projet='.$id.', pat_id_theme='.$cle;
-
 
635
			$resultat_theme = $GLOBALS['projet_db']->query($requete_theme);
-
 
636
			if (DB::isError($resultat_theme)) {
607
	                    ', ph_id_projet_fils='.$id ;
637
				return $resultat_theme->getMessage();
608
	        $resultat = $this->_db->query ($requete) ;
638
			}
Line 609... Line 639...
609
		}
639
		}
610
        return true ;
640
        return true ;
611
    } // end of member function enregistrerSQL
641
    }
612
 
642
 
613
    /**
643
    /**
614
     * Permet de mettre à jour une ligne dans la table concernée.
644
     * Permet de mettre a jour une ligne dans la table concernee.
615
     *
645
     *
616
     * @param Array tableau_de_valeur Le tableau de valeur a insérer dans la base avec pour clé les noms des éléments
646
     * @param Array tableau_de_valeur Le tableau de valeur a inserer dans la base avec pour cle les noms des elements
617
     * du formulaire.
647
     * du formulaire.
Line 630... Line 660...
630
                    ', p_resume="'.$tableau_de_valeur['projet_resume'].'", p_type='.$tableau_de_valeur['projet_type'].
660
                    ', p_resume="'.$tableau_de_valeur['projet_resume'].'", p_type='.$tableau_de_valeur['projet_type'].
631
                    ', p_modere='.$tableau_de_valeur['projet_moderation'].
661
                    ', p_modere='.$tableau_de_valeur['projet_moderation'].
632
                    ' where p_id="'.$this->_id_projet.'"' ;
662
                    ' where p_id="'.$this->_id_projet.'"' ;
633
        $resultat = $this->_db->query ($requete) ;
663
        $resultat = $this->_db->query ($requete) ;
634
        if (DB::isError($resultat)) {
664
        if (DB::isError($resultat)) {
635
            die ("Echec de la requete<br />".$resultat->getMessage()."<br />".$resultat->getDebugInfo()) ;
665
            return ("Echec de la requete<br />".$resultat->getMessage()."<br />".$resultat->getDebugInfo()) ;
636
        }
666
        }
Line 637... Line 667...
637
 
667
 
638
        if (PROJET_UTILISE_HIERARCHIE) {
668
        if (PROJET_UTILISE_HIERARCHIE) {
Line 645... Line 675...
645
 
675
 
646
	        $requete = 'insert into projet_hierarchie set ph_id_projet_pere='.$tableau_de_valeur['projet_asso'].
676
	        $requete = 'insert into projet_hierarchie set ph_id_projet_pere='.$tableau_de_valeur['projet_asso'].
647
	                    ', ph_id_projet_fils='.$this->_id_projet ;
677
	                    ', ph_id_projet_fils='.$this->_id_projet ;
648
	        $resultat = $this->_db->query ($requete) ;
678
	        $resultat = $this->_db->query ($requete) ;
-
 
679
        }
-
 
680
        
-
 
681
        /** enregistrement dans projet_avoir_theme */
-
 
682
        
-
 
683
        $requete_suppression_theme = 'delete from projet_avoir_theme where pat_id_projet='.$this->_id_projet;
-
 
684
        $resultat_suppression_theme  = $GLOBALS['projet_db']->query($requete_suppression_theme);
-
 
685
        
-
 
686
		$requete_theme = '';
-
 
687
		foreach ($tableau_de_valeur['projet_theme'] as $cle => $valeur) {
-
 
688
			$requete_theme = 'insert into projet_avoir_theme set pat_id_projet='.$this->_id_projet.', pat_id_theme='.$cle;
-
 
689
			$resultat_theme = $GLOBALS['projet_db']->query($requete_theme);
-
 
690
			if (DB::isError($resultat_theme)) {
-
 
691
				return $resultat_theme->getMessage();
-
 
692
			}
649
        }
693
		}
650
        return true ;
694
        return true ;
Line 651... Line 695...
651
    } // end of member function enregistrerSQL
695
    } // end of member function enregistrerSQL
652
 
696
 
653
    /**
697
    /**
654
     * Met à jour dans la base de donnée le champs p_nom_wikini
698
     * Met a jour dans la base de donnee le champs p_nom_wikini
655
     *
699
     *
656
     * @param int nom_wikini Le nouveau nom wikini
700
     * @param int nom_wikini Le nouveau nom wikini
657
     * @return bool
701
     * @return bool
658
     * @access public
702
     * @access public
659
     */
703
     */
660
    function majNomWikini( $nom_wikini )
704
    function majNomWikini( $nom_wikini )
661
    {
705
    {
662
        $requete = 'update projet set p_wikini="'.$nom_wikini.'" where p_id="'.$this->_id_projet.'"' ;
706
        $requete = 'update projet set p_wikini="'.$nom_wikini.'" where p_id="'.$this->_id_projet.'"' ;
663
        $resultat = $this->_db->query ($requete) ;
707
        $resultat = $this->_db->query ($requete) ;
664
        if (DB::isError ($resultat)) {
708
        if (DB::isError ($resultat)) {
665
            die ('Echec de la requete : '.$requete.'<br />'.$resultat->getMessage()) ;
709
            return ('Echec de la requete : '.$requete.'<br />'.$resultat->getMessage()) ;
666
        }
710
        }
Line 676... Line 720...
676
     * @access public
720
     * @access public
677
     */
721
     */
678
    function suppressionSQL()
722
    function suppressionSQL()
679
    {
723
    {
680
        $msg = '' ;
724
        $msg = '' ;
681
        // Supression du répertoire du projet
725
        // Supression du repertoire du projet
682
        if (!$this->_suppression_repertoire()) {
726
        if (!$this->_suppression_repertoire()) {
683
            $msg = 'La suppression du répertoire n\'a pas fonctionn°' ;
727
            $msg = 'La suppression du repertoire n\'a pas fonctionne' ;
684
        }
728
        }
685
        // A ajouter la suppression des documents associés
729
        // A ajouter la suppression des documents associes
Line 686... Line 730...
686
 
730
 
Line 687... Line 731...
687
        // La suppression des évènements associés
731
        // La suppression des evenements associés
688
 
732
 
689
        // Le projet lui-même
733
        // Le projet lui-meme
Line 690... Line 734...
690
        $requete = "delete from projet where p_id=".$this->_id_projet ;
734
        $requete = "delete from projet where p_id=".$this->_id_projet ;
691
        $resultat = $this->_db->query ($requete) ;
735
        $resultat = $this->_db->query ($requete) ;
Line 698... Line 742...
698
        $resultat = $this->_db->query ($requete) ;
742
        $resultat = $this->_db->query ($requete) ;
699
        return $msg ;
743
        return $msg ;
700
    } // end of member function suppressionSQL
744
    } // end of member function suppressionSQL
Line 701... Line 745...
701
 
745
 
702
    /**
746
    /**
703
     * Supprime le répertoire associé au projet (le répertoire doit être vide).
747
     * Supprime le repertoire associe au projet (le repertoire doit etre vide).
704
     *
748
     *
705
     * @return void
749
     * @return void
706
     * @access private
750
     * @access private
707
     */
751
     */
708
    function _suppression_repertoire( )
752
    function _suppression_repertoire( )
709
    {
753
    {
710
        return rmdir ($this->_chemin_repertoire.$this->_nom_repertoire) ;
754
        return rmdir ($this->_chemin_repertoire.$this->_nom_repertoire) ;
Line 711... Line 755...
711
    } // end of member function _suppression_repertoire
755
    } // end of member function _suppression_repertoire
712
 
756
 
713
    /**
757
    /**
714
     * Permet de créer le répertoire associé au projet.
758
     * Permet de creer le repertoire associe au projet.
715
     *
759
     *
716
     * @param string nom_repertoire Le nom du répertoire à créer.
760
     * @param string nom_repertoire Le nom du répertoire à créer.
717
     * @return boolean
761
     * @return boolean
Line 721... Line 765...
721
    {
765
    {
722
        return mkdir ($this->_chemin_repertoire.$nom_repertoire) ;
766
        return mkdir ($this->_chemin_repertoire.$nom_repertoire) ;
723
    } // end of member function _creationRepertoire
767
    } // end of member function _creationRepertoire
Line 724... Line 768...
724
 
768
 
725
    /**
769
    /**
726
     * Permet d'indiquer où seront stockés les fichiers.
770
     * Permet d'indiquer ou seront stockes les fichiers.
727
     *
771
     *
728
     * @param string cheminRepertoire Le chemin jusqu'au répertoire où seront stockés les fichiers.
772
     * @param string cheminRepertoire Le chemin jusqu'au repertoire ou seront stockes les fichiers.
729
     * @return void
773
     * @return void
730
     * @access public
774
     * @access public
731
     */
775
     */
732
    function setCheminRepertoire( $cheminRepertoire )
776
    function setCheminRepertoire( $cheminRepertoire )
733
    {
777
    {
734
        $this->_chemin_repertoire = $cheminRepertoire ;
778
        $this->_chemin_repertoire = $cheminRepertoire ;
Line 735... Line 779...
735
    } // end of member function setCheminRepertoire
779
    } // end of member function setCheminRepertoire
736
 
780
 
737
    /**
781
    /**
738
     * Génère un nom de répertoire à partir de la première lettre de la chaine passé en
782
     * Genere un nom de repertoire a partir de la premiere lettre de la chaine passe en
739
     * paramètre et de l'identifiant du dernier projet.
783
     * parametre et de l'identifiant du dernier projet.
740
     *
784
     *
741
     * @param string chaine Une chaine à partir de laquelle sera générer le nom du répertoire.
785
     * @param string chaine Une chaine a partir de laquelle sera generer le nom du repertoire.
742
     * @param DB objetDB un objet PEAR::DB
786
     * @param DB objetDB un objet PEAR::DB
743
     * @return string
787
     * @return string
744
     * @static
788
     * @static
745
     * @access public
789
     * @access public
746
     */
790
     */
747
    function genereNomRepertoire( $chaine, &$objetDB )
791
    function genereNomRepertoire( $chaine, &$objetDB )
748
    {
792
    {
749
        $requete = "select p_id from projet order by p_id desc limit 0,1" ;
793
        $requete = "select p_id from projet order by p_id desc limit 0,1" ;
750
        $resultat = $objetDB->query ($requete) ;
794
        $resultat = $objetDB->query ($requete) ;
751
        if (DB::isError ($resultat)) {
795
        if (DB::isError ($resultat)) {
752
            die ("Echec de la requete : $requete<br />".$resultat->getMessage()) ;
796
            return ("Echec de la requete : $requete<br />".$resultat->getMessage()) ;
753
        }
797
        }
754
        if ($resultat->numRows() > 0) {
798
        if ($resultat->numRows() > 0) {
755
	        $ligne = $resultat->fetchRow (DB_FETCHMODE_OBJECT) ;
799
	        $ligne = $resultat->fetchRow (DB_FETCHMODE_OBJECT) ;
Line 763... Line 807...
763
        return $nom ;
807
        return $nom ;
Line 764... Line 808...
764
 
808
 
Line 765... Line 809...
765
    } // end of member function genereNomRepertoire
809
    } // end of member function genereNomRepertoire
766
 
810
 
767
    /**
811
    /**
768
     * Permet de récupérer le nom du répertoire d'un projet.
812
     * Permet de recuperer le nom du repertoire d'un projet.
769
     *
813
     *
770
     * @return string
814
     * @return string
771
     * @access public
815
     * @access public
772
     */
816
     */
773
    function getNomRepertoire( )
817
    function getNomRepertoire( )
774
    {
818
    {
Line 775... Line 819...
775
        return $this->_nom_repertoire ;
819
        return $this->_nom_repertoire ;
776
    } // end of member function getNomRepertoire
820
    } // end of member function getNomRepertoire
777
 
821
 
778
    /**
822
    /**
779
     *  Ajoute une liste à un projet
823
     *  Ajoute une liste a un projet
780
     *  Effectue une insertion dans projet_lien_liste
824
     *  Effectue une insertion dans projet_lien_liste
781
     *
825
     *
Line 787... Line 831...
787
    {
831
    {
788
        $requete = "insert into projet_lien_liste set pl_id_liste=".$liste->getId().
832
        $requete = "insert into projet_lien_liste set pl_id_liste=".$liste->getId().
789
                    ', pl_id_projet='.$this->_id_projet ;
833
                    ', pl_id_projet='.$this->_id_projet ;
790
        $resultat = $this->_db->query ($requete) ;
834
        $resultat = $this->_db->query ($requete) ;
791
        if (DB::isError ($resultat)) {
835
        if (DB::isError ($resultat)) {
792
            die ("Echec de la requete : $requete<br />".$resultat->getMessage()) ;
836
            return ("Echec de la requete : $requete<br />".$resultat->getMessage()) ;
793
        }
837
        }
794
    } // end of member function ajouterListe
838
    }
Line 795... Line 839...
795
 
839
 
796
    /**
840
    /**
797
     * Supprime la liste de discussion associée au projet
841
     * Supprime la liste de discussion associee au projet
798
     *
842
     *
799
     * @return void
843
     * @return void
800
     * @access public
844
     * @access public
801
     */
845
     */
802
    function supprimerListe(&$liste)
846
    function supprimerListe(&$liste)
803
    {
847
    {
804
        $requete = 'delete from projet_lien_liste where pl_id_liste='.$liste->getId() ;
848
        $requete = 'delete from projet_lien_liste where pl_id_liste='.$liste->getId() ;
805
        $resultat = $this->_db->query ($requete) ;
849
        $resultat = $this->_db->query ($requete) ;
806
        if (DB::isError ($resultat)) {
850
        if (DB::isError ($resultat)) {
807
            die ('Echec de la requete : '.$requete.'<br />'.$resultat->getMessage()) ;
851
            return ('Echec de la requete : '.$requete.'<br />'.$resultat->getMessage()) ;
808
        }
852
        }
809
        $requete = 'delete from projet_liste where pl_id_liste='.$liste->getId() ;
853
        $requete = 'delete from projet_liste where pl_id_liste='.$liste->getId() ;
810
        $resultat = $this->_db->query ($requete) ;
854
        $resultat = $this->_db->query ($requete) ;
811
        if (DB::isError ($resultat)) {
855
        if (DB::isError ($resultat)) {
812
            die ('Echec de la requete : '.$requete.'<br />'.$resultat->getMessage()) ;
856
            return ('Echec de la requete : '.$requete.'<br />'.$resultat->getMessage()) ;
813
        }
857
        }
Line 814... Line 858...
814
    } // end of member function supprimerListe
858
    }
815
 
859
 
816
 
860
 
Line 881... Line 925...
881
        $ligne = $resultat->fetchRow(DB_FETCHMODE_OBJECT) ;
925
        $ligne = $resultat->fetchRow(DB_FETCHMODE_OBJECT) ;
882
        return $ligne->ph_id_projet_pere ;
926
        return $ligne->ph_id_projet_pere ;
883
    } // end of member function getIdPere()
927
    } // end of member function getIdPere()
Line 884... Line 928...
884
 
928
 
885
    /**
929
    /**
886
     * Renvoie le nom Wiki du wikini associé au projet.
930
     * Renvoie le nom Wiki du wikini associe au projet.
887
     *
931
     *
888
     * @return string
932
     * @return string
889
     * @access public
933
     * @access public
890
     */
934
     */
891
    function getWikini( )
935
    function getWikini( )
892
    {
936
    {
893
        return $this->_nom_wikini ;
937
        return $this->_nom_wikini ;
Line 894... Line 938...
894
    } // end of member function getWikini
938
    } // end of member function getWikini
895
 
939
 
896
    /**
940
    /**
897
     * Renvoie le type du projet, ou zéro si le projet n'a pas de type.
941
     * Renvoie le type du projet, ou zero si le projet n'a pas de type.
898
     *
942
     *
899
     * @return int
943
     * @return int
900
     * @access public
944
     * @access public
901
     */
945
     */
902
    function getType( )
946
    function getType( )
903
    {
947
    {
Line -... Line 948...
-
 
948
        return $this->_type ;
-
 
949
    } // end of member function getType
-
 
950
 
-
 
951
    /**
-
 
952
     * Renvoie les themes du projet, ou zero si le projet n'a pas de type.
-
 
953
     *
-
 
954
     * @return int
-
 
955
     * @access public
-
 
956
     */
-
 
957
    function getThemes( )
-
 
958
    {
904
        return $this->_type ;
959
        return $this->_themes ;
905
    } // end of member function getType
960
    } // end of member function getType
906
 
961
 
907
	/**
962
	/**
908
     * Renvoie 1 si les inscriptions au projet sont modérées.
963
     * Renvoie 1 si les inscriptions au projet sont moderees.
909
     *
964
     *
910
     * @return int
965
     * @return int
Line 916... Line 971...
916
    } // end of member function getType
971
    } // end of member function getType
Line 917... Line 972...
917
 
972
 
918
 
973
 
919
 
974
 
920
    /**
975
    /**
921
     * initAttributes sets all projet attributes to its default                    value make
976
     * initAttributes sets all projet attributes to its default value make
922
     * sure to call this method within your class constructor
977
     * sure to call this method within your class constructor
923
     */
978
     */