Subversion Repositories Applications.papyrus

Rev

Rev 1289 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 1289 Rev 1292
Line 6... Line 6...
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 Lesser General Public                                           |
9
// | modify it under the terms of the GNU Lesser 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 veRrsion.                                   |
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
// | Lesser General Public License for more details.                                                      |
16
// | Lesser General Public License for more details.                                                      |
17
// |                                                                                                      |
17
// |                                                                                                      |
18
// | You should have received a copy of the GNU Lesser General Public                                     |
18
// | You should have received a copy of the GNU Lesser 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.fonct.php,v 1.25 2007-04-04 15:15:22 neiluj Exp $
22
// CVS : $Id: inscription.fonct.php,v 1.26 2007-04-06 08:35:46 neiluj Exp $
23
// CVS : $Id: inscription.fonct.php,v 1.25 2007-04-04 15:15:22 neiluj Exp $
23
// CVS : $Id: inscription.fonct.php,v 1.26 2007-04-06 08:35:46 neiluj Exp $
24
/**
24
/**
25
* Fonctions du module inscription
25
* Fonctions du module inscription
26
*
26
*
27
* Fonctions du module inscription
27
* Fonctions du module inscription
28
*
28
*
29
*@package inscription
29
*@package inscription
30
//Auteur original :
30
//Auteur original :
31
*@author        Alexandre Granier <alexandre@tela-botanica.org>
31
*@author        Alexandre Granier <alexandre@tela-botanica.org>
32
//Autres auteurs :
32
//Autres auteurs :
33
*@author        Florian Schmitt <florian@ecole-et-nature.org>
33
*@author        Aucun
34
*@copyright     Tela-Botanica 2000-2004
34
*@copyright     Tela-Botanica 2000-2004
35
*@version       $Revision: 1.25 $ $Date: 2007-04-04 15:15:22 $
35
*@version       $Revision: 1.26 $ $Date: 2007-04-06 08:35:46 $
36
*@version       $Revision: 1.25 $ $Date: 2007-04-04 15:15:22 $
36
*@version       $Revision: 1.26 $ $Date: 2007-04-06 08:35:46 $
37
// +------------------------------------------------------------------------------------------------------+
37
// +------------------------------------------------------------------------------------------------------+
38
*/
38
*/
Line 39... Line 39...
39
 
39
 
40
// +------------------------------------------------------------------------------------------------------+
40
// +------------------------------------------------------------------------------------------------------+
41
// |                                            ENTETE du PROGRAMME                                       |
41
// |                                            ENTETE du PROGRAMME                                       |
Line 42... Line 42...
42
// +------------------------------------------------------------------------------------------------------+
42
// +------------------------------------------------------------------------------------------------------+
43
 
-
 
44
include_once 'inscription.fonct.wiki.php' ;
43
 
-
 
44
include_once 'inscription.fonct.wiki.php' ;
-
 
45
if (INS_UTILISE_SPIP) include_once 'inscription.fonct.spip.php' ;
-
 
46
require_once PAP_CHEMIN_RACINE.'api/pear/HTML/QuickForm.php' ;
Line 45... Line 47...
45
include_once 'inscription.class.php' ;
47
require_once PAP_CHEMIN_RACINE.'api/pear/HTML/QuickForm/checkbox.php' ;
46
if (INS_UTILISE_SPIP) include_once 'inscription.fonct.spip.php' ;
48
require_once PAP_CHEMIN_RACINE.'api/pear/HTML/QuickForm/password.php' ;
47
 
49
 
Line 74... Line 76...
74
        echo ("Echec de la requete : $requete<br />".$resultat->getMessage()) ;
76
        echo ("Echec de la requete : $requete<br />".$resultat->getMessage()) ;
75
    }
77
    }
76
    // On envoie un email de confirmation pour l'utilisateur
78
    // On envoie un email de confirmation pour l'utilisateur
77
    $GLOBALS['ins_url']->addQueryString ('id', $chaine) ;
79
    $GLOBALS['ins_url']->addQueryString ('id', $chaine) ;
Line 78... Line -...
78
    
-
 
-
 
80
    
79
    
81
    $corps = INS_MESSAGE_DEBUT_MAIL_INSCRIPTION ;
80
    if (INS_UTILISE_REECRITURE_URL) {
82
    if (INS_UTILISE_REECRITURE_URL) {
81
        $url = 'http://'.$GLOBALS['ins_url']->host.'/'.INS_URL_PREFIXE.$chaine ;
83
        $corps .= 'http://'.$GLOBALS['ins_url']->host.'/'.INS_URL_PREFIXE.$chaine ;
82
    } else {
84
    } else {
83
        $url = str_replace ('&amp;', '&', $GLOBALS['ins_url']->getURL()) ;
85
        $corps .= str_replace ('&amp;', '&', $GLOBALS['ins_url']->getURL()) ;
84
    }
-
 
85
    
-
 
86
    require_once PAP_CHEMIN_RACINE.'api/pear/HTML/Template/IT.php';
86
    }
87
    $tpl = new HTML_Template_IT() ;
-
 
88
    // Le gabarit du mail est dans un template
-
 
89
    // template 2
-
 
90
    $requete = 'select it_template from inscription_template where it_id_template=2'.
-
 
91
    			' and it_i18n like "%'.INS_LANGUE_DEFAUT.'"' ;
-
 
92
    
-
 
93
    if (!$tpl -> setTemplate($GLOBALS['ins_db']->getOne ($requete))) {
-
 
94
    	echo 'erreur' ;	
-
 
95
    }
-
 
96
	$tpl->setVariable('URL_INSCRIPTION', $url) ;
-
 
97
 
87
    $corps .= INS_MESSAGE_FIN_MAIL_INSCRIPTION ;
98
    mail ($GLOBALS['email'], 'Inscription', $tpl->get(), 'From: '.INS_MAIL_ADMIN_APRES_INSCRIPTION) ;
88
    mail ($GLOBALS['email'], 'Inscription', $corps, 'From: '.INS_MAIL_ADMIN_APRES_INSCRIPTION) ;
Line 99... Line 89...
99
}
89
}
100
 
90
 
101
/**
91
/**
102
 *
92
 *
103
 * @param   array   les valeurs renvoyés par le formulaire
93
 * @param   array   les valeurs renvoyés par le formulaire
104
 * @return
-
 
-
 
94
 * @return
105
 */
95
 */
106
if (!function_exists('inscription_validee')) {
96
 
107
	function inscription_validee($valeurs) {
97
function inscription_validee($valeurs) {
108
		insertion($valeurs) ;
98
	insertion($valeurs) ;
109
		$GLOBALS['AUTH']->username = $valeurs['email'] ;
99
	$GLOBALS['AUTH']->username = $valeurs['email'] ;
Line 113... Line 103...
113
		// inscription à la lettre d'information
103
	// inscription à la lettre d'information
114
		if (INS_CHAMPS_LETTRE != '' && isset ($valeurs['lettre'])) {
104
	if (INS_CHAMPS_LETTRE != '' && isset ($valeurs['lettre'])) {
115
			inscription_lettre(INS_MAIL_INSCRIPTION_LISTE) ;
105
		inscription_lettre(INS_MAIL_INSCRIPTION_LISTE) ;
116
		}
106
	}
117
	}
107
}
118
}
108
 
