Subversion Repositories Applications.papyrus

Rev

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

Rev Author Line No. Line
1163 alexandre_ 1
<?php
2
 
3
//vim: set expandtab tabstop=4 shiftwidth=4:
4
// +-----------------------------------------------------------------------------------------------+
5
// | PHP version 4.0                                                                               |
6
// +-----------------------------------------------------------------------------------------------+
7
// | Copyright (c) 1997, 1998, 1999, 2000, 2001 The PHP Group                                      |
8
// +-----------------------------------------------------------------------------------------------+
9
// | This source file is subject to version 2.0 of the PHP license,                                |
10
// | that is bundled with this package in the file LICENSE, and is                                 |
11
// | available at through the world-wide-web at                                                    |
12
// | http://www.php.net/license/2_02.txt.                                                          |
13
// | If you did not receive a copy of the PHP license and are unable to                            |
14
// | obtain it through the world-wide-web, please send a note to                                   |
15
// | license@php.net so we can mail you a copy immediately.                                        |
16
// +-----------------------------------------------------------------------------------------------+
17
/**
18
*
19
*Fichier des fonctions du bottin
20
*
21
*@package bottin
22
//Auteur original :
23
*@author                Alexandre GRANIER <alexandre@tela-botanica.org.org>
24
//Autres auteurs :
25
*@copyright         Outils-reseaux 2006-2040
26
*@version           05 avril 2006
27
// +-----------------------------------------------------------------------------------------------+
28
//
1421 alexandre_ 29
// $Id: bottin.class.php,v 1.2 2007-05-25 14:31:24 alexandre_tb Exp $
1163 alexandre_ 30
// FICHIER : $RCSfile: bottin.class.php,v $
31
// AUTEUR    : $Author: alexandre_tb $
1421 alexandre_ 32
// VERSION : $Revision: 1.2 $
33
// DATE        : $Date: 2007-05-25 14:31:24 $
1163 alexandre_ 34
*/
35
 
36
 
37
// +------------------------------------------------------------------------------------------------------+
38
// |                                            ENTETE du PROGRAMME                                       |
39
// +------------------------------------------------------------------------------------------------------+
40
 
41
require_once PAP_CHEMIN_API_PEAR.'PEAR.php';
42
 
43
 
44
class lettresAlphabet extends PEAR {
45
 
46
	var $url;
47
 
48
	var $variable_lettre ;
49
 
50
	/**
51
     * Constructeur
52
     *
53
     * @param Net_URL un objet Net_URL
54
     * @param string $variable_lettre le nom de la variable $_GET qui sera place dans l URL
55
     * @return void
56
     * @access public
57
     */
58
	function lettresAlphabet($url, $variable_lettre = 'lettre') {
59
		$this->url = $url ;
60
		$this->variable_lettre = $variable_lettre ;
61
	}
62
 
63
	/**
64
	 * Renvoie le code HTML d une liste avec les lettres
65
	 *
66
	 * @return string HTML
67
	 * @access public
68
	 */
69
	function toHMTL() {
70
 
71
		$res = '<ul class="liste_lettre">'."\n" ;
72
		for ($i = 65 ; $i <91 ; $i++) {
73
			$this->url->addQueryString($this->variable_lettre, chr($i)) ;
74
			$res .= "\t".'<li class="liste_lettre"><a class="lien_alphabet" '.
75
					'href="'.
76
					$this->url->getURL().'">';
77
			$res .= chr($i) ;
78
			$res .= '</a></li>'."\n";
79
		}
80
		$res .= '</ul>';
81
		return $res ;
82
	}
83
}
84
 
1421 alexandre_ 85
 
