Subversion Repositories Sites.tela-botanica.org

Compare Revisions

Regard whitespace Rev 408 → Rev 409

/trunk/client/inscription/bibliotheque/inscription.class.php
1,5 → 1,4
<?php
/*vim: set expandtab tabstop=4 shiftwidth=4: */
// +------------------------------------------------------------------------------------------------------+
// | PHP version 4.1 |
// +------------------------------------------------------------------------------------------------------+
19,8 → 18,6
// | License along with this library; if not, write to the Free Software |
// | Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA |
// +------------------------------------------------------------------------------------------------------+
// CVS : $Id: inscription.class.php,v 1.3 2005/05/13 13:48:38 alex Exp $
// CVS : $Id: inscription.class.php,v 1.3 2005/05/13 13:48:38 alex Exp $
/**
* Fonctions du module inscription
*
30,10 → 27,9
//Auteur original :
*@author Alexandre Granier <alexandre@tela-botanica.org>
//Autres auteurs :
*@author Aucun
*@author Jean-Pascal MILCENT <jpm@tela-botanica.org>
*@copyright Tela-Botanica 2000-2004
*@version $Revision: 1.3 $ $Date: 2005/05/13 13:48:38 $
*@version $Revision: 1.3 $ $Date: 2005/05/13 13:48:38 $
*@version $Id: inscription.class.php,v 1.3 2005/05/13 13:48:38 alex Exp $
// +------------------------------------------------------------------------------------------------------+
*/
 
41,9 → 37,6
// | ENTETE du PROGRAMME |
// +------------------------------------------------------------------------------------------------------+
 
require_once 'HTML/QuickForm.php' ;
require_once 'HTML/QuickForm/checkbox.php' ;
require_once 'HTML/QuickForm/password.php' ;
 
// +------------------------------------------------------------------------------------------------------+
// | LISTE de FONCTIONS |
51,7 → 44,7
 