119
/**
109
/**
120
*   Renvoie l'accueil de l'inscription
110
*   Réalise l'insertion dans la base de donnée
121
*
111
*
-
 
112
*   @param  array   un tableau de valeur avec en clé les noms des champs du formulaire
122
*   @return string	HTML
113
*   @return void
123
*/
114
*/
124
function AUTH_formulaire_login() {   
115
function AUTH_formulaire_login($msg = '') {
125
    require_once PAP_CHEMIN_RACINE.'api/pear/HTML/Template/IT.php';
116
    //--------------------------------------------------------------------------
126
    $tpl = new HTML_Template_IT() ;
117
    // Le formulaire
127
    // Le formulaire pour se logguer est dans un template
118
    //--------------------------------------------------------------------------
128
    // template 1
119
    $res = '';
129
    $requete = 'SELECT it_template FROM inscription_template WHERE it_id_template=1'.
-
 
130
    			' AND it_i18n LIKE "%'.INS_LANGUE_DEFAUT.'"' ;
120
    if ($msg!='') {$res .= $msg.'<br /><br />';}
131
    
-
 
132
    if (!$tpl -> setTemplate($GLOBALS['ins_db']->getOne ($requete))) {
121
    $res .= "\n".'<div>'.INS_LAIUS_INSCRIPTION_2.'</div><br />'."\n" ;
133
    	echo 'erreur' ;	
-
 
134
    }
-
 
135
	$tpl->setVariable('URL_INSCRIPTION', $GLOBALS['ins_url']->getURL());
122
    $res .= '<a href="'.$GLOBALS['ins_url']->getURL().'&amp;action=inscription&amp;form_structure=0" style="font-size:16px;font-weight:bold;color:#EABE07;">'.'accède au formulaire d\'inscription'.'</a>'."\n" ;
136
    return $tpl->get() ;
-
 
Line -... Line 123...
-
 
123
 
137
    
124
    return $res;
Line 138... Line 125...
138
}
125
}
139
 
126
 
Line 155... Line 142...
155
    return $res;
142
    return $res;
156
}
143
}
Line 157... Line 144...
157
 
144
 
158
 
145
 
159
function insertion($valeur) {
146
function insertion($valeur) {
160
    // ===========  Insertion dans l'annuaire ===================
-
 
161
	// Génération du nom wikini à partir du nom et du prénom
-
 
162
    if (INS_UTILISE_WIKINI && INS_NOM_WIKINI_GENERE) {
-
 
163
        $valeur['nom_wiki'] = genere_nom_wiki ($valeur['nom'], isset ($valeur['prenom']) ?  $valeur['prenom'] : '') ;
147
        // ===========  Insertion dans l'annuaire gen_annuaire ===================
164
    } else {
148
		// Génération du nom wikini à partir du nom et du prénom
165
    	if (!INS_NOM_WIKINI_GENERE)	{
-
 
166
    		$valeur['nom_wiki'] = $valeur['nomwiki'];	
149
	    if (INS_UTILISE_WIKINI) {
167
    	}
150
	        $valeur['nom_wiki'] = genere_nom_wiki ($valeur['nom']) ;
168
    }
151
	    }
169
    $id_utilisateur = nextId(INS_ANNUAIRE, INS_CHAMPS_ID, $GLOBALS['ins_db']) ;
152
        $id_utilisateur = nextId(INS_ANNUAIRE, INS_CHAMPS_ID, $GLOBALS['ins_db']) ;
170
    $requete = 'INSERT INTO '.INS_ANNUAIRE.' SET '.
153
        $requete = 'insert into '.INS_ANNUAIRE.' set '.
Line 171... Line 154...
171
                INS_CHAMPS_ID.'="'.$id_utilisateur.'",'.
154
                    INS_CHAMPS_ID.'="'.$id_utilisateur.'",'.
172
                requete_annuaire($valeur) ;
155
                    requete_annuaire($valeur) ;
Line 179... Line 162...
179
    // ================ Insertion dans SPIP =========================================
162
        // ================ Insertion dans SPIP =========================================
180
    if (INS_UTILISE_SPIP) {
163
        if (INS_UTILISE_SPIP) {
181
        inscription_spip($id_utilisateur, $valeur) ;
164
            inscription_spip($id_utilisateur, $valeur) ;
182
    }
165
        }
183
	if (INS_UTILISE_WIKINI) inscription_interwikini_users('', $valeur) ;
166
	if (INS_UTILISE_WIKINI) inscription_interwikini_users('', $valeur) ;
-
 
167
	// TODO Créer un fichier bazar/bazar.inscription.inc.php et y mettre le code qui suit
-
 
168
	// Vérifier tous les noms des répertoires du répertoire client et s'il existe
-
 
169
	// un fichier nom/nom/inscription.inc.php l'inclure
-
 
170
	//inscription dans Bazar
-
 
171
	$requete = 'INSERT INTO bazar_droits VALUES ('.$id_utilisateur.',1,1),('.$id_utilisateur.',2,1),('.$id_utilisateur.',3,1),('.$id_utilisateur.',4,1),('.$id_utilisateur.',5,1),('.$id_utilisateur.',6,1),('.$id_utilisateur.',7,1),('.$id_utilisateur.',8,1)';
-
 
172
	$resultat = $GLOBALS['ins_db']->query($requete);
-
 
173
	if (DB::isError($resultat)) {
-
 
174
		die($resultat->getMessage().$resultat->getDebugInfo()) ;
-
 
175
	}
184
	return $id_utilisateur ;
176
	unset($resultat) ;
-
 
177
	
-
 
178
	
185
}
179
}
Line 186... Line 180...
186
 
180
 
187
 
181
 
Line 195... Line 189...
195
    // ====================Mise à jour dans l'annuaire gen_annuaire ====================
189
    // ====================Mise à jour dans l'annuaire gen_annuaire ====================
196
	if ($id == '') {
190
	if ($id == '') {
197
		$id = $GLOBALS['AUTH']->getAuthData(INS_CHAMPS_ID);
191
		$id = $GLOBALS['AUTH']->getAuthData(INS_CHAMPS_ID);
198
	}
192
	}
199
    $requete = 'update '.INS_ANNUAIRE.' set '.
193
    $requete = 'update '.INS_ANNUAIRE.' set '.
200
                requete_annuaire ($valeur).
194
                requete_annuaire ($valeur, $maj = TRUE).
201
                'where '.INS_CHAMPS_ID.'="'.$id.'"';
195
                ' where '.INS_CHAMPS_ID.'="'.$id.'"';
202
    $resultat = $GLOBALS['ins_db']->query ($requete) ;
196
    $resultat = $GLOBALS['ins_db']->query ($requete) ; 
203
    if (DB::isError($resultat)) {
197
    if (DB::isError($resultat)) {
204
        die ($resultat->getMessage().$resultat->getDebugInfo()) ;
198
        die ($resultat->getMessage().$resultat->getDebugInfo()) ;
205
    }
199
    }
Line 214... Line 208...
214
/** requete_annuaire () - Renvoie une chaine contenant les champs de l'annuaire avec leur valeur suite à le fonction process de QuickForm
208
/** requete_annuaire () - Renvoie une chaine contenant les champs de l'annuaire avec leur valeur suite à le fonction process de QuickForm
215
*
209
*
216
* @return   string  une requete du type champs="valeur",...
210
* @return   string  une requete du type champs="valeur",...
217
*/
211
*/
Line 218... Line 212...
218
 
212
 
