Subversion Repositories Applications.papyrus

Rev

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

Rev 1188 Rev 1292
Line 31... Line 31...
31
// AUTEUR    : $Author$
31
// AUTEUR    : $Author$
32
// VERSION : $Revision$
32
// VERSION : $Revision$
33
// DATE        : $Date$
33
// DATE        : $Date$
34
*/
34
*/
Line 35... Line -...
35
 
-
 
36
/**
-
 
37
*   Renvoie l'accueil de l'inscription
-
 
38
*
-
 
39
*   @return string	HTML
-
 
40
*/
-
 
41
function AUTH_formulaire_login() {   
-
 
42
    require_once PAP_CHEMIN_RACINE.'api/pear/HTML/Template/IT.php';
-
 
43
    $tpl = new HTML_Template_IT() ;
-
 
44
    // Le formulaire pour se logguer est dans un template
-
 
45
    // template 1
-
 
46
    $requete = 'SELECT it_template FROM inscription_template WHERE it_id_template=1'.
-
 
47
    			' AND it_i18n LIKE "%'.INS_LANGUE_DEFAUT.'"' ;
-
 
48
    
-
 
49
    if (!$tpl -> setTemplate($GLOBALS['ins_db']->getOne ($requete))) {
-
 
50
    	echo 'erreur' ;	
-
 
51
    }
-
 
52
	$tpl->setVariable('URL_INSCRIPTION', $GLOBALS['ins_url']->getURL());
-
 
53
    return $tpl->get() ;
-
 
54
    
-
 
55
}
-
 
56
 
-
 
57
include_once 'inscription.fonct.wiki.php' ;
-
 
Line 58... Line 35...
58
if (INS_UTILISE_SPIP) include_once 'inscription.fonct.spip.php' ;
35
 
59
 
36
 
