Subversion Repositories Applications.projet

Rev

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

Rev Author Line No. Line
2 ddelon 1
<?php
389 aurelien 2
/*vim: set expandtab tabstop=4 shiftwidth=4: */
2 ddelon 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
// +------------------------------------------------------------------------------------------------------+
301 alexandre_ 22
// CVS : $Id: liste_discussion.class.php,v 1.4 2008-08-25 15:12:24 alexandre_tb 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
301 alexandre_ 34
*@version       $Revision: 1.4 $
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
389 aurelien 46
 *
2 ddelon 47
 */
48
class liste_discussion
49
{
50
 
51
     /*** Attributes: ***/
52
 
389 aurelien 53
 
2 ddelon 54
    /**
55
     * Le nom de la liste, sans le domaine.
56
     * @access private
57
     */
58
    var $_nom;
59
    /**
389 aurelien 60
     *
2 ddelon 61
     * @access private
62
     */
63
    var $_adresse;
64
    /**
65
     * Le domaine de la liste
66
     * @access private
67
     */
68
    var $_domaine;
69
    /**
389 aurelien 70
     *
2 ddelon 71
     * @access private
72
     */
73
    var $_adresse_inscription;
74
    /**
389 aurelien 75
     *
2 ddelon 76
     * @access private
77
     */
78
    var $_adresse_desinscription;
79
    /**
389 aurelien 80
     *
2 ddelon 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
    /**
389 aurelien 95
     *
2 ddelon 96
     * @access private
97
     */
98
    var $_adresse_inscription_resume;
99
    /**
301 alexandre_ 100
     * Indique la portee, publique ou privee de la liste
2 ddelon 101
     * @access private
102
     */
103
    var $_portee;
389 aurelien 104
 
2 ddelon 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 ;
389 aurelien 118
 
2 ddelon 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
 
389 aurelien 168
	function getVisibilite( )
169
    {
170
        return $this->_portee ;
171
    } // end of member function getNom
2 ddelon 172
 
173
    /**
174
     * Enregistre une ligne dans la table projet_liste
175
     * Le tableau de valeur doit contenir les éléments suivants 'nom_liste','','domaine_liste'
176
     *
177
     * @param Array tableau_de_valeur Le tableau de valeur a insérer dans la base avec pour clé les noms des éléments
178
     * @access  public
179
     * @return void
180
     */
181
 
182
    function enregistrerSQL ($valeur) {
389 aurelien 183
 
2 ddelon 184
        $id = SQL_obtenirNouveauId($this->_db, 'projet_liste', 'pl_id_liste') ;
185
 
186
        $requete = "insert into projet_liste set pl_id_liste=".$id ;
187
        $requete .= ", pl_nom_liste=\"".$valeur['nom_liste']."\", pl_domaine=\"".$valeur['domaine_liste']."\"".
188
                    ", pl_adresse_liste=\"".$valeur['nom_liste'].'@'.$valeur['domaine_liste'].'", pl_adresse_inscription="'.
189
                    $valeur['nom_liste']."-subscribe@".$valeur['domaine_liste'].'",pl_adresse_desinscription="'.
190
                    $valeur['nom_liste']."-unsubscribe@".$valeur['domaine_liste'].'", pl_adresse_aide="'.
191
                    $valeur['nom_liste']."-help@".$valeur['domaine_liste'].'", pl_visibilite="'.$valeur['liste_visibilite'].'"' ;
192
 
193
        $resultat = $this->_db->query ($requete) ;
194
        if (DB::isError($resultat)) {
195
            die ("Echec de la requete<br />".$resultat->getMessage()."<br />".$resultat->getDebugInfo()) ;
196
        }
197
        $this->_id = $id ;
198
        $this->_domaine = $valeur['domaine_liste'] ;
199
        $this->_nom = $valeur['nom_liste'] ;
200
        return $id;
201
    }
202
 
203
    /**
204
     *
389 aurelien 205
     *
206
     * @param string code_sql
2 ddelon 207
     * @return bool
208
     * @access public
209
     */
210
    function suppressionSQL()
211
    {
389 aurelien 212
 
2 ddelon 213
        $requete = "delete from projet_liste where pl_id_liste=".$this->_id ;
214
        $resultat = $this->_db->query ($requete) ;
215
 
216
        return true ;
217
    } // end of member function suppressionSQL
218
 
219
    /**
220
     * Vérifie si une liste existe déjà dans la table projet_liste.
221
     *
222
     * @param string adresse_liste L'adresse de la liste à tester
223
     * @param DB objetDB Un objet PEAR::DB
224
     * @return bool
225
     * @static
226
     * @access public
227
     */
228
    function verifieDoubleListe( $adresse_liste,  &$objetDB )
229
    {
230
        $requete = 'select pl_id_liste from projet_liste where pl_adresse_liste="'.$adresse_liste.'"' ;
231
        $resultat = $objetDB->query ($requete) ;
232
        if (DB::isError ($resultat)) {
233
            die ("Echec de la requete : $requete<br />".$resultat->getMessage()) ;
234
        }
235
        if ($resultat->numRows()) {
236
            return false;
237
        }
238
        return true ;
239
    } // end of member function verifieDoubleListe
240
 
241
 
242
    /**
243
     * Renvoie l'adresse de la liste
244
     *
245
     * @return string
246
     * @access public
247
     */
248
    function getAdresseEnvoi( )
249
    {
250
        return $this->_adresse ;
251
    } // end of member function getAdresseEnvoi
252
 
253
    /**
254
     * Renvoie l'adresse de la liste
255
     *
256
     * @return string
257
     * @access public
258
     */
259
    function getAdresseInscription( )
260
    {
261
        return $this->_adresse_inscription ;
262
    } // end of member function getAdresseEnvoi
263
 
264
    /**
265
     *
389 aurelien 266
     *
2 ddelon 267
     * @return string
268
     * @access public
269
     */
270
    function getAdresseResume( )
271
    {
272
        return $this->_adresse_inscription_resume ;
273
    } // end of member function getAdresseResume
274
 
275
 
276
    /**
277
     *
389 aurelien 278
     *
2 ddelon 279
     * @return string
280
     * @access public
281
     */
282
    function isPublic( )
283
    {
284
        return $this->_portee ;
285
    } // end of member function getAdresseResume
286
 
287
 
288
 
289
 
290
 
291
 
292
 
293
} // end of liste_discussion
294
?>