Subversion Repositories Applications.projet

Rev

Rev 415 | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 415 Rev 431
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.14 2008-09-16 14:11:05 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.14 $
34
*@version       $Revision: 1.12 $
35
// +------------------------------------------------------------------------------------------------------+
35
// +------------------------------------------------------------------------------------------------------+
36
*/
36
*/
Line 37... Line 37...
37
 
37
 
38
 
38
 
39
// +------------------------------------------------------------------------------------------------------+
39
// +------------------------------------------------------------------------------------------------------+
Line 40... Line 40...
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' ;
Line 45... Line 45...
45
/* Permet la recuperation d'un nouvel identifiant d'une table.*/
45
/* Permet la r�cup�ration 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';
Line 61... Line 61...
61
{
61
{
Line 62... Line 62...
62
 
62
 
Line 63... Line 63...
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
     *
Line 68... Line 68...
68
     */
68
     */
Line 79... Line 79...
79
     * @access private
79
     * @access private
80
     */
80
     */
81
    var $_id_projet;
81
    var $_id_projet;
Line 82... Line 82...
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
    /**
Line 94... Line 94...
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 associ� au projet, avec la syntaxe wikini. Vide par d�faut.
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 cr�ation 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 r�pertoire 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 donn�e.
115
     * @access private
115
     * @access private
116
     */
116
     */
117
    var $_db;
117
    var $_db;
Line 118... Line 118...
118
 
118
 
119
    /**
119
    /**
120
     * Contient le nom du repertoire du projet tel que sur le disque.
120
     * Contient le nom du r�pertoire du projet tel que sur le disque.
121
     * @access private
121
     * @access private
122
     */
122
     */
Line 123... Line 123...
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 r�pertoire o� seront stock�s les fichiers.
127
     * @access private
127
     * @access private
Line 128... Line 128...
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 r�sum� 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 num�ro du type du projet
Line 143... Line 143...
143
     * @access private
143
     * @access private
