Subversion Repositories Applications.projet

Rev

Rev 11 | Rev 301 | Go to most recent revision | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
2 ddelon 1
<?php
2
/*vim: set expandtab tabstop=4 shiftwidth=4: */
3
// +------------------------------------------------------------------------------------------------------+
4
// | PHP version 4.1                                                                                      |
5
// +------------------------------------------------------------------------------------------------------+
6
// | Copyright (C) 2004 Tela Botanica (accueil@tela-botanica.org)                                         |
7
// +------------------------------------------------------------------------------------------------------+
8
// | This library is free software; you can redistribute it and/or                                        |
9
// | modify it under the terms of the GNU General Public                                                  |
10
// | License as published by the Free Software Foundation; either                                         |
11
// | version 2.1 of the License, or (at your option) any later version.                                   |
12
// |                                                                                                      |
13
// | This library is distributed in the hope that it will be useful,                                      |
14
// | but WITHOUT ANY WARRANTY; without even the implied warranty of                                       |
15
// | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU                                    |
16
// | General Public License for more details.                                                             |
17
// |                                                                                                      |
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                                  |
20
// | Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA                            |
21
// +------------------------------------------------------------------------------------------------------+
208 neiluj 22
// CVS : $Id: liste_discussion.class.php,v 1.3 2007-04-19 15:34:35 neiluj Exp $
2 ddelon 23
/**
24
* Application projet
25
*
26
* La classe liste_discussion
27
*
28
*@package projet
29
//Auteur original :
30
*@author        Alexandre Granier <alexandre@tela-botanica.org>
31
//Autres auteurs :
32
*@author        Aucun
33
*@copyright     Tela-Botanica 2000-2004
208 neiluj 34
*@version       $Revision: 1.3 $
2 ddelon 35
// +------------------------------------------------------------------------------------------------------+
36
*/
37
 
38
 
39
// +------------------------------------------------------------------------------------------------------+
40
// |                                            ENTETE du PROGRAMME                                       |
41
// +------------------------------------------------------------------------------------------------------+
208 neiluj 42
 
43
require_once GEN_CHEMIN_API.'sql/SQL_manipulation.fonct.php' ;
2 ddelon 44
/**
45
 * class liste_discussion
46
 *
47
 */
