Subversion Repositories Applications.projet

Rev

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

Rev 2 Rev 11
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: liste_discussion.class.php,v 1.1 2005-09-22 14:02:48 ddelon Exp $
22
// CVS : $Id: liste_discussion.class.php,v 1.2 2005-09-27 16:42:00 alexandre_tb Exp $
23
/**
23
/**
24
* Application projet
24
* Application projet
25
*
25
*
26
* La classe liste_discussion
26
* La classe liste_discussion
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.1 $
34
*@version       $Revision: 1.2 $
35
// +------------------------------------------------------------------------------------------------------+
35
// +------------------------------------------------------------------------------------------------------+
36
*/
36
*/
37
 
37
 
38
 
38
 
39
// +------------------------------------------------------------------------------------------------------+
39
// +------------------------------------------------------------------------------------------------------+
40
// |                                            ENTETE du PROGRAMME                                       |
40
// |                                            ENTETE du PROGRAMME                                       |
41
// +------------------------------------------------------------------------------------------------------+
41
// +------------------------------------------------------------------------------------------------------+
42
/**
42
/**
43
 * class liste_discussion
43
 * class liste_discussion
44
 * 
44
 * 
45
 */
45
 */
46
class liste_discussion
46
class liste_discussion
47
{
47
{
48
 
48
 
49
     /*** Attributes: ***/
49
     /*** Attributes: ***/
50
 
50
 
51
 
51
 
52
    /**
52
    /**
53
     * Le nom de la liste, sans le domaine.
53
     * Le nom de la liste, sans le domaine.
54
     * @access private
54
     * @access private
55
     */
55
     */
56
    var $_nom;
56
    var $_nom;
57
    /**
57
    /**
58
     * 
58
     * 
59
     * @access private
59
     * @access private
60
     */
60
     */
61
    var $_adresse;
61
    var $_adresse;
62
    /**
62
    /**
63
     * Le domaine de la liste
63
     * Le domaine de la liste
64
     * @access private
64
     * @access private
65
     */
65
     */
66
    var $_domaine;
66
    var $_domaine;
67
    /**
67
    /**
68
     * 
68
     * 
69
     * @access private
69
     * @access private
70
     */
70
     */
71
    var $_adresse_inscription;
71
    var $_adresse_inscription;
72
    /**
72
    /**
73
     * 
73
     * 
74
     * @access private
74
     * @access private
75
     */
75
     */
76
    var $_adresse_desinscription;
76
    var $_adresse_desinscription;
77
    /**
77
    /**
78
     * 
78
     * 
79
     * @access private
79
     * @access private
80
     */
80
     */
81
    var $_adresse_aide;
81
    var $_adresse_aide;
82
    /**
82
    /**
83
     * Une connexion PEAR::DB
83
     * Une connexion PEAR::DB
84
     * @access private
84
     * @access private
85
     */
85
     */
86
    var $_db;
86
    var $_db;
87
    /**
87
    /**
88
     * L'identifiant de la liste.
88
     * L'identifiant de la liste.
89
     * @access private
89
     * @access private
90
     */
90
     */
91
    var $_id;
91
    var $_id;
92
    /**
92
    /**
93
     * 
93
     * 
94
     * @access private
94
     * @access private
95
     */
95
     */
96
    var $_adresse_inscription_resume;
96
    var $_adresse_inscription_resume;
97
    /**
97
    /**
98
     * Indique la portée, publique ou privé de la liste
98
     * Indique la portée, publique ou privé de la liste
99
     * @access private
99
     * @access private
100
     */
100
     */
101
    var $_portee;
101
    var $_portee;
102
    
102
    
103
    /**
103
    /**
104
     * Le constructeur
104
     * Le constructeur
105
     *
105
     *
106
     * @param int id_liste L'identifiant de la liste souhaité
106
     * @param int id_liste L'identifiant de la liste souhaité
107
     * @param DB objetDB Un objet PEAR:DB
107
     * @param DB objetDB Un objet PEAR:DB
108
     * @return void
108
     * @return void
109
     * @access public
109
     * @access public
110
     */
110
     */
111
    function liste_discussion( $id_liste, & $objetDB )
111
    function liste_discussion( $id_liste, & $objetDB )
112
    {
112
    {
113
        $this->_db = $objetDB ;
113
        $this->_db = $objetDB ;
114
        if ($id_liste != '') {
114
        if ($id_liste != '') {
115
            $this->_id = $id_liste ;
115
            $this->_id = $id_liste ;
116
            
116
            
117
            $requete_liste = 'select * from projet_liste where pl_id_liste='.$this->_id ;
117
            $requete_liste = 'select * from projet_liste where pl_id_liste='.$this->_id ;
118
            $resultat_liste = $this->_db->query ($requete_liste) ;
118
            $resultat_liste = $this->_db->query ($requete_liste) ;
119
            if (DB::isError ($resultat_liste)) {
119
            if (DB::isError ($resultat_liste)) {
120
                die ("Echec de la requete : $requete_liste<br />".$resultat_liste->getMessage()) ;
120
                die ("Echec de la requete : $requete_liste<br />".$resultat_liste->getMessage()) ;
121
            }
121
            }
122
            $ligne_liste = $resultat_liste->fetchRow(DB_FETCHMODE_OBJECT) ;
122
            $ligne_liste = $resultat_liste->fetchRow(DB_FETCHMODE_OBJECT) ;
123
            $this->_adresse = $ligne_liste->pl_adresse_liste ;
123
            $this->_adresse = $ligne_liste->pl_adresse_liste ;
124
            $this->_domaine = $ligne_liste->pl_domaine ;
124
            $this->_domaine = $ligne_liste->pl_domaine ;
125
            $this->_nom = $ligne_liste->pl_nom_liste ;
125
            $this->_nom = $ligne_liste->pl_nom_liste ;
126
            $this->_adresse_inscription = $ligne_liste->pl_adresse_inscription ;
126
            $this->_adresse_inscription = $ligne_liste->pl_adresse_inscription ;
127
            $this->_adresse_inscription_resume = $ligne_liste->pl_nom_liste.'-digest-subscribe@'.$this->_domaine ;
127
            $this->_adresse_inscription_resume = $ligne_liste->pl_nom_liste.'-digest-subscribe@'.$this->_domaine ;
128
            $this->_portee = $ligne_liste->pl_visibilite ;
128
            $this->_portee = $ligne_liste->pl_visibilite ;
129
        }
129
        }
130
    } // end of member function liste_discussion
130
    } // end of member function liste_discussion
131
 
131
 
132
 
132
 
133
    /**
133
    /**
134
     * Renvoie le domaine de la liste
134
     * Renvoie le domaine de la liste
135
     *
135
     *
136
     * @return string
136
     * @return string
137
     * @access public
137
     * @access public
138
     */
138
     */
139
    function getDomaine( )
139
    function getDomaine( )
140
    {
140
    {
141
        return $this->_domaine ;
141
        return $this->_domaine ;
142
    } // end of member function getDomaine
142
    } // end of member function getDomaine
143
 
143
 
144
    /**
144
    /**
145
     * Renvoie le nom de la liste
145
     * Renvoie le nom de la liste
146
     *
146
     *
147
     * @return string
147
     * @return string
148
     * @access public
148
     * @access public
149
     */
149
     */
150
    function getNom( )
150
    function getNom( )
151
    {
151
    {
152
        return $this->_nom ;
152
        return $this->_nom ;
153
    } // end of member function getNom
153
    } // end of member function getNom
154
 
154
 
155
    /**
155
    /**
156
     * Renvoie l'identifiant de la liste
156
     * Renvoie l'identifiant de la liste
157
     *
157
     *
158
     * @return integer
158
     * @return integer
159
     * @access public
159
     * @access public
160
     */
160
     */
161
    function getId( )
161
    function getId( )
162
    {
162
    {
163
        return $this->_id ;
163
        return $this->_id ;
164
    } // end of member function getNom
164
    } // end of member function getNom
165
 
165
 
166
 
166
 
167
 
167
 
168
    /**
168
    /**
169
     * Enregistre une ligne dans la table projet_liste
169
     * Enregistre une ligne dans la table projet_liste
170
     * Le tableau de valeur doit contenir les éléments suivants 'nom_liste','','domaine_liste'
170
     * Le tableau de valeur doit contenir les éléments suivants 'nom_liste','','domaine_liste'
171
     *
171
     *
172
     * @param Array tableau_de_valeur Le tableau de valeur a insérer dans la base avec pour clé les noms des éléments
172
     * @param Array tableau_de_valeur Le tableau de valeur a insérer dans la base avec pour clé les noms des éléments
173
     * @access  public
173
     * @access  public
174
     * @return void
174
     * @return void
175
     */
175
     */
176
 
176
 
177
    function enregistrerSQL ($valeur) {
177
    function enregistrerSQL ($valeur) {
178
        
178
        
179
        $id = SQL_obtenirNouveauId($this->_db, 'projet_liste', 'pl_id_liste') ;
179
        $id = SQL_obtenirNouveauId($this->_db, 'projet_liste', 'pl_id_liste') ;
180
 
180
 
181
        $requete = "insert into projet_liste set pl_id_liste=".$id ;
181
        $requete = "insert into projet_liste set pl_id_liste=".$id ;
182
        $requete .= ", pl_nom_liste=\"".$valeur['nom_liste']."\", pl_domaine=\"".$valeur['domaine_liste']."\"".
182
        $requete .= ", pl_nom_liste=\"".$valeur['nom_liste']."\", pl_domaine=\"".$valeur['domaine_liste']."\"".
183
                    ", pl_adresse_liste=\"".$valeur['nom_liste'].'@'.$valeur['domaine_liste'].'", pl_adresse_inscription="'.
183
                    ", pl_adresse_liste=\"".$valeur['nom_liste'].'@'.$valeur['domaine_liste'].'", pl_adresse_inscription="'.
184
                    $valeur['nom_liste']."-subscribe@".$valeur['domaine_liste'].'",pl_adresse_desinscription="'.
184
                    $valeur['nom_liste']."-subscribe@".$valeur['domaine_liste'].'",pl_adresse_desinscription="'.
185
                    $valeur['nom_liste']."-unsubscribe@".$valeur['domaine_liste'].'", pl_adresse_aide="'.
185
                    $valeur['nom_liste']."-unsubscribe@".$valeur['domaine_liste'].'", pl_adresse_aide="'.
186
                    $valeur['nom_liste']."-help@".$valeur['domaine_liste'].'", pl_visibilite="'.$valeur['liste_visibilite'].'"' ;
186
                    $valeur['nom_liste']."-help@".$valeur['domaine_liste'].'", pl_visibilite="'.$valeur['liste_visibilite'].'"' ;
187
 
187
 
188
        $resultat = $this->_db->query ($requete) ;
188
        $resultat = $this->_db->query ($requete) ;
189
        if (DB::isError($resultat)) {
189
        if (DB::isError($resultat)) {
190
            die ("Echec de la requete<br />".$resultat->getMessage()."<br />".$resultat->getDebugInfo()) ;
190
            die ("Echec de la requete<br />".$resultat->getMessage()."<br />".$resultat->getDebugInfo()) ;
191
        }
191
        }
192
        $this->_id = $id ;
192
        $this->_id = $id ;
193
        $this->_domaine = $valeur['domaine_liste'] ;
193
        $this->_domaine = $valeur['domaine_liste'] ;
194
        $this->_nom = $valeur['nom_liste'] ;
194
        $this->_nom = $valeur['nom_liste'] ;
195
        return $id;
195
        return $id;
196
    }
196
    }
197
 
197
 
198
    /**
198
    /**
199
     * 
199
     * 
200
     *
200
     *
201
     * @param string code_sql 
201
     * @param string code_sql 
202
     * @return bool
202
     * @return bool
203
     * @access public
203
     * @access public
204
     */
204
     */
205
    function suppressionSQL()
205
    function suppressionSQL()
206
    {
206
    {
207
        
207
        
208
        $requete = "delete from projet_liste where pl_id_liste=".$this->_id ;
208
        $requete = "delete from projet_liste where pl_id_liste=".$this->_id ;
209
        $resultat = $this->_db->query ($requete) ;
209
        $resultat = $this->_db->query ($requete) ;
210
 
210
 
211
        return true ;
211
        return true ;
212
    } // end of member function suppressionSQL
212
    } // end of member function suppressionSQL
213
 
213
 
214
    /**
214
    /**
215
     * Vérifie si une liste existe déjà dans la table projet_liste.
215
     * Vérifie si une liste existe déjà dans la table projet_liste.
216
     *
216
     *
217
     * @param string adresse_liste L'adresse de la liste à tester
217
     * @param string adresse_liste L'adresse de la liste à tester
218
     * @param DB objetDB Un objet PEAR::DB
218
     * @param DB objetDB Un objet PEAR::DB
219
     * @return bool
219
     * @return bool
220
     * @static
220
     * @static
221
     * @access public
221
     * @access public
222
     */
222
     */
223
    function verifieDoubleListe( $adresse_liste,  &$objetDB )
223
    function verifieDoubleListe( $adresse_liste,  &$objetDB )
224
    {
224
    {
225
        $requete = 'select pl_id_liste from projet_liste where pl_adresse_liste="'.$adresse_liste.'"' ;
225
        $requete = 'select pl_id_liste from projet_liste where pl_adresse_liste="'.$adresse_liste.'"' ;
226
        $resultat = $objetDB->query ($requete) ;
226
        $resultat = $objetDB->query ($requete) ;
227
        if (DB::isError ($resultat)) {
227
        if (DB::isError ($resultat)) {
228
            die ("Echec de la requete : $requete<br />".$resultat->getMessage()) ;
228
            die ("Echec de la requete : $requete<br />".$resultat->getMessage()) ;
229
        }
229
        }
230
        if ($resultat->numRows()) {
230
        if ($resultat->numRows()) {
231
            return false;
231
            return false;
232
        }
232
        }
233
        return true ;
233
        return true ;
234
    } // end of member function verifieDoubleListe
234
    } // end of member function verifieDoubleListe
235
 
235
 
236
 
236
 
237
    /**
237
    /**
238
     * Renvoie l'adresse de la liste
238
     * Renvoie l'adresse de la liste
239
     *
239
     *
240
     * @return string
240
     * @return string
241
     * @access public
241
     * @access public
242
     */
242
     */
243
    function getAdresseEnvoi( )
243
    function getAdresseEnvoi( )
244
    {
244
    {
245
        return $this->_adresse ;
245
        return $this->_adresse ;
246
    } // end of member function getAdresseEnvoi
246
    } // end of member function getAdresseEnvoi
247
 
247
 
248
    /**
248
    /**
249
     * Renvoie l'adresse de la liste
249
     * Renvoie l'adresse de la liste
250
     *
250
     *
251
     * @return string
251
     * @return string
252
     * @access public
252
     * @access public
253
     */
253
     */
254
    function getAdresseInscription( )
254
    function getAdresseInscription( )
255
    {
255
    {
256
        return $this->_adresse_inscription ;
256
        return $this->_adresse_inscription ;
257
    } // end of member function getAdresseEnvoi
257
    } // end of member function getAdresseEnvoi
258
 
258
 
259
    /**
259
    /**
260
     * 
260
     * 
261
     *
261
     *
262
     * @return string
262
     * @return string
263
     * @access public
263
     * @access public
264
     */
264
     */
265
    function getAdresseResume( )
265
    function getAdresseResume( )
266
    {
266
    {
267
        return $this->_adresse_inscription_resume ;
267
        return $this->_adresse_inscription_resume ;
268
    } // end of member function getAdresseResume
268
    } // end of member function getAdresseResume
269
 
269
 
270
 
270
 
271
    /**
271
    /**
272
     * 
272
     * 
273
     *
273
     *
274
     * @return string
274
     * @return string
275
     * @access public
275
     * @access public
276
     */
276
     */
277
    function isPublic( )
277
    function isPublic( )
278
    {
278
    {
279
        return $this->_portee ;
279
        return $this->_portee ;
280
    } // end of member function getAdresseResume
280
    } // end of member function getAdresseResume
281
 
281
 
282
 
282
 
283
 
283
 
284
 
284
 
285
 
285
 
286
 
286
 
287
 
287
 
288
} // end of liste_discussion
288
} // end of liste_discussion
289
?>
289
?>