Line 182... Line 182...
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 (intval($id_projet)) {
187
        if ($id_projet != "") {
188
			$resultat = $this->_db->query(sprintf("SELECT * FROM projet WHERE p_id=%d -- %s",
188
            $requete = "select * from projet where p_id=".$this->_db->escapeSimple($id_projet)." " ;
189
												  intval($id_projet),
-
 
190
												  __FILE__ . ':' . __LINE__));
189
            $resultat = $this->_db->query ($requete) ;
191
            if (DB::isError($resultat)) {
190
            if (DB::isError($resultat)) {
192
                die ("Echec de la requete<br />".$resultat->getMessage()."<br />".$resultat->getDebugInfo()) ;
191
                die ("Echec de la requete<br />".$resultat->getMessage()."<br />".$resultat->getDebugInfo()) ;
193
            }
192
            }
194
            $ligne = $resultat->fetchRow (DB_FETCHMODE_OBJECT) ;
193
            $ligne = $resultat->fetchRow (DB_FETCHMODE_OBJECT) ;
Line 245... Line 244...
245
     * @return bool
244
     * @return bool
246
     * @access public
245
     * @access public
247
     */
246
     */
248
    function projetExiste( &$dbObject,  $id_projet)
247
    function projetExiste( &$dbObject,  $id_projet)
249
    {
248
    {
250
        if (intval($id_projet)) {
249
        if ($id_projet != "") {
251
			$resultat = $dbObject->query(sprintf("SELECT * FROM projet WHERE p_id=%d -- %s",
250
            $requete = "select * from projet where p_id=".$dbObject->escapeSimple($id_projet)." " ;
252
												 intval($id_projet),
-
 
253
												 __FILE__ . ':' . __LINE__));
251
            $resultat = $dbObject->query ($requete) ;
254
            if (DB::isError($resultat)) {
252
            if (DB::isError($resultat)) {
255
                die ("Echec de la requete<br />".$resultat->getMessage()."<br />".$resultat->getDebugInfo()) ;
253
                die ("Echec de la requete<br />".$resultat->getMessage()."<br />".$resultat->getDebugInfo()) ;
256
            }
254
            }
257
            if ($resultat->numRows() != 0) {
255
            if ($resultat->numRows() != 0) {
258
                return true ;
256
                return true ;
Line 320... Line 318...
320
     * Charge dans l'objet projet, les listes de discussion
318
     * Charge dans l'objet projet, les listes de discussion
321
     * ['nom_liste']
319
     * ['nom_liste']
322
     * ['domaine']
320
     * ['domaine']
323
     * ['adresse']
321
     * ['adresse']
324
     *
322
     *
325
     * @return boolean  true en cas de succès
323
     * @return boolean  true en cas de succ�s
326
     * @access public
324
     * @access public
327
     */
325
     */
328
    function getListesAssociees( )
326
    function getListesAssociees( )
329
    {
327
    {
330
        // On rajoute un test pour eviter l'appel SQL si il a deja ete fait une fois
328
        // On rajoute un test pour eviter l'appel SQL si il a deja ete fait une fois
Line 624... Line 622...
624
        $this->_id_projet = $id ;
622
        $this->_id_projet = $id ;
Line 625... Line 623...
625
 
623
 
626
        //insertion dans projet_herarchie
624
        //insertion dans projet_herarchie
627
		if (PROJET_UTILISE_HIERARCHIE) {
625
		if (PROJET_UTILISE_HIERARCHIE) {
628
	        $requete = 'insert into projet_hierarchie set ph_id_projet_pere='.$this->_db->escapeSimple($tableau_de_valeur['projet_asso']).
626
	        $requete = 'insert into projet_hierarchie set ph_id_projet_pere='.$this->_db->escapeSimple($tableau_de_valeur['projet_asso']).
629
	                    ', ph_id_projet_fils='.$this->_db->escapeSimple($id) ;
627
	                    ', ph_id_projet_fils='.$id ;
630
	        $resultat = $this->_db->query ($requete) ;
628
	        $resultat = $this->_db->query ($requete) ;
Line 631... Line 629...
631
		}
629
		}
632
 
630
		
Line 685... Line 683...
685
        $requete_suppression_theme = 'delete from projet_avoir_theme where pat_id_projet='.$this->_db->escapeSimple($this->_id_projet);
683
        $requete_suppression_theme = 'delete from projet_avoir_theme where pat_id_projet='.$this->_db->escapeSimple($this->_id_projet);
686
        $resultat_suppression_theme  = $GLOBALS['projet_db']->query($requete_suppression_theme);
684
        $resultat_suppression_theme  = $GLOBALS['projet_db']->query($requete_suppression_theme);
Line 687... Line 685...
687
 
685
        
688
		$requete_theme = '';
686
		$requete_theme = '';
689
		foreach ($tableau_de_valeur['projet_theme'] as $cle => $valeur) {
687
		foreach ($tableau_de_valeur['projet_theme'] as $cle => $valeur) {
690
			$requete_theme = 'insert into projet_avoir_theme set pat_id_projet='.$this->_db->escapeSimple($this->_id_projet).
-
 
691
							', pat_id_theme='.$this->_db->escapeSimple($cle);
688
			$requete_theme = 'insert into projet_avoir_theme set pat_id_projet='.$this->_db->escapeSimple($this->_id_projet).', pat_id_theme='.$this->_db->escapeSimple($cle);
692
			$resultat_theme = $GLOBALS['projet_db']->query($requete_theme);
689
			$resultat_theme = $GLOBALS['projet_db']->query($requete_theme);
693
			if (DB::isError($resultat_theme)) {
690
			if (DB::isError($resultat_theme)) {
694
				return $resultat_theme->getMessage();
691
				return $resultat_theme->getMessage();
695
			}
692
			}
Line 712... Line 709...
712
            return ('Echec de la requete : '.$requete.'<br />'.$resultat->getMessage()) ;
709
            return ('Echec de la requete : '.$requete.'<br />'.$resultat->getMessage()) ;
713
        }
710
        }
714
        return true ;
711
        return true ;
715
    } // end of member function majNomWikini
712
    } // end of member function majNomWikini
Line 716... Line -...
716
 
-
 
717
	function majSQLVisibilite($id_liste, $visible) {
-
 
718
 
-
 
719
        $requete = 'UPDATE projet_liste set pl_visibilite='.$this->_db->escapeSimple($visible).' '.
-
 
720
        'WHERE pl_id_liste ='.$id_liste;
-
 
721
 
-
 
722
        $resultat = $this->_db->query ($requete) ;
-
 
723
        if (DB::isError($resultat)) {
-
 
724
            die ("Echec de la requete<br />".$resultat->getMessage()."<br />".$resultat->getDebugInfo()) ;
-
 
725
        }
-
 
726
        return true;
-
 
Line 727... Line 713...
727
    }
713
 
728
 
714
 
729
    /**
715
    /**
730
     *
716
     *
Line 740... Line 726...
740
        if (!$this->_suppression_repertoire()) {
726
        if (!$this->_suppression_repertoire()) {
741
            $msg = 'La suppression du repertoire n\'a pas fonctionne' ;
727
            $msg = 'La suppression du repertoire n\'a pas fonctionne' ;
742
        }
728
        }
743
        // A ajouter la suppression des documents associes
729
        // A ajouter la suppression des documents associes
Line 744... Line 730...
744
 
730
 
Line 745... Line 731...
745
        // La suppression des evenements associés
731
        // La suppression des evenements associ�s
746
 
732
 
747
        // Le projet lui-meme
733
        // Le projet lui-meme
Line 769... Line 755...
769
    } // end of member function _suppression_repertoire
755
    } // end of member function _suppression_repertoire
Line 770... Line 756...
770
 
756
 
771
    /**
757
    /**
772
     * Permet de creer le repertoire associe au projet.
758
     * Permet de creer le repertoire associe au projet.
773
     *
759
     *
774
     * @param string nom_repertoire Le nom du répertoire à créer.
760
     * @param string nom_repertoire Le nom du r�pertoire � cr�er.
775
     * @return boolean
761
     * @return boolean
776
     * @access private
762
     * @access private
777
     */
763
     */
778
    function _creationRepertoire( $nom_repertoire )
764
    function _creationRepertoire( $nom_repertoire )