48
class liste_discussion
49
{
50
 
51
     /*** Attributes: ***/
52
 
53
 
54
    /**
55
     * Le nom de la liste, sans le domaine.
56
     * @access private
57
     */
58
    var $_nom;
59
    /**
60
     *
61
     * @access private
62
     */
63
    var $_adresse;
64
    /**
65
     * Le domaine de la liste
66
     * @access private
67
     */
68
    var $_domaine;
69
    /**
70
     *
71
     * @access private
72
     */
73
    var $_adresse_inscription;
74
    /**
75
     *
76
     * @access private
77
     */
78
    var $_adresse_desinscription;
79
    /**
80
     *
81
     * @access private
82
     */
83
    var $_adresse_aide;
84
    /**
85
     * Une connexion PEAR::DB
86
     * @access private
87
     */
88
    var $_db;
89
    /**
90
     * L'identifiant de la liste.
91
     * @access private
92
     */
93
    var $_id;
94
    /**
95
     *
96
     * @access private
97
     */
98
    var $_adresse_inscription_resume;
99
    /**
100
     * Indique la portée, publique ou privé de la liste
101
     * @access private
102
     */
103
    var $_portee;
104
 
105
    /**
106
     * Le constructeur
107
     *
108
     * @param int id_liste L'identifiant de la liste souhaité
109
     * @param DB objetDB Un objet PEAR:DB
110
     * @return void
111
     * @access public
112
     */
113
    function liste_discussion( $id_liste, & $objetDB )
114
    {
115
        $this->_db = $objetDB ;
116
        if ($id_liste != '') {
117
            $this->_id = $id_liste ;
118
 
119
            $requete_liste = 'select * from projet_liste where pl_id_liste='.$this->_id ;
120
            $resultat_liste = $this->_db->query ($requete_liste) ;
121
            if (DB::isError ($resultat_liste)) {
122
                die ("Echec de la requete : $requete_liste<br />".$resultat_liste->getMessage()) ;
123
            }
124
            $ligne_liste = $resultat_liste->fetchRow(DB_FETCHMODE_OBJECT) ;
125
            $this->_adresse = $ligne_liste->pl_adresse_liste ;
126
            $this->_domaine = $ligne_liste->pl_domaine ;
127
            $this->_nom = $ligne_liste->pl_nom_liste ;
128
            $this->_adresse_inscription = $ligne_liste->pl_adresse_inscription ;
129
            $this->_adresse_inscription_resume = $ligne_liste->pl_nom_liste.'-digest-subscribe@'.$this->_domaine ;
130
            $this->_portee = $ligne_liste->pl_visibilite ;
131
        }
132
    } // end of member function liste_discussion
133
 
134
 
135
    /**
136
     * Renvoie le domaine de la liste
137
     *
138
     * @return string
139
     * @access public
140
     */
141
    function getDomaine( )
142
    {
143
        return $this->_domaine ;
144
    } // end of member function getDomaine
145
 
146
    /**
147
     * Renvoie le nom de la liste
148
     *
149
     * @return string
150
     * @access public
151
     */
152
    function getNom( )
153
    {
154
        return $this->_nom ;
155
    } // end of member function getNom
156
 
157
    /**
158
     * Renvoie l'identifiant de la liste
159
     *
160
     * @return integer
161
     * @access public
162
     */
163
    function getId( )
164
    {
165
        return $this->_id ;
166
    } // end of member function getNom
167
 
168
 
169
 
170
    /**
171
     * Enregistre une ligne dans la table projet_liste
172
     * Le tableau de valeur doit contenir les éléments suivants 'nom_liste','','domaine_liste'
173
     *
174
     * @param Array tableau_de_valeur Le tableau de valeur a insérer dans la base avec pour clé les noms des éléments
175
     * @access  public
176
     * @return void
177
     */
178
 
179
    function enregistrerSQL ($valeur) {
180
 
181
        $id = SQL_obtenirNouveauId($this->_db, 'projet_liste', 'pl_id_liste') ;
182
 
183
        $requete = "insert into projet_liste set pl_id_liste=".$id ;
184
        $requete .= ", pl_nom_liste=\"".$valeur['nom_liste']."\", pl_domaine=\"".$valeur['domaine_liste']."\"".
185
                    ", pl_adresse_liste=\"".$valeur['nom_liste'].'@'.$valeur['domaine_liste'].'", pl_adresse_inscription="'.
186
                    $valeur['nom_liste']."-subscribe@".$valeur['domaine_liste'].'",pl_adresse_desinscription="'.
187
                    $valeur['nom_liste']."-unsubscribe@".$valeur['domaine_liste'].'", pl_adresse_aide="'.
188
                    $valeur['nom_liste']."-help@".$valeur['domaine_liste'].'", pl_visibilite="'.$valeur['liste_visibilite'].'"' ;
189
 
190
        $resultat = $this->_db->query ($requete) ;
191
        if (DB::isError($resultat)) {
192
            die ("Echec de la requete<br />".$resultat->getMessage()."<br />".$resultat->getDebugInfo()) ;
193
        }
194
        $this->_id = $id ;
195
        $this->_domaine = $valeur['domaine_liste'] ;
196
        $this->_nom = $valeur['nom_liste'] ;
197
        return $id;
198
    }
199
 
200
    /**
201
     *
202
     *
203
     * @param string code_sql
204
     * @return bool
205
     * @access public
206
     */
207
    function suppressionSQL()
208
    {
209
 
210
        $requete = "delete from projet_liste where pl_id_liste=".$this->_id ;
211
        $resultat = $this->_db->query ($requete) ;
212
 
213
        return true ;
214
    } // end of member function suppressionSQL
215
 
216
    /**
217
     * Vérifie si une liste existe déjà dans la table projet_liste.
218
     *
219
     * @param string adresse_liste L'adresse de la liste à tester
220
     * @param DB objetDB Un objet PEAR::DB
221
     * @return bool
222
     * @static
223
     * @access public
224
     */
225
    function verifieDoubleListe( $adresse_liste,  &$objetDB )
226
    {
227
        $requete = 'select pl_id_liste from projet_liste where pl_adresse_liste="'.$adresse_liste.'"' ;
228
        $resultat = $objetDB->query ($requete) ;
229
        if (DB::isError ($resultat)) {
230
            die ("Echec de la requete : $requete<br />".$resultat->getMessage()) ;
231
        }
232
        if ($resultat->numRows()) {
233
            return false;
234
        }
235
        return true ;
236
    } // end of member function verifieDoubleListe
237
 
238
 
239
    /**
240
     * Renvoie l'adresse de la liste
241
     *
242
     * @return string
243
     * @access public
244
     */
245
    function getAdresseEnvoi( )
246
    {
247
        return $this->_adresse ;
248
    } // end of member function getAdresseEnvoi
249
 
250
    /**
251
     * Renvoie l'adresse de la liste
252
     *
253
     * @return string
254
     * @access public
255
     */
256
    function getAdresseInscription( )
257
    {
258
        return $this->_adresse_inscription ;
259
    } // end of member function getAdresseEnvoi
260
 
261
    /**
262
     *
263
     *
264
     * @return string
265
     * @access public
266
     */
267
    function getAdresseResume( )
268
    {
269
        return $this->_adresse_inscription_resume ;
270
    } // end of member function getAdresseResume
271
 
272
 
273
    /**
274
     *
275
     *
276
     * @return string
277
     * @access public
278
     */
279
    function isPublic( )
280
    {
281
        return $this->_portee ;
282
    } // end of member function getAdresseResume
283
 
284
 
285
 
286
 
287
 
288
 
289
 
290
} // end of liste_discussion
291
?>