Subversion Repositories Applications.projet

Rev

Rev 397 | Only display areas with differences | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 397 Rev 431
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: inscription_liste.class.php,v 1.5 2006-04-19 13:50:49 alexandre_tb Exp $
22
// CVS : $Id: inscription_liste.class.php,v 1.5 2006/04/19 13:50:49 alexandre_tb Exp $
23
/**
23
/**
24
* Application projet
24
* Application projet
25
*
25
*
26
* La classe inscription_liste
26
* La classe inscription_liste
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.5 $
34
*@version       $Revision: 1.5 $
35
// +------------------------------------------------------------------------------------------------------+
35
// +------------------------------------------------------------------------------------------------------+
36
*/
36
*/
37
 
37
 
38
 
38
 
39
// +------------------------------------------------------------------------------------------------------+
39
// +------------------------------------------------------------------------------------------------------+
40
// |                                            ENTETE du PROGRAMME                                       |
40
// |                                            ENTETE du PROGRAMME                                       |
41
// +------------------------------------------------------------------------------------------------------+
41
// +------------------------------------------------------------------------------------------------------+
42
 
42
 
43
 
43
 
44
/**
44
/**
45
 * class isncription_liste
45
 * class isncription_liste
46
 *
46
 * 
47
 */
47
 */
48
class inscription_liste
48
class inscription_liste
49
{
49
{
50
     /*** Attributes: ***/
50
     /*** Attributes: ***/
51
 
51
 
52
    /**
52
    /**
53
     * Identifiant de la liste
53
     * Identifiant de la liste
54
     * @access private
54
     * @access private
55
     */
55
     */
56
    var $_id_liste;
56
    var $_id_liste;
57
    /**
57
    /**
58
     * Identifiant de l'utilisateur
58
     * Identifiant de l'utilisateur
59
     * @access private
59
     * @access private
60
     */
60
     */
61
    var $_id_utilisateur;
61
    var $_id_utilisateur;
62
    /**
62
    /**
63
     * Une ressource PEAR::DB
63
     * Une ressource PEAR::DB
64
     * @access private
64
     * @access private
65
     */
65
     */
66
    var $_db;
66
    var $_db;
67
    /**
67
    /**
68
     * Le type d'inscription indique : - 0 : pas d'email - 1 : normale - 2 : résumé
68
     * Le type d'inscription indique : - 0 : pas d'email - 1 : normale - 2 : résumé
69
     * @access private
69
     * @access private
70
     */
70
     */
71
    var $_type_inscription;
71
    var $_type_inscription;
72
 
72
 
73
    /**
73
    /**
74
     * Constructeur
74
     * Constructeur
75
     *
75
     *
76
     * @param DB objetDB Une ressource PEAR::DB
76
     * @param DB objetDB Une ressource PEAR::DB
77
     * @return void
77
     * @return void
78
     * @access public
78
     * @access public
79
     */
79
     */
80
    function inscription_liste( &$objetDB )
80
    function inscription_liste( &$objetDB )
81
    {
81
    {
82
        $this->_db = $objetDB ;
82
        $this->_db = $objetDB ;
83
    } // end of member function inscription_liste
83
    } // end of member function inscription_liste
84
 
84
 
85
    /**
85
    /**
86
     * Renvoie un tableau avec la liste des inscrit à une liste.
86
     * Renvoie un tableau avec la liste des inscrit à une liste.
87
     *
87
     *
88
     * @param int id_liste L'identifiant de la liste
88
     * @param int id_liste L'identifiant de la liste
89
     * @return Array
89
     * @return Array
90
     * @access public
90
     * @access public
91
     */
91
     */
92
    function getInscritsListe( $id_liste )
92
    function getInscritsListe( $id_liste )
93
    {
93
    {
94
 
94
        
95
    } // end of member function getInscritsListe
95
    } // end of member function getInscritsListe
96
 
96
 
97
    /**
97
    /**
98
     *
98
     * 
99
     *
99
     *
100
     * @param annire utilisateur
100
     * @param annire utilisateur 
101
     * @param liste_discussion id_liste
101
     * @param liste_discussion id_liste 
102
     * @param int type_inscription
102
     * @param int type_inscription 
103
     * @return void
103
     * @return void
104
     * @access public
104
     * @access public
105
     */
105
     */
106
    function inscrireUtilisateur( &$utilisateur,  &$liste,  $type_inscription )
106
    function inscrireUtilisateur( &$utilisateur,  &$liste,  $type_inscription )
107
    {
107
    {
108
        $requete = 'update projet_inscription_liste set '.
108
        $requete = 'update projet_inscription_liste set '.
109
                    'pil_id_liste='.$this->_db->escapeSimple($liste->getId()).', pil_id_statut='.$this->_db->escapeSimple($type_inscription).
109
                    'pil_id_liste='.$liste->getId().', pil_id_statut='.$this->_db->escapeSimple($type_inscription).' where pil_id_utilisateur='.$this->_db->escapeSimple($utilisateur->getInfo('identifiant')) ; 
110
        			' where pil_id_utilisateur='.$this->_db->escapeSimple($utilisateur->getInfo('identifiant')) ;
-
 
111
        $resultat = $this->_db->query ($requete) ;
110
        $resultat = $this->_db->query ($requete) ;
112
        if (DB::isError ($resultat)) {
111
        if (DB::isError ($resultat)) {
113
            echo ('Echec de la requete : '.$requete.'<br />'.$resultat->getMessage()) ;
112
            echo ('Echec de la requete : '.$requete.'<br />'.$resultat->getMessage()) ;
114
        }
113
        }
115
        if ($this->_db->affectedRows() == 0) {
114
        if ($this->_db->affectedRows() == 0) {
116
            $requete = 'insert into projet_inscription_liste set pil_id_utilisateur='.$this->_db->escapeSimple($utilisateur->getInfo('identifiant')).
115
            $requete = 'insert into projet_inscription_liste set pil_id_utilisateur='.$this->_db->escapeSimple($utilisateur->getInfo('identifiant')).
117
                        ', pil_id_liste='.$this->_db->escapeSimple($liste->getId()).', pil_id_statut='.$this->_db->escapeSimple($type_inscription) ;
116
                        ', pil_id_liste='.$this->_db->escapeSimple($liste->getId()).', pil_id_statut='.$this->_db->escapeSimple($type_inscription) ; 
118
            $resultat = $this->_db->query ($requete) ;
117
            $resultat = $this->_db->query ($requete) ;
119
            if (DB::isError ($resultat)) {
118
            if (DB::isError ($resultat)) {
120
                echo ('Echec de la requete : '.$requete.'<br />'.$resultat->getMessage()) ;
119
                echo ('Echec de la requete : '.$requete.'<br />'.$resultat->getMessage()) ;
121
            }
120
            }
122
        }
121
        }
123
 
122
        
124
        // Ajout dans la liste des commandes au serveur
123
        // Ajout dans la liste des commandes au serveur
125
        // On inscrit le créateur de la liste
124
        // On inscrit le créateur de la liste
126
        $resultat_ajout_utilisateur = file_get_contents (PROJET_SERVEUR_VPOPMAIL.'/ajout_abonne.php?domaine='.
125
        $resultat_ajout_utilisateur = file_get_contents (PROJET_SERVEUR_VPOPMAIL.'/ajout_abonne.php?domaine='.
127
                  $liste->getDomaine().'&liste='.$liste->getNom().'&mail='.$utilisateur->getInfo('mail')) ;
126
                  $liste->getDomaine().'&liste='.$liste->getNom().'&mail='.$utilisateur->getInfo('mail')) ;
128
 
127
          
129
    } // end of member function inscrireUtilisateur
128
    } // end of member function inscrireUtilisateur
130
 
129
 
131
    /**
130
    /**
132
     *
131
     * 
133
     *
132
     *
134
     * @param int id_utilisateur
133
     * @param int id_utilisateur 
135
     * @param int id_liste
134
     * @param int id_liste 
136
     * @return void
135
     * @return void
137
     * @access public
136
     * @access public
138
     */
137
     */
139
    function desinscrireUtilisateur( &$utilisateur, &$liste )
138
    function desinscrireUtilisateur( &$utilisateur, &$liste )
140
    {
139
    {
141
        $requete = 'delete from projet_inscription_liste where pil_id_utilisateur='.$this->_db->escapeSimple($utilisateur->getInfo('identifiant')).
140
        $requete = 'delete from projet_inscription_liste where pil_id_utilisateur='.$this->_db->escapeSimple($utilisateur->getInfo('identifiant')).' and pil_id_liste='.$this->_db->escapeSimple($liste->getId()) ;
142
        			' and pil_id_liste='.$this->_db->escapeSimple($liste->getId()) ;
-
 
143
        $resultat = $this->_db->query ($requete) ;
141
        $resultat = $this->_db->query ($requete) ;
144
        $resultat_suppression_utilisateur = file_get_contents (PROJET_SERVEUR_VPOPMAIL.'/suppression_abonne.php?domaine='.
142
        $resultat_suppression_utilisateur = file_get_contents (PROJET_SERVEUR_VPOPMAIL.'/suppression_abonne.php?domaine='.
145
                  $liste->getDomaine().'&liste='.$liste->getNom().'&mail='.$utilisateur->getInfo('mail')) ;
143
                  $liste->getDomaine().'&liste='.$liste->getNom().'&mail='.$utilisateur->getInfo('mail')) ;
146
 
144
 
147
    } // end of member function desinscrireUtilisateur
145
    } // end of member function desinscrireUtilisateur
148
 
146
 
149
    /**
147
    /**
150
     *
148
     * 
151
     *
149
     *
152
     * @param int id_liste
150
     * @param int id_liste 
153
     * @param int id_utilisateur
151
     * @param int id_utilisateur 
154
     * @param int type_inscription
152
     * @param int type_inscription 
155
     * @return void
153
     * @return void
156
     * @access public
154
     * @access public
157
     */
155
     */
158
    function modifierTypeInscription( $liste,  $utilisateur,  $type_inscription )
156
    function modifierTypeInscription( $liste,  $utilisateur,  $type_inscription )
159
    {
157
    {
160
 
158
 
161
        // envoie d'une demande d'inscription par email à la liste
159
        // envoie d'une demande d'inscription par email à la liste
162
        //include_once 'Mail.php' ;
160
        //include_once 'Mail.php' ;
163
 
161
        
164
        switch ($type_inscription) {
162
        switch ($type_inscription) {
165
            case 0 :
163
            case 0 :
166
 
164
 
167
            // Ajout du modérateur en tant qu'utilisateur
165
            // Ajout du modérateur en tant qu'utilisateur
168
            $resultat_suppression_utilisateur = file_get_contents (PROJET_SERVEUR_VPOPMAIL.'/suppression_abonne.php?domaine='.
166
            $resultat_suppression_utilisateur = file_get_contents (PROJET_SERVEUR_VPOPMAIL.'/suppression_abonne.php?domaine='.
169
                                    $liste->getDomaine().'&liste='.$liste->getNom().'&mail='.$utilisateur->getInfo('mail')) ;
167
                                    $liste->getDomaine().'&liste='.$liste->getNom().'&mail='.$utilisateur->getInfo('mail')) ;
170
 
168
 
171
            break ;
169
            break ;
172
            case 1 :
170
            case 1 :
173
 
171
 
174
            break ;
172
            break ;
175
            case 2 :
173
            case 2 : 
176
 
174
 
177
                // Ajout d'un utilisateur
175
                // Ajout d'un utilisateur
178
                $resultat_ajout_utilisateur = file_get_contents (PROJET_SERVEUR_VPOPMAIL.'/ajout_abonne.php?domaine='.
176
                $resultat_ajout_utilisateur = file_get_contents (PROJET_SERVEUR_VPOPMAIL.'/ajout_abonne.php?domaine='.
179
                                    $liste->getDomaine().'&liste='.$liste->getNom().'&mail='.$utilisateur->getInfo('mail')) ;
177
                                    $liste->getDomaine().'&liste='.$liste->getNom().'&mail='.$utilisateur->getInfo('mail')) ;
180
            break ;
178
            break ;
181
        }
179
        }
182
    } // end of member function modifierTypeInscription
180
    } // end of member function modifierTypeInscription
183
 
181
 
184
    /**
182
    /**
185
     * Renvoie la liste des statuts d'un utilisateur
183
     * Renvoie la liste des statuts d'un utilisateur
186
     *
184
     *
187
     * @param int id_utilisateur
185
     * @param int id_utilisateur 
188
     * @return Array
186
     * @return Array
189
     * @access public
187
     * @access public
190
     */
188
     */
191
    function getStatutsInscrit( $id_utilisateur )
189
    function getStatutsInscrit( $id_utilisateur )
192
    {
190
    {
193
 
191
        
194
        $requete = 'select pil_id_liste, pil_id_statut from projet_inscription_liste where pil_id_utilisateur='.$this->_db->escapeSimple($id_utilisateur) ;
192
        $requete = 'select pil_id_liste, pil_id_statut from projet_inscription_liste where pil_id_utilisateur='.$this->_db->escapeSimple($id_utilisateur) ;
195
        $resultat = $this->_db->query ($requete) ;echo $requete;
193
        $resultat = $this->_db->query ($requete) ;echo $requete;
196
        if (DB::isError ($resultat)) {
194
        if (DB::isError ($resultat)) {
197
            die ('Echec de la requete : '.$requete.'<br />'.$resultat->getMessage()) ;
195
            die ('Echec de la requete : '.$requete.'<br />'.$resultat->getMessage()) ;
198
        }
196
        }
199
        $tableau_resultat = array() ;
197
        $tableau_resultat = array() ;
200
        while ($ligne = $resultat->fetchRow(DB_FETCHMODE_OBJECT)) {
198
        while ($ligne = $resultat->fetchRow(DB_FETCHMODE_OBJECT)) {
201
            $tableau_resultat[$ligne->pil_id_liste] = $ligne->pil_id_statut ;
199
            $tableau_resultat[$ligne->pil_id_liste] = $ligne->pil_id_statut ;
202
        }
200
        }
203
        return $tableau_resultat ;
201
        return $tableau_resultat ;
204
 
202
        
205
 
203
 
206
    } // end of member function getStatutsInscrit
204
    } // end of member function getStatutsInscrit
207
 
205
 
208
    /**
206
    /**
209
     * Renvoie le statut d'un inscrit à une liste
207
     * Renvoie le statut d'un inscrit à une liste
210
     *
208
     *
211
     * @param int id_liste
209
     * @param int id_liste 
212
     * @param int id_utilisateur
210
     * @param int id_utilisateur 
213
     * @return int
211
     * @return int
214
     * @access public
212
     * @access public
215
     */
213
     */
216
    function getStatutInscrit( $id_liste,  &$auth )
214
    function getStatutInscrit( $id_liste,  &$auth )
217
    {
215
    {
218
 
216
       
219
        // Récupération de la liste des listes !!
217
        // Récupération de la liste des listes !!
220
        $requete = 'select pl_nom_liste, pl_domaine from projet_liste where pl_id_liste='.$this->_db->escapeSimple($id_liste) ;
218
        $requete = 'select pl_nom_liste, pl_domaine from projet_liste where pl_id_liste='.$this->_db->escapeSimple($id_liste) ;
221
        $resultat = $this->_db->query ($requete) ;
219
        $resultat = $this->_db->query ($requete) ;
222
        if (DB::isError ($resultat)) {
220
        if (DB::isError ($resultat)) {
223
            die ('Echec de la requete : '.$requete.'<br />'.$resultat->getMessage()) ;
221
            die ('Echec de la requete : '.$requete.'<br />'.$resultat->getMessage()) ;
224
        }
222
        }
225
        $ligne = $resultat->fetchRow(DB_FETCHMODE_OBJECT) ;
223
        $ligne = $resultat->fetchRow(DB_FETCHMODE_OBJECT) ;
226
        $xml = file_get_contents(PROJET_SERVEUR_VPOPMAIL.'/liste_abonnes.php?domaine='.
224
        $xml = file_get_contents(PROJET_SERVEUR_VPOPMAIL.'/liste_abonnes.php?domaine='.
227
                            $ligne->pl_domaine.'&liste='.$ligne->pl_nom_liste) ;
225
                            $ligne->pl_domaine.'&liste='.$ligne->pl_nom_liste) ;
228
        $tableau_mail = array() ;
226
        $tableau_mail = array() ;
229
        $tableau_ligne = explode ('<email>', $xml) ;
227
        $tableau_ligne = explode ('<email>', $xml) ;
230
        foreach ($tableau_ligne as $ligne) array_push ($tableau_mail, strip_tags($ligne)) ;
228
        foreach ($tableau_ligne as $ligne) array_push ($tableau_mail, strip_tags($ligne)) ;
231
        array_shift($tableau_mail) ;
229
        array_shift($tableau_mail) ;
232
        if (in_array($auth->getUsername(), $tableau_mail)) {
230
        if (in_array($auth->getUsername(), $tableau_mail)) {
233
            return 2;       // Inscrit est le statut  2
231
            return 2;       // Inscrit est le statut  2
234
        }
232
        }
235
        return 0 ;
233
        return 0 ;
236
    } // end of member function getStatutInscrit
234
    } // end of member function getStatutInscrit
237
} // end of isncription_liste
235
} // end of isncription_liste
238
?>
236
?>