Subversion Repositories Applications.papyrus

Rev

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

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