Subversion Repositories Applications.projet

Rev

Rev 397 | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
431 mathias 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
// +------------------------------------------------------------------------------------------------------+
22
// CVS : $Id: liste_discussion.class.php,v 1.3 2007-04-19 15:34:35 neiluj Exp $
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
34
*@version       $Revision: 1.3 $
35
// +------------------------------------------------------------------------------------------------------+
36
*/
37
 
38
 
39
// +------------------------------------------------------------------------------------------------------+
40
// |                                            ENTETE du PROGRAMME                                       |
41
// +------------------------------------------------------------------------------------------------------+
42
 
43
require_once GEN_CHEMIN_API.'sql/SQL_manipulation.fonct.php' ;
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 portee, publique ou privee 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->_db->escapeSimple($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
     function getVisibilite( )
170
    {
171
        return $this->_portee ;
172
    } // end of member function getNom
173
 
174
    /**
175
     * Enregistre une ligne dans la table projet_liste
176
     * Le tableau de valeur doit contenir les �l�ments suivants 'nom_liste','','domaine_liste'
177
     *
178
     * @param Array tableau_de_valeur Le tableau de valeur a ins�rer dans la base avec pour cl� les noms des �l�ments
179
     * @access  public
180
     * @return void
181
     */
182
 
183
    function enregistrerSQL ($valeur) {
184
 
185
        $id = SQL_obtenirNouveauId($this->_db, 'projet_liste', 'pl_id_liste') ;
186
 
187
        $requete = "insert into projet_liste set pl_id_liste=".$this->_db->escapeSimple($id) ;
188
        $requete .= ", pl_nom_liste=\"".$valeur['nom_liste']."\", pl_domaine=\"".$valeur['domaine_liste']."\"".
189
                    ", pl_adresse_liste=\"".$valeur['nom_liste'].'@'.$valeur['domaine_liste'].'", pl_adresse_inscription="'.
190
                    $valeur['nom_liste']."-subscribe@".$valeur['domaine_liste'].'",pl_adresse_desinscription="'.
191
                    $valeur['nom_liste']."-unsubscribe@".$valeur['domaine_liste'].'", pl_adresse_aide="'.
192
                    $valeur['nom_liste']."-help@".$valeur['domaine_liste'].'", pl_visibilite="'.$valeur['liste_visibilite'].'"' ;
193
 
194
        $resultat = $this->_db->query ($requete) ;
195
        if (DB::isError($resultat)) {
196
            die ("Echec de la requete<br />".$resultat->getMessage()."<br />".$resultat->getDebugInfo()) ;
197
        }
198
        $this->_id = $id ;
199
        $this->_domaine = $valeur['domaine_liste'] ;
200
        $this->_nom = $valeur['nom_liste'] ;
201
        return $id;
202
    }
203
 
204
    /**
205
     *
206
     *
207
     * @param string code_sql
208
     * @return bool
209
     * @access public
210
     */
211
    function suppressionSQL()
212
    {
213
 
214
        $requete = "delete from projet_liste where pl_id_liste=".$this->_db->escapeSimple($this->_id);
215
        $resultat = $this->_db->query ($requete) ;
216
 
217
        return true ;
218
    } // end of member function suppressionSQL
219
 
220
    /**
221
     * V�rifie si une liste existe d�j� dans la table projet_liste.
222
     *
223
     * @param string adresse_liste L'adresse de la liste � tester
224
     * @param DB objetDB Un objet PEAR::DB
225
     * @return bool
226
     * @static
227
     * @access public
228
     */
229
    function verifieDoubleListe( $adresse_liste,  &$objetDB )
230
    {
231
        $requete = 'select pl_id_liste from projet_liste where pl_adresse_liste="'.$adresse_liste.'"' ;
232
        $resultat = $objetDB->query ($requete) ;
233
        if (DB::isError ($resultat)) {
234
            die ("Echec de la requete : $requete<br />".$resultat->getMessage()) ;
235
        }
236
        if ($resultat->numRows()) {
237
            return false;
238
        }
239
        return true ;
240
    } // end of member function verifieDoubleListe
241
 
242
 
243
    /**
244
     * Renvoie l'adresse de la liste
245
     *
246
     * @return string
247
     * @access public
248
     */
249
    function getAdresseEnvoi( )
250
    {
251
        return $this->_adresse ;
252
    } // end of member function getAdresseEnvoi
253
 
254
    /**
255
     * Renvoie l'adresse de la liste
256
     *
257
     * @return string
258
     * @access public
259
     */
260
    function getAdresseInscription( )
261
    {
262
        return $this->_adresse_inscription ;
263
    } // end of member function getAdresseEnvoi
264
 
265
    /**
266
     *
267
     *
268
     * @return string
269
     * @access public
270
     */
271
    function getAdresseResume( )
272
    {
273
        return $this->_adresse_inscription_resume ;
274
    } // end of member function getAdresseResume
275
 
276
 
277
    /**
278
     *
279
     *
280
     * @return string
281
     * @access public
282
     */
283
    function isPublic( )
284
    {
285
        return $this->_portee ;
286
    } // end of member function getAdresseResume
287
} // end of liste_discussion
288
?>