219
function requete_annuaire($valeur) {
213
function requete_annuaire($valeur, $maj = FALSE) {
220
    $req = INS_CHAMPS_NOM.'="'.addslashes($valeur['nom']).'", ';
214
    $req = INS_CHAMPS_NOM.'="'.addslashes($valeur['nom']).'", ';
221
    if (isset($valeur['est_structure']) && $valeur['est_structure'] == 0) 
215
    if (INS_UTILISE_WIKINI) {
-
 
216
    	$req .= INS_CHAMPS_NOM_WIKINI.'="'.genere_nom_wiki($valeur['nom']).'", ' ;
-
 
217
    }
-
 
218
    
-
 
219
    if($maj)
-
 
220
    {
-
 
221
    	$id = $GLOBALS['AUTH']->getAuthData(INS_CHAMPS_ID);
222
    			$req .= INS_CHAMPS_PRENOM.'="'.addslashes($valeur['prenom']).'", ';
222
    	
-
 
223
    	if(!$id) die("erreur"); // ne devrai jamais arriver --julien
223
    // Initialisation de variable pour éviter des notices
224
    	
-
 
225
    	$requete = 'SELECT * FROM '.INS_ANNUAIRE.' WHERE '.INS_ANNUAIRE.'.'
224
    foreach (array ('adresse_1', 'adresse_2', 'ville', 'telephone', 'fax', 'site') as $val) {
226
               .INS_CHAMPS_ID.'="'.$id.'"' ;          
-
 
227
    	$resultat = $GLOBALS['ins_db'] -> query($requete) ; 
-
 
228
    	if (DB::isError($resultat)) {
225
    	if (!isset ($valeur[$val])) $valeur[$val] = '' ;   	
229
    		die ($resultat->getMessage().'<br />'.$resultat->getDebugInfo()) ;
Line -... Line 230...
-
 
230
    	}
-
 
231
 
-
 
232
    	$ligne = $resultat->fetchRow(DB_FETCHMODE_ASSOC) ;
-
 
233
    } else 
226
    }
234
    	$id_utilisateur = nextId(INS_ANNUAIRE, INS_CHAMPS_ID, $GLOBALS['ins_db']) ;
-
 
235
    
-
 
236
    $req .= INS_CHAMPS_MAIL.'="'.addslashes($valeur['email']).'", ' ;
-
 
237
    
-
 
238
    if(is_file($_FILES['image']['tmp_name']))
-
 
239
    {
-
 
240
    	if($maj && is_file($ligne[INS_CHAMPS_AVATAR]))
-
 
241
    		@unlink($ligne[INS_CHAMPS_AVATAR]);
-
 
242
    	
-
 
243
    	$chemin_destination=INS_CHEMIN_APPLI.'images/'. ($maj ? $id : $id_utilisateur) .'_'.md5($_FILES['image']['name']).'.jpg';
-
 
244
	    move_uploaded_file($_FILES['image']['tmp_name'], $chemin_destination);
-
 
245
	    
-
 
246
    } elseif(is_file($ligne[INS_CHAMPS_AVATAR]))
227
 
247
    	$chemin_destination=$ligne[INS_CHAMPS_AVATAR];
-
 
248
 
-
 
249
    $req .= INS_CHAMPS_PASSE.'="'.md5($valeur['mot_de_passe']).'", '.
228
    $req .= INS_CHAMPS_MAIL.'="'.addslashes($valeur['email']).'", ' ;
250
            'a_description="'.addslashes($valeur['description']).'", '.
-
 
251
            'a_logo="'.$chemin_destination.'", '.
229
    $req .= INS_CHAMPS_PASSE.'="'.md5($valeur['mot_de_passe']).'", '.
252
            INS_CHAMPS_PAYS.'="'.addslashes($valeur['pays']).'", '.
230
            INS_CHAMPS_PAYS.'="'.addslashes($valeur['pays']).'", '.
253
    	    'niveauscolaire="'.addslashes($valeur['nom_ref']).'", '.
231
            INS_CHAMPS_ADRESSE_1.'="'.addslashes($valeur['adresse_1']).'", '.
254
            INS_CHAMPS_ADRESSE_1.'="'.addslashes($valeur['adresse_1']).'", '.
-
 
255
            INS_CHAMPS_ADRESSE_2.'="'.addslashes($valeur['adresse_2']).'", '.
232
            INS_CHAMPS_ADRESSE_2.'="'.addslashes($valeur['adresse_2']).'", '.
256
            INS_CHAMPS_DATE_INSCRIPTION.'="'. 
233
            INS_CHAMPS_DATE_INSCRIPTION.'=NOW(), '.
257
            	($maj ? $ligne[INS_CHAMPS_DATE_INSCRIPTION] : 'NOW()'). '", '.
234
            INS_CHAMPS_CODE_POSTAL.'="'.addslashes($valeur['cp']).'", '.
258
            INS_CHAMPS_CODE_POSTAL.'="'.addslashes($valeur['cp']).'", '.
235
			INS_CHAMPS_VILLE.'="'.addslashes($valeur['ville']).'", '.
259
			INS_CHAMPS_VILLE.'="'.addslashes($valeur['ville']).'", '.
236
			INS_CHAMPS_EST_STRUCTURE.'="'.addslashes($valeur['est_structure']).'", '.
260
			INS_CHAMPS_EST_STRUCTURE.'="'.addslashes($valeur['est_structure']).'" ';
237
			INS_CHAMPS_TELEPHONE.'="'.addslashes($valeur['telephone']).'", '.
261
	//		INS_CHAMPS_TELEPHONE.'="'.addslashes($valeur['telephone']).'", '.
Line 238... Line 262...
238
			INS_CHAMPS_FAX.'="'.addslashes($valeur['fax']).'", '.
262
	//TODO:mettre un wiki		
239
			INS_CHAMPS_SITE_INTERNET.'="'.addslashes($valeur['site']).'" ';
263
			INS_CHAMPS_SITE_INTERNET.'="'.addslashes($valeur['site']).'" ';
Line 265... Line 289...
265
        } else {
289
        } else {
266
            $n_dpt = substr($valeur['cp'], 0, 2) ;
290
            $n_dpt = substr($valeur['cp'], 0, 2) ;
267
        }
291
        }
268
        $req .= ",".INS_CHAMPS_DEPARTEMENT."='$n_dpt'";
292
        $req .= ",".INS_CHAMPS_DEPARTEMENT."='$n_dpt'";
269
    }
293
    }
270
    if (INS_UTILISE_WIKINI && isset ($valeur['nom_wiki'])) $req .= ','.INS_CHAMPS_NOM_WIKINI.'="'.$valeur['nom_wiki'].'"';
-
 
271
    return $req ;
294
    return $req ;
272
}
295
}
Line 289... Line 312...
289
    	die ($resultat->getMessage().'<br />'.$resultat->getDebugInfo()) ;
312
    	die ($resultat->getMessage().'<br />'.$resultat->getDebugInfo()) ;
290
    }
313
    }
291
    $ligne = $resultat->fetchRow(DB_FETCHMODE_ASSOC) ;
314
    $ligne = $resultat->fetchRow(DB_FETCHMODE_ASSOC) ;
292
    $valeurs_par_defaut = array() ;
315
    $valeurs_par_defaut = array() ;
293
    $valeurs_par_defaut['email'] = $ligne[INS_CHAMPS_MAIL];
316
    $valeurs_par_defaut['email'] = $ligne[INS_CHAMPS_MAIL];
-
 
317
    $valeurs_par_defaut['description'] = $ligne['a_description'];