60
/** function inscription_onglets()  Affiche les onglets de présentation de la structure
37
/** function inscription_onglets()  Affiche les onglets de présentation de la structure
61
*
38
*
Line 79... Line 56...
79
	
56
	
80
	//preparation de l'affichage des onglets
57
	//preparation de l'affichage des onglets
81
	$res='<ul id="onglets_inscription">'."\n";
58
	$res='<ul id="onglets_inscription">'."\n";
82
	//partie présentation
59
	//partie présentation
83
	$GLOBALS['ins_url']->addQueryString('voir_fiche', $id_fiche);
-
 
84
	$res .= '<li id="fiche"';
-
 
85
	if (isset($_GET['voir_fiche'])) $res .= ' class="onglet_actif" '; 
60
	$GLOBALS['ins_url']->addQueryString('voir_fiche', $id_fiche);
86
	$res .= '><a href="'.$GLOBALS['ins_url']->getURL().'">'.INS_PRESENTATION.'</a>'."\n".'</li>'."\n";
61
	$res .= '<li id="fiche"><a href="'.$GLOBALS['ins_url']->getURL().'">'.INS_PRESENTATION.'</a>'."\n".'</li>'."\n";
87
	$GLOBALS['ins_url']->removeQueryString('voir_fiche');
62
	$GLOBALS['ins_url']->removeQueryString('voir_fiche');
88
	if ($id_fiche==$GLOBALS['AUTH']->getAuthData(INS_CHAMPS_ID)) {
63
	if ($id_fiche==$GLOBALS['AUTH']->getAuthData(INS_CHAMPS_ID)) {
89
		//partie abonnement
64
		//partie abonnement
90
		$GLOBALS['ins_url']->addQueryString('voir_abonnement', $id_fiche);
-
 
91
		$res .= '<li id="abonnements"';
-
 
92
		if (isset($_GET['voir_abonnement'])) $res .= ' class="onglet_actif" ';
65
		$GLOBALS['ins_url']->addQueryString('voir_abonnement', $id_fiche);
93
		$res .= '><a href="'.$GLOBALS['ins_url']->getURL().'">'.INS_ABONNEMENTS.'</a></li>'."\n" ;
66
		$res .= '<li id="abonnements"><a href="'.$GLOBALS['ins_url']->getURL().'">'.INS_ABONNEMENTS.'</a></li>'."\n" ;
94
		$GLOBALS['ins_url']->removeQueryString('voir_abonnement');
67
		$GLOBALS['ins_url']->removeQueryString('voir_abonnement');
95
	}
68
	}
96
	//partie actualites
69
	//partie actualites
97
	$GLOBALS['ins_url']->addQueryString('voir_actus', $id_fiche);
70
	$GLOBALS['ins_url']->addQueryString('voir_actus', $id_fiche);
Line 114... Line 87...
114
*
87
*
115
*
88
*
116
*	@return string HTML
89
*	@return string HTML
117
*/
90
*/
118
function affiche_onglet_info() {
91
function affiche_onglet_info() {
119
	//include_once INS_CHEMIN_APPLI.'bibliotheque/inscription.fonct.php';
92
	include_once INS_CHEMIN_APPLI.'bibliotheque/inscription.fonct.php';
120
    include_once INS_CHEMIN_APPLI.'bibliotheque/inscription.class.php';
93
    include_once INS_CHEMIN_APPLI.'bibliotheque/inscription.class.php';
121
    if ( isset($_GET['voir_fiche']) ) {
94
    if ( isset($_GET['voir_fiche']) ) {
122
    	$res=info($_GET['voir_fiche'], 'fiche');
95
    	$res=info($_GET['voir_fiche'], 'fiche');
123
    } elseif (isset($_GET['voir_abonnement'])) {
96
    } elseif (isset($_GET['voir_abonnement'])) {
124
    	$res=info($_GET['voir_abonnement'], 'abonnement');
97
    	$res=info($_GET['voir_abonnement'], 'abonnement');
Line 137... Line 110...
137
*
110
*
138
*
111
*
139
*	@return string HTML
112
*	@return string HTML
140
*/
113
*/
141
function Annuaire_recherche() {
114
function Annuaire_recherche() {
142
	
-
 
143
	// On ajoute la fonction javascript
-
 
144
	// des case à cocher
-
 
145
    $java =
-
 
146
        "function setCheckboxes(the_form)
-
 
147
        {
-
 
148
        var do_check=document.forms[the_form].elements['selecttotal'].checked;
-
 
149
        var elts            = document.forms[the_form].elements['select[]'];
-
 
150
        var elts_cnt = (typeof(elts.length) != 'undefined')
-
 
151
                            ? elts.length
-
 
152
                            : 0;
-
 
153
        if (elts_cnt) {
-
 
154
            for (var i = 0; i < elts_cnt; i++) {
-
 
155
                elts[i].checked = do_check;
-
 
156
            } // Fin for
-
 
157
        } else {
-
 
158
            elts.checked = do_check;
-
 
159
        } // Fin if... else
-
 
160
        return true;
-
 
161
    } // Fin de la fonction 'setCheckboxes()'";
-
 
162
    GEN_stockerCodeScript($java) ;
-
 
163
	
-
 
164
	
-
 
165
	$res ='<h2>'.INS_RECHERCHE_ANNUAIRE_DES_INSCRITS.'</h2>'."\n";
115
	$res ='<h2>'.INS_RECHERCHE_ANNUAIRE_DES_INSCRITS.'</h2>'."\n";
166
	$form =& new HTML_QuickForm('form_recherche_annuaire', 'post', str_replace('&amp;', '&', $GLOBALS['ins_url']->getURL()));
116
	$form =& new HTML_QuickForm('form_recherche_annuaire', 'post', str_replace('&amp;', '&', $GLOBALS['ins_url']->getURL()));
167
    $squelette =& $form->defaultRenderer();
117
    $squelette =& $form->defaultRenderer();
168
    $squelette->setFormTemplate("\n".'<form{attributes}>'."\n".'<table>'."\n".'{content}'."\n".'</table>'."\n".'</form>'."\n");
118
    $squelette->setFormTemplate("\n".'<form{attributes}>'."\n".'<table>'."\n".'{content}'."\n".'</table>'."\n".'</form>'."\n");
169
    $squelette->setElementTemplate( '<tr>'."\n".
119
    $squelette->setElementTemplate( '<tr>'."\n".
Line 172... Line 122...
172
                                    '<!-- BEGIN error --><span class="erreur">{error}</span><!-- END error -->'."\n".
122
                                    '<!-- BEGIN error --><span class="erreur">{error}</span><!-- END error -->'."\n".
173
									' : </td>'."\n".
123
									' : </td>'."\n".
174
                                    '<td style="padding:5px;text-align:left;">{element}</td>'."\n".
124
                                    '<td style="padding:5px;text-align:left;">{element}</td>'."\n".
175
                                    '</tr>'."\n" );
125
                                    '</tr>'."\n" );
176
    $squelette->setElementTemplate( '<tr>'."\n".'<td colspan=2 style="padding:5px;">{label}{element}</td>'."\n".'</tr>'."\n", 'bouton_rechercher');
126
    $squelette->setElementTemplate( '<tr>'."\n".'<td colspan=2 style="padding:5px;">{label}{element}</td>'."\n".'</tr>'."\n", 'bouton_rechercher');
177
    // La liste deroulante pour choisir entre structure et individus
-
 
178
    // uniquement si la constante INS_FORMULAIRE_STRUCTURE vaut 1
-
 
Line 179... Line -...
179
    
-
 
180
    if (INS_FORMULAIRE_STRUCTURE == 1) {
127
    
181
	    $option_type=array ('0' => INS_PERSONNES_OU_STRUCTURES,
128
    $option_type=array ('0' => INS_PERSONNES_OU_STRUCTURES,
182
	                        '1' => INS_PERSONNES,
129
                        '1' => INS_PERSONNES,
183
	                        '2' => INS_STRUCTURES);
130
                        '2' => INS_STRUCTURES);
184
	    $form->addElement('select', 'nom_type', INS_JE_RECHERCHE, $option_type);
131
    $form->addElement('select', 'nom_type', INS_JE_RECHERCHE, $option_type);
185
    }
132
    
186
    //requete pour recuperer la liste des pays
133
    //requete pour recuperer la liste des pays
187
    $requete = 'SELECT '.INS_CHAMPS_ID_PAYS.', '.INS_CHAMPS_LABEL_PAYS.' FROM '.INS_TABLE_PAYS.' WHERE '.INS_CHAMPS_I18N_PAYS.'="fr-FR"';
134
    $requete = 'SELECT '.INS_CHAMPS_ID_PAYS.', '.INS_CHAMPS_LABEL_PAYS.' FROM '.INS_TABLE_PAYS.' WHERE '.INS_CHAMPS_I18N_PAYS.'="fr-FR"';
188
	$resultat = $GLOBALS['ins_db']->query($requete) ;
135
	$resultat = $GLOBALS['ins_db']->query($requete) ;
189
	if (DB::isError($resultat)) {
136
	if (DB::isError($resultat)) {
Line 216... Line 163...
216
	$form->setDefaults($defauts);
163
	$form->setDefaults($defauts);
Line 217... Line 164...
217
	
164
	
218
	//affichage du formulaire
165
	//affichage du formulaire
Line 219... Line -...
219
	$res .=$form->toHtml();
-
 
220
	
-
 
221
	include_once INS_CHEMIN_APPLI.'/bibliotheque/bottin.class.php';
-
 
222
	// On ajoute la liste des lettres cliquables
-
 
223
	$lettre = new lettresAlphabet($GLOBALS['ins_url']) ;
-
 
224
	$res .= $lettre->toHMTL();
-
 
225
	
-
 
226
	$requete = '';
166
	$res .=$form->toHtml();
227
	
167
	
228
	//on teste si l'on affiche le resultat de la recherche ou 
168
	//on teste si l'on affiche le resultat de la recherche ou 
229
	if (isset($_POST['bouton_rechercher'])) {
169
	if (isset($_POST['nom_type'])) {
230
		$requete = 'SELECT '.INS_CHAMPS_ID.', '.INS_CHAMPS_NOM.', '.INS_CHAMPS_PRENOM.', '.INS_CHAMPS_VILLE.', '.INS_CHAMPS_CODE_POSTAL;
170
		$requete = 'SELECT '.INS_CHAMPS_ID.', '.INS_CHAMPS_NOM.', '.INS_CHAMPS_PRENOM.', '.INS_CHAMPS_VILLE.', '.INS_CHAMPS_CODE_POSTAL;
231
		$requete .= ' FROM '.INS_ANNUAIRE.' WHERE ';
-
 
232
		$req_where=0;
171
		$requete .= ' FROM '.INS_ANNUAIRE.' WHERE ';
233
		if (isset($_POST['nom_type'])) {
172
		$req_where=0;
234
			if ($_POST['nom_type']==1) {
173
		if ($_POST['nom_type']==1) {
235
				$requete .= INS_CHAMPS_EST_STRUCTURE.'=0 ';
174
			$requete .= INS_CHAMPS_EST_STRUCTURE.'=0 ';
236
				$req_where=1;
175
			$req_where=1;
237
			} elseif ($_POST['nom_type']==2) {
176
		} elseif ($_POST['nom_type']==2) {
238
				$requete .= INS_CHAMPS_EST_STRUCTURE.'=1 ';
-
 
239
				$req_where=1;
177
			$requete .= INS_CHAMPS_EST_STRUCTURE.'=1 ';
240
			}
178
			$req_where=1;
241
		}
179
		}
242
		if ($_POST['nom_pays']!='0'and$_POST['nom_pays']!='zz') {
180
		if ($_POST['nom_pays']!='0'and$_POST['nom_pays']!='zz') {
243
			if ($req_where) {
181
			if ($req_where) {
Line 261... Line 199...
261
			} else {
199
			} else {
262
				$req_where=1;
200
				$req_where=1;
263
			} 
201
			} 
264
			$requete .= '('.INS_CHAMPS_NOM.' LIKE "%'.$_POST['nom_annuaire'].'%"'.
202
			$requete .= '('.INS_CHAMPS_NOM.' LIKE "%'.$_POST['nom_annuaire'].'%"'.
265
						' OR '.INS_CHAMPS_PRENOM.' LIKE "%'.$_POST['nom_annuaire'].'%"'.
203
						' OR '.INS_CHAMPS_PRENOM.' LIKE "%'.$_POST['nom_annuaire'].'%"'.
266
						' OR '.INS_CHAMPS_SIGLE_STRUCTURE.' LIKE "%'.$_POST['nom_annuaire'].'%")';
204
						' OR '.INS_CHAMPS_SIGLE_STRUCTURE.' LIKE "%'.$_POST['nom_annuaire'].'%"'.
-
 
205
						' OR '.INS_CHAMPS_DESCRIPTION.' LIKE "%'.$_POST['nom_annuaire'].'%") ';
267
		}
206
		}
268
 
-
 
269
		if (!$req_where) $requete .= '1';
207
		if (!$req_where) $requete .= '1';
270
		$requete .=' ORDER BY '.INS_CHAMPS_NOM;
208
		$requete .=' ORDER BY '.INS_CHAMPS_NOM;
271
		
-
 
272
		
-
 
273
		// Cas ou on a clique sur une lettre 
-
 
274
	} 
-
 
275
	if (isset($_GET['lettre'])){
-
 
276
		$requete = 'SELECT '.INS_CHAMPS_ID.', '.INS_CHAMPS_NOM.', '.INS_CHAMPS_PRENOM.', '.INS_CHAMPS_VILLE.', '.INS_CHAMPS_CODE_POSTAL;
-
 
277
		$requete .= ' FROM '.INS_ANNUAIRE.' WHERE ';
-
 
278
		$requete .= ' '.INS_CHAMPS_NOM.' like "'.$_GET['lettre'].'%"';
-
 
279
	}
-
 
280
	
-
 
281
	if ($requete != '') {
-
 
282
	 	$resultat = $GLOBALS['ins_db']->query($requete);
209
		$resultat = $GLOBALS['ins_db']->query($requete);
283
		if (DB::isError($resultat)) {
-
 
284
	    	return ("Echec de la requete : $requete<br />".$resultat->getMessage()) ;
-
 
285
		}
-
 
286
		if ($resultat->numRows()>0) {
210
		if ($resultat->numRows()>0) {
287
			$res .='<h2>'.INS_RESULTATS_RECHERCHE.' ('.$resultat->numRows().' '.INS_ENTREES.')</h2>'."\n";
211
			$res .='<h2>'.INS_RESULTATS_RECHERCHE.' ('.$resultat->numRows().' '.INS_ENTREES.')</h2>'."\n";
288
			$res .='<p class="zone_info">'.INS_CLIQUER_ELEMENT_LISTE.'</p>'."\n";
212
			$res .='<p class="zone_info">'.INS_CLIQUER_ELEMENT_LISTE.'</p>'."\n";
289
			$i=0;
213
			$i=0;
290
			while ($ligne = $resultat->fetchRow(DB_FETCHMODE_ASSOC)) {
214
			while ($ligne = $resultat->fetchRow(DB_FETCHMODE_ASSOC)) {
291
				$donnees_membres[$i++]=$ligne;
215
				$donnees_membres[$i++]=$ligne;
292
			}
216
			}
293
		    return $res.listes_inscrit($donnees_membres);
217
		    $res .= listes_inscrit($donnees_membres);
-
 
218
		}
294
		} else {
219
		else {
295
			$res .='<h2>'.INS_RESULTATS_RECHERCHE.'</h2>'."\n";
220
			$res .='<h2>'.INS_RESULTATS_RECHERCHE.'</h2>'."\n";
296
			$res .= '<p class="zone_alert">'.INS_PAS_DE_RESULTATS.'</p>'."\n";
221
			$res .= '<p class="zone_alert">'.INS_PAS_DE_RESULTATS.'</p>'."\n";
297
		}
222
		}
298
	}
223
	} else {		
299
	$res .='<h2>'.INS_DIX_DERNIERES_INSCRIPTIONS.'</h2>'."\n";
224
		$res .='<h2>'.INS_DIX_DERNIERES_INSCRIPTIONS.'</h2>'."\n";
300
	$requete = 'SELECT '.INS_CHAMPS_ID.', '.INS_CHAMPS_NOM.', '.INS_CHAMPS_PRENOM.', '.INS_CHAMPS_VILLE.', '.INS_CHAMPS_CODE_POSTAL;
225
		$requete = 'SELECT '.INS_CHAMPS_ID.', '.INS_CHAMPS_NOM.', '.INS_CHAMPS_PRENOM.', '.INS_CHAMPS_VILLE.', '.INS_CHAMPS_CODE_POSTAL;
301
	$requete .= ' FROM '.INS_ANNUAIRE.' ORDER BY '.INS_CHAMPS_DATE.' DESC LIMIT 0 , 10';
226
		$requete .= ' FROM '.INS_ANNUAIRE.' ORDER BY '.INS_CHAMPS_DATE.' DESC LIMIT 0 , 10';
302
	$resultat = $GLOBALS['ins_db']->query($requete);
227
		$resultat = $GLOBALS['ins_db']->query($requete);
303
	if ($resultat->numRows()>0) {
228
		if ($resultat->numRows()>0) {
304
		$i=0;
229
			$i=0;
305
		while ($ligne = $resultat->fetchRow(DB_FETCHMODE_ASSOC)) {
230
			while ($ligne = $resultat->fetchRow(DB_FETCHMODE_ASSOC)) {
306
			$donnees_membres[$i++]=$ligne;
231
				$donnees_membres[$i++]=$ligne;
-
 
232
			}
-
 
233
		    $res .= listes_inscrit($donnees_membres, 0);
-
 
234
		}
-
 
235
		else {
-
 
236
			$res .= '<p class="zone_alert">'.INS_PAS_DE_RESULTATS.'</p>'."\n";
307
		}
237
		}
308
	    $res .= listes_inscrit($donnees_membres, 0);
-
 
309
	} else {
-
 
310
		$res .= '<p class="zone_alert">'.INS_PAS_DE_RESULTATS.'</p>'."\n";
-
 
311
	}
238
	}
312
    return $res ;
239
    return $res ;
313
}
240
}
Line 314... Line 241...
314
 
241
 
Line 317... Line 244...
317
 *  en fonction de la requete passé en parametre
244
 *  en fonction de la requete passé en parametre
318
 *
245
 *
319
 * @return  Renvoie le code HTML de la liste des inscrits
246
 * @return  Renvoie le code HTML de la liste des inscrits
320
 */
247
 */
Line 321... Line 248...
321
 
248
 
322
function listes_inscrit(& $donnees_membres, $affiche_form_mail=1, $carto_config = '') {
249
function listes_inscrit(& $donnees_membres, $affiche_form_mail=1) {
323
    $res = '';
250
    $res = '';
324
    if ($GLOBALS['AUTH']->getAuth()&&$affiche_form_mail) {$res .= '<form action="'.$GLOBALS['ins_url']->getURL().'" method="post" name="formmail">'."\n";}
251
    if ($GLOBALS['AUTH']->getAuth()&&$affiche_form_mail) {$res .= '<form action="'.$GLOBALS['ins_url']->getURL().'" method="post" name="formmail">'."\n";}
325
    $res .= '<ul style="clear:both;">'."\n";
252
    $res .= '<ul style="clear:both;">'."\n";
Line 326... Line 253...
326
    if ($GLOBALS['AUTH']->getAuth()&&$affiche_form_mail) {
253
    if ($GLOBALS['AUTH']->getAuth()&&$affiche_form_mail) {
327
    	
254
    	
328
    	$res .= '<form action="'.$GLOBALS['ins_url']->getURL().'" method="post" name="formmail">'."\n";
255
    	$res .= '<form action="'.$GLOBALS['ins_url']->getURL().'" method="post" name="formmail">'."\n";
329
    	}
256
    	}
330
    $res .= '<ul>'."\n";
-
 
331
    for ($i=0;$i<count($donnees_membres);$i++) {
-
 
332
    	if (isset($carto_config['cc_champs_id'])) {
-
 
333
			$id = $donnees_membres[$i][$carto_config['cc_champs_id']] ;    		
257
    $res .= '<ul>'."\n";
334
    	} else {
-
 
335
    		$id = $donnees_membres[$i][INS_CHAMPS_ID];
258
    for ($i=0;$i<count($donnees_membres);$i++) {
336
    	}
259
    	$id = array_shift($donnees_membres[$i]);
337
    	$GLOBALS['ins_url']->addQueryString('voir_fiche', $id);
260
    	$GLOBALS['ins_url']->addQueryString('voir_fiche', $id);
338
    	$res .= '<li>'."\n";
261
    	$res .= '<li>'."\n";
339
    	if ($GLOBALS['AUTH']->getAuth()&&$affiche_form_mail) {
262
    	if ($GLOBALS['AUTH']->getAuth()&&$affiche_form_mail) {
340
    		$res.='<input type="checkbox" name="select[]" value="'.$id.'" />'."\n";
263
    		$res.='<input type="checkbox" name="select[]" value="'.$id.'" />'."\n";
341
    	}
264
    	}
342
    	$res .= '<a href="'.$GLOBALS['ins_url']->getURL().'">'."\n";
265
    	$res .= '<a href="'.$GLOBALS['ins_url']->getURL().'">'."\n";    	
343
    	if (isset($carto_config['cc_titre'])) {
-
 
344
    		$nom = $donnees_membres[$i][$carto_config['cc_titre']];
266
    	$res .= '<strong>'.$donnees_membres[$i][INS_CHAMPS_NOM].
345
    	} else {
-
 
346
    		$nom = $donnees_membres[$i][INS_CHAMPS_NOM];
267
				'&nbsp;'.$donnees_membres[$i][INS_CHAMPS_PRENOM].'</strong>'."\n".
347
    	}
268
    	        '&nbsp;'.$donnees_membres[$i][INS_CHAMPS_CODE_POSTAL].
348
    	$res .= '<strong>'.$nom;
269
    	        '&nbsp;'.$donnees_membres[$i][INS_CHAMPS_VILLE];
349
    	$res .= '</a>'."\n".'</li>'."\n";
270
    	$res .= '</a>'."\n".'</li>'."\n";
350
    }
271
    }
351
    $res .= '</ul>'."\n";
272
    $res .= '</ul>'."\n";
352
    if ($GLOBALS['AUTH']->getAuth()&&$affiche_form_mail) {
273
    if ($GLOBALS['AUTH']->getAuth()&&$affiche_form_mail) {
353
    	$res .= INS_CHECK_UNCHECK ;
274
    	$res .= INS_CHECK_UNCHECK ;
354
    	$res .= '&nbsp;<input type="checkbox" name="selecttotal" onclick="javascript:setCheckboxes(\'formmail\');"><br />';
275
    	$res .= '&nbsp;<input type="checkbox" name="selecttotal" onclick="javascript:setCheckboxes(\'formmail\');"><br />';
355
    	$res .= '<h3>'.INS_ENVOYER_MAIL.'</h3>'."\n";
276
    	$res .= '<h3>'.INS_ENVOYER_MAIL.'</h3>'."\n";
356
    	$res .= '<p style="text-align:right;">'.INS_SUJET.'&nbsp;:&nbsp;<input style="border:1px solid #000;width:450px;" type="text" name="titre_mail"><br />'."\n".
277
    	$res .= '<p style="text-align:right;">'.INS_SUJET.'&nbsp;:&nbsp;<input style="border:1px solid #000;width:450px;" type="text" name="titre_mail"><br />'."\n".
-
 
278
           		INS_MESSAGE.'&nbsp;:&nbsp;<textarea style="border:1px solid #000;width:450px;" name="corps" rows="5" cols="60"></textarea></p>'."\n".
357
           		INS_MESSAGE.'&nbsp;:&nbsp;<textarea style="border:1px solid #000;width:450px;" name="corps" rows="5" cols="60"></textarea></p>'."\n".
279
           		'<p style="width:100px;margin:4px auto;text-align:center;"><input name="bouton_envoi_mail" type="submit" value="'.INS_ENVOYER.'" /></p>'."\n".
358
           		'<p style="width:100px;margin:4px auto;text-align:center;"><input name="bouton_envoi_mail" type="submit" value="'.INS_ENVOYER.'" /></p>'."\n".
280
           		'<p style="width:100px;margin:4px auto;text-align:center;"><input type="submit" value="'.INS_ENVOYER.'" /></p>'."\n".
359
           		'<input type="hidden" name="fin" value="true" /><input type="hidden" name="mailer" value="1" />'.
281
           		'<input type="hidden" name="fin" value="true" /><input type="hidden" name="mailer" value="1" />'.
360
				'</form>'."\n";
282
				'</form>'."\n";
361
	} else {
283
	} else {
Line 407... Line 329...
407
/** function carto_liste_fiches()
329
/** function carto_liste_fiches()
408
*
330
*
409
*
331
*
410
*	@return string  HTML
332
*	@return string  HTML
411
*/
333
*/
412
function carto_liste_fiches(&$monde, &$carto_config) {
334
function carto_liste_fiches(&$monde, $nom_table1, $nom_table2, $nom_champs_pays, $nom_champs_cp, $requete_sql) {
Line 413... Line 335...
413
 
335
 
414
    global $mailer;
336
    global $mailer;
Line 415... Line -...
415
    global $select;//utilisé dans liste_inscrit.php
-
 
416
    
337
    global $select;//utilisé dans liste_inscrit.php
417
 
338
    
418
	$javascript = "
339
	$javascript = "
419
	function confirmer () {
340
	function confirmer () {
420
        if (window.confirm ('Cliquez sur OK pour confirmer.')) {
341
        if (window.confirm ('Cliquez sur OK pour confirmer.')) {
Line 442... Line 363...
442
 
363
 
443
	";
364
	";
Line 444... Line 365...
444
	GEN_stockerCodeScript($javascript);
365
	GEN_stockerCodeScript($javascript);
-
 
366
 
Line 445... Line -...
445
 
-
 
446
	$res = '';
367
	$res = '';
447
	
368
	$tabmonde = explode ('*',$monde->historique);
448
	    
369
	
449
	$tabonglet = explode ('*', $monde->historique);
-
 
450
	$id_zone = $tabonglet[count($tabonglet)-1];
370
	// Premier cas, on vient de cliquer sur un pays qui n'est pas 
451
	$tabnom = explode ('*', $monde->nom);
371
	// la France, on affiche les adhérents de ce pays
452
		
372
	if (count($tabmonde) == 3) {
453
	$query = 'SELECT * FROM '.$monde->_info_table_zg['nom_table_zone'].
373
    	$argument = $tabmonde[2];
454
			' WHERE '.$monde->_info_table_zg['nom_chp_id_zone'].'="'.$id_zone.'"';
374
    	$query = 'SELECT * FROM carto_PAYS WHERE CP_ID_pays="'.$argument.'"';
455
	$result = $GLOBALS['ins_db']->query($query);
-
 
456
	if (DB::isError($result)) {
-
 
457
		return ($result->getMessage().'<br />'.$result->getDebugInfo()) ;
-
 
458
	}
-
 
459
	$row = $result->fetchRow(DB_FETCHMODE_ASSOC) ;    
-
 
460
	$pays = $row[$monde->_info_table_zg['nom_chp_nom_zone']];
-
 
461
	
-
 
462
	$res .='<br /><strong>'.INS_RETOUR_A_LA_CARTE."\n";
-
 
463
	foreach ($tabonglet as $key => $value) {
-
 
464
    	if ($key == 0) {
-
 
465
        	$chemin = $value;
-
 
466
        	$value = 'monde';
-
 
467
        	$GLOBALS['ins_url']->addQueryString('historique_cartes', $chemin);
-
 
468
        	$res .= '<a class="chemin_carto" href="'.$GLOBALS['ins_url']->getURL().'">&nbsp;&gt;&nbsp;'.$tabnom[$key]."</a>";
-
 
469
    	} else if ($key == (count($tabonglet)-1)) {
-
 
470
        	$res .= "<a class=\"chemin_carto\">&nbsp;&gt;&nbsp;$pays</a>";
-
 
471
    	} else {
-
 
472
        	$chemin .= '*'.$value;
375
    	$result = $GLOBALS['ins_db']->query($query);
473
        	$GLOBALS['ins_url']->addQueryString('historique_cartes', $chemin);
-
 
-
 
376
    	if (DB::isError($result)) {
-
 
377
    		die ($result->getMessage().'<br />'.$result->getDebugInfo()) ;
-
 
378
    	}
-
 
379
    	$row = $result->fetchRow(DB_FETCHMODE_OBJECT) ;    
-
 
380
    	$pays = $row->CP_Intitule_pays;
474
        	$res .= '<a class="chemin_carto" href="'.$GLOBALS['ins_url']->getURL().'">&nbsp;&gt;&nbsp;'.$tabnom[$key]."</a>";
381
    	$monde->nom = $monde->nom.'*'.$pays;    
475
    	}
382
    	$tabonglet = explode ('*', $monde->historique);
-
 
383
    	$tabnom = explode ('*', $monde->nom);
-
 
384
    	$res .='<br /><strong>'.INS_RETOUR_A_LA_CARTE."\n";
-
 
385
    	foreach ($tabonglet as $key => $value) {
476
	}
386
        	if ($key == 0) {
477
    $res .= '</strong>'."\n";
387
            	$chemin = $value;
478
    if (isset($_GET['voir_fiche'])) {
388
            	$value = 'monde';
479
    	include_once PAP_CHEMIN_RACINE.'/client/bazar/bibliotheque/bazar.fonct.rss.php' ;
389
            	$res .= "<a class=\"chemin_carto\" href=\"".$monde->url."&amp;historique_cartes=$chemin\">&nbsp;&gt;&nbsp;".$tabnom[$key]."</a>";
480
    	if (defined('PAP_VERSION')) { //si on est dans Papyrus
390
        	} else if ($key == (count($tabonglet)-1)) {
-
 
391
            	$res .= "<a class=\"chemin_carto\">&nbsp;&gt;&nbsp;$pays</a>";
481
			GEN_stockerStyleExterne( 'bazar_interne', 'client/bazar/bazar.interne.css');
392
        	} else {
482
		}
393
            	$chemin .= '*'.$value;
-
 
394
            	$res .= "<a class=\"chemin_carto\" href=\"".$monde->url."&amp;historique_cartes=$chemin\">&nbsp;&gt;&nbsp;".$tabnom[$key]."</a>";
-
 
395
        	}
483
    	$res .= baz_voir_fiche(0, $_GET['voir_fiche']);
396
    	}
484
    	return $res ;
397
        $res .= '</strong>'."\n";
485
    }
398
    	$capitale = $row->CP_Intitule_capitale;
486
    $query2 = ' SELECT count('.$monde->champs_jointure.') as nbr'.
399
	    $query2 = ' SELECT count('.$nom_champs_cp.') as nbr'.
487
	          ' FROM '.$carto_config['cc_table1'];
400
    	          ' FROM '.$nom_table1;
488
	if ($carto_config['cc_table2']!='') $query2 .=  ', '.$carto_config['cc_table2'].' as '.$monde->id;
-
 
489
	//$query2 .= ' WHERE '.$nom_champs_pays.'="'.$argument.'"';
-
 
-
 
401
    	if ($nom_table2!=0) $query2 .=  ', '.$nom_table2;
490
	if ($carto_config['cc_sql'] != '') $query2 .=  ' where ('.$carto_config['cc_sql'].')';
402
    	$query2 .= ' WHERE '.$nom_champs_pays.'="'.$argument.'"';
491
	$query2 .= ' and '.$monde->champs_jointure.'="'.$id_zone.'"';
403
    	if ($requete_sql!='') $query2 .=  ' AND ('.$requete_sql.')';
492
	if ($monde->sql_complementaire != '') $query2 .= ' and '.$monde->sql_complementaire;
404
    	
493
	$result2 = $GLOBALS['ins_db']->query($query2);
405
    	$result2 = $GLOBALS['ins_db']->query($query2);
494
	if (DB::isError($result2)) {
406
    	if (DB::isError($result2)) {
495
		return ($result2->getMessage().'<br />'.$result2->getDebugInfo()) ;
407
    		die ($result2->getMessage().'<br />'.$result2->getDebugInfo()) ;
496
	}
408
    	}
497
    $row2 = $result2->fetchRow(DB_FETCHMODE_OBJECT) ;
409
	    $row2 = $result2->fetchRow(DB_FETCHMODE_OBJECT) ;
498
    $res .= '<br /><br /><div class="info_pays">'.$pays.' : ' ;
-
 
499
    if ($row2->nbr == 0) {
-
 
500
	    $res .= INS_AUCUN_INSCRIT.' '.INS_LABEL_PROJET ;
-
 
501
    } else {
-
 
502
    	$res .= $row2->nbr.' '.INS_INSCRIT;
-
 
503
    	if ($row2->nbr > 1) $res .= 's' ;
410
	    $res .= '<br /><br /><div class="info_pays">'.$pays.' (capitale: '.$capitale.') : ' ;
504
    	$res .= ' '.INS_LABEL_PROJET ;
-
 
505
    }
411
	    if ($row2->nbr == 0) {
506
    
412
		    $res .= INS_AUCUN_INSCRIT.' '.INS_LABEL_PROJET ;
507
    $res .= "</div>\n";
-
 
508
    //*/
413
		    
509
    if ($row2->nbr>0) {
414
	    } 
510
	    if ((INS_NECESSITE_LOGIN)and(!$GLOBALS['AUTH']->getAuth())) {
415
	    else if ($row2->nbr == 1) {
-
 
416
		    $res .= $row2->nbr.' '.INS_INSCRIT.' '.INS_LABEL_PROJET ;
-
 
417
	    }
-
 
418
	    else {
-
 
419
		    $res .= $row2->nbr.' '.INS_INSCRIT.'s '.INS_LABEL_PROJET ;
-
 
420
	    }
511
		    $res .= '<br /><p class="zone_alert">'.INS_VOUS_DEVEZ_ETRE_INSCRIT.'</p>'."\n" ;
421
	    $res .= "</div>\n";
-
 
422
	    if ($row2->nbr>0) {
-
 
423
		    if ((INS_NECESSITE_LOGIN)and(!$GLOBALS['AUTH']->getAuth())) {
-
 
424
			    $res .= '<br /><p class="zone_alert">'.INS_VOUS_DEVEZ_ETRE_INSCRIT.'</p>'."\n" ;
512
	    }
425
		    }
-
 
426
		    else {
513
	    else {
427
			    $requete = 'SELECT '.INS_CHAMPS_ID.', '.INS_CHAMPS_NOM.', '.INS_CHAMPS_PRENOM.', '.INS_CHAMPS_VILLE.', '.INS_CHAMPS_CODE_POSTAL.' FROM '.$nom_table1;
-
 
428
			    if ($nom_table2!=0) $requete .=  ', '.$nom_table2;						 
-
 
429
			    $requete .= ' WHERE '.$nom_champs_pays.'="'.$argument.'"';
-
 
430
			    if ($requete_sql!='') $requete .=  ' AND ('.$requete_sql.')';
-
 
431
			    $requete .= ' ORDER BY '.INS_CHAMPS_NOM.', '.INS_CHAMPS_PRENOM;
-
 
432
				$resultat = $GLOBALS['ins_db']->query($requete);
-
 
433
				$i=0;
-
 
434
				while ($ligne = $resultat->fetchRow(DB_FETCHMODE_ASSOC)) {
-
 
435
					$donnees_membres[$i++]=$ligne;
-
 
436
				}
-
 
437
				$res .= listes_inscrit($donnees_membres, 1);
-
 
438
				if ($mailer==1) {
-
 
439
				    if (!is_array($select)) {
-
 
440
					    $res .= "<div>".INS_NO_DESTINATAIRE."</div>";
-
 
441
				    }
-
 
442
				    else {
-
 
443
					    $res .= '<div class="zone_info">'.INS_MESSAGE_ENVOYE.'</div>'."\n" ;
-
 
444
					    carto_envoie_mail() ;
-
 
445
				    }
-
 
446
				}
-
 
447
				else {
-
 
448
				    $res .= carto_texte_cocher() ;
-
 
449
				}
514
		    $requete = 'SELECT '.$carto_config['cc_titre'].','.$carto_config['cc_champs_id'].'  FROM '.
450
				$res .= carto_formulaire() ;			   
515
		    			$carto_config['cc_table1'];
451
		    }
-
 
452
	    }
-
 
453
		
516
		    if ($carto_config['cc_table2'] != '') $requete .=  ', '.$carto_config['cc_table2'].' as '.$monde->id;
454
		// 2 ème cas, on vient de cliquer sur un département français
-
 
455
		} else if (count($tabmonde) == 4) {
-
 
456
	    $argument = $tabmonde[3];
517
		    						 
457
	    $query = 'SELECT * FROM '.INS_TABLE_DPT.' WHERE '.INS_CHAMPS_ID_DEPARTEMENT.'='.$argument;
-
 
458
	    $result = $GLOBALS['ins_db']->query($query);
518
		    $requete .= ' where '.$monde->champs_jointure.'="'.$id_zone.'"';
459
	    if (DB::isError($result)) {
-
 
460
	        die ($result->getMessage() .'<br />'.$result->getDebugInfo());
519
		    if ($carto_config['cc_sql'] != '') $requete .=  ' and '.$carto_config['cc_sql'].'';
461
	    }
-
 
462
	    $row = $result->fetchRow(DB_FETCHMODE_ASSOC);
-
 
463
	    $nom = $row[INS_CHAMPS_NOM_DEPARTEMENT];
-
 
464
	    
-
 
465
	    $query2 = ' SELECT count('.$nom_champs_cp.') as nbr'.
-
 
466
	              ' FROM '.$nom_table1;
-
 
467
	    if ($nom_table2!=0) $query2 .=  ', '.$nom_table2;
520
		    if ($monde->sql_complementaire != '') $requete .= ' and '.$monde->sql_complementaire;
468
	    $query2 .= ' WHERE '.$nom_champs_cp.' LIKE "'.$argument.'%"'.
521
		    $requete .= ' ORDER BY '.$carto_config['cc_titre'];
469
	              ' AND '.$nom_champs_pays.'="FR"';
522
		    
470
	    if ($requete_sql!='') $query2 .=  ' AND ('.$requete_sql.')';
523
			$resultat = $GLOBALS['ins_db']->query($requete);
471
	    $result2 = $GLOBALS['ins_db']->query($query2);
524
			if (DB::isError($resultat)) {
472
	    if (DB::isError($result2)) {
525
				return ($resultat->getMessage().'<br />'.$resultat->getDebugInfo()) ;
473
	    	die ($result2->getMessage().'<br />'.$result2->getDebugInfo()) ;
-
 
474
	    }
-
 
475
	    
-
 
476
	    $row2 = $result2->fetchRow(DB_FETCHMODE_OBJECT);
-
 
477
	    $res .= '<br /><p class="zone_info">'."\n" ;
526
			}
478
	    if ($row2->nbr == 0) {
-
 
479
	        $res .= INS_AUCUN_INSCRIT." ".INS_LABEL_PROJET ;
527
			$i=0;
480
	    }
-
 
481
	    else if ($row2->nbr == 1) {
528
			while ($ligne = $resultat->fetchRow(DB_FETCHMODE_ASSOC)) {
482
	        $res .= $row2->nbr." ".INS_INSCRIT." ".INS_LABEL_PROJET ;
-
 
483
	    } 
-
 
484
	    else {
529
				$donnees_membres[$i++]=$ligne;
485
	        $res .= $row2->nbr." ".INS_INSCRIT."s ".INS_LABEL_PROJET ;
-
 
486
	    }
-
 
487
	    $res .= '</p>'."\n";
-
 
488
	    if ($row2->nbr>0) {
-
 
489
		    if ((INS_NECESSITE_LOGIN)and(!$GLOBALS['AUTH']->getAuth())) {
-
 
490
		    	$res .= '<br /><p class="zone_alert">'.INS_VOUS_DEVEZ_ETRE_INSCRIT.'</p>'."\n" ;
-
 
491
		    } else {		    
530
			}
492
			    $requete = 'SELECT '.INS_CHAMPS_ID.', '.INS_CHAMPS_NOM.', '.INS_CHAMPS_PRENOM.', '.INS_CHAMPS_VILLE.', '.INS_CHAMPS_CODE_POSTAL.' FROM '.$nom_table1;
531
			$res .= listes_inscrit($donnees_membres, 1, $carto_config);
493
			    if ($nom_table2!=0) $requete .=  ', '.$nom_table2;			    
532
			if ($mailer==1) {
494
			    
-
 
495
			    if (strlen($argument)==1) {
-
 
496
			    	$argument='0'.$argument;
-
 
497
			    }
-
 
498
			    
-
 
499
			    $requete .= ' WHERE '.$nom_champs_cp.' LIKE "'.$argument.'%"'.
-
 
500
			    ' AND '.$nom_champs_pays.'="FR"';
-
 
501
			    if ($requete_sql!='') $requete .=  ' AND ('.$requete_sql.')';
-
 
502
			    $requete .= ' ORDER BY '.INS_CHAMPS_NOM.', '.INS_CHAMPS_PRENOM;
-
 
503
				$resultat = $GLOBALS['ins_db']->query($requete);
-
 
504
				$i=0;
-
 
505
				while ($ligne = $resultat->fetchRow(DB_FETCHMODE_ASSOC)) {
-
 
506
					$donnees_membres[$i++]=$ligne;
-
 
507
				}
-
 
508
				$res .= listes_inscrit($donnees_membres, 1);
-
 
509
		    	
533
			    if (!is_array($select)) {
510
			    if ($mailer==1) {
534
				    $res .= "<div>".INS_NO_DESTINATAIRE."</div>";
511
				    if (!is_array($select)) {
535
			    }
512
					    $res.= INS_NO_DESTINATAIRE;
-
 
513
				    } else {
536
			    else {
514
					    $res .= '<p class="zone_info">'.INS_MESSAGE_ENVOYE."</p>\n" ;
537
				    $res .= '<div class="zone_info">'.INS_MESSAGE_ENVOYE.'</div>'."\n" ;
-
 
538
				    carto_envoie_mail() ;
-
 
539
			    }
-
 
540
			}
515
					    carto_envoie_mail() ;
541
			else {
-
 
542
			    //$res .= carto_texte_cocher() ;
516
				    }
543
			}
-
 
544
			//$res .= carto_formulaire() ;			   
-
 
545
	    }
-
 
546
    
517
			    }
547
 
518
		    }
548
		
519
	    }
Line 589... Line 560...
589
    if (DB::isError($resultat)) {
560
    if (DB::isError($resultat)) {
590
        die ($resultat->getMessage().'<br />'.$resultat->getDebugInfo());
561
        die ($resultat->getMessage().'<br />'.$resultat->getDebugInfo());
591
    }
562
    }
592
    $ligne = $resultat->fetchRow(DB_FETCHMODE_ASSOC);
563
    $ligne = $resultat->fetchRow(DB_FETCHMODE_ASSOC);
Line 593... Line 564...
593
 
564
 
Line 594... Line 565...
594
    include_once PAP_CHEMIN_API_PEAR.'Mail.php' ;
565
    include_once 'Mail.php' ;
Line 595... Line 566...
595
    
566
    
596
    $entetes['From']    = $ligne[INS_CHAMPS_MAIL];
567
    $entetes['From']    = $ligne[INS_CHAMPS_MAIL];
Line 616... Line 587...
616
    
587
    
617
    mail(INS_MAIL_ADMIN, stripslashes(INS_SURVEILLANCE_ENVOI_MAIL.$GLOBALS['titre_mail']), $GLOBALS['corps'], $entetes);
588
    mail(INS_MAIL_ADMIN, stripslashes(INS_SURVEILLANCE_ENVOI_MAIL.$GLOBALS['titre_mail']), $GLOBALS['corps'], $entetes);
618
    $GLOBALS['corps'] = '';
589
    $GLOBALS['corps'] = '';
619
    $GLOBALS['titre_mail'] = '';
590
    $GLOBALS['titre_mail'] = '';
620
}
-
 
621
 
-
 
622
                                    
-
 
623
//-----Fonctions de l'inscription-----------------------------------------------------+
-
 
624
 
-
 
625
 
-
 
626
/**
-
 
627
 *
-
 
628
 * @param   array   les valeurs renvoyés par le formulaire
-
 
629
 * @return
-
 
630
 */
-
 
631
function inscription_demande($valeurs) {
-
 
632
    // On stocke les informations dans un variable de session
-
 
633
    // On coupe l'identifiant de session pour ne prendre que les 8 premiers caractères
-
 
634
    // afin d'éviter d'obtenir une url trop longue
-
 
635
    $chaine = substr (session_id(), 0, 8) ;
-
 
636
    $requete_verif = 'select * from inscription_demande where id_identifiant_session="'.$chaine.'"' ;
-
 
637
    $resultat_verif = $GLOBALS['ins_db']->query ($requete_verif) ;
-
 
638
    if ($resultat_verif->numRows() != 0) {
-
 
639
        $requete_suppression = 'delete from inscription_demande where id_identifiant_session="'.$chaine.'"' ;
-
 
640
        $GLOBALS['ins_db']->query ($requete_suppression) ;
-
 
641
    }
-
 
642
    $requete = 'insert into inscription_demande set id_identifiant_session="'.$chaine.'", id_donnees="'.
-
 
643
                addslashes(serialize($valeurs)).'", id_date=NOW()' ;
-
 
644
    $resultat = $GLOBALS['ins_db']->query ($requete) ;
-
 
645
    if (DB::isError ($resultat)) {
-
 
646
        echo ("Echec de la requete : $requete<br />".$resultat->getMessage()) ;
-
 
647
    }
-
 
648
    // On envoie un email de confirmation pour l'utilisateur
-
 
649
    $GLOBALS['ins_url']->addQueryString ('id', $chaine) ;
-
 
650
    
-
 
651
    
-
 
652
    if (INS_UTILISE_REECRITURE_URL) {
-
 
653
        $url = 'http://'.$GLOBALS['ins_url']->host.'/'.INS_URL_PREFIXE.$chaine ;
-
 
654
    } else {
-
 
655
        $url = str_replace ('&amp;', '&', $GLOBALS['ins_url']->getURL()) ;
-
 
656
    }
-
 
657
    
-
 
658
    require_once PAP_CHEMIN_RACINE.'api/pear/HTML/Template/IT.php';
-
 
659
    $tpl = new HTML_Template_IT() ;
-
 
660
    // Le gabarit du mail est dans un template
-
 
661
    // template 2
-
 
662
    $requete = 'select it_template from inscription_template where it_id_template=2'.
-
 
663
    			' and it_i18n like "%'.INS_LANGUE_DEFAUT.'"' ;
-
 
664
    
-
 
665
    if (!$tpl -> setTemplate($GLOBALS['ins_db']->getOne ($requete))) {
-
 
666
    	echo 'erreur' ;	
-
 
667
    }
-
 
668
	$tpl->setVariable('URL_INSCRIPTION', $url) ;
-
 
669
 
-
 
670
    mail ($GLOBALS['email'], 'Inscription', $tpl->get(), 'From: '.INS_MAIL_ADMIN_APRES_INSCRIPTION) ;
-
 
671
}
-
 
672
 
-
 
673
/**
-
 
674
 *
-
 
675
 * @param   array   les valeurs renvoyés par le formulaire
-
 
676
 * @return
-
 
677
 */
-
 
678
if (!function_exists('inscription_validee')) {
-
 
679
	function inscription_validee($valeurs) {
-
 
680
		inscription_insertion($valeurs) ;
-
 
681
		$GLOBALS['AUTH']->username = $valeurs['email'] ;
-
 
682
		$GLOBALS['AUTH']->password = $valeurs['mot_de_passe'] ;
-
 
683
		// On loggue l'utilisateur
-
 
684
		$GLOBALS['AUTH']->login() ;
-
 
685
		// inscription à la lettre d'information
-
 
686
		if (INS_CHAMPS_LETTRE != '' && isset ($valeurs['lettre'])) {
-
 
687
			inscription_lettre(INS_MAIL_INSCRIPTION_LISTE) ;
-
 
688
		}
-
 
689
	}
-
 
690
}
-
 
691
/**
-
 
692
*   Renvoie l'accueil de l'inscription
-
 
693
*
-
 
694
*   @return string	HTML
-
 
695
*/
-
 
696
function inscription_AUTH_formulaire_login() {   
-
 
697
    require_once PAP_CHEMIN_RACINE.'api/pear/HTML/Template/IT.php';
-
 
698
    $tpl = new HTML_Template_IT() ;
-
 
699
    // Le formulaire pour se logguer est dans un template
-
 
700
    // template 1
-
 
701
    $requete = 'SELECT it_template FROM inscription_template WHERE it_id_template=1'.
-
 
702
    			' AND it_i18n LIKE "%'.INS_LANGUE_DEFAUT.'"' ;
-
 
703
    
-
 
704
    if (!$tpl -> setTemplate($GLOBALS['ins_db']->getOne ($requete))) {
-
 
705
    	echo 'erreur' ;	
-
 
706
    }
-
 
707
	$tpl->setVariable('URL_INSCRIPTION', $GLOBALS['ins_url']->getURL());
-
 
708
    return $tpl->get() ;
-
 
709
    
-
 
710
}
-
 
711
 
-
 
712
 
-
 
713
/** formulaire_envoi_passe() - Renvoie le code HTML d'un formulaire d'envoi de mot de passe par mail 
-
 
714
*
-
 
715
* @return   string  HTML
-
 
716
*/
-
 
717
function formulaire_envoi_passe() {
-
 
718
    $res = '<h2>'.INS_SI_PASSE_PERDU.'</h2>'."\n" ;
-
 
719
    $res .= '<form action="'.$GLOBALS['ins_url']->getURL().'&amp;action=sendpasswd" method="post">'."\n" ;
-
 
720
    $res .= '<p class="label100">'.INS_EMAIL.' : </p>'."\n" ;
-
 
721
    $res .= '<input type="text" value="';
-
 
722
    if (isset($_POST['username'])) $res .= $_POST['username'];
-
 
723
    $res .= '" name="mail" size="32" />'."\n" ;
-
 
724
    $res .= '<input type="submit" value="'.INS_ENVOIE_PASSE.'" />' ;
-
 
725
    $res .= '</form><br />'."\n" ;
-
 
726
    $res .= inscription_AUTH_formulaire_login() ;
-
 
727
    return $res;
-
 
728
}
-
 
729
 
-
 
730
 
-
 
731
function insertion($valeur) {
-
 
732
    // ===========  Insertion dans l'annuaire ===================
-
 
733
	// Génération du nom wikini à partir du nom et du prénom
-
 
734
    if (INS_UTILISE_WIKINI && INS_NOM_WIKINI_GENERE) {
-
 
735
        $valeur['nom_wiki'] = inscription_genere_nom_wiki ($valeur['nom'], isset ($valeur['prenom']) ?  $valeur['prenom'] : '') ;
-
 
736
    } else {
-
 
737
    	if (!INS_NOM_WIKINI_GENERE)	{
-
 
738
    		$valeur['nom_wiki'] = $valeur['nomwiki'];	
-
 
739
    	}
-
 
740
    }    
-
 
741
    $id_utilisateur = inscription_nextId(INS_ANNUAIRE, INS_CHAMPS_ID, $GLOBALS['ins_db']) ;    
-
 
742
    $requete = 'INSERT INTO '.INS_ANNUAIRE.' SET '.
-
 
743
                INS_CHAMPS_ID.'="'.$id_utilisateur.'",'.
-
 
744
                inscription_requete_annuaire($valeur) ;
-
 
745
 
-
 
746
    $resultat = $GLOBALS['ins_db']->query($requete) ;
-
 
747
    if (DB::isError($resultat)) {
-
 
748
        die ($resultat->getMessage().$resultat->getDebugInfo()) ;
-
 
749
    }
-
 
750
 
-
 
751
    // ================ Insertion dans SPIP =========================================
-
 
752
    if (INS_UTILISE_SPIP) {
-
 
753
        inscription_spip($id_utilisateur, $valeur) ;
-
 
754
    }
-
 
755
	if (INS_UTILISE_WIKINI) inscription_interwikini_users('', $valeur) ;
-
 
756
	return $id_utilisateur ;
-
 
757
}
-
 
758
 
-
 
759
 
-
 
760
/**
-
 
761
*   Réalise une mise à jour dans la base de donnée
-
 
762
*
-
 
763
*   @param  array   un tableau de valeur avec en clé les noms des champs du formulaire
-
 
764
*   @return void
-
 
765
*/
-
 
766
function mise_a_jour($valeur, $id = '') {
-
 
767
    // ====================Mise à jour dans l'annuaire gen_annuaire ====================
-
 
768
	if ($id == '') {
-
 
769
		$id = $GLOBALS['AUTH']->getAuthData(INS_CHAMPS_ID);
-
 
770
	}
-
 
771
    $requete = 'update '.INS_ANNUAIRE.' set '.
-
 
772
                inscription_requete_annuaire ($valeur).
-
 
773
                'where '.INS_CHAMPS_ID.'="'.$id.'"';
-
 
774
    $resultat = $GLOBALS['ins_db']->query ($requete) ;
-
 
775
    if (DB::isError($resultat)) {
-
 
776
        die ($resultat->getMessage().$resultat->getDebugInfo()) ;
-
 
777
    }
-
 
778
    unset ($resultat) ;
-
 
779
 
-
 
780
    // ========================= Mise à jour dans SPIP ================================
-
 
781
    if (INS_UTILISE_SPIP) {
-
 
782
        mod_inscription_spip($GLOBALS['AUTH']->getAuthData(INS_CHAMPS_ID), $valeur) ;
-
 
783
    }
-
 
784
}
-
 
785
 
-
 
786
/** requete_annuaire () - Renvoie une chaine contenant les champs de l'annuaire avec leur valeur suite à le fonction process de QuickForm
-
 
787
*
-
 
788
* @return   string  une requete du type champs="valeur",...
-
 
789
*/
-
 
790
 
-
 
791
function requete_annuaire($valeur) {
-
 
792
    $req = INS_CHAMPS_NOM.'="'.addslashes($valeur['nom']).'", ';
-
 
793
    if (isset($valeur['est_structure']) && $valeur['est_structure'] == 0) 
-
 
794
    			$req .= INS_CHAMPS_PRENOM.'="'.addslashes($valeur['prenom']).'", ';
-
 
795
    // Initialisation de variable pour éviter des notices
-
 
796
    foreach (array ('adresse_1', 'adresse_2', 'ville', 'telephone', 'fax', 'site') as $val) {
-
 
797
    	if (!isset ($valeur[$val])) $valeur[$val] = '' ;   	
-
 
798
    }
-
 
799
 
-
 
800
    $req .= INS_CHAMPS_MAIL.'="'.addslashes($valeur['email']).'", ' ;
-
 
801
    $req .= INS_CHAMPS_PASSE.'="'.md5($valeur['mot_de_passe']).'", '.
-
 
802
            INS_CHAMPS_PAYS.'="'.addslashes($valeur['pays']).'", '.
-
 
803
            INS_CHAMPS_ADRESSE_1.'="'.addslashes($valeur['adresse_1']).'", '.
-
 
804
            INS_CHAMPS_ADRESSE_2.'="'.addslashes($valeur['adresse_2']).'", '.
-
 
805
            INS_CHAMPS_DATE_INSCRIPTION.'=NOW(), '.
-
 
806
            INS_CHAMPS_CODE_POSTAL.'="'.addslashes($valeur['cp']).'", '.
-
 
807
			INS_CHAMPS_VILLE.'="'.addslashes($valeur['ville']).'", '.
-
 
808
			INS_CHAMPS_EST_STRUCTURE.'="'.addslashes($valeur['est_structure']).'", '.
-
 
809
			INS_CHAMPS_TELEPHONE.'="'.addslashes($valeur['telephone']).'", '.
-
 
810
			INS_CHAMPS_FAX.'="'.addslashes($valeur['fax']).'", '.
-
 
811
			INS_CHAMPS_SITE_INTERNET.'="'.addslashes($valeur['site']).'" ';
-
 
812
			
-
 
813
	if (isset($valeur['visible'])) $req .= ', '.INS_CHAMPS_VISIBLE.'="'.$valeur['visible'].'"';
-
 
814
	else $req .= ', '.INS_CHAMPS_VISIBLE.'=0';
-
 
815
	
-
 
816
	if (INS_CHAMPS_LETTRE != '') {
-
 
817
		if (isset($valeur['lettre'])) {
-
 
818
			$req .= ', '.INS_CHAMPS_LETTRE.'="'.$valeur['lettre'].'" ';
-
 
819
			inscription_lettre('inscrire');
-
 
820
		}
-
 
821
		else {
-
 
822
			$req .= ', '.INS_CHAMPS_LETTRE.'=0 ';
-
 
823
			inscription_lettre('desinscrire');
-
 
824
		} 
-
 
825
	}
-
 
826
	
-
 
827
	if (isset($_FILES['image']['name']) && $_FILES['image']['name']!='') {
-
 
828
		$chemin_destination=INS_CHEMIN_APPLI.'presentations/logos/'.$_FILES['image']['name'];
-
 
829
		move_uploaded_file($_FILES['image']['tmp_name'], $chemin_destination);
-
 
830
		 $req .= ', '.INS_CHAMPS_LOGO.'="'.$_FILES['image']['name'].'"' ;
-
 
831
	}
-
 
832
	
-
 
833
	if (isset($valeur['sigle_structure'])) {
-
 
834
        $req .= ', '.INS_CHAMPS_SIGLE_STRUCTURE.'="'.addslashes($valeur['sigle_structure']).'"' ;
-
 
835
    }
-
 
836
    if (isset($valeur['num_agrement'])) {
-
 
837
        $req .= ', '.INS_CHAMPS_NUM_AGREMENT.'="'.addslashes($valeur['num_agrement']).'"' ;
-
 
838
    }
-
 
839
    // traitement du numéro de département pour la france
-
 
840
    if ($valeur['pays'] == 'FR') {
-
 
841
        if (preg_match("/^97|98[0-9]*/", $valeur['cp'])) {
-
 
842
            $n_dpt = substr($valeur['cp'], 0, 3) ;
-
 
843
        } else {
-
 
844
            $n_dpt = substr($valeur['cp'], 0, 2) ;
-
 
845
        }
-
 
846
        $req .= ",".INS_CHAMPS_DEPARTEMENT."='$n_dpt'";
-
 
847
    }
-
 
848
    
-
 
849
    if (INS_UTILISE_WIKINI && isset ($valeur['nom_wiki'])) $req .= ','.INS_CHAMPS_NOM_WIKINI.'="'.$valeur['nom_wiki'].'"';
-
 
850
    return $req ;
-
 
851
}
-
 
852
 
-
 
853
 
-
 
854
 
-
 
855
/** formulaire_defaults() - Renvoie un tableau avec les valeurs par défaut du formulaire d'inscription
-
 
856
*
-
 
857
* @return   array   Valeurs par défaut du formulaire d'inscription
-
 
858
*/
-
 
859
function formulaire_defaults($id = '') {
-
 
860
	if ($id == '') {
-
 
861
			$id = $GLOBALS['AUTH']->getAuthData(INS_CHAMPS_ID);
-
 
862
	}
-
 
863
    $requete = 'select '.INS_ANNUAIRE.'.* '.
-
 
864
                'from '.INS_ANNUAIRE.' '.
-
 
865
                'where '.INS_ANNUAIRE.'.'.INS_CHAMPS_ID.'= "'.$id.'"' ;
-
 
866
    $resultat = $GLOBALS['ins_db']->query ($requete) ;
-
 
867
    if (DB::isError($resultat)) {
-
 
868
    	die ($resultat->getMessage().'<br />'.$resultat->getDebugInfo()) ;
-
 
869
    }
-
 
870
    $ligne = $resultat->fetchRow(DB_FETCHMODE_ASSOC) ;
-
 
871
    $valeurs_par_defaut = array() ;
-
 
872
    $valeurs_par_defaut['email'] = $ligne[INS_CHAMPS_MAIL];
-
 
873
    $valeurs_par_defaut['nom'] = $ligne[INS_CHAMPS_NOM];
-
 
874
    $valeurs_par_defaut['prenom'] = $ligne[INS_CHAMPS_PRENOM] ;
-
 
875
    $valeurs_par_defaut['pays'] = $ligne[INS_CHAMPS_PAYS] ;
-
 
876
    if (INS_UTILISE_WIKINI) {$valeurs_par_defaut['nomwiki'] = $ligne[INS_CHAMPS_NOM_WIKINI] ;}
-
 
877
    $valeurs_par_defaut['cp'] = $ligne[INS_CHAMPS_CODE_POSTAL] ;
-
 
878
    $valeurs_par_defaut['ville'] = $ligne[INS_CHAMPS_VILLE] ;
-
 
879
    $valeurs_par_defaut['adresse_1'] = $ligne[INS_CHAMPS_ADRESSE_1] ;
-
 
880
    $valeurs_par_defaut['adresse_2'] = $ligne[INS_CHAMPS_ADRESSE_2] ;
-
 
881
    $valeurs_par_defaut['telephone'] = $ligne[INS_CHAMPS_TELEPHONE] ;
-
 
882
    $valeurs_par_defaut['fax'] = $ligne[INS_CHAMPS_FAX] ;
-
 
883
    if (INS_CHAMPS_STRUCTURE != '' && isset($ligne[INS_CHAMPS_STRUCTURE])) {
-
 
884
    	$valeurs_par_defaut['structure'] = $ligne[INS_CHAMPS_STRUCTURE] ;
-
 
885
    	//$valeurs_par_defaut['type_structure'] = $ligne['a_type_structure'];	
-
 
886
    }
-
 
887
    $valeurs_par_defaut['site'] = $ligne[INS_CHAMPS_SITE_INTERNET] ;
-
 
888
    $valeurs_par_defaut['lettre'] = $ligne[INS_CHAMPS_LETTRE] ;
-
 
889
    $valeurs_par_defaut['visible'] = $ligne[INS_CHAMPS_VISIBLE] ;
-
 
890
    $valeurs_par_defaut['sigle_structure'] = $ligne[INS_CHAMPS_SIGLE_STRUCTURE] ;
-
 
891
    if (INS_CHAMPS_NUM_AGREMENT != '') $valeurs_par_defaut['num_agrement'] = $ligne[INS_CHAMPS_NUM_AGREMENT] ;
-
 
892
    return $valeurs_par_defaut ;
-
 
893
}
-
 
894
 
-
 
895
 
-
 
896
/** info() - Renvoie une fiche d'information sur la personne ou la structure
-
 
897
* 
-
 
898
* @param  integer  identifiant de la fiche a afficher, mettre -1 pour voir sa propre fiche
-
 
899
* @param  text     nom de l'onglet de la fiche
-
 
900
*
-
 
901
* @return   text   Code HTML de la fiche
-
 
902
*/
-
 
903
function info($id=-1, $type_info='fiche') {
-
 
904
	if ($id==-1) $id=$GLOBALS['AUTH']->getAuthData(INS_CHAMPS_ID);
-
 
905
    $requete = 'SELECT * FROM '.INS_ANNUAIRE.' WHERE '.INS_ANNUAIRE.'.'
-
 
906
               .INS_CHAMPS_ID.'="'.$id.'"' ;          
-
 
907
    $resultat = $GLOBALS['ins_db'] -> query($requete) ; 
-
 
908
    if (DB::isError($resultat)) {
-
 
909
    	die ($resultat->getMessage().'<br />'.$resultat->getDebugInfo()) ;
-
 
910
    }
-
 
911
 
-
 
912
    $ligne = $resultat->fetchRow(DB_FETCHMODE_ASSOC) ;
-
 
913
    
-
 
914
    //voir la présentation de la fiche
-
 
915
    if ($type_info=='fiche') {
-
 
916
    	$res = '';
-
 
917
    	
-
 
918
	    if ($ligne[INS_CHAMPS_EST_STRUCTURE] == 1) {
-
 
919
	    	$res .= '<h2>'.INS_FICHE_STRUCTURE.'</h2>'."\n" ;
-
 
920
	    } else { 
-
 
921
	    	$res .= '<h2>'.INS_FICHE_PERSONNELLE.'</h2>'."\n" ;
-
 
922
	    }
-
 
923
	    $res .= '<div class="fiche">'."\n" ;
-
 
924
	    if ($ligne[INS_CHAMPS_LOGO] != NULL) {
-
 
925
    		$res .= '<img style="float:right;width:120px;height:120px;margin:0 0 10px 10px;" src="'.INS_CHEMIN_APPLI.'presentations/logos/'.$ligne[INS_CHAMPS_LOGO].'" alt="logo" />'."\n";
-
 
926
    	}
-
 
927
	    if ($ligne[INS_CHAMPS_EST_STRUCTURE] == 1) {	    
-
 
928
	    	$res .= '<h3>'.$ligne[INS_CHAMPS_NOM].'</h3>'."\n";	    		    		    
-
 
929
		    $res .= inscription_ligne(INS_SIGLE_DE_LA_STRUCTURE, $ligne[INS_CHAMPS_SIGLE_STRUCTURE]) ;
-
 
930
		    if (INS_CHAMPS_NUM_AGREMENT != '') $res .= inscription_ligne(INS_NUM_AGREMENT, $ligne[INS_CHAMPS_NUM_AGREMENT]) ;
-
 
931
	    } else {   	
-
 
932
	    	$res .= '<h3>'.$ligne[INS_CHAMPS_PRENOM].' '.$ligne[INS_CHAMPS_NOM].'</h3>'."\n";	    		    		    
-
 
933
	    }
-
 
934
	    	    
-
 
935
	    $res .= inscription_ligne(INS_ADRESSE_1, $ligne[INS_CHAMPS_ADRESSE_1]) ;
-
 
936
	    $res .= inscription_ligne(INS_ADRESSE_2, $ligne[INS_CHAMPS_ADRESSE_2]) ;
-
 
937
	    $res .= inscription_ligne(INS_CODE_POSTAL, $ligne[INS_CHAMPS_CODE_POSTAL]) ;
-
 
938
	    $res .= inscription_ligne(INS_VILLE, $ligne[INS_CHAMPS_VILLE]) ;
-
 
939
	    $pays = new ListeDePays($GLOBALS['ins_db']) ;
-
 
940
	    $res .= inscription_ligne(INS_PAYS, $pays->getNomPays($ligne[INS_CHAMPS_PAYS], INS_LANGUE_DEFAUT)) ;
-
 
941
	    $res .= inscription_ligne(INS_TELEPHONE, $ligne[INS_CHAMPS_TELEPHONE]) ;
-
 
942
	    $res .= inscription_ligne(INS_FAX, $ligne[INS_CHAMPS_FAX]) ;
-
 
943
	    
-
 
944
	    if ($ligne[INS_CHAMPS_SITE_INTERNET]!='') {
-
 
945
	    	$res .= inscription_ligne(INS_SITE_INTERNET, '<a href="'.$ligne[INS_CHAMPS_SITE_INTERNET].'" onclick="javascript:window.open(this.href);return false;">'.$ligne[INS_CHAMPS_SITE_INTERNET].'</a>');
-
 
946
	    }
-
 
947
	    
-
 
948
	    if ($GLOBALS['AUTH']->getAuth()) $res .= inscription_ligne(INS_EMAIL, '<a href="mailto:'.$ligne[INS_CHAMPS_MAIL].'">'.$ligne[INS_CHAMPS_MAIL].'</a>');
-
 
949
	    else $res .= '<br /><p class="zone_info">'.INS_PAS_IDENTIFIE.'</p>'."\n";
-
 
950
	    
-
 
951
	    if (INS_UTILISE_WIKINI) {
-
 
952
			$res .= inscription_ligne (INS_NOM_WIKI, $ligne[INS_CHAMPS_NOM_WIKINI])."\n" ;
-
 
953
		}
-
 
954
		
-
 
955
	    $res .= '</ul>'."\n";
-
 
956
	    if ($id==$GLOBALS['AUTH']->getAuthData(INS_CHAMPS_ID)) {		    
-
 
957
		    $res .= '<ul style="margin-top:10px; clear:both;">'."\n";		    
-
 
958
		    if ($ligne[INS_CHAMPS_VISIBLE] == 1) {
-
 
959
		    	$res .= '<li>'.INS_VOUS_APPARAISSEZ.'</li>'."\n";
-
 
960
		    } else $res .= '<li>'.INS_VOUS_APPARAISSEZ_PAS.'</li>'."\n";
-
 
961
		    if (INS_CHAMPS_LETTRE != '') {
-
 
962
		    		if ($ligne[INS_CHAMPS_LETTRE] == 1) {
-
 
963
		    			$res .= '<li>'.INS_VOUS_RECEVEZ_LETTRE.'</li>'."\n";
-
 
964
		    		} else $res .= '<li>'.INS_VOUS_RECEVEZ_PAS_LETTRE.'</li>'."\n";
-
 
965
		    }
-
 
966
		    $res .= '</ul>'."\n";
-
 
967
		        
-
 
968
		    $res .= '<ul style="margin:15px;">'."\n";;
-
 
969
		    $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" ;
-
 
970
		    $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" ;
-
 
971
		    $res .= '<li><a href="'.$GLOBALS['ins_url']->getURL().'&amp;action=deconnexion">'.INS_DECONNEXION.'</a></li>'."\n" ;
-
 
972
		    $res .= '</ul>'."\n";
-
 
973
		    $res .= '</div>'."\n"; //div fiche
-
 
974
	    } 
-
 
975
	    
-
 
976
	//voir les abonnements presents dans les applis clientes    
-
 
977
    } elseif ($type_info=='abonnement') {
-
 
978
    	$res = '<h1>'.$ligne[INS_CHAMPS_PRENOM].' '.$ligne[INS_CHAMPS_NOM].'</h1>'."\n";
-
 
979
    	$res .= '<h2>'.INS_GESTION_DES_ABONNEMENTS.'</h2>'."\n" ;
-
 
980
    	
-
 
981
    	// Appel des actions d'abonnement des applications clientes
-
 
982
        $d = dir(GEN_CHEMIN_CLIENT);
-
 
983
        $abonnement='';
-
 
984
        $abonnements='';
-
 
985
		while (false !== ($repertoire = $d->read())) {
-
 
986
			if (file_exists(GEN_CHEMIN_CLIENT.$repertoire.GEN_SEP.'bibliotheque'.GEN_SEP.$repertoire.'.abonnement.inc.php')) {
-
 
987
				require_once GEN_CHEMIN_CLIENT.$repertoire.GEN_SEP.'bibliotheque'.GEN_SEP.$repertoire.'.abonnement.inc.php' ;
-
 
988
				$abonnements .= $abonnement;   
-
 
989
			}
-
 
990
		}
-
 
991
		$d->close();
-
 
992
		$res .= $abonnements;
-
 
993
		
-
 
994
    //voir les actus			
-
 
995
    } elseif ($type_info=='actus') {
-
 
996
    	$res = '<h1>'.$ligne[INS_CHAMPS_PRENOM].' '.$ligne[INS_CHAMPS_NOM].'</h1>'."\n";
-
 
997
    	$res .= '<h2>'.INS_ACTUALITES_DEPOSEES.'</h2>'."\n" ;
-
 
998
    	require_once GEN_CHEMIN_CLIENT.'bazar'.GEN_SEP.'configuration'.GEN_SEP.'baz_config.inc.php';
-
 
999
    	require_once GEN_CHEMIN_CLIENT.'bazar'.GEN_SEP.'bibliotheque'.GEN_SEP.'bazar.fonct.rss.php';
-
 
1000
    	$_GET['action']=1;
-
 
1001
    	$res .= RSSversHTML(gen_RSS('', '', $id, 1, ''), 0, 'jma', 0);
-
 
1002
    	
-
 
1003
	//voir les ressources	
-
 
1004
    } elseif ($type_info=='ressources') {
-
 
1005
    	$res = '<h1>'.$ligne[INS_CHAMPS_PRENOM].' '.$ligne[INS_CHAMPS_NOM].'</h1>'."\n";
-
 
1006
    	$res .= '<h2>'.INS_RESSOURCES_ASSOCIEES.'</h2>'."\n" ;
-
 
1007
    	$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 ;
-
 
1008
    	$resultat = $GLOBALS['ins_db'] -> query($requete) ;
-
 
1009
    	$res .= '<ul>'."\n";
-
 
1010
    	while ($ligne = $resultat->fetchRow(DB_FETCHMODE_ASSOC)) {
-
 
1011
			$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";
-
 
1012
		}
-
 
1013
		$res .= '</ul><br />'."\n";
-
 
1014
    
-
 
1015
    //voir les competences		    
-
 
1016
    } elseif ($type_info=='competences') {
-
 
1017
    	$res = '<h1>'.$ligne[INS_CHAMPS_PRENOM].' '.$ligne[INS_CHAMPS_NOM].'</h1>'."\n";
-
 
1018
    	$res .= '<h2>'.INS_COMPETENCES_ASSOCIEES.'</h2>'."\n" ;
-
 
1019
    }
-
 
1020
    return $res ;
-
 
1021
}
-
 
1022
 
-
 
1023
 
-
 
1024
/**	inscription_ligne() - Renvoie une ligne avec label et valeur
-
 
1025
 *
-
 
1026
 * @param string label Le label
-
 
1027
 * @param string valeur
-
 
1028
 * @return	string HTML
-
 
1029
 */
-
 
1030
function inscription_ligne($label, $valeur) {
-
 
1031
    if ($valeur == '') {
-
 
1032
        return;
-
 
1033
    }
-
 
1034
    if (($label == '')or($label == '&nbsp;')) {
-
 
1035
    	return '<div class="inscription_infos">'.$valeur.'</div>'."\n";
-
 
1036
    } else {
-
 
1037
    	return '<div class="inscription_infos"><strong class="inscription_label">'."\n".$label.' : </strong>'.$valeur.'</div>'."\n";    	
-
 
1038
    }
-
 
1039
}
-
 
1040
 
-
 
1041
 
-
 
1042
/** Renvoie vrai si l'email passé en paramètre n'est pas déjà dans l'annuaire
-
 
1043
*   ou si, en cas de modification d'inscription, l'inscrit ne modifie pas son email
-
 
1044
*
-
 
1045
*   @return boolean 
-
 
1046
*/
-
 
1047
function verif_doublonMail($mail, $id = '') {
-
 
1048
	if ($id == '') {
-
 
1049
		if (isset ($GLOBALS['AUTH'])) {
-
 
1050
			$id = $GLOBALS['AUTH']->getAuthData(INS_CHAMPS_ID) ;
-
 
1051
		}
-
 
1052
	}
-
 
1053
    if (isset ($id) && $id != '') {
-
 
1054
        $requete_mail = "select ".INS_CHAMPS_MAIL." from ".INS_ANNUAIRE." where ".
-
 
1055
        				INS_CHAMPS_ID."=".$id ;
-
 
1056
        $resultat_mail = $GLOBALS['ins_db']->query ($requete_mail) ;
-
 
1057
        if (DB::isError ($resultat_mail)) {
-
 
1058
            die ("Echec de la requete : $requete_mail<br />".$resultat_mail->getMessage()) ;
-
 
1059
        }
-
 
1060
        $ligne_mail = $resultat_mail->fetchRow(DB_FETCHMODE_ASSOC) ;
-
 
1061
        if ($mail == $ligne_mail[INS_CHAMPS_MAIL]) {
-
 
1062
            return true ;
-
 
1063
        }
-
 
1064
    }
-
 
1065
    $requete = "select ".INS_CHAMPS_MAIL." from ".INS_ANNUAIRE." where ".INS_CHAMPS_MAIL."= \"$mail\"" ;
-
 
1066
    $resultat = $GLOBALS['ins_db']->query ($requete) ;
-
 
1067
    if (DB::isError ($resultat)) {
-
 
1068
    	die ($resultat->getMessage().'<br />'.$resultat->getDebugInfo()) ;
-
 
1069
    }
-
 
1070
    if ($resultat->numRows() == 0) return true ;
-
 
1071
    return false ;
-
 
1072
}
-
 
1073
 
-
 
1074
 
-
 
1075
function envoie_passe() {
-
 
1076
	$res='';
-
 
1077
	$requete = 'SELECT '.INS_CHAMPS_MAIL.' FROM '.INS_ANNUAIRE.' WHERE '.INS_CHAMPS_MAIL.'="'.$_POST['mail'].'"' ;
-
 
1078
    $resultat = $GLOBALS['ins_db']->query($requete) ;
-
 
1079
    if (DB::isError($resultat)) {
-
 
1080
        die ("Echec de la requete<br />".$resultat->getMessage()."<br />".$resultat->getDebugInfo()) ;
-
 
1081
    }
-
 
1082
    if ($resultat->numRows() == 0) {
-
 
1083
    	$res .= '<p class="erreur">'.INS_MAIL_INCONNU_DANS_ANNUAIRE.'</p>'."\n" ;
-
 
1084
    } else {
-
 
1085
    	include_once PAP_CHEMIN_RACINE.'api/pear/Mail.php' ;
-
 
1086
    	$mail = & Mail::factory('smtp') ;
-
 
1087
    	$headers ['Return-Path'] = "<".INS_MAIL_ADMIN_APRES_INSCRIPTION.">" ;
-
 
1088
    	$headers ['From'] = "<".INS_MAIL_ADMIN_APRES_INSCRIPTION.">" ;
-
 
1089
    	$headers ['Subject'] = INS_MOT_DE_PASSE_CHANGE ;
-
 
1090
    	$headers ['Reply-To'] = "<".INS_MAIL_ADMIN_APRES_INSCRIPTION.">" ;
-
 
1091
    	$headers ['To'] = "<".$_POST['mail'].">" ;
-
 
1092
    	$nouveau_passe = create_new_random(6) ;
-
 
1093
    	// modification du mot de passe dans la base
-
 
1094
    	$requete = 'UPDATE '.INS_ANNUAIRE.' SET '.INS_CHAMPS_PASSE.'=MD5("'.$nouveau_passe.'") WHERE '.INS_CHAMPS_MAIL.'="'.$_POST['mail'].'"' ;
-
 
1095
    	$resultat = $GLOBALS['ins_db']->query($requete) ;
-
 
1096
    	if (DB::isError($resultat)) {
-
 
1097
    		die ("Echec de la requete<br />".$resultat->getMessage()."<br />".$resultat->getDebugInfo()) ;
-
 
1098
    	}
-
 
1099
    	$body = INS_NOUVEAU_MOT_DE_PASSE_2.$nouveau_passe ;
-
 
1100
    	$body .= INS_NOUVEAU_MOT_DE_PASSE_LAIUS ;
-
 
1101
    	$mail->send($_POST['mail'], $headers, $body) ;
-
 
1102
    	if (PEAR::isError($mail)) {
-
 
1103
    		$res .= '<p class="erreur">'.INS_PROBLEME_ENVOI_MAIL.'</p>'."\n" ;
-
 
1104
    		return $res ;
-
 
1105
    	}
-
 
1106
    	$res .= '<p class="info">'.INS_NOUVEAU_MOT_DE_PASSE_ENVOYE.'</p>'."\n" ;
-
 
1107
    }
-
 
1108
    return $res ;
-
 
1109
}
-
 
1110
 
-
 
1111
/**
-
 
1112
 *  Inscrit un adhérent à la lettre d'actualité par l'envoie d'un email subscribe / unsubscribe
-
 
1113
 *  à la liste
-
 
1114
 *
-
 
1115
 * @global  AUTH    Un objet PEAR::Auth
-
 
1116
 * @return  boolean true en cas de succès
-
 
1117
 */
-
 
1118
 
-
 
1119
function inscription_lettre($action) {
-
 
1120
    include_once PAP_CHEMIN_RACINE.'api/pear/Mail.php' ;
-
 
1121
    $mail = & Mail::factory ('smtp') ;
-
 
1122
    $email = $GLOBALS['AUTH']->getUsername() ;
-
 
1123
    $headers ['Return-Path'] = $email ;
-
 
1124
    $headers ['From'] = "<".$email.">" ;
-
 
1125
    $headers ['Subject'] = $action ;
-
 
1126
    $headers ['Reply-To'] = $email ;
-
 
1127
    
-
 
1128
    $mail -> send ($action, $headers, "") ;
-
 
1129
    if (PEAR::isError ($mail)) {
-
 
1130
        echo '<p class="erreur">Le mail n\'est pas parti...</p>' ;
-
 
1131
        return false ;
-
 
1132
    }
-
 
1133
    return true ;
-
 
1134
}
-
 
1135
 
-
 
1136
/**
-
 
1137
 *
-
 
1138
 * @global  ins_db  Un pointeur vers un objet PEAR::DB connecté
-
 
1139
 * @return
-
 
1140
 */
-
 
1141
 
-
 
1142
function envoie_mail() //A COMPLETER!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
-
 
1143
{
-
 
1144
    include_once PAP_CHEMIN_RACINE.'api/pear/Mail/mime.php' ;
-
 
1145
    include_once PAP_CHEMIN_RACINE.'api/pear/Mail.php' ;
-
 
1146
    $crlf="\n";
-
 
1147
    
-
 
1148
    $headers ['From'] = INS_MAIL_ADMIN_APRES_INSCRIPTION ;
-
 
1149
    $headers ['Subject'] = INS_MAIL_COORD_SUJET ;
-
 
1150
    $headers ['Reply-To'] = INS_MAIL_ADMIN_APRES_INSCRIPTION ;
-
 
1151
    
-
 
1152
    $mime = new Mail_mime($crlf);
-
 
1153
    
-
 
1154
    $requete = "select *, ".INS_CHAMPS_LABEL_PAYS." from ".INS_ANNUAIRE.",".INS_TABLE_PAYS.
-
 
1155
            " where ".INS_CHAMPS_MAIL."=\"".$GLOBALS['AUTH']->getUsername()."\"".
-
 
1156
            " and ".INS_CHAMPS_ID_PAYS."=".INS_CHAMPS_PAYS;
-
 
1157
 
-
 
1158
    $resultat = $GLOBALS['ins_db']->query($requete) ;
-
 
1159
    if (DB::isError ($resultat)) {
-
 
1160
        die ("Echec de la requete : $requete<br />".$resultat->getMessage()) ;
-
 
1161
    }
-
 
1162
    $ligne  = $resultat->fetchRow(DB_FETCHMODE_ASSOC) ;
-
 
1163
    $body_entete = INS_MAIL_COORD_CORPS."\n" ;
-
 
1164
    $body = "mail : ".$ligne[INS_CHAMPS_MAIL]."\n" ;
-
 
1165
    $body .= "------------------------------------------\n";
-
 
1166
    $body .= INS_NOM.": ".unhtmlentities($ligne[INS_CHAMPS_NOM])." \n" ;
-
 
1167
    $body .= INS_PRENOM.' : '.unhtmlentities($ligne[INS_CHAMPS_PRENOM])." \n" ;
-
 
1168
    $body .= INS_PAYS." : ".unhtmlentities($ligne[INS_CHAMPS_LABEL_PAYS])." \n" ;
-
 
1169
    $body .= "-------------------------------------------\n" ;
-
 
1170
    
-
 
1171
    $mime->setTXTBody($body);
-
 
1172
    $mime->setHTMLBody(info()) ;
-
 
1173
    
-
 
1174
    $body = $mime->get();
-
 
1175
    $headers = $mime->headers($headers);
-
 
1176
    
-
 
1177
    $mail = & Mail::factory('mail') ;
-
 
1178
    
-
 
1179
    $mail -> send ($ligne[INS_CHAMPS_MAIL], $headers, $body) ;
-
 
1180
    
-
 
1181
        // Envoi du mail aux administrateur du site
-
 
1182
    foreach ($GLOBALS['mail_admin'] as $administrateur) {
-
 
1183
        $mail -> send ($administrateur, $headers, $body) ;
-
 
1184
    }
-
 
1185
    if (PEAR::isError($mail)) {
-
 
1186
        echo 'erreur d\'envoi' ;
-
 
1187
        return false ;
-
 
1188
    }
-
 
1189
    return true ;
-
 
1190
}
-
 
1191
 
-
 
1192
 
-
 
1193
/**
-
 
1194
 *  Génère un nom wiki valide à partir des données saisies par l'utilisateur
-
 
1195
 *  fait une requete dans la base
-
 
1196
 *
-
 
1197
 * @return  string un nom wiki valide
-
 
1198
 */
-
 
1199
 
-
 
1200
function genere_nom_wiki($prenom, $nom) {
-
 
1201
    // 1. suppression des espaces
-
 
1202
    $nom = trim ($nom) ;
-
 
1203
    $prenom = trim ($prenom) ;
-
 
1204
    
-
 
1205
    // 2. suppression des caractères non ascii et ajout de la première lettre en majuscule
-
 
1206
    $nom = inscription_trim_non_ascii ($nom) ;
-
 
1207
    $prenom = inscription_trim_non_ascii ($prenom) ;
-
 
1208
    
-
 
1209
    // Vérification
-
 
1210
    $nom_wiki = $prenom.$nom ;
-
 
1211
    if (!preg_match('/^[A-Z][a-z]+[A-Z,0-9][A-Z,a-z,0-9]*$/', $nom_wiki)) {
-
 
1212
        $nom_wiki = chr(rand(65, 90)).$nom_wiki.chr(rand(65, 90)) ;
-
 
1213
    }
-
 
1214
    return $nom_wiki ;
-
 
1215
}
-
 
1216
 
-
 
1217
/**
-
 
1218
 *	Cette fonction supprime les caractères autres que asccii et les chiffres
-
 
1219
 *
-
 
1220
 * @return	string la chaine épurée
-
 
1221
 */
-
 
1222
 
-
 
1223
function trim_non_ascii ($nom) {
-
 
1224
    $premiere_lettre = true ;
-
 
1225
    for ($i = 0; $i < strlen ($nom); $i++) {
-
 
1226
        if (!preg_match ('/[a-zA-Z0-9]/', $nom[$i])) {
-
 
1227
            $nom[$i] = '_' ;
-
 
1228
        }
-
 
1229
    // remplacement de la première lettre en majuscule
-
 
1230
        if (preg_match ('/[a-zA-Z]/', $nom[$i]) && $premiere_lettre) {
-
 
1231
            $nom[$i] = strtoupper ($nom[$i]) ;
-
 
1232
            $premiere_lettre = false ;
-
 
1233
        } else {
-
 
1234
            if (preg_match ('/[a-zA-Z]/', $nom[$i])) {
-
 
1235
                $nom[$i] = strtolower ($nom[$i]) ;
-
 
1236
            }
-
 
1237
        }
-
 
1238
    }
-
 
1239
    $nom = preg_replace ('/_/', '', $nom) ;
-
 
1240
    return $nom ;
-
 
1241
}
-
 
1242
 
-
 
1243
// For users prior to PHP 4.3.0 you may do this:
-
 
1244
//function unhtmlentities($string)
-
 
1245
//{
-
 
1246
//    $trans_tbl = array_flip ($trans_tbl);
-
 
1247
//    return strtr ($string, $trans_tbl);
-
 
1248
//}
-
 
1249
 
-
 
1250
//==============================================================================
-
 
1251
/** function create_new_random($n,$type) permet de générer un nombre de caractères aléatoires.
-
 
1252
*
-
 
1253
*  
-
 
1254
*
-
 
1255
*  ENTREE :
-
 
1256
*  - $n : créer un 'mot' de $n caractères
-
 
1257
*  - $type : permet de définir la liste des caractères disponibles
-
 
1258
*
-
 
1259
*  SORTIE : chaine de $n caractères pris dans une liste $type
-
 
1260
*/
-
 
1261
function create_new_random($n,$type="")
-
 
1262
{
-
 
1263
    $str = "";
-
 
1264
 
-
 
1265
    switch ($type){
-
 
1266
        default:{
-
 
1267
            $chaine = "abcdefghkmnpqrstuvwxyzABCDEFGHKLMNPQRSTUVWXYZ23456789";
-
 
1268
        }
-
 
1269
            break;
-
 
1270
    }
-
 
1271
 
-
 
1272
    srand((double)microtime()*1000000);
-
 
1273
    for($i = 0; $i < $n; $i++){
-
 
1274
        $str .= $chaine[rand()%strlen($chaine)];
-
 
1275
    }
-
 
1276
 
-
 
1277
    return "$str";
-
 
1278
}
-
 
1279
 
-
 
1280
//==============================================================================
-
 
1281
/** function nextId () Renvoie le prochain identifiant numérique libre d'une table
-
 
1282
*
-
 
1283
*   On passe en paramètre le nom de la table et l'identifiant de la base selon PEAR DB
-
 
1284
*
-
 
1285
*   @param  mixed   handler de connexion
-
 
1286
*   @param  string  Nom de la table
-
 
1287
*   return  interger    l'identifiant
-
 
1288
*/
-
 
1289
function nextId($table, $colonne_identifiant)
-
 
1290
{
-
 
1291
    $requete = 'select MAX('.$colonne_identifiant.') as maxi from '.$table ;
-
 
1292
    $resultat = $GLOBALS['ins_db']->query($requete) ;
-
 
1293
    if (DB::isError($resultat)) {
-
 
1294
        die (__FILE__ . __LINE__ . $resultat->getMessage() . $requete);
-
 
1295
        return $GLOBALS['ins_db']->raiseError($resultat) ;
-
 
1296
    }
-
 
1297
    
-
 
1298
    if ($resultat->numRows() > 1) {
-
 
1299
        return $GLOBALS['ins_db']->raiseError("<br />La table $table a un identifiant non unique<br/>") ;
-
 
1300
    }
-
 
1301
    $ligne = $resultat->fetchRow(DB_FETCHMODE_OBJECT) ;
-
 
1302
    return $ligne->maxi + 1 ;
-
 
1303
}
-
 
1304
 
-
 
1305
 
591
}
1306
//-- Fin du code source    ------------------------------------------------------------
592
//-- Fin du code source    ------------------------------------------------------------
1307
/*
593
/*
1308
* $Log$
-
 
1309
* Revision 1.9  2006/12/12 10:00:07  alexandre_tb
-
 
1310
* Pettites modifications pour la généricité de la carto. Mais c est en cours donc prudence.
-
 
1311
*
-
 
1312
* Revision 1.8  2006/12/01 13:23:15  florian
-
 
1313
* integration annuaire backoffice
-
 
1314
*
-
 
1315
* Revision 1.7  2006/10/05 13:53:54  florian
-
 
1316
* amélioration des fichiers sql
-
 
1317
*
594
* $Log$
1318
* Revision 1.6  2006/09/13 12:31:18  florian
595
* Revision 1.6  2006/09/13 12:31:18  florian
1319
* ménage: fichier de config Papyrus, fichiers temporaires
596
* ménage: fichier de config Papyrus, fichiers temporaires
1320
*
597
*
1321
* Revision 1.5  2006/04/28 12:44:05  florian
598
* Revision 1.5  2006/04/28 12:44:05  florian