86
class inscription extends PEAR {
87
 
88
	/**
89
     * Constructeur
90
     *
91
     *
92
     * @return void
93
     * @access public
94
     */
95
	function inscription() {
96
 
97
	}
98
 
99
	/**
100
	 * Renvoie le code HTML d une liste avec les lettres
101
	 *
102
	 * @global  Un pointeur vers une connexion de base de donnee $GLOBALS['ins_url']
103
	 * @return array ['ic_param'] les parametres tels que dans la table inscription_config
104
	 * @access public
105
	 */
106
	function getConfig() {
107
		// Recuperation de la configuration
108
	    $requete = 'select * from inscription_configuration';
109
	    $resultat = $GLOBALS['ins_db']->query($requete);
110
	    if (DB::isError($resultat)) return "Echec de la requete : $requete<br />".$resultat->getMessage() ;
111
		    if ($resultat->numRows() != 0) {
112
		    $ligne = $resultat->fetchRow(DB_FETCHMODE_ASSOC);
113
		    return $ligne;
114
	    } else {
115
	    	return $this->raiseError('La table inscription_configuration est vide...');
116
	    }
117
	}
118
 
119
	/**
120
	 * Renvoi un tableau avec les informations de inscription_attente
121
	 *
122
	 * @global  Un pointeur vers une connexion de base de donnee $GLOBALS['ins_db']
123
	 * @return array Un tableau ['id'], ['nom'], ['prenom'] ... ou la chaine vide si il n'y a personne en attente
124
	 * @access public
125
	 */
126
	function getInscritEnAttenteModeration() {
127
		$requete = 'select * from inscription_attente';
128
		$resultat = $GLOBALS['ins_db']->query($requete);
129
 
130
		$tableau_inscrit = array();
131
		if (DB::isError($resultat)) return "Echec de la requete : $requete<br />".$resultat->getMessage() ;
132
		    if ($resultat->numRows() != 0) {
133
			    while ($ligne = $resultat->fetchRow(DB_FETCHMODE_OBJECT)) {
134
				    $donnees = unserialize (stripslashes($ligne->ia_donnees)) ;
135
				    array_push ($tableau_inscrit, array_merge (array('id' => $ligne->ia_id_inscription, 'date' => $ligne->ia_date), $donnees));
136
			    }
137
			    return $tableau_inscrit;
138
		    } else {
139
	    		return '';
140
	    	}
141
	}
142
 
143
	/** Renvoi le tableau des inscrits en attente
144
	 *
145
	 * @global	$GLOBALS['ins_url'] un objet Net_URL avec l url courante
146
	 * @param array Un tableau de tableau d inscrit avec ['id'],['nom'],['prenom'],['email'],['ville'],['date']
147
	 * @return string Un tableau HTML
148
	 */
149
 
150
	 function getTableauEnAttente($tableau) {
151
	 	$html = '';
152
 
153
	 	$table = new HTML_Table();
154
	 	$table->addRow(array (INS_NOM, INS_EMAIL, INS_VILLE, INS_DATE_INS, INS_ACTION), '', 'TH');
155
	 	$GLOBALS['ins_url']->addQueryString(ANN_NOM_VARIABLE_ACTION, ANN_ACTION_VALIDER_INSCRIPTION);
156
	 	$action = '<a href="'.$GLOBALS['ins_url']->getURL().'">'.'</a>';
157
	 	foreach ($tableau as $demandeur) {
158
	 		$table->addRow(array($demandeur['nom'].' '.$demandeur['prenom'], $demandeur['email'], $demandeur['ville'], $demandeur['date']));
159
	 	}
160
	 	return $table->toHTML();
161
	 }
162
 
163
	/**
164
	 * Renvoie un tableau avec les moderateurs de l inscription
165
	 * ceux du champs ic_mail_moderateur
166
	 *
167
	 * @return array Un tableau de mail de moderateur
168
	 */
169
	function getModerateurs() {
170
 
171
	}
172
	/**
173
	 * Insere une demande d inscription dans la table inscription_attente et
174
	 * envoi un mail aux moderateurs
175
	 *
176
	 * @param	string	Un identifiant de session, soit genere aleatoirement soit venu de la tablea inscription_demande
177
	 * @global array la globale $GLOBALS['ins_config']
178
	 * @global mixed un pointeur vers une base de donnees $GLOBALS['ins_db']
179
	 * @return string Un message a renvoye a l utilisateur indiquant que sa demande a ete prise en compte
180
	 */
181
	function demandeInscriptionModere($valeurs) {
182
	// On stocke les informations dans un variable de session
183
	    // On coupe l'identifiant de session pour ne prendre que les 8 premiers caractères
184
	    // afin d'éviter d'obtenir une url trop longue
185
	    $chaine = substr (session_id(), 0, 8) ;
186
	    $requete_verif = 'select * from inscription_attente where ia_id_inscription="'.$chaine.'"' ;
187
	    $resultat_verif = $GLOBALS['ins_db']->query ($requete_verif) ;
188
	    if ($resultat_verif->numRows() != 0) {
189
	        $requete_suppression = 'delete from inscription_attente where ia_id_inscription="'.$chaine.'"' ;
190
	        $GLOBALS['ins_db']->query ($requete_suppression) ;
191
	    }
192
	    $requete = 'insert into inscription_attente set ia_id_inscription="'.$chaine.'", ia_donnees="'.
193
	                addslashes(serialize($valeurs)).'", ia_date=NOW()' ;
194
	    $resultat = $GLOBALS['ins_db']->query ($requete) ;
195
	    if (DB::isError ($resultat)) {
196
	        echo ("Echec de la requete : $requete<br />".$resultat->getMessage()) ;
197
	    }
198
	    // On envoie un email aux moderateurs
199
 
200
	    require_once PAP_CHEMIN_RACINE.'api/pear/HTML/Template/IT.php';
201
	    $tpl = new HTML_Template_IT() ;
202
	    // Le gabarit du mail est dans un template
203
	    // template 3
204
	    $url = $GLOBALS['ins_url']->getURL();
205
	    $requete = 'select it_template from inscription_template where it_id_template=3'.
206
	    			' and it_i18n like "%'.INS_LANGUE_DEFAUT.'"' ;
207
 
208
	    if (!$tpl -> setTemplate($GLOBALS['ins_db']->getOne ($requete))) {
209
	    	echo 'erreur' ;
210
	    }
211
		$tpl->setVariable('URL_INSCRIPTION', $url) ;
212
		$mails_moderateur = split ('/\n/', $GLOBALS['ins_config']['ic_mail_moderateur']);
213
		foreach ($mails_moderateur as $mail) {
214
			mail ($mail, INS_MODERATION_SUJET, INS_NOUVELLE_INSCRIPTION_A_MODERE) ;
215
		}
216
	    return INS_MESSAGE_EN_ATTENTE ;
217
	}
218
}
1163 alexandre_ 219
//-- Fin du code source    ------------------------------------------------------------
220
/*
221
* $Log: not supported by cvs2svn $
1421 alexandre_ 222
* Revision 1.1  2006/12/13 13:26:52  alexandre_tb
223
* version initiale
224
*
1163 alexandre_ 225
*/
226
?>