-
 
318
    $valeurs_par_defaut['image'] = $ligne['a_logo'];
294
    $valeurs_par_defaut['nom'] = $ligne[INS_CHAMPS_NOM];
319
    $valeurs_par_defaut['nom'] = $ligne[INS_CHAMPS_NOM];
295
    $valeurs_par_defaut['prenom'] = $ligne[INS_CHAMPS_PRENOM] ;
320
    $valeurs_par_defaut['prenom'] = $ligne[INS_CHAMPS_PRENOM] ;
296
    $valeurs_par_defaut['pays'] = $ligne[INS_CHAMPS_PAYS] ;
321
    $valeurs_par_defaut['pays'] = $ligne[INS_CHAMPS_PAYS] ;
-
 
322
    $valeurs_par_defaut['niveauscolaire'] = $ligne['niveauscolaire'];
297
    if (INS_UTILISE_WIKINI) {$valeurs_par_defaut['nomwiki'] = $ligne[INS_CHAMPS_NOM_WIKINI] ;}
323
    if (INS_UTILISE_WIKINI) {$valeurs_par_defaut['nomwiki'] = $ligne[INS_CHAMPS_NOM_WIKINI] ;}
298
    $valeurs_par_defaut['cp'] = $ligne[INS_CHAMPS_CODE_POSTAL] ;
324
    $valeurs_par_defaut['cp'] = $ligne[INS_CHAMPS_CODE_POSTAL] ;
299
    $valeurs_par_defaut['ville'] = $ligne[INS_CHAMPS_VILLE] ;
325
    $valeurs_par_defaut['ville'] = $ligne[INS_CHAMPS_VILLE] ;
300
    $valeurs_par_defaut['adresse_1'] = $ligne[INS_CHAMPS_ADRESSE_1] ;
326
    $valeurs_par_defaut['adresse_1'] = $ligne[INS_CHAMPS_ADRESSE_1] ;
301
    $valeurs_par_defaut['adresse_2'] = $ligne[INS_CHAMPS_ADRESSE_2] ;
327
    $valeurs_par_defaut['adresse_2'] = $ligne[INS_CHAMPS_ADRESSE_2] ;
302
    $valeurs_par_defaut['telephone'] = $ligne[INS_CHAMPS_TELEPHONE] ;
328
    $valeurs_par_defaut['telephone'] = $ligne[INS_CHAMPS_TELEPHONE] ;
303
    $valeurs_par_defaut['fax'] = $ligne[INS_CHAMPS_FAX] ;
-
 
304
    if (INS_CHAMPS_STRUCTURE != '' && isset($ligne[INS_CHAMPS_STRUCTURE])) {
-
 
305
    	$valeurs_par_defaut['structure'] = $ligne[INS_CHAMPS_STRUCTURE] ;
-
 
306
    	//$valeurs_par_defaut['type_structure'] = $ligne['a_type_structure'];	
-
 
307
    }
-
 
308
    $valeurs_par_defaut['site'] = $ligne[INS_CHAMPS_SITE_INTERNET] ;
329
    $valeurs_par_defaut['site'] = $ligne[INS_CHAMPS_SITE_INTERNET] ;
309
    $valeurs_par_defaut['lettre'] = $ligne[INS_CHAMPS_LETTRE] ;
330
    $valeurs_par_defaut['lettre'] = $ligne[INS_CHAMPS_LETTRE] ;
310
    $valeurs_par_defaut['visible'] = $ligne[INS_CHAMPS_VISIBLE] ;
331
    $valeurs_par_defaut['visible'] = $ligne[INS_CHAMPS_VISIBLE] ;
311
    $valeurs_par_defaut['sigle_structure'] = $ligne[INS_CHAMPS_SIGLE_STRUCTURE] ;
332
    $valeurs_par_defaut['sigle_structure'] = $ligne[INS_CHAMPS_SIGLE_STRUCTURE] ;
312
    if (INS_CHAMPS_NUM_AGREMENT != '') $valeurs_par_defaut['num_agrement'] = $ligne[INS_CHAMPS_NUM_AGREMENT] ;
-
 
313
    return $valeurs_par_defaut ;
333
    return $valeurs_par_defaut ;
314
}
334
}
Line 315... Line 335...
315
 
335
 
316
 
336
 