class HTML_formulaireInscription extends HTML_Quickform {
 
var $mode_ajout = true;
/**
* Constructeur
*
64,7 → 57,6
* @return void
* @access public
*/
function HTML_forumlaireInscription ( $formName, $method = "post", $action, $target = "_self", $attributes, $trackSubmit = false ) {
HTML_Quickform::HTML_Quickform($formName, $method, $action, $target, $attributes, $trackSubmit) ;
}
75,8 → 67,7
* @return void
* @access public
*/
function construitFormulaire($url, $liste_pays)
{
function construitFormulaire($url, $liste_pays) {
$squelette =& $this->defaultRenderer();
$squelette->setFormTemplate("\n".'<form{attributes}>'."\n".'{content}'."\n".'</form>'."\n");
104,7 → 95,7
$squelette->setRequiredNoteTemplate("\n".'<p>'."\n".'<span class="symbole_obligatoire">*</span> {requiredNote}'."\n".'</p>'."\n");
$fieldset_debut = '<fieldset>'."\n".
'<legend>'.INS_AJOUT_MEMBRE.'</legend>'."\n".
'<legend>'.(($this->mode_ajout) ? INS_AJOUT_MEMBRE : INS_MODIF_MEMBRE).'</legend>'."\n".
'<ul>'."\n";
$this->addElement('html', $fieldset_debut);
$this->addElement ('text', 'email', INS_EMAIL) ;
123,10 → 114,6
$this->addRule ('nom', INS_NOM_REQUIS, 'required', '', 'client') ;
$this->addRule ('prenom', INS_PRENOM_REQUIS, 'required', '', 'client') ;
/* On enlève le champs non wiki, on va le générer
$this->addElement ('text', 'nomwiki', INS_NOM_WIKI) ;
$this->addRule ('nomwiki', INS_MAUVAIS_NOM_WIKI, 'regex', '/^[A-Z][a-z]+[A-Z,0-9][A-Z,a-z,0-9]*$/', 'client') ;
*/
$this->addElement ('text', 'adresse_1', INS_ADRESSE_1) ;
$this->addElement ('text', 'adresse_2', INS_ADRESSE_2) ;
$this->addElement ('text', 'region', INS_REGION) ;
136,17 → 123,15
$this->addRule ('cp', INS_CODE_POSTAL_REQUIS, 'required', '', 'client') ;
$this->addRule ('ville', INS_VILLE_REQUIS, 'required', '', 'client') ;
// L'élément pays est construit à partir de la table gen_COUNTRY
// $this->addElement ('select', 'pays', INS_PAYS, $liste_pays) ;
 
 
// L'élément pays est construit à partir de la table des pays
$s =& $this->createElement('select','pays',INS_PAYS);
$s->loadArray($liste_pays,'fr');
$this->addElement($s);
 
if (INS_UTILISE_LISTE) {
$element_lettre = &new HTML_QuickForm_checkbox ('lettre', '', INS_LETTRE) ;
$this->addElement($element_lettre) ;
}
$this->addElement ('text', 'site', INS_SITE_INTERNET) ;
171,7 → 156,7
$this->addElement('html', $fieldset_debut);
// requete pour trouver les niveaux en botanique
$requete = "select * from annuaire_LABEL_NIV" ;
$requete = 'SELECT * FROM annuaire_LABEL_NIV';
$resultat = $GLOBALS['ins_db']->query ($requete) ;
if (DB::isError($resultat)) {
die ("Echec de la requete<br />".$resultat->getMessage()."<br />".$resultat->getDebugInfo()) ;
184,7 → 169,6
'</fieldset>'."\n";
$this->addElement('html', $fieldset_fin);
// L'activité professionnelle
$fieldset_debut = '<fieldset>'."\n".
'<legend>'.INS_ACTIVITE_PROFESSIONNELLE.'</legend>'."\n".
192,8 → 176,8
$this->addElement('html', $fieldset_debut);
 
// requete pour trouver les niveaux en botanique
$requete = "select * from annuaire_LABEL_ACT" ;
// Requete pour trouver les niveaux en botanique
$requete = 'SELECT * FROM annuaire_LABEL_ACT';
$resultat = $GLOBALS['ins_db']->query ($requete) ;
if (DB::isError($resultat)) {
die ("Echec de la requete<br />".$resultat->getMessage()."<br />".$resultat->getDebugInfo()) ;
212,8 → 196,8
'<ul>'."\n";
$this->addElement('html', $fieldset_debut);
// requete pour trouver les niveaux en botanique
$requete = "select * from annuaire_LABEL_ASS" ;
// Requete pour trouver les niveaux en botanique
$requete = 'SELECT * FROM annuaire_LABEL_ASS';
$resultat = $GLOBALS['ins_db']->query ($requete) ;
if (DB::isError($resultat)) {
die ("Echec de la requete<br />".$resultat->getMessage()."<br />".$resultat->getDebugInfo()) ;
247,12 → 231,13
'</fieldset>'."\n";
$this->addElement('html', $fieldset_fin);
if (!$this->mode_ajout) {
$this->addElement ('link', 'annuler', '', preg_replace ('/&amp;/', '&', $GLOBALS['ins_url']->getURL()), INS_ANNULER) ;
}
$this->addElement ('submit', 'valider', INS_VALIDER) ;
$this->setRequiredNote(INS_NOTE_REQUIS) ;
} // end of member function construitFormulaire
}
/** Modifie le formulaire pour l'adapter au cas des structures
*
260,9 → 245,7
* @return void
* @access public
*/
function formulaireStructure()
{
function formulaireStructure() {
$this->removeElement('email', false) ;
$mail = & HTML_QuickForm::createElement ('text', 'email', INS_MAIL_STRUCTURE) ;
$this->insertElementBefore ($mail, 'mot_de_passe') ;
282,14 → 265,10
* @return string
* @access public
*/
function toHTML( )
{
function toHTML( ) {
$res = HTML_QuickForm::toHTML() ;
return $res ;
} // end of member function toHTML
 
 
 
}
 
class ListeDePays extends PEAR{
301,20 → 280,19
* @param DB Un objet PEAR::DB
* @return
*/
function ListeDePays (&$objetDB) {
$this->_db = $objetDB ;
$requete = "show tables" ;
$requete = 'SHOW TABLES';
$resultat = $objetDB->query ($requete) ;
if (DB::isError ($resultat)) {
die ("Echec de la requete : $requete<br />".$resultat->getMessage()) ;
}
while ($ligne = $resultat->fetchRow()) {
if ($ligne[0] == 'gen_COUNTRY') {
if ($ligne[0] == INS_TABLE_PAYS) {
return ;
}
}
return $this->raiseError ('La table gen_COUNTRY n\'est pas présente dans la base de donnée !') ;
return $this->raiseError('La table '.INS_TABLE_PAYS.' n\'est pas présente dans la base de donnée !') ;
}
/** Renvoie la liste des pays traduite
322,12 → 300,14
* @param string une chaine de type i18n ou une chaine code iso langue (fr_FR ou fr ou FR)
* @return un tableau contenant en clé, le code iso du pays, en majuscule et en valeur le nom du pays traduit
*/
function getListePays ($i18n) {
if (strlen($i18n) == 2) {
$i18n = strtolower($i18n)."-".strtoupper($i18n) ;
$i18n = strtolower($i18n).'-'.strtoupper($i18n) ;
}
$requete = "select GC_ID, GC_NAME from gen_COUNTRY where GC_LOCALE='fr' order by GC_NAME" ;
$requete = 'SELECT '.INS_CHAMPS_ID_PAYS.', '.INS_CHAMPS_LABEL_PAYS.' '.
'FROM '.INS_TABLE_PAYS.' '.
'WHERE '.INS_CHAMPS_PAYS_LG.' = "fr" '.
'ORDER BY '.INS_CHAMPS_LABEL_PAYS.' ';
$resultat = $this->_db->query ($requete) ;
if (DB::isError ($resultat)) {
die ("Echec de la requete : $requete<br />".$resultat->getMessage()) ;
336,8 → 316,8
return $this->raiseError('Le code fourni ne correspond à aucun pays ou n\'est pas dans la table!') ;
}
$retour = array() ;
while ($ligne = $resultat->fetchRow(DB_FETCHMODE_OBJECT)) {
$retour[$ligne->GC_ID] = $ligne->GC_NAME;
while ($ligne = $resultat->fetchRow(DB_FETCHMODE_ASSOC)) {
$retour[$ligne[INS_CHAMPS_ID_PAYS]] = $ligne[INS_CHAMPS_LABEL_PAYS];
}
return $retour ;
}
/trunk/client/inscription/bibliotheque/inscription.fonct.php
1,5 → 1,4
<?php
/*vim: set expandtab tabstop=4 shiftwidth=4: */
// +------------------------------------------------------------------------------------------------------+
// | PHP version 4.1 |
// +------------------------------------------------------------------------------------------------------+
19,8 → 18,6
// | License along with this library; if not, write to the Free Software |
// | Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA |
// +------------------------------------------------------------------------------------------------------+
// CVS : $Id: inscription.fonct.php,v 1.2 2005/03/21 16:50:27 alex Exp $
// CVS : $Id: inscription.fonct.php,v 1.2 2005/03/21 16:50:27 alex Exp $
/**
* Fonctions du module inscription
*
30,9 → 27,9
//Auteur original :
*@author Alexandre Granier <alexandre@tela-botanica.org>
//Autres auteurs :
*@author Aucun
*@author Jean-Pascal MILCENT <jpm@tela-botanica.org>
*@copyright Tela-Botanica 2000-2004
*@version $Revision: 1.2 $ $Date: 2005/03/21 16:50:27 $
*@version $Id: inscription.fonct.php,v 1.2 2005/03/21 16:50:27 alex Exp $
// +------------------------------------------------------------------------------------------------------+
*/
 
40,23 → 37,17
// | ENTETE du PROGRAMME |
// +------------------------------------------------------------------------------------------------------+
 
include_once INS_CHEMIN_FICHIER.'bibliotheque/ins_wiki.fonct.php' ;
include_once INS_CHEMIN_FICHIER.'bibliotheque/ins_spip.fonct.php' ;
require_once 'HTML/QuickForm.php' ;
require_once 'HTML/QuickForm/checkbox.php' ;
require_once 'HTML/QuickForm/password.php' ;
 
 
// +------------------------------------------------------------------------------------------------------+
// | LISTE de FONCTIONS |
// +------------------------------------------------------------------------------------------------------+
 
 
/**
*
* @param array les valeurs renvoyés par le formulaire
* @return
*/
 
function demande_inscription ($valeurs) {
// On stocke les informations dans un variable de session
// On coupe l'identifiant de session pour ne prendre que les 8 premiers caractères
87,85 → 78,118
mail ($GLOBALS['email'], 'Inscription', $corps, 'From: '.INS_MAIL_ADMIN_APRES_INSCRIPTION) ;
}
 
 
function AUTH_formulaire_login ($msg = '') {
$res = '';
//--------------------------------------------------------------------------
// Les urls
$url_deja_inscrit = preg_replace ('/&amp;/', '&', $GLOBALS['ins_url']->getURL()) ;
$GLOBALS['ins_url']->addQueryString('action', 'inscription');
$url_inscription = preg_replace ('/&amp;/', '&', $GLOBALS['ins_url']->getURL()) ;
$GLOBALS['ins_url']->removeQueryString('action');
 
//--------------------------------------------------------------------------
// Le formulaire
//--------------------------------------------------------------------------
$url = preg_replace ('/&amp;/', '&', $GLOBALS['ins_url']->getURL()) ;
$form = new HTML_QuickForm ('inscription', 'post', $url."&action=inscription") ;
$form = new HTML_QuickForm ('inscription', 'post', $url_inscription);
$form->addElement ('submit', 'Inscription', INS_INSCRIPTION) ;
$res = '<h1 class="titre1_inscription">'.INS_ACCUEIL_INSCRIPTION.'</h1>';
$res .= $msg ;
$res .= "<h2 class=\"titre2_inscription\">".INS_LAIUS_INSCRIPTION."</h2>\n" ;
$res .= "<div>".INS_LAIUS_INSCRIPTION_2."</div>\n" ;
$res .= '<h2 class="titre2_inscription">'.INS_LAIUS_INSCRIPTION.'</h2>'."\n" ;
$res .= '<p>'.INS_LAIUS_INSCRIPTION_2.'</p>'."\n" ;
$res .= $form->toHTML() ;
$res .= '<h2 class="titre2_inscription">'.INS_DEJA_INSCRIT.'</h2>' ;
$form = new HTML_QuickForm ('inscription', 'post', $url) ;
$form = new HTML_QuickForm ('inscription', 'post', $url_deja_inscrit) ;
$form->addElement ('text', 'username', INS_EMAIL) ;
$form->addElement ('password', 'password', INS_MOT_DE_PASSE) ;
$form->addElement('submit', 'valider', INS_VALIDER);
$res .= $form->toHTML() ;
 
$res .= "<div>".INS_TEXTE_PERDU."</div>\n" ;
$res .= '<p>'.INS_TEXTE_PERDU.'</p>'."\n" ;
return $res;
}
 
/** message_erreur () - Renvoie le code HTML d'un message d'erreur
*
* Cette page est appelée avec le paramêtre action=mdp_oubli passé dans l'url.
* Elle peut aussi être appelé en cas d'erreur de loggin.
* @return string HTML
*/
function message_erreur ($erreur = true) {
$res = '';
 
function message_erreur () {
$res = '';
// Les urls
$url_deja_inscrit = preg_replace ('/&amp;/', '&', $GLOBALS['ins_url']->getURL()) ;
$GLOBALS['ins_url']->addQueryString('action', 'sendpasswd');
$url = preg_replace ('/&amp;/', '&', $GLOBALS['ins_url']->getURL()) ;
$res .= '<h1 class="titre1_inscription">'.INS_ACCUEIL_INSCRIPTION.'</h1>' ;
$res .= "<div class=\"inscription_erreur\">".INS_ERREUR_LOGIN."</div>\n" ;
$res .= "<div>".INS_SI_PASSE_PERDU."</div>\n" ;
$res .= '<div>' ;
$url_envoi_mdp = preg_replace ('/&amp;/', '&', $GLOBALS['ins_url']->getURL()) ;
$GLOBALS['ins_url']->removeQueryString('action');
$res .= '<form action="'.$url.'" method="post">'."\n" ;
$res .= INS_EMAIL.'&nbsp;' ;
$res .= '<input type="text" value="'.$_POST['username'].'" name="nom_d_utilisateur" size="32" /></li></ul>'."\n" ;
$res .= '<div>'.INS_INDIQUE_ADRESSE.'</div>'."\n" ;
$res .= "<input type=\"submit\" value=\"".INS_ENVOIE_PASSE."\" />" ;
$res .= "</form></div>\n" ;
// La page
$res .= '<h1 class="titre1_inscription">'.INS_MDP_PERDU_TITRE.'</h1>' ;
if ($erreur) {
$res .= '<p class="attention">'.INS_ERREUR_LOGIN.'</p>'."\n" ;
}
$res .= '<div class="information">'."\n";
$res .= '<p>'.INS_SI_PASSE_PERDU.'</p>'."\n";
$res .= '<p>'.INS_INDIQUE_ADRESSE.'</p>'."\n";
$res .= '<p>'."\n";
$res .= '<form action="'.$url_envoi_mdp.'" method="post">'."\n";
$res .= '<label for="nom_d_utilisateur">'.INS_EMAIL.' : </label>';
$valeur = (isset($_POST['username'])) ? $_POST['username'] : '';
$res .= '<input type="text" id="nom_d_utilisateur" name="nom_d_utilisateur" value="'.$valeur.'" size="32" /></li></ul>'."\n";
$res .= '<input type="submit" value="'.INS_ENVOIE_PASSE.'" />'."\n";
$res .= '</form>'."\n";
$res .= '</p>';
$res .= '</div>';
$res .= '<hr/>';
 
// On remet le formulaire d'inscription mais un peu réduit
$res .= '<h2 class="titre2_inscription">'.INS_DEJA_INSCRIT.'</h2>' ;
$form = new HTML_QuickForm ('inscription', 'post', $url) ;
$res .= '<h2 class="titre2_inscription">'.INS_MDP_PERDU_TITRE_RETENTER.'</h2>' ;
$form = new HTML_QuickForm ('inscription', 'post', $url_deja_inscrit) ;
$form->addElement ('text', 'username', INS_EMAIL) ;
$form->addElement ('password', 'password', INS_MOT_DE_PASSE) ;
$form->addElement('submit', 'valider', INS_VALIDER);
// Retour du html
$res .= $form->toHTML() ;
return $res;
}
 
function insertion($valeur) {
// =========== Insertion dans l'annuaire ===================
// =========== Insertion dans l'annuaire gen_annuaire ===================
$autres_valeurs = info_annuaire($valeur);
$autres_valeurs[INS_CHAMPS_DATE] = date('Y-m-d');
$autres_valeurs[INS_CHAMPS_MAIL] = $valeur['email'];
switch (INS_MDP_CRYPTYPE) {
case 'md5' :
$autres_valeurs[INS_CHAMPS_PASSE] = md5($valeur['mot_de_passe']);
break;
default :
trigger_error('Type d\'encodage du mot de passe inconnu!', E_USER_ERROR);
}
 
// Génération du nom wikini à partir du nom et du prénom
if (INS_UTILISE_WIKINI) {
$valeur['nom_wiki'] = genere_nom_wiki ($valeur['nom'], $valeur['prenom']) ;
$autres_valeurs[INS_CHAMPS_WIKINI] = $valeur['nom_wiki'] ;
$autres_valeurs['email'] = $valeur['email'] ;
// Utilisation de AUTH pour ajouter la personne
//$resultat = $GLOBALS['AUTH']->addUser($valeur['email'], $valeur['mot_de_passe'], $autres_valeurs) ;
$champs = '';
$vals = '';
foreach($autres_valeurs as $champ => $val) {
if ($val != '') {
$champs .= $champ.', ';
$vals .= '"'.str_replace('"', '\"', $val).'", ';
}
$autres_valeurs = info_annuaire($valeur) ;
$autres_valeurs['U_DATE'] = date('Y-m-d');
$resultat = $GLOBALS['AUTH']->addUser($valeur['email'], $valeur['mot_de_passe'], $autres_valeurs) ;
}
$champs = trim($champs, ', ');
$vals = trim($vals, ', ');
$requete = 'INSERT INTO '.INS_ANNUAIRE.' '.
' ('.$champs.') '.
'VALUES ('.$vals.') ';
$resultat = $GLOBALS['ins_db']->query($requete) ;
if (DB::isError($resultat)) {
die ($resultat->getMessage().$resultat->getDebugInfo()) ;
}
 
// Récupération de l'identifiant de l'inscription
$requete = 'SELECT '.INS_CHAMPS_ID.' FROM '.INS_ANNUAIRE.' WHERE '.INS_CHAMPS_MAIL.'="'.$valeur['email'].'"' ;
$requete = 'SELECT '.INS_CHAMPS_ID.' '.
'FROM '.INS_ANNUAIRE.' '.
'WHERE '.INS_CHAMPS_MAIL.' = "'.$valeur['email'].'"' ;
$resultat = $GLOBALS['ins_db']->query ($requete) ;
if (DB::isError ($resultat)) {
die ('Echec de la requete : '.$requete.'<br />'.$resultat->getMessage()) ;
176,8 → 200,8
// ================ Insertion dans SPIP =========================================
if (INS_UTILISE_SPIP) inscription_spip($id, $valeur) ;
 
// Insertion dans les statistiques
if (INS_UTILISE_STAT) {
$requete = 'INSERT INTO '.INS_TABLE_STATISTIQUE.' SET '.INS_STATS_CHAMPS_DATE.'=NOW(), '.INS_STATS_CHAMPS_ACTION.'="add"' ;
$resultat = $GLOBALS['ins_db']->query($requete) ;
if (DB::isError ($resultat)) {
184,6 → 208,7
die ('Echec de la requete : '.$requete.'<br />'.$resultat->getMessage()) ;
}
}
}
 
/**
* Effectue une mise à jour dans la base de donnée
192,11 → 217,10
* @global ins_db un objet PEAR::DB
* @return
*/
 
function mise_a_jour($valeur) {
// ====================Mise à jour dans l'annuaire ====================
$requete = 'UPDATE '.INS_ANNUAIRE.' SET '.
requete_annuaire ($valeur).
$requete = 'UPDATE '.INS_ANNUAIRE.' '.
'SET '.requete_annuaire($valeur).' '.
'WHERE '.INS_CHAMPS_ID.'="'.$GLOBALS['AUTH']->getAuthData(INS_CHAMPS_ID).'"';
$resultat = $GLOBALS['ins_db']->query($requete) ;
if (DB::isError($resultat)) {
203,13 → 227,14
die ($resultat->getMessage().$resultat->getDebugInfo()) ;
}
if (isset($valeur['lettre'])) $GLOBALS['AUTH']->setAuthData(INS_CHAMPS_LETTRE, $valeur['lettre'], true) ; // On appelle cette fonction pour mettre à jour
if (isset($valeur['lettre'])) {
// On appelle cette fonction pour mettre à jour
$GLOBALS['AUTH']->setAuthData(INS_CHAMPS_LETTRE, $valeur['lettre'], true);
}
// la valeur de session (récupéré par getAuthData()
unset ($resultat) ;
// ========================= Mise à jour dans SPIP ================================
if (INS_UTILISE_SPIP) mod_inscription_spip($GLOBALS['AUTH']->getAuthData(INS_CHAMPS_ID)) ;
if (INS_UTILISE_WIKINI) mod_inscription_interwikini_users($GLOBALS['AUTH']->getAuthData(INS_CHAMPS_WIKINI), $valeur) ;
}
 
/** requete_annuaire () - Renvoie une chaine contenant les champs de l'annuaire avec leur valeur suite à le fonction process de QuickForm
216,7 → 241,6
*
* @return string une requete du type champs="valeur",...
*/
 
function requete_annuaire (&$valeur) {
if (!isset($valeur['lettre'])) {
$valeur['lettre'] = 0;
250,7 → 274,7
'U_SPE="'.$valeur['specialite'].'", '.
'U_GEO="'.$valeur['specialite_geo'].'" ';
if (isset($valeur['dpt'])) {
$req .= ',U_FRENCH_DPT="'.$valeur['dpt'].'"' ;
$req .= ','.INS_CHAMPS_DPT.' = "'.$valeur['dpt'].'"' ;
}
return $req ;
}
260,7 → 284,6
*
* @return array renvoie un tableau avec en clé les champs de la base et en valeur les valeurs saisies dans le formulaire
*/
 
function info_annuaire ($valeur) {
// Petit code pour recupere le num de dpt a partir du cp
280,7 → 303,6
INS_CHAMPS_ADRESSE_1 => addslashes($valeur['adresse_1']),
INS_CHAMPS_ADRESSE_2 => addslashes($valeur['adresse_2']),
INS_CHAMPS_REGION => addslashes($valeur['region']),
INS_CHAMPS_STRUCTURE => addslashes($valeur['organisme']),
INS_CHAMPS_SITE_WEB => $valeur['site'],
'U_FONCTION' => addslashes($valeur['fonction']),
'U_NIV' => $valeur['niveau'],
289,7 → 311,9
'U_SPE' => addslashes($valeur['specialite']),
'U_GEO' => addslashes($valeur['specialite_geo'])
) ;
if (isset($valeur['lettre'])) $tableau[INS_CHAMPS_LETTRE] = $valeur['lettre'];
if (INS_UTILISE_LISTE){
$tableau[INS_CHAMPS_LETTRE] = $valeur['lettre'];
}
return $tableau ;
}
 
326,17 → 350,19
$valeurs_par_defaut['asso'] = $ligne['U_ASS'] ;
$valeurs_par_defaut['specialite'] = $ligne['U_SPE'] ;
$valeurs_par_defaut['specialite_geo'] = $ligne['U_GEO'] ;
if (INS_UTILISE_LISTE){
$valeurs_par_defaut['lettre'] = $ligne[INS_CHAMPS_LETTRE] ;
}
return $valeurs_par_defaut ;
}
 
 
 
function info() {
$requete = 'SELECT * from '.INS_ANNUAIRE.', '.INS_TABLE_PAYS.', annuaire_LABEL_ACT, annuaire_LABEL_NIV, annuaire_LABEL_ASS'.
' WHERE '.INS_ANNUAIRE.'.'.INS_CHAMPS_ID.'="'.$GLOBALS['AUTH']->getAuthData(INS_CHAMPS_ID).'"'.
' AND '.INS_CHAMPS_PAYS.'='.INS_CHAMPS_ID_PAYS.
' AND U_ACT=ID_LABEL_ACT and U_NIV=ID_LABEL_NIV and U_ASS=ID_LABEL_ASS' ;
'AND '.INS_CHAMPS_PAYS.'='.INS_CHAMPS_ID_PAYS.' '.
'AND U_ACT=ID_LABEL_ACT '.
'AND U_NIV=ID_LABEL_NIV '.
'AND U_ASS=ID_LABEL_ASS ';
$resultat = $GLOBALS['ins_db'] -> query ($requete) ;
if (DB::isError ($resultat)) {
382,8 → 408,8
*
* @return
*/
 
function ligne_inscription ($label, $valeur) {
function ligne_inscription ($label, $valeur)
{
if ($valeur == '') {
$valeur = '&nbsp;' ;
}
390,12 → 416,13
return '<dt>'.$label.' : </dt><dd>'.$valeur.'</dd>' ;
}
 
function bouton($url) {
function bouton($url)
{
$boutons = new HTML_QuickForm('inscription', 'post', $url) ; ;
//confirmation() ;
$buttons[] = &HTML_QuickForm::createElement('submit', 'modifier', INS_MODIFIER_INSCRIPTION);
$buttons[] = &HTML_QuickForm::createElement('submit', 'supprimer', INS_SUPPRIMER_INSCRIPTION,
array ("onclick" => "javascript:return confirm('".INS_SUPPRIMER_INSCRIPTION." ?');"));
array ('onclick' => "javascript:return confirm('".INS_SUPPRIMER_INSCRIPTION." ?');"));
$boutons->addGroup($buttons, null, null, '&nbsp;');
$boutons->addElement('hidden', 'id_utilisateur', $GLOBALS['AUTH']->getAuthData (INS_CHAMPS_ID)) ;
return $boutons->toHTML() ;
406,15 → 433,14
*
* @return string
*/
 
function deconnexion ($url) {
function deconnexion ($url)
{
// Un champs logout
return "<div><a href=\"$url&amp;logout=1\">".INS_DECONNEXION."</a></div>" ;
return '<div><a href="'.$url.'&amp;logout=1">'.INS_DECONNEXION.'</a></div>';
}
 
 
function verif_doublonMail($mail) {
function verif_doublonMail($mail)
{
if (isset ($GLOBALS['AUTH']) && $GLOBALS['AUTH']->getAuthData(INS_CHAMPS_ID) != '') {
$requete_mail = "select ".INS_CHAMPS_MAIL." from ".INS_ANNUAIRE." where ".INS_CHAMPS_ID."=".$GLOBALS['AUTH']->getAuthData(INS_CHAMPS_ID) ;
$resultat_mail = $GLOBALS['ins_db']->query ($requete_mail) ;
435,10 → 461,8
return false ;
}
 
 
function envoie_passe()
{
 
$headers['From'] = INS_MAIL_ADMIN_APRES_INSCRIPTION ;
$headers['Subject'] = INS_NOUVEAU_MOT_DE_PASSE;
 
466,7 → 490,6
 
return "<div class=\"titre1_inscription\">".INS_MOT_DE_PASSE_ENVOYE_1." ".$_POST['nom_d_utilisateur']."</div>\n".
"<div><br>".INS_MOT_DE_PASSE_ENVOYE_2."</div>\n";
 
}
 
/**
474,30 → 497,22
* @global ins_db Un pointeur vers un objet PEAR::DB connecté
* @return
*/
 
function envoie_mail()
{
include_once 'Mail/mime.php' ;
$crlf="\n";
$headers ['From'] = INS_MAIL_ADMIN_APRES_INSCRIPTION ;
$headers ['Subject'] = INS_MAIL_COORD_SUJET ;
$headers ['Reply-To'] = INS_MAIL_ADMIN_APRES_INSCRIPTION ;
$mime = new Mail_mime($crlf);
$requete = 'SELECT *, '.INS_CHAMPS_LABEL_PAYS.' from '.INS_ANNUAIRE.','.INS_TABLE_PAYS.', annuaire_LABEL_ACT, annuaire_LABEL_NIV, annuaire_LABEL_ASS'.
$requete = 'SELECT *, '.INS_CHAMPS_LABEL_PAYS.' '.
'FROM '.INS_ANNUAIRE.','.INS_TABLE_PAYS.', annuaire_LABEL_ACT, annuaire_LABEL_NIV, annuaire_LABEL_ASS '.
' WHERE '.INS_CHAMPS_MAIL.'="'.$GLOBALS['AUTH']->getUsername().'"'.
' AND '.INS_CHAMPS_ID_PAYS.'='.INS_CHAMPS_PAYS.
' AND U_ACT=ID_LABEL_ACT and U_NIV=ID_LABEL_NIV and U_ASS=ID_LABEL_ASS' ;
 
'AND '.INS_CHAMPS_ID_PAYS.'='.INS_CHAMPS_PAYS.' '.
'AND U_ACT=ID_LABEL_ACT '.
'AND U_NIV=ID_LABEL_NIV '.
'AND U_ASS=ID_LABEL_ASS ';
$resultat = $GLOBALS['ins_db']->query($requete) ;
if (DB::isError ($resultat)) {
die ("Echec de la requete : $requete<br />".$resultat->getMessage()) ;
}
$ligne = $resultat->fetchRow(DB_FETCHMODE_ASSOC) ;
$body = INS_MAIL_COORD_CORPS."\n" ;
$body .= "------------------------------------------\n";
$body .= INS_EMAIL.": ".unhtmlentities($ligne[INS_CHAMPS_MAIL])." \n" ;
$body .= INS_NOM.": ".unhtmlentities($ligne[INS_CHAMPS_NOM])." \n" ;
511,27 → 526,28
$body .= INS_SITE_INTERNET." : ".unhtmlentities($ligne[INS_CHAMPS_SITE_WEB])." \n" ;
$body .= INS_ORGANISME." : ".unhtmlentities($ligne['U_TITLE'])." \n" ;
$body .= INS_FONCTION." : ".unhtmlentities($ligne['U_FONCTION'])." \n" ;
$body .= unhtmlentities(INS_ETES_BOTANISTE)." : ".unhtmlentities($ligne['LABEL_NIV'])." \n" ;
$body .= unhtmlentities(INS_ACTIVITE_PROFESSIONNELLE)." : ".unhtmlentities($ligne['LABEL_ACT'])." \n" ;
$body .= unhtmlentities(INS_MEMBRE_ASSO)." : ".unhtmlentities($ligne['LABEL_ASS'])." \n" ;
$body .= unhtmlentities(INS_SPECIALISTE)." : ".unhtmlentities($ligne['U_SPE'])." \n" ;
$body .= unhtmlentities(INS_SPE_ZONE)." : ".unhtmlentities($ligne['U_GEO'])." \n" ;
$body .= unhtmlentities(INS_ETES_BOTANISTE).unhtmlentities($ligne['LABEL_NIV'])." \n" ;
$body .= unhtmlentities(INS_ACTIVITE_PROFESSIONNELLE).unhtmlentities($ligne['LABEL_ACT'])." \n" ;
$body .= unhtmlentities(INS_MEMBRE_ASSO).unhtmlentities($ligne['LABEL_ASS'])." \n" ;
$body .= unhtmlentities(INS_SPECIALISTE).unhtmlentities($ligne['U_SPE'])." \n" ;
$body .= unhtmlentities(INS_SPE_ZONE).unhtmlentities($ligne['U_GEO'])." \n" ;
$body .= "-------------------------------------------\n" ;
 
$mime->setTXTBody($body);
// Envoi du mail aux administrateur du site
if ($ligne[INS_CHAMPS_MAIL] != '') {
$headers ['From'] = INS_MAIL_ADMIN_APRES_INSCRIPTION;
$headers ['Reply-To'] = INS_MAIL_ADMIN_APRES_INSCRIPTION;
$headers ['Subject'] = INS_MAIL_COORD_SUJET;
 
$body = $mime->get();
$headers = $mime->headers($headers);
$mail =& Mail::factory('mail') ;
$mail->send($ligne[INS_CHAMPS_MAIL], $headers, $body) ;
// Envoi du mail aux administrateur du site
if ($ligne[INS_CHAMPS_MAIL] != '') {
foreach ($GLOBALS['mail_admin'] as $administrateur) {
$mail->send($administrateur, $headers, $body) ;
$envoi = $mail->send($administrateur, $headers, $body) ;
if (PEAR::isError($envoi)) {
trigger_error($envoi->getMessage(), E_USER_WARNING);
}
}
}
return true ;
}
 
542,7 → 558,7
*/
 
function message_inscription () {
return '<div>'.INS_MESSAGE_INSCRIPTION.'</div>' ;
return '<p>'.INS_MESSAGE_INSCRIPTION.'</p>' ;
}
 
/**
552,14 → 568,9
* @global AUTH Un objet PEAR::Auth
* @return boolean true en cas de succès
*/
 
function inscription_lettre ($action, $courriel = '') {
function inscription_lettre ($action) {
$mail = & Mail::factory ('smtp') ;
if ($courriel == '') {
$email = $GLOBALS['AUTH']->getUsername() ;
} else {
$email = $courriel ;
}
$headers ['Return-Path'] = $email ;
$headers ['From'] = "<".$email.">" ;
$headers ['Subject'] = $action ;
567,7 → 578,7
$mail -> send ($action, $headers, "") ;
if (PEAR::isError ($mail)) {
echo '<div class="erreur">Le mail n\'est pas partie...</div>' ;
echo '<p class="erreur">Le mail n\'est pas partie...</p>' ;
return false ;
}
return true ;
579,7 → 590,6
*
* @return string un nom wiki valide
*/
 
function genere_nom_wiki ($nom, $prenom) {
// 1. suppression des espaces
$nom = trim ($nom) ;
602,7 → 612,6
*
* @return
*/
 
function trim_non_ascii ($nom) {
$premiere_lettre = true ;
for ($i = 0; $i < strlen ($nom); $i++) {
/trunk/client/inscription/langues/ins_langue_fr.inc.php
35,7 → 35,8
// +------------------------------------------------------------------------------------------------------+
*/
 
define ("INS_AJOUT_MEMBRE", "Ajout d'un nouveau membre") ;
define ("INS_AJOUT_MEMBRE", "Remplissez le formulaire ci-dessous pour vous inscrire") ;
define ('INS_MODIF_MEMBRE', 'Modification de vos informations');
define ("INS_NOM", "Nom") ;
define ("INS_NOM_REQUIS", "Indiquez votre nom.") ;
define ("INS_PRENOM", "Pr&eacute;nom") ;
58,7 → 59,7
define ("INS_ORGANISME", "Organisme") ;
define ("INS_FONCTION", "Fonction") ;
define ("INS_ETES_BOTANISTE", "Vous &ecirc;tes botaniste :") ;
define ("INS_ACTIVITE_PROFESSIONNELLE", " Votre activit&eacute; professionnelle (ou celle que vous aviez)") ;
define ("INS_ACTIVITE_PROFESSIONNELLE", "Votre activit&eacute; professionnelle (ou celle que vous aviez) :") ;
define ("INS_MEMBRE_ASSO", "Vous &ecirc;tes membre d'une association botanique, naturaliste, ou autre... :") ;
define ("INS_SPECIALISTE", " Vous &ecirc;tes sp&eacute;cialiste d'une discipline ou d'un groupe de plantes particulier, lequel :") ;
define ("INS_SPE_ZONE", "Vous &egrave;tes sp&eacute;cialiste d'une zone g&eacute;ographique, laquelle :") ;
79,22 → 80,32
define ("INS_FICHE_PERSONNELLE", "Fiche personnelle") ;
define ("INS_DECONNEXION", 'D&eacute;connexion') ;
define ("INS_INSCRIPTION", 'Inscription') ;
define ("INS_TEXTE_PERDU", "Si vous avez perdu votre mot de passe, indiquez ".
"votre adresse email dans le champs login ci-dessus et cliquez sur \"Valider\"") ;
define ("INS_NOM_WIKI", "Nom wiki") ;
define ("INS_MAUVAIS_NOM_WIKI", "Le nom wiki n'est pas valide (ex : NomPrenom)") ;
define ("INS_MDP_PERDU_TITRE", "Perte ou oubli de mot de passe");
define ("INS_MDP_PERDU_TITRE_RETENTER", "Vous pouvez aussi essayer à nouveau de vous identifier...");
 
define ("INS_TEXTE_PERDU", "Si vous avez perdu votre mot de passe, veuillez cliquez sur le lien suivant :") ;
define('INS_MDP_PERDU_OUBLI', 'perte de mot de passe');
define ("INS_DEJA_INSCRIT", "D&eacute;j&agrave;  inscrit, identifiez-vous pour acc&eacute;der &agrave;  votre fiche personnelle :") ;
define ("INS_ERREUR_LOGIN", "Utilisateur inconnu ou mot de passe erronn&eacute;") ;
define ("INS_SI_PASSE_PERDU", "Si vous avez perdu votre mot de passe") ;
define ("INS_INDIQUE_ADRESSE", "Indiquez votre adresse email dans le champs ci-dessus.<br>\n".
define ("INS_INDIQUE_ADRESSE", "Indiquez dans le champs ci-dessous l'adresse email que vous avez utilisé pour vous inscrire au site.<br>\n".
"Un nouveau mot de passe vous sera envoyé.") ;
define ("INS_ENVOIE_PASSE", "Envoi du mot de passe par mail") ;
define ("INS_LAIUS_INSCRIPTION", "L'inscription au r&eacute;seau Tela Botanica est libre et gratuite !") ;
define ("INS_LAIUS_INSCRIPTION_2", "Elle vous permet de :<br />
- consulter l'annuaire des personnes inscrites au R&eacute;seau et pouvoir ainsi &eacute;changer des informations ;<br />
- acc&eacute;der &agrave;  certaines informations diffus&eacute;es sur le site ;<br />
- vous inscrire &agrave;  des projets botaniques ;<br />
- recevoir un bulletin &eacute;lectronique d'informations.") ;
define ("INS_LAIUS_INSCRIPTION", "L'inscription est libre et gratuite !") ;
define ("INS_LAIUS_INSCRIPTION_2", "Elle vous permet de :</p>
<ul>
<li>consulter l'annuaire des personnes inscrites et pouvoir ainsi échanger des informations ;</li>
<li>accéder à certaines informations diffusées sur le site ;</li>
<li>recevoir une lettre électronique d'informations.</li>
</ul>
<p>Par la suite, il vous sera possible de modifier voire annuler votre inscription.<br />
Seuls vos prénom, nom, ville, commune et pays apparaîtrons dans l'annuaire, les autres informations restent confidentielles (e-mail, adresse). </p>
<p>En application des articles 39 et suivants de la loi du 6 janvier 1978 modifiée, vous bénéficiez d'un droit d'accès
et de rectification aux informations qui vous concernent.</p>
<p><strong>L'inscription à l'annuaire du site de Tela Botanica implique que vous soyez d'accord pour que votre nom, prénom, ville,
code postal et pays apparaissent en clair dans le site Internet de Tela Botanica</strong>.");
define ('INS_PIED_INFO', 'Si vous constatez des problèmes en utilisant cette application, veuillez contacter : ') ;
define ('INS_PIED_MAIL', 'jpm@tela-botanica.org') ;
 
//============= L'envoie du mot de passe perdu par mail =============================
define ("INS_NOUVEAU_MOT_DE_PASSE", "Votre nouveau mot de passe Tela Botanica") ;
129,34 → 140,4
'Nous avons reçu une demande d\'inscription pour cette adresse mail.'."\n".
'Pour confirmer, cliquer sur le lien ci-dessous.'."\n\n" ) ;
define ('INS_MESSAGE_FIN_MAIL_INSCRIPTION', "\n\n".'L\'équipe de Tela Botanica') ;
/* +--Fin du code ----------------------------------------------------------------------------------------+
*
* $Log: ins_langue_fr.inc.php,v $
* Revision 1.3 2005/03/21 16:50:45 alex
* labels
*
* Revision 1.2 2005/03/10 09:40:39 tam
* modifs labels
*
* Revision 1.1 2005/03/04 10:39:54 tam
* installation
*
* Revision 1.1 2004/07/06 15:42:17 alex
* en cours
*
* Revision 1.4 2004/07/06 15:31:43 alex
* en cours
*
* Revision 1.3 2004/06/25 14:25:40 alex
* ajout de labels
*
* Revision 1.2 2004/06/24 07:43:55 alex
* traduction
*
* Revision 1.1 2004/06/18 09:21:15 alex
* version initiale
*
*
* +-- Fin du code ----------------------------------------------------------------------------------------+
*/
?>
?>
/trunk/client/inscription/configuration/ins_config.inc.php
1,5 → 1,4
<?php
/*vim: set expandtab tabstop=4 shiftwidth=4: */
// +------------------------------------------------------------------------------------------------------+
// | PHP version 4.1 |
// +------------------------------------------------------------------------------------------------------+
19,7 → 18,6
// | License along with this library; if not, write to the Free Software |
// | Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA |
// +------------------------------------------------------------------------------------------------------+
// CVS : $Id: ins_config.inc.php,v 1.3 2005/05/13 13:49:15 alex Exp $
/**
* Fichier de configuration de l'inscription
*
29,9 → 27,9
//Auteur original :
*@author Alexandre GRANIER <alexandre@tela-botanica.org>
//Autres auteurs :
*@author Aucun
*@author Jean-Pascal MILCENT <jpm@tela-botanica.org>
*@copyright Tela-Botanica 2000-2004
*@version $Revision: 1.3 $ $Date: 2005/05/13 13:49:15 $
*@version $Id: ins_config.inc.php,v 1.3 2005/05/13 13:49:15 alex Exp $
// +------------------------------------------------------------------------------------------------------+
*/
 
41,7 → 39,6
* Définition des variables globales
//==================================================================================
*/
 
$GLOBALS['AUTH'] =& $GLOBALS['_GEN_commun']['pear_auth'] ;
 
/**
58,30 → 55,31
* Constantes des noms de tables et de champs dans l'annuaire
//==================================================================================
*/
define ("INS_ANNUAIRE", "annuaire_tela") ;
define ("INS_CHAMPS_ID", "U_ID") ; // Nom du champs nom
define ("INS_CHAMPS_MAIL", "U_MAIL") ; // Nom du champs mail
define ("INS_CHAMPS_LOGIN", "at_nom_wiki") ;
define ("INS_CHAMPS_NOM", "U_NAME") ;
define ("INS_CHAMPS_PRENOM", "U_SURNAME") ;
define ("INS_CHAMPS_PASSE", "U_PASSWD") ;
define ("INS_CHAMPS_PAYS", "U_COUNTRY") ;
define ("PROJET_PRENOM", "U_SURNAME") ; // Nom du champs prénom
define ("PROJET_DPT", "gen_FRENCH_DPT") ; // Nom de la table département
define ("INS_TABLE_PAYS", "gen_COUNTRY") ; // Nom de la table pays
define ("INS_CHAMPS_ID_PAYS", "GC_ID") ;
define ("INS_CHAMPS_LABEL_PAYS", "GC_NAME") ;
define ("INS_CHAMPS_CODE_POSTAL", "U_ZIP_CODE") ;
define ("INS_CHAMPS_VILLE", "U_CITY") ;
define ("INS_CHAMPS_ADRESSE_1", "U_ADDR1") ;
define ("INS_CHAMPS_ADRESSE_2", "U_ADDR2") ;
define ("INS_CHAMPS_REGION", "U_STATE") ;
define ("INS_CHAMPS_SITE_WEB", "U_WEB") ;
define ("INS_CHAMPS_TELEPHONE", "U_PHONE") ;
define ("INS_CHAMPS_FAX", "U_FAX") ;
define ("INS_CHAMPS_STRUCTURE", "U_TITLE") ;
define ("INS_CHAMPS_DATE", "U_DATE") ;
define ("INS_CHAMPS_LETTRE", "U_LETTRE") ; // Le champs qui indique si l'usager est inscrit à la lettre d'inscription
define ('INS_ANNUAIRE', 'annuaire_tela');
define ('INS_CHAMPS_ID', 'U_ID');// Nom du champs nom
define ('INS_CHAMPS_MAIL', 'U_MAIL');// Nom du champs mail
define ('INS_CHAMPS_LOGIN', 'at_nom_wiki');
define ('INS_CHAMPS_NOM', 'U_NAME');
define ('INS_CHAMPS_PRENOM', 'U_SURNAME');
define ('INS_CHAMPS_PASSE', 'U_PASSWD');
define ('INS_CHAMPS_PAYS', 'U_COUNTRY');
define ('INS_CHAMPS_CODE_POSTAL', 'U_ZIP_CODE');
define ('INS_CHAMPS_VILLE', 'U_CITY');
define ('INS_CHAMPS_ADRESSE_1', 'U_ADDR1');
define ('INS_CHAMPS_ADRESSE_2', 'U_ADDR2');
define ('INS_CHAMPS_REGION', 'U_STATE');
define ('INS_CHAMPS_SITE_WEB', 'U_WEB');
define ('INS_CHAMPS_TELEPHONE', 'U_PHONE');
define ('INS_CHAMPS_FAX', 'U_FAX');
define ('INS_CHAMPS_STRUCTURE', 'U_TITLE');
define ('INS_CHAMPS_DATE', 'U_DATE');
define ('INS_CHAMPS_LETTRE', 'U_LETTRE');// Le champs qui indique si l'usager est inscrit à la lettre d'inscription
define ('INS_CHAMPS_DPT', 'U_FRENCH_DPT');
define ('PROJET_DPT', 'carto_DEPARTEMENT');// Nom de la table département
define ('INS_TABLE_PAYS', 'carto_PAYS');// Nom de la table pays
define ('INS_CHAMPS_ID_PAYS', 'CP_ID_Pays');
define ('INS_CHAMPS_LABEL_PAYS', 'CP_Intitule_pays');
define ('INS_CHAMPS_PAYS_LG', 'CP_Langue_intitule');// Langue de l'intitule du pays
 
/**
//==================================== PARAMETRAGE =================================
88,23 → 86,22
* Pour régler certaines fonctionnalité de l'application
//==================================================================================
*/
define ("INS_MAIL_ADMIN_APRES_INSCRIPTION", "Reseau Tela Botanica <accueil@tela-botanica.org>") ;
define ("INS_MAIL_ADMIN_APRES_INSCRIPTION_SUJET", "[Tela Botanica]Inscription") ;
define ("INS_MAIL_INSCRIPTION_LISTE", 'actu-subscribe@tela-botanica.org') ;
define ("INS_MAIL_DESINSCRIPTION_LISTE", 'actu-unsubscribe@tela-botanica.org') ;
// Indique le type de cryptage du mot de passe à appliquer (doit être identique à PEAR_AUTH)
define ('INS_MDP_CRYPTYPE', 'md5');// Choix : md5 seulement
 
// Liste des personne recevant le mail après inscription
$GLOBALS['mail_admin'] = array ('accueil@tela-botanica.org', 'dmathieu@tela-botanica.org') ;
define ('INS_MAIL_ADMIN_APRES_INSCRIPTION', 'Accueil Tela Botanica <accueil@tela-botanica.org>');
define ('INS_MAIL_ADMIN_APRES_INSCRIPTION_SUJET', '[Tela Botanica] Inscription');
 
define ("INS_UTILISE_SPIP", 1) ;
define ('INS_UTILISE_LISTE', true);// Mettre à false si pas de liste d'actu
define ('INS_MAIL_INSCRIPTION_LISTE', 'actu-subscribe@tela-botanica.org');
define ('INS_MAIL_DESINSCRIPTION_LISTE', 'actu-unsubscribe@tela-botanica.org');
 
define ("INS_UTILISE_WIKINI", 1) ;
// Liste des personne recevant le mail après inscription
$GLOBALS['mail_admin'] = array ('Accueil <accueil@tela-botanica.org>',
'Daniel MATHIEU <dmathieu@tela-botanica.org>',
'Jean-Pascal MILCENT <jpm@tela-botanica.org>');
 
if (INS_UTILISE_WIKINI) {
define ('INS_CHAMPS_WIKINI', 'at_nom_wiki') ;
define ('INS_BDD_WIKINI', 'tela_prod_wikini') ;
}
 
define ('INS_UTILISE_SPIP', 1);
if (INS_UTILISE_SPIP) {
define ('INS_BDD_SPIP', 'tela_prod_spip_actu') ;
}
113,17 → 110,16
//==================================== PARAMETRAGE =================================
* Pour gérer la réécriture d'url de l'inscription
* Cela nécessite une ligne dans le fichier .htaccess, par exemple
* RewriteRule ^ins([0-9a-z]*)$ papyrus.php?menu=22&id=$1 [L]
* RewriteRule ^ins([0-9a-z]*)$ papyrus.php?menu=22&action=ajouter&id=$1 [L]
* Cela sert à racourcir l'URL de confirmation d'inscription
//==================================================================================
*/
 
define ('INS_UTILISE_REECRITURE_URL', 1) ; // mettre à 1 si on souhaite utiliser la réécriture
 
if (INS_UTILISE_REECRITURE_URL) {
define ('INS_URL_PREFIXE', '_ins_') ; // Indique le préfixe de l'url http://www.mondomaine.org/prefix____
}
 
define ('INS_UTILISE_STAT', true);
define ('INS_TABLE_STATISTIQUE', 'ins_STATS') ;
define ('INS_STATS_CHAMPS_DATE', 'IS_DATE') ;
define ('INS_STATS_CHAMPS_ACTION', 'IS_ACTION') ;
/trunk/client/inscription/inscription.php
1,5 → 1,4
<?php
/*vim: set expandtab tabstop=4 shiftwidth=4: */
// +------------------------------------------------------------------------------------------------------+
// | PHP version 4.1 |
// +------------------------------------------------------------------------------------------------------+
19,19 → 18,18
// | License along with this library; if not, write to the Free Software |
// | Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA |
// +------------------------------------------------------------------------------------------------------+
// CVS : $Id: inscription.php,v 1.3 2005/03/21 16:50:21 alex Exp $
/**
* Inscription
*
* Un module d'inscription, en général ce code est spécifique à
* un site web
* Un module d'inscription, en général ce code est spécifique à un site web.
*
*@package inscription
//Auteur original :
*@author Alexandre GRANIER <alexandre@tela-botanica.org>
//Autres auteurs :
*@author Jean-Pascal MILCENT <jpm@tela-botanica.org>
*@copyright Tela-Botanica 2000-2004
*@version $Revision: 1.3 $ $Date: 2005/03/21 16:50:21 $
*@version $Id: inscription.php,v 1.3 2005/03/21 16:50:21 alex Exp $
// +------------------------------------------------------------------------------------------------------+
*/
 
39,14 → 37,22
// | ENTETE du PROGRAMME |
// +------------------------------------------------------------------------------------------------------+
include_once PAP_CHEMIN_API_PEAR.'Mail.php' ;
if (isset($lang)) {
include_once "client/inscription/langues/ins_langue_$lang.inc.php" ;
require_once PAP_CHEMIN_API_PEAR.'HTML/QuickForm.php' ;
require_once PAP_CHEMIN_API_PEAR.'HTML/QuickForm/checkbox.php' ;
require_once PAP_CHEMIN_API_PEAR.'HTML/QuickForm/password.php' ;
/** Constante "dynamique" stockant la langue demandée par l'utilisateur pour l'application.*/
define('INS_LANGUE', substr($GLOBALS['_GEN_commun']['i18n'], 0, 2));
$fichier_lg = 'client/inscription/langues/ins_langue_'.INS_LANGUE.'.inc.php';
if (file_exists($fichier_lg)) {
include_once $fichier_lg;
include_once 'client/inscription/langues/ins_langue_'.INS_LANGUE.'.inc.php';
} else {
include_once ("client/inscription/langues/ins_langue_fr.inc.php") ;
include_once 'client/inscription/langues/ins_langue_fr.inc.php' ;
}
include_once ("client/inscription/configuration/ins_config.inc.php");
include_once ("client/inscription/bibliotheque/inscription.fonct.php") ;
include_once INS_CHEMIN_FICHIER."bibliotheque/inscription.class.php" ;
include_once 'client/inscription/configuration/ins_config.inc.php';
include_once 'client/inscription/bibliotheque/inscription.fonct.php';
include_once 'client/inscription/bibliotheque/ins_spip.fonct.php';
include_once INS_CHEMIN_FICHIER.'bibliotheque/inscription.class.php';
 
// Ajout d'une feuille de style externe
GEN_stockerStyleExterne ('inscription', 'client/inscription/inscription.css') ;
55,9 → 61,6
// | LISTE de FONCTIONS |
// +------------------------------------------------------------------------------------------------------+
 
 
 
 
function afficherContenuTete() {
$retour = '<h1 class="titre1_inscription">Inscription au Réseau Tela Botanica</h1>';
return ;
75,32 → 78,35
* @global ins_url Un pointeur vers un objet PEAR::Net_URL
* @return string Le contenu de l'application inscription
*/
 
function afficherContenuCorps() {
 
$url = preg_replace ("/&amp;/", "&", $GLOBALS['ins_url']->getURL()) ;
if (!isset ($_REQUEST['action'])) $_REQUEST['action'] = "" ;
// Attibution de l'action par défaut à effectuer.
if (!isset ($_REQUEST['action'])) {
$_REQUEST['action'] = 'inscription';
}
$res = '' ;
$est_loggue = true ;
 
// ... tentative de déconnection
if (isset ($_GET['logout']) && $_GET['logout'] == 1) {
$GLOBALS['AUTH']->logout() ;
$_POST['username'] = "" ;
$_POST['password'] = "" ;
return AUTH_formulaire_login() ;
$_POST['username'] = '' ;
$_POST['password'] = '' ;
//return AUTH_formulaire_login() ;
}
// L'utilisateur a-t-il cliqué sur Supprimer inscription
// ...supprimer l'inscription
if (isset ($_POST['supprimer'])) {
$mail_utilisateur = $GLOBALS['AUTH']->getUsername();
$id_utilisateur = $GLOBALS['AUTH']->getAuthData(INS_CHAMPS_ID) ;
$bool_inscription_lettre = $GLOBALS['AUTH']->getAuthData(INS_CHAMPS_LETTRE);
 
$resultat = $GLOBALS['AUTH']->removeUser($mail_utilisateur) ;
 
if (PEAR::isError($resultat)) {
die ($resultat->getMessage().'<br />'.$resultat->getDebugInfo()) ;
}
 
// Suppression dans SPIP
if (INS_UTILISE_SPIP) {
desinscription_spip($id_utilisateur) ;
107,75 → 113,145
}
// Désinscription de la lettre d'info
if (INS_UTILISE_LISTE) {
if ($bool_inscription_lettre == 1) {
inscription_lettre(INS_MAIL_DESINSCRIPTION_LISTE) ;
}
}
$GLOBALS['AUTH']->logout() ;
// Ajout d'une ligne dans les statistiques
if (INS_UTILISE_STAT) {
$requete = 'INSERT INTO '.INS_TABLE_STATISTIQUE.' SET '.INS_STATS_CHAMPS_DATE.'=NOW(), '.INS_STATS_CHAMPS_ACTION.'="del"' ;
$resultat = $GLOBALS['ins_db']->query ($requete) ;
if (DB::isError ($resultat)) {
die ('Echec de la requete : '.$requete.'<br />'.$resultat->getMessage()) ;
}
return AUTH_formulaire_login() ;
}
//return AUTH_formulaire_login() ;
}
 
// ... envoie de mot de passe
if ($_REQUEST['action'] == 'sendpasswd') {
return AUTH_formulaire_login(envoie_passe()) ;
envoie_passe();
}
 
// L'utilisateur a cliqué sur Inscription ou Inscription structure ou
if ($_REQUEST['action'] != '' || isset($_POST['modifier'])) {
$res .= '<h1 class="titre1_inscription">'.INS_ACCUEIL_INSCRIPTION.'</h1>' ;
// ...oublie de mot de passe
if (preg_match('/^(?:mdp_oubli|sendpasswd)$/', $_REQUEST['action'])) {
return message_erreur(false);
}
// ...inscription dans la base si l'utilisateur clique sur le lien du mail
if ($_GET['action'] == 'ajouter' && isset($_GET['id']) && !$GLOBALS['AUTH']->getAuth()) {
$requete = 'SELECT id_donnees FROM inscription_demande WHERE id_identifiant_session="'.$_GET['id'].'"' ;
$resultat = $GLOBALS['ins_db']->query($requete) ;
if (DB::isError ($resultat)) {
die ("Echec de la requete : $requete<br />".$resultat->getMessage()) ;
}
if ($resultat->numRows() == 0) {
return INS_MESSAGE_EXPIRATION;
}
$ligne = $resultat->fetchRow(DB_FETCHMODE_OBJECT) ;
$donnees = unserialize (stripslashes($ligne->id_donnees)) ;
//trigger_error(print_r($donnees, true), E_USER_WARNING);
 
// Ajout des données dans la base
insertion($donnees);
// On loggue l'utilisateur
$GLOBALS['AUTH']->username = $donnees['email'] ;
$GLOBALS['AUTH']->password = $donnees['mot_de_passe'] ;
$GLOBALS['AUTH']->login() ;
// Inscription à la lettre d'information
if (INS_UTILISE_LISTE) {
if (isset ($donnees['lettre'])) {
inscription_lettre(INS_MAIL_INSCRIPTION_LISTE) ;
}
}
// On supprime la demande d'inscription
$requete = 'DELETE FROM inscription_demande WHERE id_identifiant_session="'.$_GET['id'].'"' ;
$resultat = $GLOBALS['ins_db']->query ($requete) ;
if (DB::isError ($resultat)) {
die ("Echec de la requete : $requete<br />".$resultat->getMessage()) ;
}
// On envoi les mails d'information sur la nouvelle inscription.
envoie_mail();
}
 
// ... affichage d'une erreur en cas de pb
if (!$GLOBALS['AUTH']->getAuth() && $_REQUEST['action'] != 'inscription' && $_REQUEST['action'] != 'inscription_v') {
if (isset($_POST['username']) && $_POST['username'] != '') {
$res .= message_erreur();
}
}
 
// ... la personne est identifiée nous affichons ses informations
if ($GLOBALS['AUTH']->getAuth () && !isset($_POST['modifier']) && $_REQUEST['action'] != 'modifier_v') {
return info().bouton($url);
}
// ...tentative d'inscription ou Inscription structure
if (preg_match('/^(?:inscription|inscription_v|modifier_v)$/', $_REQUEST['action']) || isset($_POST['modifier'])) {
$action = preg_replace ("/&amp;/", "&", $GLOBALS['ins_url']->getURL()) ;
$formulaire = new HTML_formulaireInscription('formulaire_inscription', 'post', $action) ;
// Construction de la liste des pays
$liste_pays = new ListeDePays($GLOBALS['ins_db']) ;
$formulaire->construitFormulaire($action, $liste_pays->getListePays('fr')) ;
 
if (isset($_POST['structure'])) {
$formulaire->formulaireStructure() ;
}
 
if (!isset($_POST['modifier'])) {
$GLOBALS['ins_url']->addQueryString('action', 'mdp_oubli');
$url_oubli = preg_replace ('/&amp;/', '&', $GLOBALS['ins_url']->getURL()) ;
$GLOBALS['ins_url']->removeQueryString('action');
$res .= '<h1 class="titre1_inscription">'.INS_ACCUEIL_INSCRIPTION.'</h1>';
$res .= '<h2 class="titre2_inscription">'.INS_LAIUS_INSCRIPTION.'</h2>'."\n" ;
$res .= '<p>'.INS_LAIUS_INSCRIPTION_2.'</p>'."\n" ;
$res .= '<p>'.INS_TEXTE_PERDU.' <a href="'.$url_oubli.'">'.INS_MDP_PERDU_OUBLI.'</a></p>'."\n" ;
} else {
$formulaire->mode_ajout = false;
$res .= '<h1 class="titre1_inscription">'.INS_ACCUEIL_INSCRIPTION.'</h1>';
}
 
$formulaire->construitFormulaire($action, $liste_pays->getListePays('fr')) ;
if (isset($_POST['modifier'])) {
$formulaire->addElement ('hidden', 'action', 'modifier_v') ;
$formulaire->setDefaults(formulaire_defaults()) ;
if (INS_UTILISE_LISTE) {
if ($GLOBALS['AUTH']->getAuthData(INS_CHAMPS_LETTRE) == 1) {
$lettre = & $formulaire->getElement('lettre') ;
$lettre->setChecked(true) ;
}
}
if ($_REQUEST['action'] == 'inscription') {
} else if ($_REQUEST['action'] == 'inscription') {
$formulaire->addElement ('hidden', 'action', 'inscription_v') ;
$formulaire->setDefaults (array ('pays' => 'fr', 'asso' => 3, 'activite' => 3, 'niveau' => 4, 'lettre' => 1)) ;
if (INS_UTILISE_LISTE) {
$lettre = & $formulaire->getElement('lettre') ;
$lettre->setChecked(true) ;
}
 
if ($_REQUEST['action'] == 'inscription_v') {
} else if ($_REQUEST['action'] == 'inscription_v') {
if ($formulaire->validate()) {
$formulaire->process('demande_inscription', false) ;
return message_inscription() ;
}
}
if ($_REQUEST['action'] == 'modifier_v') {
// On stocke l ancien mail dans un variable
$ancien_mail = $GLOBALS['AUTH']->getUsername();
} else if ($_REQUEST['action'] == 'modifier_v') {
if ($formulaire->validate()) {
if (INS_UTILISE_LISTE) {
$valeur_lettre = $GLOBALS['AUTH']->getAuthData(INS_CHAMPS_LETTRE) ;
}
$formulaire->process('mise_a_jour', false) ;
}
// on verifie si l email a change, si oui on desinscrit l ancien email et on inscrit le nouveau (si la case est coche)
$nouveau_mail = $_POST['email'];
if ($ancien_mail != $nouveau_mail) {
// On modifie la variable username de Auth
$GLOBALS['AUTH']->setAuth($nouveau_mail);
if (INS_UTILISE_LISTE) {
if (isset($_POST['lettre'])) {
inscription_lettre (INS_MAIL_INSCRIPTION_LISTE, $nouveau_mail) ;
// desinscription d avec l ancien courriel
inscription_lettre (INS_MAIL_DESINSCRIPTION_LISTE, $ancien_mail) ;
if ($valeur_lettre == '') {
inscription_lettre (INS_MAIL_INSCRIPTION_LISTE) ;
}
} else {
if ($valeur_lettre == 1) {
inscription_lettre (INS_MAIL_DESINSCRIPTION_LISTE) ;
184,87 → 260,17
}
return info ($GLOBALS['AUTH']->getAuthData (INS_CHAMPS_ID)).bouton ($url) ;
}
return $res.$formulaire->toHTML() ;
}
 
// L'inscription dans la base si l'utilisateur clique sur le lien du mail
 
if (isset($_GET['id']) && !$GLOBALS['AUTH']->getAuth()) {
$requete = 'SELECT id_donnees FROM inscription_demande WHERE id_identifiant_session="'.$_GET['id'].'"' ;
$resultat = $GLOBALS['ins_db']->query($requete) ;
if (DB::isError ($resultat)) {
die ("Echec de la requete : $requete<br />".$resultat->getMessage()) ;
return $res ;
}
if ($resultat->numRows() == 0) {
return INS_MESSAGE_EXPIRATION;
}
$ligne = $resultat->fetchRow(DB_FETCHMODE_OBJECT) ;
$donnees = unserialize (stripslashes($ligne->id_donnees)) ;
insertion ($donnees) ;
$GLOBALS['AUTH']->username = $donnees['email'] ;
$GLOBALS['AUTH']->password = $donnees['mot_de_passe'] ;
// On loggue l'utilisateur
$GLOBALS['AUTH']->login() ;
// inscription à la lettre d'information
if (isset ($donnees['lettre'])) {
inscription_lettre (INS_MAIL_INSCRIPTION_LISTE) ;
function afficherContenuPied () {
$sortie = '<p id="ins_pied_page">'.INS_PIED_INFO.
'<a href="mailto:'.INS_PIED_MAIL.'">'.INS_PIED_MAIL.'</a>.'.
'</p>';
return $sortie;
}
// On supprime la demande d'inscription
$requete = 'DELETE FROM inscription_demande WHERE id_identifiant_session="'.$_GET['id'].'"' ;
$resultat = $GLOBALS['ins_db']->query ($requete) ;
if (DB::isError ($resultat)) {
die ("Echec de la requete : $requete<br />".$resultat->getMessage()) ;
}
envoie_mail() ;
}
if (!$GLOBALS['AUTH']->getAuth() && $_REQUEST['action'] != "inscription" && $_REQUEST['action'] != 'inscription_v') {
if (isset($_POST['username']) && $_POST['username'] != '') {
$res .= message_erreur();
} else {
$res .= AUTH_formulaire_login();
}
}
if ($GLOBALS['AUTH']->getAuth () && !isset($_POST['modifier'])) {
return info ().bouton ($url);
}
return $res ;
}
/* +--Fin du code ----------------------------------------------------------------------------------------+
*
* $Log: inscription.php,v $
* Revision 1.3 2005/03/21 16:50:21 alex
* mille et une corrction
*
* Revision 1.2 2005/03/11 16:55:01 alex
* modification html
*
* Revision 1.3 2004/09/14 12:20:28 alex
* déplacement de la fonction suppression vers inscription.fonct.php
* et nettoyage du code.
*
* Revision 1.2 2004/09/01 16:36:37 alex
* changement du chemin pour les include
*
* Revision 1.1 2004/07/06 15:42:28 alex
* en cours
*
* Revision 1.5 2004/07/06 15:28:56 alex
* en cours
*
* Revision 1.4 2004/06/25 14:26:03 alex
* modification de la suppression
*
* Revision 1.3 2004/06/23 12:41:44 alex
* amélioration de la gestion de la perte de mot de passe
*
* Revision 1.2 2004/06/18 09:18:23 alex
* version initiale
*
*
* +-- Fin du code ----------------------------------------------------------------------------------------+
*/
?>
?>
/trunk/client/inscription/inscription.css
1,8 → 1,13
/* Feuille de style inscription*/
 
/************************************
Presentation de la fiche des inscrits
************************************/
/* Pied de page */
#ins_pied_page {
color:#A9A9A9;
font-size:10px;
padding-top:10px;
text-align:center;}
 
/* Presentation de la fiche des inscrits */
dt {
float:left;
width:10em;
9,13 → 14,11
text-align:right;
font-weight:bold;
padding-right : 10px;}
 
.inscription_titre2 {
clear:both;
color:#996F18;;}
/***************************************
Presentation du formulaire d'inscription
***************************************/
 
/* Presentation du formulaire d'inscription */
#formulaire_inscription fieldset {
border: 0;
margin: 0;