317
/** info() - Renvoie une fiche d'information sur la personne ou la structure
-
 
318
* 
-
 
319
* @param  integer  identifiant de la fiche a afficher, mettre -1 pour voir sa propre fiche
-
 
320
* @param  text     nom de l'onglet de la fiche
337
/** info() - Renvoie une fiche d'information sur la personne ou la structure
321
*
338
*
322
* @return   text   Code HTML de la fiche
339
* @return   text   Code HTML de la fiche
323
*/
340
*/
324
function info($id=-1, $type_info='fiche') {
341
function info($id=-1) {
325
	if ($id==-1) $id=$GLOBALS['AUTH']->getAuthData(INS_CHAMPS_ID);
342
	if ($id==-1) $id=$GLOBALS['AUTH']->getAuthData(INS_CHAMPS_ID);
326
    $requete = 'SELECT * FROM '.INS_ANNUAIRE.' WHERE '.INS_ANNUAIRE.'.'
343
    	$requete = 'SELECT * FROM '.INS_ANNUAIRE.' WHERE '.INS_ANNUAIRE.'.'
327
               .INS_CHAMPS_ID.'="'.$id.'"' ;          
344
               .INS_CHAMPS_ID.'="'.$id.'"' ;          
328
    $resultat = $GLOBALS['ins_db'] -> query($requete) ; 
345
    $resultat = $GLOBALS['ins_db'] -> query($requete) ; 
329
    if (DB::isError($resultat)) {
346
    if (DB::isError($resultat)) {
Line 330... Line 347...
330
    	die ($resultat->getMessage().'<br />'.$resultat->getDebugInfo()) ;
347
    	die ($resultat->getMessage().'<br />'.$resultat->getDebugInfo()) ;
331
    }
-
 
332
 
-
 
333
    $ligne = $resultat->fetchRow(DB_FETCHMODE_ASSOC) ;
-
 
334
    
348
    }
335
    //voir la présentation de la fiche
349
 
336
    if ($type_info=='fiche') {
350
    $ligne = $resultat->fetchRow(DB_FETCHMODE_ASSOC) ;
337
	    if ($ligne[INS_CHAMPS_EST_STRUCTURE] == 1) {
351
    if ($ligne[INS_CHAMPS_EST_STRUCTURE] == 1) {
338
	    	$res = '<h1>'.$ligne[INS_CHAMPS_NOM].'</h1>'."\n";
352
    	$res = '<h1>'.INS_FICHE_STRUCTURE.'</h1>'."\n" ;
339
	    	$res .= '<h2>'.INS_FICHE_STRUCTURE.'</h2>'."\n" ;		    
353
	    $res .= '<h2>'.$ligne[INS_CHAMPS_NOM].'</h2>'."\n";
340
		    $res .= '<ul class="affiche_infos">'."\n";
354
	    $res .= '<dl class="affiche_infos">'."\n";
341
		    $res .= ligne_inscription(INS_SIGLE_DE_LA_STRUCTURE, $ligne[INS_CHAMPS_SIGLE_STRUCTURE]) ;
-
 
342
		    if (INS_CHAMPS_NUM_AGREMENT != '') $res .= ligne_inscription(INS_NUM_AGREMENT, $ligne[INS_CHAMPS_NUM_AGREMENT]) ;
355
	    $res .= ligne_inscription(INS_SIGLE_DE_LA_STRUCTURE, $ligne[INS_CHAMPS_SIGLE_STRUCTURE]) ;
343
	    } else {
356
	    $res .= ligne_inscription(INS_NUM_AGREMENT, $ligne[INS_CHAMPS_NUM_AGREMENT]) ;
344
	    	$res = '<h1>'.$ligne[INS_CHAMPS_PRENOM].' '.$ligne[INS_CHAMPS_NOM].'</h1>'."\n";
-
 
-
 
357
    } else {
Line -... Line 358...
-
 
358
    	$res = '<h1>'.INS_FICHE_PERSONNELLE.'</h1>'."\n" ;
-
 
359
    	if(!empty($ligne[INS_CHAMPS_AVATAR]) && is_file($ligne[INS_CHAMPS_AVATAR]))
-
 
360
    		$res = '<img src="'. INS_URL_IMAGES . $ligne[INS_CHAMPS_AVATAR] .'" style="float:right;" alt="avatar de '.$ligne[INS_CHAMPS_NOM_WIKINI].'" />'."\n" ;
345
	    	$res .= '<h2>'.INS_FICHE_PERSONNELLE.'</h2>'."\n" ;	    	
361
    	
346
	    	$res .= '<ul class="affiche_infos">'."\n";
362
    	$res .= '<h2>'.$ligne[INS_CHAMPS_PRENOM].' '.$ligne[INS_CHAMPS_NOM].'</h2>'."\n";
347
	    }
363
    	$res .= '<dl class="affiche_infos">'."\n";
348
	    
364
    }
349
	    $res .= ligne_inscription(INS_ADRESSE_1, $ligne[INS_CHAMPS_ADRESSE_1]) ;
365
    $res .= ligne_inscription(INS_ADRESSE_1, $ligne[INS_CHAMPS_ADRESSE_1]) ;
-
 
366
    $res .= ligne_inscription(INS_ADRESSE_2, $ligne[INS_CHAMPS_ADRESSE_2]) ;
350
	    $res .= ligne_inscription(INS_ADRESSE_2, $ligne[INS_CHAMPS_ADRESSE_2]) ;
367
    $res .= ligne_inscription(INS_CODE_POSTAL, $ligne[INS_CHAMPS_CODE_POSTAL]) ;
351
	    $res .= ligne_inscription(INS_CODE_POSTAL, $ligne[INS_CHAMPS_CODE_POSTAL]) ;
368
    $res .= ligne_inscription(INS_VILLE, $ligne[INS_CHAMPS_VILLE]) ;
352
	    $res .= ligne_inscription(INS_VILLE, $ligne[INS_CHAMPS_VILLE]) ;
369
    $pays = new ListeDePays($GLOBALS['ins_db']) ;
-
 
370
    
353
	    $pays = new ListeDePays($GLOBALS['ins_db']) ;
371
    $res .= ligne_inscription(INS_PAYS, $pays->getNomPays($ligne[INS_CHAMPS_PAYS], INS_LANGUE_DEFAUT)) ;
354
	    $res .= ligne_inscription(INS_PAYS, $pays->getNomPays($ligne[INS_CHAMPS_PAYS], INS_LANGUE_DEFAUT)) ;
372
    $res .= ligne_inscription(INS_TELEPHONE, $ligne[INS_CHAMPS_TELEPHONE]) ;
355
	    $res .= ligne_inscription(INS_TELEPHONE, $ligne[INS_CHAMPS_TELEPHONE]) ;
373
    $res .= ligne_inscription(INS_FAX, $ligne[INS_CHAMPS_FAX]) ;
-
 
374
    $res .= ligne_inscription('&nbsp;', '&nbsp;') ;
356
	    $res .= ligne_inscription(INS_FAX, $ligne[INS_CHAMPS_FAX]) ;
375
    if (INS_UTILISE_WIKINI) {
357
	    if (INS_UTILISE_WIKINI) {
376
		$res .= ligne_inscription (INS_NOM_WIKI, $ligne[INS_CHAMPS_NOM_WIKINI]) ;
358
			$res .= ligne_inscription (INS_NOM_WIKI, $ligne[INS_CHAMPS_NOM_WIKINI]) ;
377
	}
359
		}
-
 
360
	    if ($ligne[INS_CHAMPS_SITE_INTERNET]!='') {
378
    $res .= ligne_inscription(INS_EMAIL, $ligne[INS_CHAMPS_MAIL]);
361
	    	$res .= ligne_inscription(INS_SITE_INTERNET, '<a href="'.$ligne[INS_CHAMPS_SITE_INTERNET].'" onclick="javascript:window.open(this.href);return false;">'.$ligne[INS_CHAMPS_SITE_INTERNET].'</a>');
379
    if ($ligne[INS_CHAMPS_SITE_INTERNET]!='') {
362
	    }
380
    	$res .= ligne_inscription(INS_SITE_INTERNET, '<a href="'.$ligne[INS_CHAMPS_SITE_INTERNET].'" onclick="javascript:window.open(this.href);return false;">'.$ligne[INS_CHAMPS_SITE_INTERNET].'</a>');
363
	    if ($GLOBALS['AUTH']->getAuth()) $res .= ligne_inscription(INS_EMAIL, '<a href="mailto:'.$ligne[INS_CHAMPS_MAIL].'">'.$ligne[INS_CHAMPS_MAIL].'</a>');
381
    }
364
	    else $res .= '<br /><p class="zone_info">'.INS_PAS_IDENTIFIE.'</p>'."\n";
382
    $res .= '</dl>'."\n";
365
	    $res .= '</ul>'."\n";
383
    $res .= '<br />'."\n";
366
	    if ($id==$GLOBALS['AUTH']->getAuthData(INS_CHAMPS_ID)) {
384
    if ($id==$GLOBALS['AUTH']->getAuthData(INS_CHAMPS_ID)) {
367
		    $res .= '<br />'."\n";
385
	    $res .= '<br />'."\n";
368
		    $res .= '<ul>'."\n";
-
 
369
		    if ($ligne[INS_CHAMPS_VISIBLE] == 1) {
386
	    $res .= '<ul>'."\n";
370
		    	$res .= '<li>'.INS_VOUS_APPARAISSEZ.'</li>'."\n";
387
	    if ($ligne[INS_CHAMPS_VISIBLE] == 1) {
371
		    } else $res .= '<li>'.INS_VOUS_APPARAISSEZ_PAS.'</li>'."\n";
388
	    	$res .= '<li>'.INS_VOUS_APPARAISSEZ.'</li>'."\n";
372
		    if (INS_CHAMPS_LETTRE != '') {
-
 
373
		    		if ($ligne[INS_CHAMPS_LETTRE] == 1) {
389
	    } else $res .= '<li>'.INS_VOUS_APPARAISSEZ_PAS.'</li>'."\n";
374
		    			$res .= '<li>'.INS_VOUS_RECEVEZ_LETTRE.'</li>'."\n";
390
	    if ($ligne[INS_CHAMPS_LETTRE] == 1) {
375
		    		} else $res .= '<li>'.INS_VOUS_RECEVEZ_PAS_LETTRE.'</li>'."\n";
391
	    	$res .= '<li>'.INS_VOUS_RECEVEZ_LETTRE.'</li>'."\n";
376
		    }
392
	    } else $res .= '<li>'.INS_VOUS_RECEVEZ_PAS_LETTRE.'</li>'."\n";
377
		    $res .= '</ul>'."\n";
393
	    $res .= '</ul>'."\n";
378
		    $res .= '<br />'."\n";
394
	    $res .= '<br />'."\n";
379
		    $res .= '<ul>'."\n";;
395
	    $res .= '<ul>'."\n";;
380
		    $res .= '<li><a href="'.$GLOBALS['ins_url']->getURL().'&amp;action=modifier&amp;form_structure='.$ligne[INS_CHAMPS_EST_STRUCTURE].'">'.INS_MODIFIER_INSCRIPTION.'</a></li>'."\n" ;
396
	    $res .= '<li><a href="'.$GLOBALS['ins_url']->getURL().'&amp;action=modifier&amp;form_structure='.$ligne[INS_CHAMPS_EST_STRUCTURE].'">'.INS_MODIFIER_INSCRIPTION.'</a></li>'."\n" ;
-
 
397
	    $res .= '<li><a href="'.$GLOBALS['ins_url']->getURL().'&amp;action=supprimer&amp;form_structure='.$ligne[INS_CHAMPS_EST_STRUCTURE].'" onclick="javascript:return confirm(\''.INS_SUPPRIMER_INSCRIPTION.'?\');">'.INS_SUPPRIMER_INSCRIPTION.'</a></li>'."\n" ;
Line 381... Line -...
381
		    $res .= '<li><a href="'.$GLOBALS['ins_url']->getURL().'&amp;action=supprimer&amp;form_structure='.$ligne[INS_CHAMPS_EST_STRUCTURE].'" onclick="javascript:return confirm(\''.INS_SUPPRIMER_INSCRIPTION.'?\');">'.INS_SUPPRIMER_INSCRIPTION.'</a></li>'."\n" ;
-
 
382
		    $res .= '<li><a href="'.$GLOBALS['ins_url']->getURL().'&amp;action=deconnexion">'.INS_DECONNEXION.'</a></li>'."\n" ;
-
 
383
		    $res .= '</ul>'."\n";
-
 
384
	    } 
-
 
385
	    
-
 
386
	//voir les abonnements presents dans les applis clientes    
-
 
387
    } elseif ($type_info=='abonnement') {
-
 
388
    	$res = '<h1>'.$ligne[INS_CHAMPS_PRENOM].' '.$ligne[INS_CHAMPS_NOM].'</h1>'."\n";
-
 
389
    	$res .= '<h2>'.INS_GESTION_DES_ABONNEMENTS.'</h2>'."\n" ;
-
 
390
    	
-
 
391
    	// Appel des actions d'abonnement des applications clientes
-
 
392
        $d = dir(GEN_CHEMIN_CLIENT);
-
 
393
        $abonnement='';
-
 
394
        $abonnements='';
-
 
395
		while (false !== ($repertoire = $d->read())) {
-
 
396
			if (file_exists(GEN_CHEMIN_CLIENT.$repertoire.GEN_SEP.'bibliotheque'.GEN_SEP.$repertoire.'.abonnement.inc.php')) {
-
 
397
				require_once GEN_CHEMIN_CLIENT.$repertoire.GEN_SEP.'bibliotheque'.GEN_SEP.$repertoire.'.abonnement.inc.php' ;
-
 
398
				$abonnements .= $abonnement;   
-
 
399
			}
-
 
400
		}
-
 
401
		$d->close();
-
 
402
		$res .= $abonnements;
-
 
403
		
-
 
404
    //voir les actus			
-
 
405
    } elseif ($type_info=='actus') {
-
 
406
    	$res = '<h1>'.$ligne[INS_CHAMPS_PRENOM].' '.$ligne[INS_CHAMPS_NOM].'</h1>'."\n";
-
 
407
    	$res .= '<h2>'.INS_ACTUALITES_DEPOSEES.'</h2>'."\n" ;
-
 
408
    	require_once GEN_CHEMIN_CLIENT.'bazar'.GEN_SEP.'configuration'.GEN_SEP.'baz_config.inc.php';
-
 
409
    	require_once GEN_CHEMIN_CLIENT.'bazar'.GEN_SEP.'bibliotheque'.GEN_SEP.'bazar.fonct.rss.php';
-
 
410
    	$_GET['action']=1;
-
 
411
    	$res .= RSSversHTML(gen_RSS('', '', $id, 1, ''), 0, 'jma', 0);
-
 
412
    	
-
 
413
	//voir les ressources	
-
 
414
    } elseif ($type_info=='ressources') {
-
 
415
    	$res = '<h1>'.$ligne[INS_CHAMPS_PRENOM].' '.$ligne[INS_CHAMPS_NOM].'</h1>'."\n";
-
 
416
    	$res .= '<h2>'.INS_RESSOURCES_ASSOCIEES.'</h2>'."\n" ;
-
 
417
    	$requete = 'SELECT bf_id_fiche, bf_titre FROM bazar_fiche, bazar_appropriation WHERE  ba_ce_id_fiche=bf_id_fiche AND ba_ce_id_structure='.$id ;
-
 
418
    	$resultat = $GLOBALS['ins_db'] -> query($requete) ;
-
 
419
    	$res .= '<ul>'."\n";
-
 
420
    	while ($ligne = $resultat->fetchRow(DB_FETCHMODE_ASSOC)) {
-
 
421
			$res .= '<li><a href="'.INS_URL_BAZAR.'&amp;action=8&amp;id_fiche='.$ligne['bf_id_fiche'].'" onclick="window.open(this.href,\'_blank\');return false;">'.$ligne['bf_titre'].'</a></li>'."\n";
-
 
422
		}
-
 
423
		$res .= '</ul><br />'."\n";
-
 
424
    
-
 
425
    //voir les competences		    
398
	    $res .= '<li><a href="'.$GLOBALS['ins_url']->getURL().'&amp;action=deconnexion">'.INS_DECONNEXION.'</a></li>'."\n" ;
426
    } elseif ($type_info=='competences') {
399
	    $res .= '</ul>'."\n";
Line 427... Line 400...
427
    	$res = '<h1>'.$ligne[INS_CHAMPS_PRENOM].' '.$ligne[INS_CHAMPS_NOM].'</h1>'."\n";
400
    }
Line 440... Line 413...
440
function ligne_inscription($label, $valeur) {
413
function ligne_inscription($label, $valeur) {
441
    if ($valeur == '') {
414
    if ($valeur == '') {
442
        return;
415
        return;
443
    }
416
    }
444
    if (($label == '')or($label == '&nbsp;')) {
417
    if (($label == '')or($label == '&nbsp;')) {
445
    	return '<li>'."\n".$valeur."\n".'</li>'."\n" ;
418
    	return '<dt>&nbsp;</dt>'."\n".'<dd>'.$valeur.'</dd>'."\n" ;
446
    } else {
419
    } else {
447
    	return '<li>'."\n".'<strong>'.$label.' : </strong>'."\n".$valeur."\n".'</li>'."\n" ;    	
420
    	return '<dt>'.$label.' : </dt>'."\n".'<dd>'.$valeur.'</dd>'."\n" ;    	
448
    }
421
    }
449
}
422
}
Line 450... Line 423...
450
 
423
 
Line 458... Line 431...
458
	if ($id == '') {
431
	if ($id == '') {
459
		if (isset ($GLOBALS['AUTH'])) {
432
		if (isset ($GLOBALS['AUTH'])) {
460
			$id = $GLOBALS['AUTH']->getAuthData(INS_CHAMPS_ID) ;
433
			$id = $GLOBALS['AUTH']->getAuthData(INS_CHAMPS_ID) ;
461
		}
434
		}
462
	}
435
	}
-
 
436
 
463
    if (isset ($id) && $id != '') {
437
    if (isset ($id) && $id != '') {
464
        $requete_mail = "select ".INS_CHAMPS_MAIL." from ".INS_ANNUAIRE." where ".
438
        $requete_mail = "select ".INS_CHAMPS_MAIL." from ".INS_ANNUAIRE." where ".
465
        				INS_CHAMPS_ID."=".$id ;
439
        				INS_CHAMPS_ID."=".$id ;
466
        $resultat_mail = $GLOBALS['ins_db']->query ($requete_mail) ;
440
        $resultat_mail = $GLOBALS['ins_db']->query ($requete_mail) ;
467
        if (DB::isError ($resultat_mail)) {
441
        if (DB::isError ($resultat_mail)) {
Line 573... Line 547...
573
    $body_entete = INS_MAIL_COORD_CORPS."\n" ;
547
    $body_entete = INS_MAIL_COORD_CORPS."\n" ;
574
    $body = "mail : ".$ligne[INS_CHAMPS_MAIL]."\n" ;
548
    $body = "mail : ".$ligne[INS_CHAMPS_MAIL]."\n" ;
575
    $body .= "------------------------------------------\n";
549
    $body .= "------------------------------------------\n";
576
    $body .= INS_NOM.": ".unhtmlentities($ligne[INS_CHAMPS_NOM])." \n" ;
550
    $body .= INS_NOM.": ".unhtmlentities($ligne[INS_CHAMPS_NOM])." \n" ;
577
    $body .= INS_PRENOM.' : '.unhtmlentities($ligne[INS_CHAMPS_PRENOM])." \n" ;
551
    $body .= INS_PRENOM.' : '.unhtmlentities($ligne[INS_CHAMPS_PRENOM])." \n" ;
578
    $body .= INS_PAYS." : ".unhtmlentities($ligne[INS_CHAMPS_LABEL_PAYS])." \n" ;
552
    $body .= INS_PAYS." : ".unhtmlentities($ligne[PROJET_CHAMPS_LABEL_PAYS])." \n" ;
579
    $body .= "-------------------------------------------\n" ;
553
    $body .= "-------------------------------------------\n" ;
Line 580... Line 554...
580
    
554
    
581
    $mime->setTXTBody($body);
555
    $mime->setTXTBody($body);
Line 586... Line 560...
586
    
560
    
Line 587... Line 561...
587
    $mail = & Mail::factory('mail') ;
561
    $mail = & Mail::factory('mail') ;
Line 588... Line -...
588
    
-
 
589
    $mail -> send ($ligne[INS_CHAMPS_MAIL], $headers, $body) ;
-
 
590
    
-
 
591
        // Envoi du mail aux administrateur du site
-
 
592
    foreach ($GLOBALS['mail_admin'] as $administrateur) {
562
    
593
        $mail -> send ($administrateur, $headers, $body) ;
563
    $mail -> send ($ligne[INS_CHAMPS_MAIL], $headers, $body) ;
594
    }
564
    
595
    if (PEAR::isError($mail)) {
565
    if (PEAR::isError($mail)) {
596
        echo 'erreur d\'envoi' ;
566
        echo 'erreur d\'envoi' ;
597
        return false ;
567
        return false ;
Line -... Line 568...
-
 
568
    }
-
 
569
    return true ;
-
 
570
}
-
 
571
 
-
 
572
// merci PHP 5 ...
-
 
573
function mb_str_split($str, $length = 1) {
-
 
574
  if ($length < 1) return FALSE;
-
 
575
 
-
 
576
  $result = array();
-
 
577
 
-
 
578
  for ($i = 0; $i < strlen($str); $i += $length) {
-
 
579
    $result[] = substr($str, $i, $length);
-
 
580
  }
Line 598... Line 581...
598
    }
581
 
599
    return true ;
582
  return $result;
600
}
583
}
601
 
584
// 
602
 
585
 
-
 
586
/**
-
 
587
 *  Génère un nom wiki valide à partir des données saisies par l'utilisateur
603
/**
588
 *  fait une requete dans la base
604
 *  Génère un nom wiki valide à partir des données saisies par l'utilisateur
589
 * 
Line 605... Line 590...
605
 *  fait une requete dans la base
590
 * --> révision par julien suite nouvelle fonction get_wiki_name();
606
 *
-
 
607
 * UPDATE: modification de la fonction pour propretée du titre / nom --julien
-
 
608
 * @return  string un nom wiki valide
-
 
609
 */
-
 
610
 
-
 
611
function genere_nom_wiki($nom, $spaces = TRUE)
-
 
612
{
-
 
613
	// traitement des accents
-
 
614
	$nom = str_replace(array('é','è','ë','ê','É','È','Ë','Ê','&','£'), 'e', $nom);
-
 
Line 615... Line 591...
615
	$nom = str_replace(array('à','ä','â','Â','Ä','À','@'), 'a', $nom);
591
 * --> ajout de la vérification des doublons.
-
 
592
 *
Line 616... Line -...
616
	$nom = str_replace(array('ç','Ç'), 'c', $nom);
-
 
617
	$nom = str_replace(array('ÿ','¾'), 'y', $nom);
-
 
618
	$nom = str_replace(array('ô','ö','ò','Ô','Ò','Ö'), 'o', $nom);
593
 * @return  string un nom wiki valide
619
	$nom = str_replace(array('ï','î','ì','Î','Ï','Ì'), 'i', $nom);
-
 
620
	$nom = str_replace('$', 's', $nom);
594
 */
621
    
595
 
622
	$temp = str_split($nom);
596
function genere_nom_wiki($nom) {
623
	
-
 
624
	$count = 0;
-
 
625
	$final = NULL;
-
 
626
	foreach($temp as $letter)
-
 
627
	{
597
  
Line 628... Line -...
628
		if(preg_match('/([[:space:]]|[[:punct:]])/', $letter))
-
 
629
		{
-
 
630
			$final .= ($spaces ? '_' : '');
-
 
631
		} elseif(preg_match ('/[a-zA-Z0-9]/', $letter)) {
-
 
632
            $final .= (($count == 0 || $count == (strlen($nom) - 1)) ? strtoupper($letter) : strtolower($letter));
598
  	// si le nom est trop invalide (____) on génère une chaine au hazard..
633
        }
599
  	$nom_wiki = (!get_wiki_name($nom) ? get_wiki_name(create_new_random(5)) : get_wiki_name($nom));
Line 634... Line -...
634
        $count++;
-
 
635
	}
600
  	
636
	
601
	// si le nom existe déjà: on ajoute des _ à la fin jusqu'à ce qu'il soit libre !
637
	// vérifions que le retour n'est pas uniquement un underscore
602
	while(!verif_doublonNomWiki($nom_wiki))
638
	if(preg_match('/^[[:punct:]]+$/', $final)) return FALSE;
603
	{
639
 
604
		$nom_wiki .= '_';
Line 640... Line 605...
640
 	// sinon retour du nom formaté
605
	}
641
	return($final);
606
  
642
}
607
    return $nom_wiki ;
643
 
608
}
644
 
609
 
645
/**
610
/**
646
 *	Cette fonction supprime les caractères autres que asccii et les chiffres
611
 *	Cette fonction supprime les caractères autres que asccii et les chiffres
647
 *
612
 *
Line 666... Line 631...
666
    }
631
    }
667
    $nom = preg_replace ('/_/', '', $nom) ;
632
    $nom = preg_replace ('/_/', '', $nom) ;
668
    return $nom ;
633
    return $nom ;
669
}
634
}
Line -... Line 635...
-
 
635
 
-
 
636
//function get_wiki_name($nom)
-
 
637
//{
-
 
638
//	$temp = explode('', $nom);
-
 
639
//	$count = 0;
-
 
640
//	$final = NULL;
-
 
641
//	foreach($temp as $letter)
-
 
642
//	{
-
 
643
//		if(preg_match ('/[a-zA-Z0-9]/', $letter)) {
-
 
644
//            $final .= (($count == 0 || $count == (strlen($nom) - 1)) ? strtoupper($letter) : strtolower($letter));
-
 
645
//        }
-
 
646
//	}
-
 
647
//	return($final);
-
 
648
//}
-
 
649
 
-
 
650
// fonction révisée de get_wiki_name() --julien
-
 
651
function get_wiki_name($nom)
-
 
652
{
-
 
653
	// traitement des accents
-
 
654
	$nom = str_replace(array('é','è','ë','ê','É','È','Ë','Ê','&','£'), 'e', $nom);
-
 
655
	$nom = str_replace(array('à','ä','â','Â','Ä','À','@'), 'a', $nom);
-
 
656
	$nom = str_replace(array('ç','Ç'), 'c', $nom);
-
 
657
	$nom = str_replace(array('ÿ','¾'), 'y', $nom);
-
 
658
	$nom = str_replace(array('ô','ö','ò','Ô','Ò','Ö'), 'o', $nom);
-
 
659
	$nom = str_replace(array('ï','î','ì','Î','Ï','Ì'), 'i', $nom);
-
 
660
	$nom = str_replace('$', 's', $nom);
-
 
661
    
-
 
662
	$temp = mb_str_split($nom);
-
 
663
	
-
 
664
	$count = 0;
-
 
665
	$final = NULL;
-
 
666
	foreach($temp as $letter)
-
 
667
	{
-
 
668
		if(preg_match('/([[:space:]]|[[:punct:]])/', $letter))
-
 
669
		{
-
 
670
			$final .= '_';
-
 
671
		} elseif(preg_match ('/[a-zA-Z0-9]/', $letter)) {
-
 
672
            $final .= (($count == 0 || $count == (strlen($nom) - 1)) ? strtoupper($letter) : strtolower($letter));
-
 
673
        }
-
 
674
        $count++;
-
 
675
	}
-
 
676
	
-
 
677
	// vérifions que le retour n'est pas uniquement un underscore
-
 
678
	if(preg_match('/^[[:punct:]]+$/', $final)) return FALSE;
-
 
679
 
-
 
680
 	// sinon retour du nom formaté
-
 
681
	return($final);
-
 
682
}
-
 
683
 
670
 
684
 
671
// For users prior to PHP 4.3.0 you may do this:
685
// For users prior to PHP 4.3.0 you may do this:
672
function unhtmlentities($string)
686
function unhtmlentities($string)
673
{
687
{
674
    $trans_tbl = get_html_translation_table (HTML_ENTITIES);
688
    $trans_tbl = get_html_translation_table (HTML_ENTITIES);
Line 734... Line 748...
734
}
748
}
Line 735... Line 749...
735
 
749
 
736
/* +--Fin du code ----------------------------------------------------------------------------------------+
750
/* +--Fin du code ----------------------------------------------------------------------------------------+
737
*
751
*
738
* $Log: not supported by cvs2svn $
-
 
739
* Revision 1.24  2007/01/04 16:37:27  alexandre_tb
-
 
740
* ajout d'un test pour savoir si la fonction inscription_validee existe déjà (peut être inutile à vérifier)
-
 
741
*
-
 
742
* Revision 1.23  2006/12/01 13:23:15  florian
-
 
743
* integration annuaire backoffice
-
 
744
*
-
 
745
* Revision 1.22  2006/10/05 13:53:53  florian
-
 
746
* amélioration des fichiers sql
-
 
747
*
-
 
748
* Revision 1.21  2006/09/20 13:10:01  alexandre_tb
-
 
749
* Ajout d'un test sur la lettre d'actualité
-
 
750
*
-
 
751
* Revision 1.20  2006/07/06 10:33:58  alexandre_tb
-
 
752
* Suppression d'un warning
-
 
753
*
-
 
754
* Revision 1.19  2006/07/04 09:39:27  alexandre_tb
-
 
755
* correction d'un bug mineur
-
 
756
*
-
 
757
* Revision 1.18  2006/06/01 14:42:20  alexandre_tb
-
 
758
* suppression d'un commentaire inutile
-
 
759
*
-
 
760
* Revision 1.17  2006/04/28 12:44:05  florian
-
 
761
* integration bazar
-
 
762
*
-
 
763
* Revision 1.16  2006/04/11 08:41:41  alexandre_tb
-
 
764
* Ajout du champs nom wiki dans le formulaire si la constante INS_GENERE_NOM_WIKI n'est pas activé
-
 
765
*
-
 
766
* Revision 1.15  2006/04/10 14:01:36  florian
-
 
767
* uniformisation de l'appli bottin: plus qu'un fichier de fonctions
-
 
768
*
-
 
769
* Revision 1.14  2006/04/04 12:23:05  florian
-
 
770
* modifs affichage fiches, généricité de la carto, modification totale de l'appli annuaire
-
 
771
*
-
 
772
* Revision 1.13  2006/03/21 10:25:33  alexandre_tb
-
 
773
* ajout d'un template pour le mail de confirmation
-
 
774
*
-
 
775
* Revision 1.12  2006/03/15 11:02:35  alexandre_tb
-
 
776
* ajout de l'insertion du prénom qui avait disparu
-
 
777
*
-
 
778
* Revision 1.11  2006/03/02 16:57:31  alexandre_tb
-
 
779
* correction appel au générateur de nom wiki
-
 
780
*
-
 
781
* Revision 1.10  2006/02/28 14:02:20  alexandre_tb
-
 
782
* suppression des insertion dans les tables du bazar
-
 
783
*
-
 
784
* Revision 1.9  2006/02/14 10:19:10  alexandre_tb
-
 
785
* Mise en place des templates
-
 
786
* CREATE TABLE `inscription_template` (
-
 
787
*   `it_id_template` smallint(5) unsigned NOT NULL default '0',
-
 
788
*   `it_i18n` varchar(5) NOT NULL default '',
-
 
789
*   `it_template` text NOT NULL,
-
 
790
*   PRIMARY KEY  (`it_id_template`)
-
 
791
* ) ENGINE=MyISAM DEFAULT CHARSET=latin1;
-
 
792
*
752
* $Log: not supported by cvs2svn $
793
* Revision 1.8  2006/01/02 09:51:38  alexandre_tb
753
* Revision 1.8  2006/01/02 09:51:38  alexandre_tb
794
* généralisation du code et intégration au bottin
754
* généralisation du code et intégration au bottin
795
*
755
*
796
* Revision 1.7  2005/12/19 13:19:07  alexandre_tb
756
* Revision 1.7  2005/12/19 13:19:07  alexandre_tb