Subversion Repositories Applications.papyrus

Compare Revisions

No changes between revisions

Ignore whitespace Rev 324 → Rev 325

/trunk/client/ins_annuaire/index.php
New file
0,0 → 1,3
<?php
header('Location:inscription.php');
?>
/trunk/client/ins_annuaire/langues/annuaire_backoffice.langue.fr.inc.php
New file
0,0 → 1,27
<?php
 
// +--------------------------------------------------------------------------------+
// | annuaire_moteur_lang_fr.php |
// +--------------------------------------------------------------------------------+
// | Copyright (c) 2000 - 2003 Tela Botanica |
// +--------------------------------------------------------------------------------+
// | Contient le texte de l'appli en français |
// +--------------------------------------------------------------------------------+
// | Auteur : Alexandre Granier <alexandre@tela-botanica.org> |
// +--------------------------------------------------------------------------------+
//
// $Id: annuaire_backoffice.langue.fr.inc.php,v 1.1 2005-04-06 13:33:32 florian Exp $
 
define ("AM_L_TITRE", "Chercher un adhérent") ;
define ("AM_L_RECHERCHER", "Rechercher") ;
define ("AM_L_PAYS", "Pays") ;
define ("AM_L_NOM", "Nom") ;
define ("AM_L_PRENOM", "Prénom") ;
define ("AM_L_VILLE", "Ville") ;
define ("AM_L_DEPARTEMENT", "Département") ;
define ("AM_L_MAIL", "Mail") ;
define ("AM_L_COTISANTS", "Cotisants") ;
define ("AM_L_GRP_RES", "Grouper les résultats") ;
define ("AM_L_TOUS", "Tous") ;
define ("AM_L_MAIL_SELECTION", "Envoyer un mail à la sélection") ;
?>
/trunk/client/ins_annuaire/langues/annuaire.langue.fr.inc.php
New file
0,0 → 1,89
<?php
/*vim: set expandtab tabstop=4 shiftwidth=4: */
// +------------------------------------------------------------------------------------------------------+
// | PHP version 4.1 |
// +------------------------------------------------------------------------------------------------------+
// | Copyright (C) 2004 Tela Botanica (accueil@tela-botanica.org) |
// +------------------------------------------------------------------------------------------------------+
// | This library is free software; you can redistribute it and/or |
// | modify it under the terms of the GNU Lesser General Public |
// | License as published by the Free Software Foundation; either |
// | version 2.1 of the License, or (at your option) any later version. |
// | |
// | This library is distributed in the hope that it will be useful, |
// | but WITHOUT ANY WARRANTY; without even the implied warranty of |
// | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU |
// | Lesser General Public License for more details. |
// | |
// | You should have received a copy of the GNU Lesser General Public |
// | 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: annuaire.langue.fr.inc.php,v 1.1 2005-04-06 13:33:32 florian Exp $
/**
* Fichier de traduction en français de l'application inscription
*
* Fichier de traduction en français de l'application inscription
*
*@package vecam
//Auteur original :
*@author Alexandre GRANIER <alexandre@tela-botanica.org>
//Autres auteurs :
*@author Aucun
*@copyright Tela-Botanica 2000-2004
*@version $Revision: 1.1 $ $Date: 2005-04-06 13:33:32 $
// +------------------------------------------------------------------------------------------------------+
*/
 
define ("ANN_NOM", "Nom") ;
define ("ANN_PRENOM", "Pr&eacute;nom") ;
define ("ANN_VILLE", "Ville") ;
define ("ANN_PAYS", "Pays") ;
define ('ANN_PAS_D_INSCRITS', 'Pas d\'inscrits commençant par cette lettre dans l\'annuaire.');
define ("ANN_LANGUES_PARLES", "Langues parl&eacute;s :") ;
define ("ANN_EMAIL", "Courriel :") ;
define ("ANN_MOT_DE_PASSE", "Mot de passe :") ;
define ("ANN_REPETE_MOT_DE_PASSE", "R&eacute;p&eacute;ter le mot de passe :") ;
define ("ANN_RETABLIR", "Rétablir") ;
define ("ANN_VALIDER", "Valider") ;
define ("ANN_MESSAGE_BIENVENU", "Vous &ecirc;tes inscrit au Réseau Ecole et Nature") ;
define ("ANN_CLIQUEZ_LETTRE", 'Cliquez sur une lettre pour voir les membres du réseau.') ;
define ("ANN_LISTE_INSCRIT_LETTRE", "Liste des inscrits &agrave; la lettre") ;
define ("ANN_TITRE", 'Annuaire du réseau') ;
define ("ANN_CHECK_UNCHECK", "Cocher les cases pour s&eacute;lectionner votre destinataire ou cocher / d&eacute;cocher tout") ;
define ("ANN_ENVOYER_MAIL", "Envoyer un message aux personnes cochées") ;
define ("ANN_SUJET", "Sujet") ;
define ("ANN_MESSAGE", "Message") ;
define ("ANN_ENVOYER", "Envoyer") ;
define ("ANN_CLIC_CONFIRMATION", "Cliquez sur OK pour confirmer") ;
define ("ANN_PAS_D_INSCRIT", "Pas d'inscrit") ;
define ('ANN_DATE','Date d\'inscription');
// ========================= Labels pour les mails ============================
 
define ("ANN_VERIF_MAIL_COCHE", "Veuillez cocher au moins un destinataire pour votre mail" );
define ("ANN_VERIF_TITRE", "Votre message doit comporter un titre <i>et</i> un corps") ;
define ("ANN_PIED_MESSAGE", "\n---------------------------------------------------------------------------".
"\nCe message vous est envoyé par l'intermédiaire du site Internet".
"\n(http://www.ecole-et-nature.org) du réseau Ecole et Nature, ".
"\nauquel vous êtes inscrit. ".
"\nNe répondez pas à ce message." ) ;
 
/* +--Fin du code ----------------------------------------------------------------------------------------+
*
* $Log: not supported by cvs2svn $
* Revision 1.2 2005/03/08 09:43:55 alex
* changement de label
*
* Revision 1.1.1.1 2005/01/03 17:27:49 alex
* Import initial
*
* Revision 1.1 2005/01/03 17:19:32 alex
* version initiale
*
* Revision 1.1 2004/06/18 08:54:55 alex
* version initiale
*
*
* +-- Fin du code ----------------------------------------------------------------------------------------+
*/
?>
/trunk/client/ins_annuaire/langues/ins_annuaire.langue.fr.inc.php
New file
0,0 → 1,162
<?php
/*vim: set expandtab tabstop=4 shiftwidth=4: */
// +------------------------------------------------------------------------------------------------------+
// | PHP version 4.1 |
// +------------------------------------------------------------------------------------------------------+
// | Copyright (C) 2004 Tela Botanica (accueil@tela-botanica.org) |
// +------------------------------------------------------------------------------------------------------+
// | This library is free software; you can redistribute it and/or |
// | modify it under the terms of the GNU Lesser General Public |
// | License as published by the Free Software Foundation; either |
// | version 2.1 of the License, or (at your option) any later version. |
// | |
// | This library is distributed in the hope that it will be useful, |
// | but WITHOUT ANY WARRANTY; without even the implied warranty of |
// | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU |
// | Lesser General Public License for more details. |
// | |
// | You should have received a copy of the GNU Lesser General Public |
// | 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_annuaire.langue.fr.inc.php,v 1.1 2005-04-06 13:33:32 florian Exp $
/**
* Fichier de traduction en français de l'application inscription
*
* Fichier de traduction en français de l'application inscription
*
*@package inscription
//Auteur original :
*@author Alexandre GRANIER <alexandre@tela-botanica.org>
//Autres auteurs :
*@author Aucun
*@copyright Tela-Botanica 2000-2004
*@version $Revision: 1.1 $ $Date: 2005-04-06 13:33:32 $
// +------------------------------------------------------------------------------------------------------+
*/
define ('INS_TITRE_INSCRIPTION', 'Inscription au réseau');
define ('INS_INSCRIPTION_PERSONNE','S\'incrire en tant que personne');
define ('INS_INSCRIPTION_STRUCTURE', 'Inscrire sa structure');
define ("INS_AJOUT_MEMBRE", "Ajout d'un nouveau membre") ;
define ("INS_NOM", "Nom") ;
define ("INS_NOM_REQUIS", "Veuillez indiquer votre nom.") ;
define ("INS_PRENOM", "Pr&eacute;nom") ;
define ("INS_PRENOM_REQUIS", "Veuillez indiquer votre prénom.") ;
define ("INS_PAYS", "Pays") ;
define ("INS_LANGUES_PARLES", "Langues parl&eacute;s") ;
define ("INS_EMAIL", "Adresse mail") ;
define ("INS_MOT_DE_PASSE", "Mot de passe") ;
define ("INS_REPETE_MOT_DE_PASSE", "R&eacute;p&eacute;ter le mot de passe") ;
define ("INS_ADRESSE_1", "Adresse") ;
define ("INS_ADRESSE_2", "Adresse (suite)") ;
define ("INS_REGION", "R&eacute;gion / province") ;
define ("INS_CODE_POSTAL", "Code postal") ;
define ("INS_CODE_POSTAL_REQUIS", "Veuillez indiquer votre code postal.") ;
define ("INS_VILLE", "Ville") ;
define ("INS_VILLE_REQUIS", "Veuillez indiquer votre ville.") ;
define ("INS_SITE_INTERNET", "Site web personnel") ;
define ("INS_LETTRE", "Je souhaite recevoir la lettre<br /> d'actualité sur l'éducation en<br /> l'environnement") ;
define ("INS_ADHERENT", "Vous &ecirc;tes adh&eacute;rents de personnes morales (associations, institutions, entreprise... )") ;
define ("INS_ORGANISME", "Organisme") ;
define ("INS_FONCTION", "Fonction") ;
define ("INS_ANNULER", "Annuler") ;
define ("INS_RETABLIR", "Rétablir") ;
define ("INS_VALIDER", "Valider") ;
define ("INS_MOTS_DE_PASSE_DIFFERENTS", "Les mots de passe sont diff&eacute;rents !") ;
define ("INS_EMAIL_REQUIS", "Vous devez saisir un email.") ;
define ("INS_MOT_DE_PASSE_REQUIS", "Vous devez saisir un mot de passe.") ;
define ("INS_MAIL_INCORRECT", "L'email doit avoir une forme correcte, utilisateur@domaine.ext") ;
define ("INS_MAIL_DOUBLE", "Cet email est d&eacute;j&agrave utilis&eacute; par quelqu'un d'autre") ;
define ("INS_NOTE_REQUIS", "Indique les champs requis") ;
define ("INS_ACCUEIL_INSCRIPTION", "Inscription au réseau") ;
define ("INS_MODIFIER_INSCRIPTION", "Modifier votre inscription") ;
define ("INS_SUPPRIMER_INSCRIPTION", "Supprimer votre inscription") ;
define ("INS_MESSAGE_BIENVENU", "Vous &ecirc;tes inscrit aux sites Educ-Envir.org et Ecole-et-Nature.org") ;
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_SIGLE_STRUCTURE', 'Sigle de la structure');
define ('INS_SIGLE_REQUIS', 'Sigle de la structure requis!');
define ('INS_NOM_STRUCTURE', 'Nom de la structure');
define ('INS_MAIL_STRUCTURE', 'Adresse de messagerie de la structure');
define ('INS_SITE_STRUCTURE', 'Site Internet de la structure');
define ("INS_NOM_WIKI", "Nom wiki :") ;
define ("INS_MAUVAIS_NOM_WIKI", "Le nom wiki n'est pas valide (ex : NomPrenom)") ;
define ("INS_DEJA_INSCRIT", "D&eacute;j&agrave;  inscrit, identifiez-vous pour acc&eacute;der &agrave;  votre fiche personnelle :") ;
define ('INS_PAS_INSCRIT', 'Pas encore inscrit, enregistrez-vous!');
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, indiquez votre adresse email dans le champs ci-dessus.<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 Ecole et Nature est libre et gratuite !") ;
define ("INS_LAIUS_INSCRIPTION_2", "L'inscription 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 d'éducation à l'environnement<br />
- rédiger des annonces d'actualité, d'évenements, de séjours et rencontres, de covoiturage ou de parutions<br />
- recevoir un bulletin &eacute;lectronique d'informations.") ;
 
//============= L'envoie du mot de passe perdu par mail =============================
define ("INS_NOUVEAU_MOT_DE_PASSE", "Votre nouveau mot de passe sur Educ-Envir.org et Ecole-et-Nature.org") ;
define ("INS_NOUVEAU_MOT_DE_PASSE_2", "Votre nouveau mot de passe : ") ;
define ("INS_NOUVEAU_MOT_DE_PASSE_LAIUS", "\n\nCe mot de passe vous permet de modifier les informations\n".
"vous concernant dans les sites du réseau Ecole et Nature: Educ-Envir.org et Ecole-et-Nature.org.\n".
"http://www.educ-envir.org/\n\n".
"http://www.ecole-et-nature.org/\n\n") ;
define ("INS_MOT_DE_PASSE_ENVOYE_1", "Votre nouveau mot de passe a &eacute;t&eacute; ".
"envoy&eacute; &agrave; l'adresse") ;
define ("INS_MOT_DE_PASSE_ENVOYE_2", "Relevez votre messagerie, notez votre nouveau mot de passe et identifiez vous à ".
"nouveau en allant à l'inscription. N'h&eacute;sitez pas à changer ce mot de passe ".
"pour en mettre un plus simple, plus facile &agrave; retenir." );
//============= L'envoie d'un mail de confirmation ===================================
// Ne pas utiliser d'entités HTML
define ('INS_ENTETE_INSCRIPTION','Inscription sur les sites Educ-Envir.org et Ecole-et-Nature.org');
define ("INS_MAIL_INSCRIPTION_1", "Votre inscription a bien été prise en compte.\n".
"Voici les informations que nous avons enregistré :\n") ;
define ("INS_MAIL_INSCRIPTION_2", "\nVous pouvez modifier votre inscription sur \nhttp://www.ecole-et-nature.org ou \nhttp://www.educ-envir.org\n".
"rubrique S'inscrire (le signe + sur le bandeau du haut).\n\n".
"L'équipe du réseau Ecole et Nature.") ;
define ('INS_MESSAGE_EXPIRATION','Désolé, le temps imparti à votre inscription c\'est écoulé...<br />'.
'Merci de bien vouloir vous réinscrire, en répondant rapidement au mail de confirmation.<br /><br />'.
'En vous remerciant de votre compréhension, a tout de suite!');
define ('INS_MESSAGE_VALIDER_INSCRIPTION','Validation de votre inscription sur le réseau Ecole et Nature:'."\n".
'Merci de vous être inscrit(e), soyez bienvenu(e)!'."\n".
'Veuillez cliquer sur le lien ci-dessous pour finaliser votre inscription:'."\n");
 
// Envoir d'un mail à la coordination
define ("INS_MAIL_COORD_SUJET", "Un nouvel inscrit au réseau ") ;
define ("INS_MAIL_COORD_CORPS", "Une nouvelle inscription a été effectuée sur le site.") ;
define ("INS_CHAMPS_REQUIS", "Champs requis") ;
 
define ("INS_MESSAGE_INSCRIPTION", "Votre inscription a été prise en compte, relevez votre messagerie et cliquer sur le lien proposé pour terminer votre inscription.") ;
/* +--Fin du code ----------------------------------------------------------------------------------------+
*
* $Log: not supported by cvs2svn $
* 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/ins_annuaire/presentations/signature_numerique.png
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/trunk/client/ins_annuaire/presentations/signature_numerique.png
New file
Property changes:
Added: svn:mime-type
+application/octet-stream
\ No newline at end of property
/trunk/client/ins_annuaire/presentations/inscription.css
New file
0,0 → 1,146
/*
 
+----------------------------------------------------------------------------+
| inscription.css |
+----------------------------------------------------------------------------+
| Copyright (c) 2004 Tela Botanica |
+----------------------------------------------------------------------------+
| Feuille de style specifique a l'application inscription de Tela Botanica |
+----------------------------------------------------------------------------+
| Auteur : Tamara LE BOURG <tamara@tela-botanica.org> |
+----------------------------------------------------------------------------+
 
*/
 
#table_inscription {
border: 1px solid #E8AE3B;
border-collapse: collapse;
width:100%;
}
/*FORMULAIRE INSCRIPTION*/
 
#formulaire_inscription fieldset {
border: 0px;
margin: 0px;
padding: 0px;}
 
#formulaire_inscription ul {
padding:0px;
}
 
.liste_inscription {
background: transparent;
padding:3px 0px;
}
.liste_inscription > input, select {
position:absolute;
left:200px;
}
 
.liste_inscription > input+input {
position:absolute;
left:350px;
}
.groupe_formulaire_1 input {
position:absolute;
left:200px;
}
.groupe_formulaire_2 label {
position:absolute;
left:400px;
}
.groupe_formulaire_2 input {
position:absolute;
left:450px;
}
 
/*
#contenu form fieldset ul li {
text-align: left;
padding-left: 0px;
margin-left: 0px;
}
 
/*
#contenu form label {
float: left;
width: 20%;
text-align: left;
}
*/
 
th {
border: 1px 0px 1px 0px solid #E8AE3B;
background-color: #FFCD9B;
color: #775522;
padding: 2px;
}
 
ul.liste_inscription {
margin: 0px;
}
 
li.liste_inscription {
list-style-type: none;
margin: 4px;
}
 
.groupe_formulaire {
width:50%;
}
 
.ligne_impaire {
background-color: #FFFFFF;
font-size: 85%;
border: none;
padding: 2px;
 
}
 
.ligne2_impaire {
background-color: #FFFFFF;
font-size: 85%;
border: none;
padding: 2px;
}
 
.ligne_paire {
background-color: #FFEBD7;
font-size: 85%;
border: none;
padding: 2px;
 
}
 
.ligne2_paire {
background-color: #FFEBD7;
font-size: 85%;
border: none;
padding: 2px;
}
 
.titre1_inscription {
font-family: Arial, Verdana, Helvetica, sans-serif;
margin: 3px 0;
font-size: 130%;
margin-top: 1em;
}
 
.titre2_inscription {
font-family: Arial, Verdana, Helvetica, sans-serif;
margin: 3px 0;
font-size: 110%;
margin-top: 1em;
}
 
.inscription_erreur {
width:60%;
padding:0.2em;
margin:0.2em;
color: #FF0000;
font-size: 110%;
text-align: center;
font-weight: bold;
text-decoration: blink;
border: 0.2em solid #FF0000;
}
/trunk/client/ins_annuaire/annuaire_backoffice.php
New file
0,0 → 1,83
<?php
/*vim: set expandtab tabstop=4 shiftwidth=4: */
// +------------------------------------------------------------------------------------------------------+
// | PHP version 4.1 |
// +------------------------------------------------------------------------------------------------------+
// | Copyright (C) 2004 Tela Botanica (accueil@tela-botanica.org) |
// +------------------------------------------------------------------------------------------------------+
// | This library is free software; you can redistribute it and/or |
// | modify it under the terms of the GNU Lesser General Public |
// | License as published by the Free Software Foundation; either |
// | version 2.1 of the License, or (at your option) any later version. |
// | |
// | This library is distributed in the hope that it will be useful, |
// | but WITHOUT ANY WARRANTY; without even the implied warranty of |
// | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU |
// | Lesser General Public License for more details. |
// | |
// | You should have received a copy of the GNU Lesser General Public |
// | 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: annuaire_backoffice.php,v 1.1 2005-04-06 13:33:32 florian Exp $
/**
* programme principal du module annuaire_moteur
*
* programme principal du module annuaire_moteur
*
*@package annuaire
//Auteur original :
*@author Alexandre Granier <alexandre@tela-botanica.org>
//Autres auteurs :
*@author Aucun
*@copyright Tela-Botanica 2000-2004
*@version $Revision: 1.1 $
// +------------------------------------------------------------------------------------------------------+
*/
 
// +------------------------------------------------------------------------------------------------------+
// | ENTETE du PROGRAMME |
// +------------------------------------------------------------------------------------------------------+
 
// +------------------------------------------------------------------------------------------------------+
// | ENTETE du PROGRAMME |
// +------------------------------------------------------------------------------------------------------+
include_once 'configuration/ins_annuaire.config.inc.php';
include_once INS_CHEMIN_APPLI.'configuration/annuaire_backoffice.config.inc.php';
include_once INS_CHEMIN_APPLI."annuaire.fonct.php";
include_once INS_CHEMIN_APPLI.'bibliotheque/annuaire_backoffice.fonct.php';
 
if (isset($lang)) {
include_once ANN_CHEMIN_APPLI."/langues/ann_langue_$lang.inc.php" ;
} else {
include_once ANN_CHEMIN_APPLI.'/langues/ann_langue_fr.inc.php' ;
}
 
define ("ANN_MAIL_TOUS", 1) ;
define ("ANN_MAIL_TOUS_ENVOIE", 2) ;
 
 
function afficherContenuCorps () {
global $statut ;
 
if (!$GLOBALS['AUTH']->getAuth()) {
$res = AUTH_formulaire_login() ;
} else {
if (isset($_GET['u_id'])) {
include_once (ANN_CHEMIN_APPLI.'admin_annu.php');
$GLOBALS['ann_url']->addQueryString ('u_id', $_GET['u_id']) ;
return putFrame() ;
}
if (isset ($_GET['action'])) {
include_once (ANN_CHEMIN_APPLI.'mail_tous.php') ;
return putFrame() ;
}
$res = "<div>".mkengine()."</div>\n" ;
//mkquery() ;
$res .= "<div>".mkresu()."</div>\n" ;
}
return $res ;
}
 
?>
/trunk/client/ins_annuaire/configuration/ins_annuaire.config.inc.php
New file
0,0 → 1,176
<?php
/*vim: set expandtab tabstop=4 shiftwidth=4: */
// +------------------------------------------------------------------------------------------------------+
// | PHP version 4.1 |
// +------------------------------------------------------------------------------------------------------+
// | Copyright (C) 2004 Tela Botanica (accueil@tela-botanica.org) |
// +------------------------------------------------------------------------------------------------------+
// | This library is free software; you can redistribute it and/or |
// | modify it under the terms of the GNU Lesser General Public |
// | License as published by the Free Software Foundation; either |
// | version 2.1 of the License, or (at your option) any later version. |
// | |
// | This library is distributed in the hope that it will be useful, |
// | but WITHOUT ANY WARRANTY; without even the implied warranty of |
// | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU |
// | Lesser General Public License for more details. |
// | |
// | You should have received a copy of the GNU Lesser General Public |
// | 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_annuaire.config.inc.php,v 1.1 2005-04-06 13:33:32 florian Exp $
/**
* Fichier de configuration de l'application d'inscription/annuaire
*
* A éditer de façon spécifique à chaque déploiement
*
*@package ins_annuaire
//Auteur original :
*@author Alexandre GRANIER <alexandre@tela-botanica.org>
*@author Florian SCHMITT <florian@ecole-et-nature.org>
//Autres auteurs :
*@author Aucun
*@copyright Tela-Botanica 2000-2004
*@version $Revision: 1.1 $ $Date: 2005-04-06 13:33:32 $
// +------------------------------------------------------------------------------------------------------+
*/
//================================= CONSTANTES DB ==================================
/** Nom de la table Annuaire */
define ('INS_ANNUAIRE', 'annuaire');
/** Nom de la table des départements */
define ('INS_TABLE_DPT', 'gen_departement');
/** Nom de la table des pays */
define ('INS_TABLE_PAYS', 'gen_pays');
/** Champs identifiant */
define ('INS_CHAMPS_ID', 'a_id');
/** Champs adresse mail */
define ('INS_CHAMPS_MAIL', 'a_mail');
/** Champs nom */
define ('INS_CHAMPS_NOM', 'a_nom');
/** Champs prénom */
define ('INS_CHAMPS_PRENOM', 'a_prenom');
/** Champs mot de passe */
define ('INS_CHAMPS_PASSE', 'a_mot_de_passe');
/** Champs identifiant pays */
define ('INS_CHAMPS_PAYS', 'a_ce_pays');
/** Champs code postal */
define ('INS_CHAMPS_CODE_POSTAL', 'a_code_postal');
/** Champs département */
define ('INS_CHAMPS_DEPARTEMENT', 'a_ce_departement');
/** Champs adresse 1 */
define ('INS_CHAMPS_ADRESSE_1', 'a_adresse1');
/** Champs adresse 2 */
define ('INS_CHAMPS_ADRESSE_2', 'a_adresse2');
/** Champs ville */
define ('INS_CHAMPS_VILLE', 'a_ville');
/** Champs date de l'inscription */
define ('INS_CHAMPS_DATE_INSCRIPTION', 'a_date_inscription');
/** Champs pour désigner si c'est l'inscription d'une structure */
define ('INS_CHAMPS_EST_STRUCTURE', 'a_est_structure');
/** Champs sigle de la structure */
define ('INS_CHAMPS_SIGLE_STRUCTURE', 'a_sigle_structure');
/** Champs numéro de téléphone */
define ('INS_CHAMPS_TELEPHONE', 'a_telephone');
/** Champs numéro de fax */
define ('INS_CHAMPS_FAX', 'a_fax');
/** Champs d'appartenance à une structure */
define ('INS_CHAMPS_STRUCTURE', 'a_ce_structure');
/** Champs identifiant du pays */
define ('INS_CHAMPS_ID_PAYS', 'gp_id_pays');
/** Champs nom du pays */
define ('INS_CHAMPS_LABEL_PAYS', 'gp_nom');
/** Champs pour l'abonnement à une liste */
define ('INS_CHAMPS_LETTRE', 'a_lettre');
/** Champs de la date d'inscription */
define ('INS_CHAMPS_DATE', 'a_date_inscription');
 
/** adresse d'inscription à la newsletter */
define ('INS_MAIL_INSCRIPTION_LISTE', 'newsletter-suscribe@educ-envir.org');
/** adresse de désinscription à la newsletter */
define ('INS_MAIL_DESINSCRIPTION_LISTE', 'newsletter-unsuscribe@educ-envir.org');
 
 
//teste si l'on est dans l'application Papyrus
if (!defined('PAP_VERSION')) { //pas dans Papyrus
//================================ BASE DE DONNEES =================================
define ('INS_PROTOCOLE', 'mysql') ;
define ('INS_UTILISATEUR', 'test') ;
define ('INS_MOT_DE_PASSE_DB', 'ecnat') ;
define ('INS_HOTE', 'localhost') ;
define ('INS_BASE', 'testP') ;
define ('INS_TYPE_ENCODAGE','MD5');
// Formation du dsn
$dsn = INS_PROTOCOLE.'://'.INS_UTILISATEUR.':'.INS_MOT_DE_PASSE_DB.'@'.INS_HOTE.'/'.INS_BASE;
 
include_once 'DB.php'; //appel de la librairie DB de PEAR
/** Variable globale contenant l'objet d'accès à la base de donnée */
$GLOBALS['ins_db'] =& DB::connect($dsn);
//=============================== AUTHENTIFICATION =================================
include_once 'Auth.php'; //appel de la librairie Auth de PEAR
/** Nom de la session PHP */
define ('INS_NOM_SESSION','Educ-Envir.org');
/** Durée de la session PHP */
define ('INS_DUREE_SESSION',3600*12);
/** Tableau des parametres de l'authentification */
$params = array(
'dsn' => $dsn,
'table' => INS_ANNUAIRE,
'usernamecol' => INS_CHAMPS_MAIL,
'passwordcol' => INS_CHAMPS_MOT_DE_PASSE
);
/** Variable globale contenant l'objet d'authentification de l'application, un objet AUTH*/
$GLOBALS['AUTH']= &new Auth($GLOBALS['ins_db'], $params );
$GLOBALS['AUTH']->setSessionname(INS_NOM_SESSION);
$GLOBALS['AUTH']->setExpire(INS_DUREE_SESSION);
$GLOBALS['AUTH']->setShowLogin(false);
//==================================== LES URLS ====================================
include_once 'Net_URL.php'; //appel de la librairie Net_URL de PEAR
/** Variable globale contenant l'objet d'accès à l'URL de base de l'application, un objet Net_URL*/
$GLOBALS['ins_url'] = new Net_URL('http://localhost/ins_annuaire/');
 
//===================================== CHEMINS ====================================
/** Chemin de l'application (mettre un / à la fin) */
define ('INS_CHEMIN_APPLI', '/home/florian/Documents/CVS/applications_web/php/ins_annuaire/');
 
//===================================== LANGUES ====================================
/** Choix de la langue par défaut de l'application */
define ('INS_LANGUE_DEFAUT', 'fr');
include_once INS_CHEMIN_APPLI.'langues/ins_annuaire.langue.'.INS_LANGUE_DEFAUT.'.inc.php'; //appel du fichier de constantes des langues
} else { //dans Papyrus
//================================ BASE DE DONNEES =================================
/** Variable globale contenant l'objet d'accès à la base de données de l'application, un objet DB*/
$GLOBALS['ins_db'] =& $GLOBALS['_GEN_commun']['pear_db']; //Mis en commentaire pour permettre d'avoir une base de données commune avec Educ-Envir
 
//=========================AUTHENTIFICATION=================================
/** Variable globale contenant l'objet d'authentification de l'application, un objet AUTH*/
$GLOBALS['AUTH'] =& $GLOBALS['_GEN_commun']['pear_auth']; //Mis en commmentaire pour permettre d'avoir une base de données commune avec Educ-Envir
//==================================== LES URLS ====================================
/** Variable globale contenant l'objet d'accès à l'URL de base de l'application, un objet Net_URL*/
$GLOBALS['ins_url'] =& $GLOBALS['_GEN_commun']['url'];
 
//===================================== CHEMINS ====================================
/** Chemin de l'application (mettre un / à la fin) */
define ('INS_CHEMIN_APPLI', 'client/ins_annuaire/');
 
//===================================== LANGUES ====================================
/** Choix de la langue par défaut de l'application */
define ('INS_LANGUE_DEFAUT', $GLOBALS['_GEN_commun']['i18n']) ;
include_once INS_CHEMIN_APPLI.'langues/ins_annuaire.langue.'.INS_LANGUE_DEFAUT.'.inc.php'; //appel du fichier de constantes des langues
}
 
/* +--Fin du code ----------------------------------------------------------------------------------------+
*
* $Log: not supported by cvs2svn $
* version initiale
*
*
* +-- Fin du code ----------------------------------------------------------------------------------------+
*/
?>
/trunk/client/ins_annuaire/configuration/annuaire_backoffice.config.inc.php
New file
0,0 → 1,67
<?php
 
// +--------------------------------------------------------------------------------+
// | annuaire_moteur_config.php |
// +--------------------------------------------------------------------------------+
// | Copyright (c) 2000 - 2003 Tela Botanica |
// +--------------------------------------------------------------------------------+
// | Fichier de configuration de annuaire_moteur.php |
// +--------------------------------------------------------------------------------+
// | Auteur : Alexandre Granier <alexandre@tela-botanica.org> |
// +--------------------------------------------------------------------------------+
//
// $Id: annuaire_backoffice.config.inc.php,v 1.1 2005-04-06 13:33:32 florian Exp $
 
/**
//=========================DEFINITION DE VARIABLES =================================
* Définition des variables globales
//==================================================================================
*/
global $GS_GLOBAL, $_SERVER ;
/**
//==================================== LES URLS ==================================
* Constantes liées à l'utilisation des url
//==================================================================================
*/
define("AM_BASE_URL", 'http://'.$_SERVER["HTTP_HOST"].'/');//URL de base. Exemple: http://www.tela-botanica.org/
define("AM_URL_DOCUMENT",'index.php?project='.$GS_GLOBAL['project'].'&amp;locale='.
$GS_GLOBAL['locale'].'&amp;doc='.$GS_GLOBAL['document_row']->GD_NOM.'&amp;page='.
$GS_GLOBAL['current_page_ndx']); //l'url de base de l'apllication
 
 
/**
//==================================== LES CHEMINS =================================
* Constantes définissant les chemins d'accé au différents fichiers inclus dans les
* applications.
//==================================================================================
*/
define("AM_CHEMIN_APPLI",'client/applications_clientes/annuaire/');//le chemin vers l'application courrante
define("AM_CHEMIN_PHP",'php/');//le chemin vers les fichiers propre à GSITE // obsolète !
define("AM_CHEMIN_LIBRAIRIE",'client/bibliotheque_client/fonctions/');//le chemin de la librairie de fichier php
 
/**
//==================================== CONSTANTES ==================================
* Constantes de connexion aux bases de données MySQL
//==================================================================================
*/
define("AM_HOTE","brille.logicosme.net");
define("AM_UTILISATEUR","botanica");
define("AM_MDP","wuzvw90fq");
 
 
define("AM_BD_BOTA", $GS_GLOBAL['mysql_db']);//Nom de la base des tables de chorologie
define("AM_BD_LINK", $GS_GLOBAL['link']);//Nom de la base des tables de la carto (et éventuellement de chorologie)
 
/**
//==================================== CONSTANTES ==================================
* Constantes des noms de tables et de champs dans l'annuaire
//==================================================================================
*/
 
define ("AM_ANNUAIRE", "annuaire_tela") ; // Nom de la table d'annuaire
define ("AM_NOM", "U_NAME") ; // Nom du champs nom
define ("AM_MAIL", "U_MAIL") ; // Nom du champs mail
define ("AM_PRENOM", "U_SURNAME") ; // Nom du champs prénom
define ("AM_DPT", "gen_FRENCH_DPT") ; // Nom de la table département
define ("AM_PAYS", "gen_COUNTRY") ; // Nom de la table pays
?>
/trunk/client/ins_annuaire/configuration/inscription.config.inc.php
New file
0,0 → 1,68
<?php
/*vim: set expandtab tabstop=4 shiftwidth=4: */
// +------------------------------------------------------------------------------------------------------+
// | PHP version 4.1 |
// +------------------------------------------------------------------------------------------------------+
// | Copyright (C) 2004 Tela Botanica (accueil@tela-botanica.org) |
// +------------------------------------------------------------------------------------------------------+
// | This library is free software; you can redistribute it and/or |
// | modify it under the terms of the GNU Lesser General Public |
// | License as published by the Free Software Foundation; either |
// | version 2.1 of the License, or (at your option) any later version. |
// | |
// | This library is distributed in the hope that it will be useful, |
// | but WITHOUT ANY WARRANTY; without even the implied warranty of |
// | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU |
// | Lesser General Public License for more details. |
// | |
// | You should have received a copy of the GNU Lesser General Public |
// | 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.config.inc.php,v 1.1 2005-04-06 13:33:32 florian Exp $
/**
* Fichier de configuration de l'inscription
*
* A éditer de façon spécifique à chaque déploiement
*
*@package inscription
//Auteur original :
*@author Alexandre GRANIER <alexandre@tela-botanica.org>
//Autres auteurs :
*@author Aucun
*@copyright Tela-Botanica 2000-2004
*@version $Revision: 1.1 $ $Date: 2005-04-06 13:33:32 $
// +------------------------------------------------------------------------------------------------------+
*/
 
//==================================== PARAMETRAGE =================================
/** Définir la présence d'un formulaire d'inscription de structure (mettre à 1 pour oui, 0 pour non */
define ('INS_FORMULAIRE_STRUCTURE', 1);
/** Définir la nécessité d'envoyer un message de confirmation d'inscription (mettre à 1 pour oui, 0 pour non */
define ('INS_MAIL_VALIDATION_INSCRIPTION', 0);
/** Adresse de messagerie de l'administrateur, pour suivre les inscriptions */
define ('INS_MAIL_ADMIN_APRES_INSCRIPTION', 'florian@ecole-et-nature.org');
/** Sujet du message envoyé pour l'inscription */
define ('INS_MAIL_ADMIN_APRES_INSCRIPTION_SUJET', '[Ecole et Nature] Inscription');
/** L'inscription génère t'elle l'inscription à un Spip? Mettre à 1 pour oui , et 0 pour non */
define ('INS_UTILISE_SPIP', 0);
if (INS_UTILISE_SPIP) {
/** Chemin d'accès au Spip */
define ('INS_CHEMIN_SPIP', '');
}
/** L'inscription génère t'elle l'inscription à un Wikini? Mettre à 1 pour oui , et 0 pour non */
define ('INS_UTILISE_WIKINI', 0);
if (INS_UTILISE_WIKINI) {
/** Le nom du champs contenant le nom wikini dans l'annuaire */
define ('INS_CHAMPS_NOM_WIKINI', 'a_nom_wikini');
}
 
/* +--Fin du code ----------------------------------------------------------------------------------------+
*
* $Log: not supported by cvs2svn $
* version initiale
*
*
* +-- Fin du code ----------------------------------------------------------------------------------------+
*/
?>
/trunk/client/ins_annuaire/configuration/annuaire.config.inc.php
New file
0,0 → 1,61
<?php
/*vim: set expandtab tabstop=4 shiftwidth=4: */
// +------------------------------------------------------------------------------------------------------+
// | PHP version 4.1 |
// +------------------------------------------------------------------------------------------------------+
// | Copyright (C) 2004 Tela Botanica (accueil@tela-botanica.org) |
// +------------------------------------------------------------------------------------------------------+
// | This library is free software; you can redistribute it and/or |
// | modify it under the terms of the GNU Lesser General Public |
// | License as published by the Free Software Foundation; either |
// | version 2.1 of the License, or (at your option) any later version. |
// | |
// | This library is distributed in the hope that it will be useful, |
// | but WITHOUT ANY WARRANTY; without even the implied warranty of |
// | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU |
// | Lesser General Public License for more details. |
// | |
// | You should have received a copy of the GNU Lesser General Public |
// | 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: annuaire.config.inc.php,v 1.1 2005-04-06 13:33:32 florian Exp $
/**
* Fichier de configuration de l'annuaire
*
* A éditer de façon spécifique à chaque déploiement
*
*@package inscription
//Auteur original :
*@author Alexandre GRANIER <alexandre@tela-botanica.org>
//Autres auteurs :
*@author Aucun
*@copyright Tela-Botanica 2000-2004
*@version $Revision: 1.1 $
// +------------------------------------------------------------------------------------------------------+
*/
include_once INS_CHEMIN_APPLI.'langues/annuaire.langue.'.INS_LANGUE_DEFAUT.'.inc.php'; //appel du fichier de constantes des langues
/** tableau contenant dans l'ordre les labels des champs à afficher dans l'annuaire*/
$GLOBALS['annuaire_champs_visibles']['label_champs']= array (ANN_NOM,ANN_PRENOM,ANN_VILLE,ANN_DATE);
/** tableau contenant dans l'ordre les champs à afficher dans l'annuaire*/
$GLOBALS['annuaire_champs_visibles']['champs_db']= array (INS_CHAMPS_NOM,INS_CHAMPS_PRENOM,INS_CHAMPS_VILLE,INS_CHAMPS_DATE);
 
/* +--Fin du code ----------------------------------------------------------------------------------------+
*
* $Log: not supported by cvs2svn $
* Revision 1.3 2005/03/24 08:46:29 alex
* version initiale
*
* Revision 1.2 2005/03/08 09:43:34 alex
* --
*
* Revision 1.1.1.1 2005/01/03 17:27:49 alex
* Import initial
*
* Revision 1.1 2005/01/03 17:19:20 alex
* version initiale
*
*
* +-- Fin du code ----------------------------------------------------------------------------------------+
*/
?>
/trunk/client/ins_annuaire/inscription.php
New file
0,0 → 1,231
<?php
/*vim: set expandtab tabstop=4 shiftwidth=4: */
// +------------------------------------------------------------------------------------------------------+
// | PHP version 4.1 |
// +------------------------------------------------------------------------------------------------------+
// | Copyright (C) 2004 Tela Botanica (accueil@tela-botanica.org) |
// +------------------------------------------------------------------------------------------------------+
// | This library is free software; you can redistribute it and/or |
// | modify it under the terms of the GNU Lesser General Public |
// | License as published by the Free Software Foundation; either |
// | version 2.1 of the License, or (at your option) any later version. |
// | |
// | This library is distributed in the hope that it will be useful, |
// | but WITHOUT ANY WARRANTY; without even the implied warranty of |
// | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU |
// | Lesser General Public License for more details. |
// | |
// | You should have received a copy of the GNU Lesser General Public |
// | 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.1 2005-04-06 13:33:32 florian Exp $
/**
* Inscription
*
* 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 :
*@copyright Tela-Botanica 2000-2004
*@version $Revision: 1.1 $ $Date: 2005-04-06 13:33:32 $
// +------------------------------------------------------------------------------------------------------+
*/
 
// +------------------------------------------------------------------------------------------------------+
// | ENTETE du PROGRAMME |
// +------------------------------------------------------------------------------------------------------+
include_once 'configuration/ins_annuaire.config.inc.php';
include_once INS_CHEMIN_APPLI.'configuration/inscription.config.inc.php';
include_once INS_CHEMIN_APPLI.'bibliotheque/inscription.fonct.php';
include_once INS_CHEMIN_APPLI.'bibliotheque/inscription.class.php';
//test pour savoir si on est dans Papyrus
if (defined('PAP_VERSION')) {
// Ajout d'une feuille de style externe
GEN_stockerStyleExterne('inscription', INS_CHEMIN_APPLI.'presentations/inscription.css');
}
 
// +------------------------------------------------------------------------------------------------------+
// | LISTE de FONCTIONS |
// +------------------------------------------------------------------------------------------------------+
 
 
function afficherContenuCorps() {
$GLOBALS['AUTH']->start();
$url = preg_replace ('/&amp;/', '&', $GLOBALS['ins_url']->getURL()) ;
$res = '<h1>'.INS_TITRE_INSCRIPTION.'</h1>'."\n" ;
if (!isset($_REQUEST['action'])) {
$_REQUEST['action']='';
}
if (isset ($_GET['logout']) && $_GET['logout'] == 1) {
$GLOBALS['AUTH']->logout() ;
$_POST['username'] = '' ;
$_POST['password'] = '' ;
return AUTH_formulaire_login() ;
}
// L'utilisateur a-t-il cliqué sur Supprimer inscription
if (isset ($_POST['supprimer'])) {
$requete = 'DELETE FROM '.INS_ANNUAIRE.' '.
'WHERE '.INS_CHAMPS_ID.'= "'.$GLOBALS['AUTH']->getAuthData(INS_CHAMPS_ID).'"' ;
$resultat = $GLOBALS['ins_db']->query ($requete) ;
if (DB::isError($resultat)) {
die ($resultat->getMessage().'<br />'.$resultat->getDebugInfo()) ;
}
// Suppression dans SPIP
if (INS_UTILISE_SPIP) {
desinscription_spip($GLOBALS['AUTH']->getAuthData(INS_CHAMPS_ID)) ;
}
// Suppression dans Wikini
if (INS_UTILISE_WIKINI) {
$nom_wiki = $GLOBALS['AUTH']->getAuthData(INS_NOM_WIKI) ;
desinscription_interwikini_users($nom_wiki) ;
}
$GLOBALS['AUTH']->logout() ;
return $res.AUTH_formulaire_login() ;
}
// L'utilisateur a-t-il cliqué sur Envoi de mot de passe par mail
if ($_REQUEST['action'] == 'sendpasswd') {
return $res.AUTH_formulaire_login(envoie_passe()) ;
}
 
// L'utilisateur a cliqué sur Inscription ou Inscription structure
if ($_REQUEST['action'] != '' || isset($_POST['modifier'])) {
$action = preg_replace ("/&amp;/", "&", $GLOBALS['ins_url']->getURL()) ;
$formulaire = new HTML_formulaireInscription('formulaire_inscription', 'post', $action, '_self', '', 0) ;
$formulaire->construitFormulaire($action);
if (isset($_POST['form_structure'])) {
$formulaire->formulaireStructure() ;
}
if (isset($_POST['modifier'])) {
$formulaire->addElement('hidden', 'action', 'modifier_v') ;
$formulaire->setDefaults(formulaire_defaults()) ;
}
if ($_REQUEST['action'] == 'inscription') {
$formulaire->addElement('hidden', 'action', 'inscription_v') ;
}
if ($_REQUEST['action'] == 'inscription_v') {
if ($formulaire->validate()) {
if (INS_MAIL_VALIDATION_INSCRIPTION) {
$formulaire->process('demande_inscription', false) ;
return $res.INS_MESSAGE_INSCRIPTION;
} else {
$formulaire->process('inscription_validee', false) ;
return $res.info();
}
}
}
if ($_REQUEST['action'] == 'modifier_v') {
if ($formulaire->validate()) {
$lettre = $GLOBALS['AUTH']->getAuthData(INS_CHAMPS_LETTRE) ;
$formulaire->process('mise_a_jour', false) ;
}
if (isset($_POST['lettre'])) {
if ($lettre == '') {
inscription_lettre(INS_MAIL_INSCRIPTION_LISTE) ;
}
} else {
if ($lettre == 1) {
inscription_lettre(INS_MAIL_DESINSCRIPTION_LISTE) ;
}
}
return info();
}
return $res.$formulaire->toHTML() ;
}
// L'inscription dans la base si l'utilisateur clique sur le lien du mail
if ((INS_MAIL_VALIDATION_INSCRIPTION)and(isset($_GET['id']))) {
$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 $res.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) ;
}
// 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 $res.info();
 
}
return $res ;
}
 
/* +--Fin du code ----------------------------------------------------------------------------------------+
*
* $Log: not supported by cvs2svn $
* Revision 1.4 2005/03/21 16:57:30 florian
* correction de bug, mise à jour interface
*
* Revision 1.3 2005/03/08 17:44:02 alex
* suppression en utilisant removeUser de Auth plutôt qu'en requete directe
*
* Revision 1.2 2005/03/02 12:44:41 alex
* Correction du bug message d'erreur alors qu'on tente de s'inscrire simplement
*
* Revision 1.1 2004/12/15 13:32:15 alex
* version initiale
*
* 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/ins_annuaire/annuaire.php
New file
0,0 → 1,91
<?
/*vim: set expandtab tabstop=4 shiftwidth=4: */
// +------------------------------------------------------------------------------------------------------+
// | PHP version 4.1 |
// +------------------------------------------------------------------------------------------------------+
// | Copyright (C) 2004 Tela Botanica (accueil@tela-botanica.org) |
// +------------------------------------------------------------------------------------------------------+
// | This library is free software; you can redistribute it and/or |
// | modify it under the terms of the GNU Lesser General Public |
// | License as published by the Free Software Foundation; either |
// | version 2.1 of the License, or (at your option) any later version. |
// | |
// | This library is distributed in the hope that it will be useful, |
// | but WITHOUT ANY WARRANTY; without even the implied warranty of |
// | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU |
// | Lesser General Public License for more details. |
// | |
// | You should have received a copy of the GNU Lesser General Public |
// | 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: annuaire.php,v 1.1 2005-04-06 13:33:32 florian Exp $
/**
* programme principal du module annuaire
*
* programme principal du module annuaire
*
*@package annuaire
//Auteur original :
*@author Alexandre GRANIER <alexandre@tela-botanica.org>
*@author Florian SCHMITT <florian@ecole-et-nature.org>
//Autres auteurs :
*@author Aucun
*@copyright Tela-Botanica 2000-2004
*@version $Revision: 1.1 $
// +------------------------------------------------------------------------------------------------------+
*/
 
// +------------------------------------------------------------------------------------------------------+
// | ENTETE du PROGRAMME |
// +------------------------------------------------------------------------------------------------------+
include_once 'configuration/ins_annuaire.config.inc.php';
include_once INS_CHEMIN_APPLI.'configuration/annuaire.config.inc.php';
include_once INS_CHEMIN_APPLI.'bibliotheque/annuaire.fonct.php';
 
 
/**
* Renvoie le code HTML de l'application
*
* @return string HTML
*/
function afficherContenuCorps () {
$res = '<h1 class="annuaire_titre1">'.ANN_TITRE.'</h1>'."\n" ;
if (!$GLOBALS['AUTH']->getAuth()) {
include_once INS_CHEMIN_APPLI.'configuration/inscription.config.inc.php';
include_once INS_CHEMIN_APPLI.'bibliotheque/inscription.fonct.php';
$res .= AUTH_formulaire_login() ;
} else {
// Le code javascript des cases à cocher
$java =
'function setCheckboxes(the_form) {
var do_check = document.forms[the_form].elements[\'selecttotal\'].checked;
var elts = document.forms[the_form].elements[\'select[]\'];
var elts_cnt = (typeof(elts.length) != \'undefined\')
? elts.length
: 0;
if (elts_cnt) {
for (var i = 0; i < elts_cnt; i++) {
elts[i].checked = do_check;
} // Fin for
} else {
elts.checked = do_check;
}// Fin if... else
return true;
} // Fin de la fonction setCheckboxes()';
GEN_stockerCodeScript($java) ;
 
$res .= '<h2 class="annuaire_titre2">'.ANN_CLIQUEZ_LETTRE.'</h2>'."\n";
 
// S'il y a un mail a envoyé, on l'envoie
if (isset($_POST['select']) && is_array ($_POST['select'])) $res .= envoie_mail() ;
$res .= parcourirAnnu('') ;
}
return $res;
}
 
/**------------------------------------------------------------------------------
* $Log: not supported by cvs2svn $
*
*-- End of source ------------------------------------------------------------*/
?>
/trunk/client/ins_annuaire/documentation/ins_annuaire.sql
New file
0,0 → 1,33
CREATE TABLE `annuaire` (
`a_id` int(11) unsigned NOT NULL default '0',
`a_ce_i18n` varchar(8) NOT NULL default '',
`a_nom` varchar(32) NOT NULL default '',
`a_prenom` varchar(32) NOT NULL default '',
`a_profession` varchar(255) NOT NULL default '',
`a_mot_de_passe` varchar(32) NOT NULL default 'X X',
`a_mail` varchar(128) NOT NULL default '',
`a_nom_wikini` varchar(255) NOT NULL default '',
`a_adresse1` text,
`a_adresse2` text,
`a_tel` varchar(32) NOT NULL default '',
`a_fax` varchar(32) NOT NULL default '',
`a_code_postal` varchar(32) default NULL,
`a_ville` varchar(255) default NULL,
`a_pays` char(3) default NULL,
`a_region` varchar(255) default NULL,
`a_code_insee_commune` varchar(255) default NULL,
`a_numero_dpt` int(10) unsigned default NULL,
`a_date_inscription` datetime NOT NULL default '0000-00-00 00:00:00',
`a_est_structure` tinyint(3) unsigned NOT NULL default '0',
`a_structure` varchar(255) NOT NULL default '',
`a_appartient_structure` int(10) unsigned NOT NULL default '0',
`a_sigle_structure` varchar(64) NOT NULL default '',
`a_lettre` tinyint(3) unsigned NOT NULL default '0',
PRIMARY KEY (`a_id`)
) ;
CREATE TABLE `inscription_demande` (
`id_identifiant_session` varchar(32) NOT NULL default '',
`id_donnees` text NOT NULL,
`id_date` date NOT NULL default '0000-00-00',
PRIMARY KEY (`id_identifiant_session`)
) ;
/trunk/client/ins_annuaire/bibliotheque/fonctions.php
New file
0,0 → 1,267
<?php
// +--------------------------------------------------------------------------------+
// | fonctions.php |
// +--------------------------------------------------------------------------------+
// | Copyright (c) 2002 Tela Botanica |
// +--------------------------------------------------------------------------------+
// | Fonctions diverses |
// +--------------------------------------------------------------------------------+
// | Auteur : Alexandre Granier <alexandre@tela-botanica.org> |
// +--------------------------------------------------------------------------------+
//
// $Id: fonctions.php,v 1.1 2005-04-06 13:33:32 florian Exp $
 
// effectue une requete sur un colonne unique et renvoie le resultat sous la forme
// d'un tableau
 
function get($query) {
$tableau = array() ;
$query = "SELECT " . $query;
$result = mysql_query($query) or die ("Echec de la requ&ecirc;te sur AGORA");
while ($row = mysql_fetch_row($result)) {
array_push ($tableau,$row[0]);
}
 
return $tableau ;
}
 
function textecourt($texte, $taille) {
if (strlen($texte) > $taille) return substr($texte, 0, $taille-3)."...";
return $texte;
}
 
// formulaire, prend en parametre les valeurs par defaut
function formulaire($titre="",$description="", $abreviation="", $internet="", $selectedForums="", $selectedProjet="",$origine="NOUVEAU") {
global $baseURL, $forums, $projets, $projetAb ;
$forums = get("AGO_A_ALIAS FROM agora") ;
$IDforums = get ("AGO_A_ID FROM agora");
$projets = get("TITRE FROM PROJET_PROJET ORDER BY ABREVIATION");
$projetAb = get("ABREVIATION FROM PROJET_PROJET ORDER BY ABREVIATION") ;
if ($selectedForums == "") $selectedForums = array() ;
if ($selectedProjet == "") $selectedProjet = array() ;
$res ="<table>\n";
if ($origine == "NOUVEAU") {
$res .="<form action=\"$baseURL&menuProjet=projetadm&action=2\" method=\"post\">\n";
} else {
$res .="<form action=\"$baseURL&menuProjet=projetgest&projet=$abreviation&action=2\" method=\"post\">\n";
}
$res .="<tr class=\"text\"><td style=\"text-align:right;font-weight:bold;\">Titre :</td><td><input type=\"text\"
class=\"insInputForm\" name=\"titre\" size=\"60\" value=\"$titre\"></td></tr>\n";
$res .="<tr class=\"text\"><td valign=\"top\" style=\"text-align:right;font-weight:bold;\">Description :</td><td><textarea name=\"description\"
class=\"insInputForm\" cols=\"60\" rows=\"20\">$description</textarea></td></tr>\n";
if ($origine == "NOUVEAU") {
$res .="<tr class=\"text\"><td style=\"text-align:right;font-weight:bold;\">Abr&eacute;viation :</td>\n";
$res .="<td><input class=\"insInputForm\" type=\"text\" name=\"abreviation\" size=\"5\" value=\"$abreviation\">&nbsp;&nbsp;";
$res .="&nbsp;&nbsp;Au maximum 5 caract&egrave;res, de pr&eacute;f&eacute;rence en majuscule.</td></tr>\n";
}
$res .="<tr class=\"text\"><td style=\"text-align:right;font-weight:bold;\">Espace Internet :</td>\n";
$res .="<td><input class=\"insInputForm\" type=\"text\" name=\"internet\" size=\"60\" value=\"$internet\"></td></tr>\n";
$res .="<tr class=\"text\"><td valign=\"top\" style=\"text-align:right;font-weight:bold;\">Forums associ&eacute;s :</td><td><select class=\"insInputForm\" name=forumsS[] size=\"";
$res .=count($forums);
$res .="\" multiple>\n";
for ($i = 0 ; $i < count($forums) ; $i++) {
$res .="<option value=\"$IDforums[$i]\"";
if (in_array($forums[$i],$selectedForums)) $res .=" selected";
$res .=">";
$res .=$forums[$i];
$res .="</option>\n";
}
$res .="</select>\n";
$res .="<tr class=\"text\"><td valign=\"top\" style=\"text-align:right;font-weight:bold;\">Projets associ&eacute;s :</td>\n<td><select class=\"insInputForm\" name=projetsS[] size=\"";
$res .=count($projets);
$res .="\" multiple>\n";
for ($i = 0 ; $i < count($projets) ; $i++) {
$res .="<option value=\"";
$res .=$projetAb[$i];
$res .="\"";
if (in_array($projetAb[$i],$selectedProjet)) $res .=" selected";
$res .=">";
$res .=$projets[$i];
$res .="</option>\n";
}
$res .="</select></td></tr>\n";
$res .="<tr><td colspan=\"2\" align=\"center\">\n";
if ($origine != "NOUVEAU") $res .="<input style=\"background-color:#FFFFFF\" type=\"button\" onclick=\"Javascript:history.go(-1);\" value=\"Annuler\">\n" ;
$res .="<input style=\"background-color:#FFFFFF\" type=\"submit\"";
if ($origine == "NOUVEAU") {
$res .=" value=\"Cr&eacute;er\">";
} else { $res .=" value=\"Valider\">";
}
$res .="</td></tr>\n";
$res .="</form>\n";
$res .="</table>\n";
return $res ;
}
 
function getExtension($filename) {
$extension = explode (".",$filename) ;
return $extension[1] ;
}
 
#--------------------------------------------------------------
# Insere $num espace insecable
#--------------------------------------------------------------
 
function insert_spaces($num) {
$res = "" ;
for ($i = 0; $i < $num; $i++) $res .= "&nbsp;";
return $res ;
}
 
function getEnumSet($text) {
$resultat = explode("'", $text) ;
$retour = array() ; $j = 0 ;
for ($i = 1 ; $i < count ($resultat)-1 ; $i = $i + 2) {
$retour[$j] = $resultat[$i] ;
$j++ ;
}
return $retour ;
}
 
$jour = array("lundi","mardi", "mercredi", "jeudi", "vendredi", "samedi","dimanche");
$moi = array("janvier","f&eacute;vrier","mars","avril","mai","juin","juillet","septembre","octobre","novembre","d&eacute;cembre") ;
 
function parcourrirAnnu($event) {
global $baseURL, $lettre, $menuProjet ;
$outputText = "" ;
$outputText .= "<tr><td>&nbsp;</td></tr>\n";
$outputText .= "<tr><td><table align=\"center\">";
$outputText .= "<tr class=\"texte_tb\">";
// ecrire toutes les lettres avec un lien
for ($i = 65 ; $i <91 ; $i++) {
$outputText .= "\t<td><a style=\"font-size:15px;\" href=\"$baseURL&amp;menuProjet=$menuProjet&amp;action=$event&amp;lettre=";
$outputText .= chr($i) ;
$outputText .= "\">";
$outputText .= chr($i) ;
$outputText .= "</a></td>\n";
}
$outputText .= "<td>&nbsp;&nbsp;<a href=\"$baseURL&amp;menuProjet=$menuProjet&amp;action=$event&amp;lettre=tous\">Tous</a></td>\n" ;
$outputText .= "</tr></table></td></tr>\n";
// si une lettre est selectionne
if (!empty($lettre)) {
$query = "SELECT annuaire_tela.U_NAME,annuaire_tela.U_SURNAME,annuaire_tela.U_MAIL,annuaire_tela.U_CITY,
annuaire_tela.U_ZIP_CODE,gen_COUNTRY.GC_NAME FROM annuaire_tela,gen_COUNTRY WHERE";
if ($lettre != "tous") $query .= " U_NAME LIKE \"$lettre%\" AND" ;
$query .= " annuaire_tela.U_COUNTRY=gen_COUNTRY.GC_ID AND gen_COUNTRY.GC_LOCALE=\"fr\"
AND U_NAME<>\"\" and U_SHOW=3 ORDER BY U_NAME" ;
$result = mysql_query($query) or die ("Echec de la requ&ecirc;te sur annuaire_tela...");
if (mysql_num_rows($result) != 0) {
// pour chaque nom, on inscrit les infos
$outputText .= "<tr><td>&nbsp;</td></tr>\n";
$outputText .= "<tr class=\"insTitle1\"><td>Liste des inscrits &agrave; la lettre : $lettre</td></tr>\n";
$outputText .= "<tr><td><table width=\"100%\">";
$outputText .= "<tr class=\"insTitle1\"><td>Nom</td>";
$outputText .= "<td>Pr&eacute;nom</td><td align=\"center\">E-mail</td>\n";
$outputText .= "<td align=\"center\">Code postal</td><td>Pays</td></tr>\n";
$pair = true ;
while ($row = mysql_fetch_object($result)) {
$outputText .= "<tr class=\"texte_tb2\"";
if ($pair) {
$outputText .= " bgcolor=\"#E8FFE5\"";
$pair = false ;
} else {
$pair = true ;
}
$outputText .= "><td>$row->U_NAME</td><td>$row->U_SURNAME</td>\n";
$outputText .= "<td align=\"left\"><a href=\"mailto:$row->U_MAIL\">$row->U_MAIL</a></td>\n";
$outputText .= "<td align=\"center\">$row->U_ZIP_CODE</td>\n";
$outputText .= "<td>$row->GC_NAME</td>\n" ;
$outputText .= "</tr>\n";
}
$outputText .= "</table></td></tr>\n";
} else {
$outputText .= "<tr><td>&nbsp;</td></tr>\n";
$outputText .= "<tr class=\"texte_tb\"><td>Pas d'inscrit</td></tr>\n";
}
}
return $outputText ;
}
function formRep($nom="", $description="", $origine="NOUVEAU", $visibilite="") {
global $baseURL, $projet, $repcourant, $id ;
if ($origine == "NOUVEAU") {
$res = "<form action=$baseURL&action=20\" method=\"post\">\n" ;
} else {
$res = "<form action=$baseURL&action=19\" method=\"post\"\n>" ;
}
$res .= "\t<table align=\"center\">\n\t" ;
$res .= "<tr class=\"texte_tb\"><td colspan=\"2\">N'utilisez pas d'accents, ni d'espace pour le nom du r&eacute;pertoire.</td></tr>\n";
$res .= "<tr class=\"text\"><td style=\"font-weight:bold;text-align:right\">" ;
$res .= "Nom : </td><td><input class=\"insInputForm\" type=\"text\" name=\"nom\" size=\"80\" value=\"$nom\"></td></tr>\n" ;
$res .= "<tr class=\"text\"><td style=\"font-weight:bold;text-align:right;vertical-align:top\">Description : </td>\n" ;
$res .= "<td><textarea class=\"insInputForm\" name=\"description\" cols=\"81\">$description</textarea></td></tr>\n" ;
$res .= "<tr class=\"text\"><td align=\"right\"><b>Visibilit&eacute; :</b></td>\n";
$res .= "<td align=\"left\">\n";
$res .= "<input style=\"background-color:#FFFFFF;\" type=\"radio\" name=\"visible\" value=\"public\"" ;
if ($visibilite == "public" or $visibilite == "") $res .= " checked" ;
$res .= ">Tout public&nbsp;&nbsp;&nbsp;&nbsp;";
$res .= "<input style=\"background-color:#FFFFFF;\" type=\"radio\" name=\"visible\" value=\"prive\"" ;
if ($visibilite == "prive") $res.= " checked" ;
$res .= ">Projet seulement</td></tr>\n";
$res .= "<tr class=\"text\"><td><input type=\"hidden\" name=\"repcourant\" value=\"$repcourant\"</td><td>\n" ;
$res .= "<input type=\"hidden\" name=\"id\" value=\"$id\">" ;
$res .= "<input type=\"submit\" style=\"background-color:#FFFFFF;\"" ;
if ($origine == "NOUVEAU") { $res.= "value=\"Valider\"" ; } else { $res .= "value=\"Modifier\"" ; }
$res .= "></td></tr></table></form>\n" ;
return $res ;
}
 
// renvoie le chemin complet depuis la racine de l'application
// on indique en argument l'identifiant du repertoire en cour
// la fonction remonte d'etage en etage jusqu'a ce que gen_voiraussi.PERE soit NULL
function getPath($ID_rep) {
$path = "" ;
$query = "SELECT PERE,NOM FROM gen_repertoire WHERE ID='$ID_rep'" ;
$result = mysql_query($query) or die ("Echec de la requ&ecirc;te dans gen_voiraussi, au cours de la recherche
du chemin des repertoire") ;
$row = mysql_fetch_object($result) ;
if ($row->PERE != NULL) {
$path .= getPath($row->PERE)."/".$row->NOM ;
}
return $path ;
}
 
 
// renvoie le chemin avec les tag <a href
 
function getHTMLPath($ID_rep) {
global $baseURL ;
$query = "SELECT PERE,NOM FROM gen_repertoire WHERE ID='$ID_rep'" ;
$result = mysql_query($query) or die ("Echec de la requ&ecirc;te dans gen_voiraussi, au cours de la recherche
du chemin des repertoire") ;
$row = mysql_fetch_object($result) ;
if ($row->PERE != NULL) {
$path .= " <b>&gt;</b><a href=\"$baseURL&amp;repcourant=$ID_rep\">" ;
$path .= $row->NOM ;
$path .= "</a>\n" ;
$path = getHTMLPath($row->PERE).$path ;
}
return $path ;
}
 
function nettoieAccent(&$texte) {
 
// un peu barbare
$texte = ereg_replace("é","e",$texte) ;
$texte = ereg_replace("è","e",$texte) ;
$texte = ereg_replace("ê","e",$texte) ;
$texte = ereg_replace("à","a",$texte) ;
$texte = ereg_replace("ù","u",$texte) ;
$texte = ereg_replace("â","a",$texte) ;
$texte = ereg_replace("ä","a",$texte) ;
$texte = ereg_replace("ë","e",$texte) ;
$texte = ereg_replace("î","i",$texte) ;
$texte = ereg_replace("ô","o",$texte) ;
$texte = ereg_replace("û","u",$texte) ;
$texte = ereg_replace("ö","o",$texte) ;
$texte = ereg_replace("ü","u",$texte) ;
 
return $texte ;
}
 
?>
/trunk/client/ins_annuaire/bibliotheque/inscription.fonct.spip.php
New file
0,0 → 1,131
<?php
/*vim: set expandtab tabstop=4 shiftwidth=4: */
// +------------------------------------------------------------------------------------------------------+
// | PHP version 4.1 |
// +------------------------------------------------------------------------------------------------------+
// | Copyright (C) 2004 Tela Botanica (accueil@tela-botanica.org) |
// +------------------------------------------------------------------------------------------------------+
// | This library is free software; you can redistribute it and/or |
// | modify it under the terms of the GNU Lesser General Public |
// | License as published by the Free Software Foundation; either |
// | version 2.1 of the License, or (at your option) any later version. |
// | |
// | This library is distributed in the hope that it will be useful, |
// | but WITHOUT ANY WARRANTY; without even the implied warranty of |
// | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU |
// | Lesser General Public License for more details. |
// | |
// | You should have received a copy of the GNU Lesser General Public |
// | 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.spip.php,v 1.1 2005-04-06 13:33:32 florian Exp $
/**
* Fonctions wikini
*
* Ce fichier propose 3 fonctions pour intervenir sur la table interwikini_users.
*
*@package inscription
*@subpackage fonctions_wikini
//Auteur original :
*@author Alexandre Granier <alexandre@tela-botanica.org>
//Autres auteurs :
*@author Aucun
*@copyright Tela-Botanica 2000-2004
*@version $Revision: 1.1 $ $Date: 2005-04-06 13:33:32 $
// +------------------------------------------------------------------------------------------------------+
*/
 
// +------------------------------------------------------------------------------------------------------+
// | ENTETE du PROGRAMME |
// +------------------------------------------------------------------------------------------------------+
 
// +------------------------------------------------------------------------------------------------------+
// | LISTE de FONCTIONS |
// +------------------------------------------------------------------------------------------------------+
 
function inscription_spip($id, &$valeur)
{
 
// Requete pour inscrire dans SPIP
if (isset ($valeur['nomwiki'])) {
$login = $valeur['nomwiki'] ;
} else {
$login = $valeur['email'] ;
}
$requete = "insert into spip_auteurs set id_auteur=$id, nom=\"".$valeur['prenom']." ".$valeur['nom'].
"\",email=\"".$valeur['email']."\",login=\"".$login.
"\", pass=\"".md5($valeur['password'])."\", statut=\"nouveau\", lang=\"".
strtolower($valeur['pays'])."\"" ;
@mysql_query($requete) or die ("$requete<br>Echec <br>".mysql_error()) ;
}
 
function mod_inscription_spip($id, &$valeur)
{
if (isset ($valeur['nomwiki'])) {
$login = $valeur['nomwiki'] ;
} else {
$login = $valeur['email'] ;
}
//BIEN METTRE alea_actuel, htpass ET alea_futur À ""
$requete = "update spip_auteurs set nom=\"".$valeur['prenom']." ".$valeur['nom'].
"\",email=\"".$valeur['email']."\",login=\"".$login.
"\", pass=\"".md5($valeur['password'])."\", htpass=\"\", alea_actuel=\"\", alea_futur=\"\", lang=\"fr\" where id_auteur=$id" ;
//echo $requete;
@mysql_query($requete) or die ("$requete<br>Echec <br>".mysql_error()) ;
}
function desinscription_spip($id_utilisateur)
{
$requete = 'delete from spip_auteurs where id_auteur='.$id_utilisateur ;
@mysql_query($requete) or die ("$requete<br>Echec de la requête de mise à la poubelle de l'utilisateur dans spip <br>".mysql_error()) ;
}
 
function spip_cookie() {
if ($userid != 0) {
setcookie("spip_admin", "@$login", time()+3600*24*30, "/vecam/") ;
include ("ecrire/inc_version.php3");
include_ecrire ("inc_meta.php3");
include_ecrire ("inc_session.php3");
$query = "SELECT * FROM spip_auteurs WHERE id_auteur=$userid";
$result = mysql_query($query);
$GLOBALS['auteur_session'] = mysql_fetch_array($result) ;
$GLOBALS['auteur_session']['statut'] = "1comite" ;
$GLOBALS['auteur_session']['lang'] = "en" ;
if (!$HTTP_COOKIE_VARS["spip_session"]) {
$id_session = $userid."_".(md5 (uniqid (rand ())));
setcookie("spip_session", $id_session, time()+3600*24*30, "/vecam/") ;
} else {
$id_session = preg_replace("/[0-9]+_/", $userid."_", $HTTP_COOKIE_VARS["spip_session"]) ;
setcookie("spip_session", $id_session, time()+3600*24*30, "/vecam/") ;
}
ajouter_session($GLOBALS['auteur_session'], $id_session) ;
}
}
 
/* +--Fin du code ----------------------------------------------------------------------------------------+
*
* $Log: not supported by cvs2svn $
* Revision 1.2 2005/03/21 16:57:30 florian
* correction de bug, mise à jour interface
*
* Revision 1.1 2004/12/15 13:32:25 alex
* version initiale
*
* Revision 1.1 2004/07/06 15:42:17 alex
* en cours
*
* Revision 1.2 2004/06/25 14:25:27 alex
* modification de la requete de suppresssion
*
* Revision 1.1 2004/06/18 09:20:48 alex
* version initiale
*
*
* +-- Fin du code ----------------------------------------------------------------------------------------+
*/
 
 
 
 
?>
/trunk/client/ins_annuaire/bibliotheque/inscription.class.php
New file
0,0 → 1,225
<?php
/*vim: set expandtab tabstop=4 shiftwidth=4: */
// +------------------------------------------------------------------------------------------------------+
// | PHP version 4.1 |
// +------------------------------------------------------------------------------------------------------+
// | Copyright (C) 2004 Tela Botanica (accueil@tela-botanica.org) |
// +------------------------------------------------------------------------------------------------------+
// | This library is free software; you can redistribute it and/or |
// | modify it under the terms of the GNU Lesser General Public |
// | License as published by the Free Software Foundation; either |
// | version 2.1 of the License, or (at your option) any later version. |
// | |
// | This library is distributed in the hope that it will be useful, |
// | but WITHOUT ANY WARRANTY; without even the implied warranty of |
// | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU |
// | Lesser General Public License for more details. |
// | |
// | You should have received a copy of the GNU Lesser General Public |
// | 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.1 2005-04-06 13:33:32 florian Exp $
/**
* Inscription
*
* 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 :
*@copyright Tela-Botanica 2000-2004
*@version $Revision: 1.1 $ $Date: 2005-04-06 13:33:32 $
// +------------------------------------------------------------------------------------------------------+
*/
 
// +------------------------------------------------------------------------------------------------------+
// | ENTETE du PROGRAMME |
// +------------------------------------------------------------------------------------------------------+
 
require_once 'HTML/QuickForm.php' ;
 
class ListeDePays extends PEAR{
 
var $_db ;
/** Constructeur
* Vérifie l'existance de la table gen_pays_traduction
*
* @param DB Un objet PEAR::DB
* @return
*/
function ListeDePays(&$objetDB) {
$this->_db = $objetDB ;
$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] == INS_TABLE_PAYS) {
return ;
}
}
return $this->raiseError('La table gen_pays_traduction n\'est pas présente dans la base de donnée !') ;
}
/** Renvoie la liste des pays traduite
*
* @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) ;
}
$requete = 'select '.INS_CHAMPS_ID_PAYS.', '.INS_CHAMPS_LABEL_PAYS.' from '.INS_TABLE_PAYS;
$resultat = $this->_db->query ($requete) ;
if (DB::isError ($resultat)) {
die ("Echec de la requete : $requete<br />".$resultat->getMessage()) ;
}
if ($resultat->numRows() == 0) {
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_ASSOC)) {
$retour[$ligne[INS_CHAMPS_ID_PAYS]] = $ligne[INS_CHAMPS_LABEL_PAYS] ;
}
return $retour ;
}
}
 
class HTML_formulaireInscription extends HTML_Quickform {
 
/**
* Constructeur
*
* @param string formName Le nom du formulaire
* @param string method Méthode post ou get
* @param string action L'action du formulaire.
* @param int target La cible.
* @param Array attributes Les attributs HTML en plus.
* @param bool trackSubmit ??
* @return void
* @access public
*/
function HTML_formulaireInscription( $formName, $method = "post", $action, $target = "_self", $attributes, $trackSubmit = false ) {
HTML_Quickform::HTML_Quickform($formName, $method, $action, $target, $attributes, $trackSubmit) ;
}
/**
*
*
* @return void
* @access public
*/
function construitFormulaire($url)
{
$squelette =& $this->defaultRenderer();
$squelette->setFormTemplate("\n".'<form{attributes}>'."\n".'{content}'."\n".'</form>'."\n");
$squelette->setElementTemplate( '<li class="liste_inscription">'."\n".'{label}'."\n".'{element}'."\n".
'<!-- BEGIN required --><span class="symbole_obligatoire">*</span><!-- END required -->'."\n".
'<!-- BEGIN error --><span class="erreur">{error}</span><!-- END error -->'."\n".
'</li>'."\n");
$squelette->setGroupElementTemplate('<span class="groupe_formulaire">{label}{element}</span>', 'groupe_mot_de_passe') ;
$squelette->setGroupElementTemplate('<span class="groupe_formulaire">{label}{element}</span>', 'groupe_cp_ville') ;
$squelette->setGroupElementTemplate('<span class="groupe_formulaire">{label}{element}</span>', 'groupe_nom') ;
$squelette->setRequiredNoteTemplate("\n".'<p>'."\n".'<span class="symbole_obligatoire">*</span> {requiredNote}'."\n".'</p>'."\n");
$fieldset_debut = '<fieldset>'."\n".
'<legend>'.INS_AJOUT_MEMBRE.'</legend>'."\n".
'<ul>'."\n";
$this->addElement('html', $fieldset_debut);
$this->addElement('text', 'email', INS_EMAIL) ;
$this->addRule('email', INS_EMAIL_REQUIS, 'required','', 'client') ;
$this->addRule('email', INS_MAIL_INCORRECT, 'email', '', 'client') ;
$this->registerRule('doublonmail', 'callback', 'verif_doublonMail');
$this->addRule('email', INS_MAIL_DOUBLE, 'doublonmail', true);
// A faire, grouper les mots de passe
$this->addElement('password', 'mot_de_passe', INS_MOT_DE_PASSE) ;
$this->addElement('password', 'mot_de_passe_repete', INS_REPETE_MOT_DE_PASSE) ;
$this->addRule('mot_de_passe', INS_MOT_DE_PASSE_REQUIS, 'required', '', 'client') ;
$this->addRule('mot_de_passe_repete', INS_MOT_DE_PASSE_REQUIS, 'required', '', 'client') ;
$this->addRule(array ('mot_de_passe', 'mot_de_passe_repete'), INS_MOTS_DE_PASSE_DIFFERENTS, 'compare', '', 'client') ;
$this->addElement('text', 'nom', INS_NOM) ;
$this->addElement('text', 'prenom', INS_PRENOM) ;
if (INS_UTILISE_WIKINI) {
$this->addElement('text', 'nom_wikini', INS_NOM_WIKI) ;
$this->addRule('nom_wikini', INS_MAUVAIS_NOM_WIKI, 'regex', '/(!?[A-Z][A-Za-z0-9]*[a-z0-9]+[A-Z][A-Za-z0-9]*)/', 'client') ;
$this->registerRule('doublonwikini', 'callback', 'verif_doublonNomWiki');
$this->addRule('nom_wikini', INS_NOMWIKI_DOUBLE, 'doublonwikini', true);
}
$this->addElement('text', 'adresse_1', INS_ADRESSE_1) ;
$this->addElement('text', 'adresse_2', INS_ADRESSE_2) ;
$this->addElement('text', 'region', INS_REGION) ;
$this->addElement('text', 'cp', INS_CODE_POSTAL) ;
$this->addElement('text', 'ville', INS_VILLE) ;
$this->addRule('cp', INS_CODE_POSTAL_REQUIS, 'required', '', 'client') ;
// L'élément pays est construit à partir du tableau liste_pays
$liste_pays = new ListeDePays($GLOBALS['ins_db']) ;
$this->addElement('select', 'pays', INS_PAYS, $liste_pays->getListePays(INS_LANGUE_DEFAUT)) ;
$this->addElement('text', 'site', INS_SITE_INTERNET) ;
$this->addElement('checkbox', 'lettre',INS_LETTRE) ;
$defauts=array ('lettre'=>1,'pays'=>'FR');
$this->setDefaults($defauts);
// on fait un groupe avec les boutons pour les mettres sur la même ligne
$buttons[] = &HTML_QuickForm::createElement('button', 'annuler', INS_ANNULER, array ("onclick" => "javascript:document.location.href='".$url."'"));
$buttons[] = &HTML_QuickForm::createElement('submit', 'valider', INS_VALIDER);
$this->addGroup($buttons, null, null, '&nbsp;');
$fieldset_fin = '</ul>'."\n".
'</fieldset>'."\n";
$this->addElement('html', $fieldset_fin);
 
$this->setRequiredNote(INS_CHAMPS_REQUIS) ;
} // end of member function construitFormulaire
/** Modifie le formulaire pour l'adapter au cas des structures
*
*
* @return void
* @access public
*/
function formulaireStructure()
{
$this->removeElement('nom') ;
$this->removeElement('prenom') ;
$this->removeElement('email', false) ;
$mail = & HTML_QuickForm::createElement ('text', 'email', INS_MAIL_STRUCTURE) ;
$this->insertElementBefore ($mail, 'mot_de_passe') ;
$nom_structure = & HTML_QuickForm::createElement ('text', 'nom', INS_NOM_STRUCTURE) ;
$this->insertElementBefore ($nom_structure, 'email') ;
$this->removeElement ('site', false) ;
$site_structure = & HTML_QuickForm::createElement ('text', 'site', INS_SITE_STRUCTURE) ;
$this->insertElementBefore ($site_structure, 'pays') ;
$this->addElement ('hidden', 'est_structure', 1) ;
$sigle_structure = & HTML_QuickForm::createElement ('text', 'sigle_structure', INS_SIGLE_STRUCTURE) ;
$this->insertElementBefore ($sigle_structure, 'nom') ;
$this->addRule ('sigle_structure', INS_SIGLE_REQUIS, 'required', '', 'client') ;
}
/**
*
*
* @return string
* @access public
*/
function toHTML( )
{
$res = HTML_QuickForm::toHTML() ;
return $res ;
} // end of member function toHTML
}
 
?>
/trunk/client/ins_annuaire/bibliotheque/annuaire_backoffice.fonct.php
New file
0,0 → 1,385
<?php
 
// +--------------------------------------------------------------------------------+
// | annuaire_moteur_fonction.php |
// +--------------------------------------------------------------------------------+
// | Copyright (c) 2000 - 2003 Tela Botanica |
// +--------------------------------------------------------------------------------+
// | Les fonctions de annuaire_moteur.php |
// +--------------------------------------------------------------------------------+
// | Auteur : Alexandre Granier <alexandre@tela-botanica.org> |
// +--------------------------------------------------------------------------------+
//
// $Id: annuaire_backoffice.fonct.php,v 1.1 2005-04-06 13:33:32 florian Exp $
 
 
/** function mkengine ()
*
*
*
* @return
*/
 
function mkengine()
{
global $label_bbota;
global $nbr_total;
global $bouton, $HTTP_POST_VARS ;
$mon_frag = new fragmenteur_session() ;
$mes_vars = array ("recherche", "nom", "ville", "mail" ,"dept", "prenom", "cotisant", "pays", "sort", "T_REPONSE", "lettre","statut") ;
// Deux cas , soit on a cliqué sur rechercher, soit on a cliqué sur un lien
foreach ($mes_vars as $key=>$value) {
if (!$bouton) { // on a cliqué sur un lien
if (empty($HTTP_POST_VARS[$value])) {
$$value = $mon_frag->getVariable($value);
}
} else {
// Si on clique sur le bouton rechercher
if (empty ($HTTP_POST_VARS[$value])) {
$$value = "" ;
} else {
$$value = $HTTP_POST_VARS[$value] ;
}
}
}
// Comptage du nombre total de données dans la table (hors CACHER = 1)
$query = "select count(*) as CPT from ".ANN_ANNUAIRE;
$result = mysql_query($query) or die("<B>Erreur !</B> $query a échoué...");
 
if (mysql_num_rows($result) == 1)
{
$tmp_nb = mysql_fetch_object($result);
$nbr_total = $tmp_nb->CPT;
if ($nbr_total > 0) $chaine = "parmi $nbr_total données";
else die("<B>Erreur</B> lors du comptage des structures ($nbr_total trouvées) : $query");
}
else die("<B>Erreur</B> lors du comptage des structures : $query");
 
mysql_free_result($result);
// fin comptage
 
$ret = "";
 
// construction du moteur de str
$ret .= "<form action=\"".$GLOBALS['ann_url']->getURL()."\" method=\"post\">\n";
$ret .= "<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%\" summary=\"\">\n";
$ret .= "<tr class=\"titlePage\"><td colspan=\"2\">".AM_L_TITRE."</td></tr>\n" ;
$ret .= "<tr class=\"insTitle1\"><td colspan=\"2\">".AM_L_TITRE." $chaine :</td></tr>\n" ;
 
// ligne de recherche
$ret .= "<tr><td colspan=\"2\">\n";
$ret .= "<table border=\"0\"><tr>\n" ;
$ret .= "<td class=\"insLabel\">".AM_L_RECHERCHER." :\n</td>\n<td>";
$ret .= form_mk_chaineI(stripslashes($recherche), "recherche")."&nbsp;";
$ret .= "</td><td class=\"insLabel\" colspan=\"4\">".AM_L_PAYS." : \n" ;
$ret .= "" ;
 
// formulaire contenant les pays, avec par défaut soit le pays en cours
// soit "tous les pays"
$query_pays = "select GC_ID, GC_NAME from gen_COUNTRY where GC_LOCALE='fr'" ;
$result_pays = mysql_query($query_pays) or die ("Echec de la requete sur gen_COUNTRY") ;
$ret .= "<select name=\"pays\" class=\"insInputForm\">\n" ;
$ret .= "<option value=\"tous\">Tous les pays</option>\n" ;
while ($row_pays = mysql_fetch_object($result_pays)) {
$ret .= "<option value=\"$row_pays->GC_ID\"" ;
if (!empty($pays)) {
if ($pays == $row_pays->GC_ID) $ret .= " selected" ;
}
$ret .= ">$row_pays->GC_NAME</option>\n" ;
}
$ret .= "</select>\n" ;
$ret .= "</td>\n" ;
$ret .= "<tr>\n";
$ret .= "<td class=\"insLabel\">".AM_L_NOM." :\n</td><td>";
$ret .= form_mk_chaineI(stripslashes($nom), "nom")."&nbsp;</td>\n<td class=\"insLabel\">" ;
$ret .= AM_L_PRENOM."&nbsp;:</td>\n<td>".form_mk_chaineI(stripslashes($prenom), "prenom")."&nbsp;</td>\n<td class=\"insLabel\">" ;
$ret .= AM_L_VILLE."&nbsp;:</td>\n<td>".form_mk_chaineI(stripslashes($ville), "ville")."&nbsp;</td>" ;
$ret .= "</tr><tr>\n" ;
$ret .= "<td class=\"insLabel\">".AM_L_DEPARTEMENT."&nbsp;: </td>\n<td>" ;
// Construction du <select> des départements
$requete_dpt = "select GFD_ID, GFD_NAME from gen_FRENCH_DPT" ;
$resultat_dpt = mysql_query($requete_dpt) or die ("Echec de la requete sur gen_FRENCH_DPT<br>".mysql_error()) ;
$ret .= "<select name=\"dept\" class=\"insInputForm\">\n" ;
$ret .= "<option value=\"tous\">tous</option>\n" ;
while ($ligne_dpt = mysql_fetch_object($resultat_dpt)) {
$ret .= "<option value=\"$ligne_dpt->GFD_ID\"" ;
if ($dept == $ligne_dpt->GFD_ID) $ret .= " selected" ;
$ret .= ">$ligne_dpt->GFD_ID - $ligne_dpt->GFD_NAME</option>\n" ;
}
$ret .= "</select></td>\n" ;
$ret .= "<td class=\"insLabel\">".AM_L_MAIL."&nbsp;: </td>\n<td>".form_mk_chaineI(stripslashes($mail), "mail")."</td>\n" ;
$ret .= "<td class=\"insLabel\">".AM_L_COTISANTS." : </td>\n" ;
$ret .= "<td>".form_mk_select(stripslashes($cotisant), "cotisant")."</td>\n";
$ret .= "</tr></table>\n";
$ret .= "</td></tr>\n";
$ret .= "<tr><td><table>\n" ;
// Les statuts des inscrits
$tableau_statut = array ("0" => "Désinscrit", "1" =>"Cotisant non inscrit", "3" =>"Inscrit") ;
$ret .= "<tr>\n";
$ret .= "<td class=\"insLabel\">Statut&nbsp;:&nbsp;</td>" ;
$ret .= "<td><select name=\"statut\" class=\"insInputForm\">\n" ;
foreach ($tableau_statut as $key=>$value) {
$ret .= "<option value=\"$key\"" ;
if (!empty($HTTP_POST_VARS["statut"]) && $HTTP_POST_VARS["statut"] == $key) $ret .= " selected" ;
if (empty($HTTP_POST_VARS["statut"]) && $key == "3") $ret .= " selected" ;
$ret .= ">$value</option>\n" ;
}
$ret .= "</select></td>" ;
$ret .= "<td class=\"insLabel\" width=\"60%\">\n";
$ret .= AM_L_GRP_RES." : </td>" ;
$grp = array(20, 50, 100) ;
$ret .= "<td><select name=\"T_REPONSE\" class=\"insInputForm\">\n" ;
for ($i = 0; $i < count($grp); $i++) {
$ret .= "<option value=\"".$grp[$i]."\">".$grp[$i]."</option>\n" ;
}
$ret .= "</select></td>" ;
$ret .= "<td class=\"texte_tb\" align=\"right\" width=\"40%\">\n";
$ret .= "<input type=\"submit\" class=\"texte_tb\" value=\"".AM_L_RECHERCHER."\" name =\"bouton\">\n";
$ret .= "</td></tr></table>\n</td></tr>\n";
$ret .= "</table></form>\n";
return $ret;
}
 
/** function form_mk_chaineI () Renvoie une balise de type <input>
*
* @param string l'attribut value de la balise
* @param string l'attibut name de la balise
* @param string la classe CSS
* @return string HTML
*/
function form_mk_chaineI($value="", $name, $class="insInputForm")
{
return "<input type=\"text\" size=\"15\" value=\"$value\" name=\"$name\" class=\"$class\">";
}
 
function form_mk_select($value="", $name="", $class="insInputForm") {
$res = "<select name=\"$name\" class=\"$class\">\n" ;
$res .= "<option value=\"1\"" ;
if ($value == 1) $res .= " selected" ;
$res .= ">Cotisants</option>\n" ;
$res .= "<option value=\"2\"" ;
if ($value == 2) $res .= " selected" ;
$res .= ">Non cotisants</option>\n" ;
$res .= "<option value=\"3\"" ;
if ($value == 3 || $value == "") $res .= " selected" ;
$res .= ">Tous</option>\n" ;
$res .= "</select>\n" ;
return $res ;
}
 
function mkquery()
{
// définition des variables globales
global $lettre ;
global $bouton, $HTTP_POST_VARS ;
$mon_frag = new fragmenteur_session() ;
 
// Requete sur l'annuaire pour extraire le nom, prénom, ville, nom du département (jointure),
// l'état de la cotisation (jointure)
// le tableau suivant contient tous les champs de la table annuaire_tela sur lesquels on peut effectuer une recherche
$fields_annu = array("nom" => "U_NAME", "prenom" => "U_SURNAME" , "mail" => "U_MAIL" , "ville" => "U_CITY",
"dept" => "U_FRENCH_DPT", "pays" => "U_COUNTRY" ) ;
 
$mes_vars = array ("recherche", "nom", "ville", "mail" ,"dept", "prenom", "cotisant", "pays", "sort", "T_REPONSE", "lettre","statut") ;
 
foreach ($mes_vars as $key=>$value) {
if (!$bouton) {
if (empty($HTTP_POST_VARS[$value])) {
$$value = $mon_frag->getVariable($value);
}
} else {
$lettre = "" ;
$mon_frag->setVariable("lettre", "") ;
$mon_frag->fixerLeDebut(0) ;
if (empty ($HTTP_POST_VARS[$value])) {
$$value = "" ;
} else {
$$value = $HTTP_POST_VARS[$value] ;
}
}
}
if ($bouton) $sort = $mon_frag->getVariable("sort") ;
 
 
$queries = "select ".ANN_ANNUAIRE.".*" ;
$queries .= ", ".ANN_TABLE_PAYS.".GC_NAME ";
$queries .= "from ".ANN_ANNUAIRE ;
$queries .= ",".ANN_TABLE_PAYS ;
// Construction en fonction des champs saisies
// juste le champs "rechercher", on regarde partout
$queries .= " where (" ;
if ($lettre == "") {
if ($recherche != "") {
$queries .= "(U_NAME like '%$recherche%'" ; // le premier
foreach($fields_annu as $key=>$value) {
if ($key == "nom") continue ;
$queries .= ($key == "pays" ?
$pays == "tous" ? ")" :
") and $value = '$pays'" : " or $value like '%$recherche%'") ; // les autres
}
} else {
 
// si un ou plusieurs autres champs ont été indiqué, on les rajoute ici
 
$or_flag = false ;
foreach($fields_annu as $key=>$valeur) {
if ($key != "") {
if ($key == "pays") {
if ($$key == "tous") $queries .= ") and U_COUNTRY like '%'";
else $queries .= ") and $valeur like \"%".$$key."%\"" ;
} else {
if ($key == "dept") {
if ($$key != "tous" && isset($HTTP_POST_VARS[$key])) {
$queries .= " and U_FRENCH_DPT=".$$key ;
if ($fields_annu["pays"] != "fr") $queries .= " and U_COUNTRY=\"fr\"" ;
}
} else {
if ($or_flag) $queries .= "$valeur like \"%".$$key."%\"" ;
else $queries .= "($valeur like \"%".$$key."%\"" ;
if ($key != "ville") $queries .= " and " ;
}
}
$or_flag = true ;
}
}
// ici le cas ou rien n'a été saisie du tout, on affiche tout
if (!$or_flag) {
$queries .= "U_NAME like '%')" ;
}
}
} else {
if ($lettre == "tous") $lettre = "" ;
$queries .="U_NAME like '$lettre%'" ;
}
$queries .= ")" ;
$queries .= " and ".ANN_ANNUAIRE.".U_COUNTRY=".ANN_TABLE_PAYS.".GC_ID" ;
if (isset($cotisant) && $cotisant != 3) if ($cotisant == 1) {
$queries .= " and ".ANN_ANNUAIRE.".U_COT=$cotisant" ;
} else {
$queries .= " and ".ANN_ANNUAIRE.".U_COT=0" ;
}
if (isset($nom) && $nom != "") $queries .= " and U_NAME like \"%$nom%\"" ;
if (isset($prenom) && $prenom != "") $queries .= " and U_SURNAME like \"%$prenom%\"" ;
if (isset($ville) && $ville != "") $queries .= " and U_CITY like \"%$ville%\"" ;
if (isset($mail) && $mail != "") $queries .= " and U_MAIL like \"%$mail%\"" ;
if (isset($statut) && $statut != "") $queries .= " and U_SHOW=$statut" ; else $queries .= " and U_SHOW=0" ;
if (isset($sort) && $sort != "") $queries .= " order by $sort" ;
return $queries;
}
function mkresu()
{
global $HTTP_HOST, $SCRIPT_URL, $SCRIPT_NAME, $bouton ;
$mon_frag = new fragmenteur_session() ;
$mon_frag->setURL($GLOBALS['ann_url']->getURL()) ;
if ($bouton) $mon_frag->fixerLeDebut(0) ;
$requete = mkquery() ;
 
// Deux requetes, une avec tous les resultats, l'autre avec les résultats affichés
$result_total = mysql_query($requete) or print ("Echec de la requete <br>$requete<br>".mysql_error()) ;
// Affichage de la requete
$ret_req = "<tr class=\"texte_tb\"><td><br><b>La requete : </b><br>$requete".
" limit ".$mon_frag->lireLeDebut().",".$mon_frag->lireLePas()."</td></tr>\n" ;
$result_final = mysql_query($requete." limit ".$mon_frag->lireLeDebut().",".$mon_frag->lireLePas()) or print (mysql_error());
$nbr_final = mysql_num_rows($result_total) ;
mysql_free_result($result_total) ;
// cxt_addVariable(AM_BD_BOTA, AM_BD_LINK, "requete_mail_tous", $requete) ;
$_SESSION['requete_mail_tous'] = $requete ;
$ret = "<div><table><tr>" ;
for ($i = 65 ; $i <91 ; $i++) {
$ret .= "\t<td><a href=\"".$GLOBALS['ann_url']->getURL()."&lettre=";
$ret .= chr($i)."\">";
$ret .= chr($i) ;
$ret .= "</a></td>\n";
}
 
$ret .= "<td>&nbsp;&nbsp;<a href=\"".$GLOBALS['ann_url']->getURL()."&lettre=tous\">".AM_L_TOUS."</a></td>\n" ;
$ret .= "<tr></table></div>\n" ;
$ret .= "<div>".$mon_frag->affNbRes($nbr_final).'</div>' ;
$ret .= "<div>".$mon_frag->fragmente($nbr_final)."</div>\n" ;
if ($nbr_final != 0) {
$ret .= "<div><table>\n";
$ret .= "<tr class=\"insTitle1\"><td nowrap><a href=\"".$GLOBALS['ann_url']->getURL()."&amp;sort=U_NAME\">Identit&eacute;</a></td>\n";
$ret .= "<td><a href=\"".$GLOBALS['ann_url']->getURL()."&amp;sort=U_MAIL\">Adresse mail</a></td>\n" ;
$ret .= "<td><a href=\"".$GLOBALS['ann_url']->getURL()."&amp;sort=U_CITY\">".AM_L_VILLE."</a></td>\n" ;
$ret .= "<td>Pays ou Dpt (fr)</td>\n" ;
$ret .= "<td><a href=\"".$GLOBALS['ann_url']->getURL()."&amp;sort=U_COT\">".AM_L_COTISANTS."</a></td></tr>\n" ;
 
$cotisant = array( "non", "oui") ;
 
$pair = true ; // pour afficher une ligne de résultat coloré, l'autre non
 
while ($row = mysql_fetch_object($result_final))
{
$ret .= "<tr class=\"texte_tb2\"";
if ($pair) {
$ret .= " bgcolor=\"\"" ;
$pair = false ;
} else {
$pair = true ;
}
$ret .= ">" ;
$ret .= "\n<td nowrap>";
$urlPop = $GLOBALS['ann_url']->getURL()."&amp;u_id=$row->U_ID";
$ret .= "<a href=\"$urlPop\">" ;
$ret .= $row->U_NAME." ".$row->U_SURNAME ;
$ret .= "</a></td>\n ";
$ret .= "<td><a href=\"mailto:$row->U_MAIL\">$row->U_MAIL</a></td>\n" ;
$ret .= "<td>$row->U_CITY</td>" ;
if ($row->U_COUNTRY != 'fr') {
$ret .= "<td>$row->GC_NAME</td>" ;
} else {
$req_dpt = "select GFD_NAME from ".ANN_TABLE_DEPARTEMENT.",".ANN_ANNUAIRE." where ".ANN_ANNUAIRE.".U_ID=$row->U_ID" ;
$req_dpt .= " and ".ANN_ANNUAIRE.".U_FRENCH_DPT=".ANN_TABLE_DEPARTEMENT.".GFD_ID" ;
$resultat_dpt = mysql_query($req_dpt) or die ("Echec de la requete sur ".ANN_TABLE_DEPARTEMENT."<br>".mysql_error()) ;
$ligne_dpt = mysql_fetch_object($resultat_dpt) ;
$ret .= "<td>$ligne_dpt->GFD_NAME</td>" ;
}
$ret .= "<td>".$cotisant[$row->U_COT]."</td></tr>\n" ;
}
 
$ret .= "</table></div>\n" ;
$ret .= "<div>".$mon_frag->fragmente($nbr_final)."</div>\n" ;
$ret .= "<div><a href=\"".$GLOBALS['ann_url']->getURL()."&amp;action=".ANN_MAIL_TOUS."\">".AM_L_MAIL_SELECTION."</a></div>\n" ;
}
// $ret .= $ret_req ;
return $ret;
}
 
/** function presa_mk_blkline () insere des lignes vides du type <tr><td>&nbsp;</td></tr>
*
*
* @param integer nombre de ligne à insérer
* @return string HTML
*/
 
function presa_mk_blkline ($nombre) {
$res = "" ;
for ($i = 0; $i < $nombre; $i++) {
$res .= "<tr><td>&nbsp;</td></tr>\n" ;
}
return $res ;
}
 
?>
/trunk/client/ins_annuaire/bibliotheque/voir_recu_pdf.php
New file
0,0 → 1,39
<?php
// +----------------------------------------------------------------------------+
// |recu_pdf.php |
// +----------------------------------------------------------------------------+
// | Copyright (c) 2003 Tela Botanica |
// +----------------------------------------------------------------------------+
// | Ce fichier génère un fichier PDF |
// | contenant le recu pour une cotisation à Tela Botanica |
// | Il utilise la librairie FPDF |
// | http://www.fpdf.org/ |
// | |
// | Recoie $cotisation_id en parametre |
// +----------------------------------------------------------------------------+
// | Auteur : Alexandre Granier <alexandre@tela-botanica.org> |
// +----------------------------------------------------------------------------+
//
// $Id: voir_recu_pdf.php,v 1.1 2005-04-06 13:33:32 florian Exp $
 
 
// Inclusion des fichiers nécessaire à une connection
include_once ("../../papyrus/configuration/pap_config.inc.php") ;
include_once 'DB.php' ;
 
$db = DB::connect (PAP_DSN) ;
 
include_once "../../api/fpdf/fpdf.php";
 
$envoie = 1 ;
 
include_once "recu_pdf_corps.php" ;
 
 
// buffer est une propriété de la classe FPDF qui contient les données au format PDF.
// habituellement on ne l'utilise pas, on appelle $pdf->Output() qui envoie les
// entete HTTP du document généré
 
$pdf->Output() ;
 
?>
/trunk/client/ins_annuaire/bibliotheque/edition_fiche.php
New file
0,0 → 1,504
<?php
 
// +--------------------------------------------------------------------------------+
// | admin_annu.php |
// +--------------------------------------------------------------------------------+
// | Copyright (c) 2002 |
// +--------------------------------------------------------------------------------+
// | Administration des inscrits à un annuaire de type annuaire_tela |
// | de Gsite, |
// | Sont également mises en jeux les tables gen_COUNTRY, gen_FRENCH_DPT, |
// | LABELS |
// | Plus spécifique la fonction cotisation($id) en bas permet de |
// | gérer les cotisations versées par les inscrits, avec la table |
// | annuaire_COTISATION |
// +--------------------------------------------------------------------------------+
// | Auteur : Alexandre Granier <alexandre@tela-botanica.org> |
// +--------------------------------------------------------------------------------+
//
// $Id: edition_fiche.php,v 1.1 2005-04-06 13:33:32 florian Exp $
 
 
global $HTTP_HOST ;
 
define ("URL_RECU", $GLOBALS['ann_url']->protocol. '://'.$GLOBALS['ann_url']->host."/client/annuaire/voir_recu_pdf.php") ;
 
include_once ("HTML/Table.php") ;
include_once 'api/formulaire/FORM_formulaire.class.php' ;
 
// admin_annu est une application cliente de gsite elle commence donc
// dans une fonction putFrame()
 
 
function putFrame()
{
global $u_id, $cotisation_id ;
global $action ;
global $link ;
 
if (empty($action)) $action = false ;
 
$url = $GLOBALS['ann_url']->getURL() ;
 
// mise à jour si il y lieu
 
if ($action == "up") {
upSQL() ;
}
 
// Requete de pour récupérer toutes les infos d'un usager
 
$query = "select annuaire_tela.*,annuaire_LABEL_ACT.*,annuaire_LABEL_ASS.*,gen_COUNTRY.GC_NAME" ;
$query .= ", annuaire_LABEL_NIV.*, annuaire_LABEL_STATUT.*" ;
$query .= " from annuaire_tela,gen_COUNTRY,gen_FRENCH_DPT," ;
$query .= " annuaire_LABEL_ACT,annuaire_LABEL_ASS, annuaire_LABEL_NIV, annuaire_LABEL_STATUT" ;
$query .= " where U_ID=$u_id" ;
//$query .= " and annuaire_tela.U_FRENCH_DPT=gen_FRENCH_DPT.GFD_ID" ;
$query .= " and annuaire_tela.U_COUNTRY=gen_COUNTRY.GC_ID" ;
$query .= " and annuaire_tela.U_ACT=annuaire_LABEL_ACT.ID_LABEL_ACT" ;
$query .= " and annuaire_tela.U_ASS=annuaire_LABEL_ASS.ID_LABEL_ASS" ;
$query .= " and annuaire_tela.U_NIV=annuaire_LABEL_NIV.ID_LABEL_NIV" ;
$query .= " and annuaire_tela.U_SHOW=annuaire_LABEL_STATUT.ID_LABEL_STATUT" ;
 
$result = mysql_query($query) or die("Echec de la requete sur ".ANN_ANNUAIRE.":<br>".mysql_error().'<br>'.$query) ;
 
$row = mysql_fetch_object($result) ;
 
$res = "<h1>Edition d'un adh&eacute;rent : $row->U_NAME $row->U_SURNAME</h1>\n" ;
$res .= "<div>".form("Nom : ", "U_NAME", $row->U_NAME)."</div>\n" ;
$res .= "<div>".form("Pr&eacute;nom : ", "U_SURNAME", $row->U_SURNAME)."</div>\n" ;
$res .= "<div>".form("Adresse mail : ", "U_MAIL", $row->U_MAIL)."</div>\n" ;
$res .= "<div>".form("Date d'inscription : ", "U_DATE", $row->U_DATE)."</div>\n" ;
$res .= "<div>".form("Adresse 1 : ", "U_ADDR1", $row->U_ADDR1)."</div>\n" ;
$res .= "<div>".form("Adresse 2 : ", "U_ADDR2", $row->U_ADDR2)."</div>\n" ;
$res .= "<div>".form("Région : ", "U_STATE", $row->U_STATE)."</div>\n" ;
$res .= "<div>".form("Code postal : ", "U_ZIP_CODE", $row->U_ZIP_CODE)."</div>\n" ;
$res .= "<div>".form("Ville : ", "U_CITY", $row->U_CITY)."</div>\n" ;
$res .= "<div>".form("Pays : ", "U_COUNTRY", $row->U_COUNTRY)."</div>\n" ;
$res .= "<div>".form("Site web personnel : ", "U_WEB", $row->U_WEB)."</div>\n" ;
$res .= "<div>".form("Organisme : ", "U_TITLE", $row->U_TITLE)."</div>\n" ;
$res .= "<div>".form("Fonction : ", "U_FONCTION", $row->U_FONCTION)."</div>\n" ;
$res .= "<div>".form("Niveau en botanique : ", "LABEL_NIV", $row->LABEL_NIV)."</div>\n" ;
$res .= "<div>".form("Activit&eacute; : ", "LABEL_ACT", $row->LABEL_ACT)."</div>\n" ;
$res .= "<div>".form("Secteur associatif : ", "LABEL_ASS", $row->LABEL_ASS)."</div>\n" ;
$res .= "<div>".form("Sp&eacute;cialit&eacute; : ", "U_SPE", $row->U_SPE)."</div>\n" ;
$res .= "<div>".form("Sp&eacute;cialit&eacute; g&eacute;ographique : ", "U_GEO", $row->U_GEO)."</div>\n" ;
$res .= "<div>".form("Statut : ", "LABEL_STATUT", $row->LABEL_STATUT)."</div>\n" ;
if (isset($cotisation_id) && $cotisation_id != "") {
$db = & $GLOBALS['ann_db'];
include_once ANN_CHEMIN_APPLI."recu_pdf_corps.php" ;
// buffer est une propriété de la classe FPDF qui contient les données au format PDF.
// habituellement on ne l'utilise pas, on appelle $pdf->Output() qui envoie les
// entete HTTP du document généré
 
$pdf->Close() ;
$buf = $pdf->buffer;
 
// Inclusion des bibliothèques PEAR
 
include_once ('Mail.php');
include_once ('Mail/mime.php');
 
$file = 'Recu_Fiscal_Tela_Botanica.pdf';
$crlf = "\r\n";
$hdrs = array(
'From' => 'accueil@tela-botanica.org',
'Subject' => 'Reçu pour don à Tela Botanica'
);
 
$mime = new Mail_mime($crlf);
$text = "Bonjour !\n\n".
"Le Réseau Tela Botanica vous remercie du soutien financier que vous lui avez apporté. Votre contribution permettra au réseau :\n\n".
"- de continuer à encourager et accompagner des projets botaniques,\n".
"- de maintenir et d'améliorer nos services Internet dédiés à la botanique.\n\n".
"Vous trouverez en pièce jointe à ce message un document PDF contenant le reçu fiscal à imprimer".
" et à joindre à votre déclaration d'impôts. Si vous n'arrivez pas à imprimer ce document, veuillez".
" nous le signaler en répondant à ce mail et en indiquant votre nom et votre adresse postale. Nous vous".
" ferons parvenir le reçu imprimé à cette adresse.\n\n".
"Rappel : Votre contribution financière ne constitue pas une adhésion à l'Association Tela Botanica mais ".
"bien un soutien aux actions menées par le Réseau Tela Botanica.\n\n".
"Si ce n'est déjà fait, n'oubliez pas de vous inscrire au Réseau sur le site Internet, à l'adresse : ".
"http://www.tela-botanica.org (menu « Inscription», onglet « Inscription»), afin que vous puissiez :\n\n".
"- consulter l'annuaire des personnes inscrites au Réseau ;\n- localiser les membres du Réseau dans tous".
" les pays;\n- accédez à certaines données diffusées sur le site ;\n- vous inscrire à des projets ".
"botaniques ;\n- être informé personnellement des actualités du Réseau.\n\n".
"Bien cordialement,\n\n".
"Tela Botanica\nLe Réseau des Botanistes Francophones\n163, rue A. Broussonnet\n34090 Montpellier\n".
"Tél. : 04-67-52-41-22\naccueil@tela-botanica.org\nhttp://www.tela-botanica.org\n" ;
$mime->setTXTBody($text);
 
// On attache le document PDF grace à $buf, et en indiquant son type MIME
$mime->addAttachment($buf, 'application/pdf', $file, false) ;
 
$body = $mime->get();
$hdrs = $mime->headers($hdrs);
 
$mail =& Mail::factory('mail');
$mail->send($ligne->U_MAIL, $hdrs, $body);
 
// On insere le numéro du reçu dans la table annuaire_COTISATION
@mysql_query("update annuaire_COTISATION set IC_RECU=$num_recu, IC_DATE_ENVOIE_RECU=NOW() where IC_ID=$cotisation_id") ;
 
// On incrémente le compteur de mail de 1
if (!$deja_envoye) {
$num_recu++ ;
mysql_query("update COMPTEUR_COTISATION set COMPTEUR=$num_recu ") ;
}
$res .= "<div>Le reçu a été envoyé</div>\n" ;
}
$res .= cotisation($u_id) ;
$res .= suppression($u_id) ;
return $res ;
}
 
 
// form construit soit un formulaire de type <input type="text" ...> et
// de nom $field_ et place un $label devant
// soit construit un lien vers un formulaire à partir du champs $field_
 
 
function form($label, $field_, $value)
{
global $u_id, $GS_GLOBAL, $field ;
 
$url = $GLOBALS['ann_url']->getURL() ;
 
if ($field != $field_) {
$res = "<b>$label</b>" ;
$res .= "<a href=\"$url&amp;field=$field_\">" ;
if ($field_ == 'LABEL_NIV' || $field_ == 'LABEL_ACT' || $field_== 'LABEL_ASS') {
$res .= $value ? $value : "(vide)";
} else if ($field_ == "U_COT") {
if ($value == 0) {
$res .= "non" ;
} else {
$res .= "oui" ;
}
} else {
$res .= $value ? $value : "(vide)";
}
$res .= "</a>\n" ;
}
if ($field == $field_) {
$res = "\n<form action=\"$url&amp;u_id=$u_id&amp;action=up&amp;field_=$field_\" method=\"post\">" ;
$res .= "<b>$label</b>\n" ;
switch ($field_) {
case "U_COUNTRY" :
$select_country = new form($GS_GLOBAL['link']) ;
$res .= ereg_replace("gen_COUNTRY", "U_COUNTRY", $select_country->selectFromTable("gen_COUNTRY", $value, "GC_ID", "GC_NAME")) ;
unset($select_country) ;
break ;
 
case "LABEL_NIV" :
$res .= getFormInsInfo($field_, $value) ;
break ;
 
case "LABEL_ASS" :
$res .= getFormInsInfo($field_, $value) ;
break ;
 
case "LABEL_ACT" :
$res .= getFormInsInfo($field_, $value) ;
break ;
 
case "LABEL_STATUT" :
$res .= getFormInsInfo($field_, $value) ;
break ;
 
case "U_COT" :
$res .= "<select class=\"insInputForm\" name=\"II_COT\">\n" ;
if ($value == 0) {
$check0 = " selected" ;
$check1 = "" ;
} else {
$check1 = " selected" ;
$check0 = "" ;
}
$res .= "<option value=\"0\"$check0>non</option>\n" ;
$res .= "<option value=\"1\"$check1>oui</option>\n" ;
$res .= "</select>\n" ;
break ;
 
default :
$res .= "<input type=\"text\" size=\"40\" name=\"$field_\" value=\"$value\">\n" ;
}
$res .= "<input type=\"submit\" value=\"valider\" class=\"texte_tb\">\n" ;
$res .= "</form>" ;
}
return $res ;
}
 
 
// upSQL met à jour la table annuaire_tela
 
function upSQL()
{
global $field_ ;
global $u_id ;
global $HTTP_POST_VARS ;
switch ($field_) {
case "LABEL_STATUT" : $field_ = "U_SHOW" ;
$id_field = "ID_LABEL_STATUT";
break ;
case "LABEL_NIV" : $field_ = "U_NIV" ;
$id_field = "ID_LABEL_NIV";
break ;
case "LABEL_ACT" : $field_ = "U_ACT" ;
$id_field = "ID_LABEL_ACT";
break ;
case "LABEL_ASS" : $field_ = "U_ACT" ;
$id_field = "ID_LABEL_ASS";
break ;
default :$id_field = $field_ ;
}
 
// Recherche de l'ancien mail
$req_am = "select U_MAIL from annuaire_tela where U_ID = $u_id" ;
$res_am = mysql_query ($req_am) or die ("Echec ".mysql_error()) ;
$ligne_am = mysql_fetch_object ($res_am) ;
$ancien_mail = $ligne_am->U_MAIL ;
 
$query = "update annuaire_tela set $field_=\"".$HTTP_POST_VARS[$id_field]."\" where U_ID = $u_id" ;
mysql_query($query) or die ("<br>Echec de la requete de mise à jour<br>\n") ;
 
// Traitement du département
if ($field_ == "U_ZIP_CODE") {
if (preg_match("/^97|98[0-9]*/", $HTTP_POST_VARS['U_ZIP_CODE'])) {
$n_dpt = substr($HTTP_POST_VARS['U_ZIP_CODE'], 0, 3) ;
} else {
$n_dpt = substr($HTTP_POST_VARS['U_ZIP_CODE'], 0, 2) ;
}
mysql_query ("update annuaire_tela set U_FRENCH_DPT='$n_dpt' where U_ID='$u_id'") ;
}
 
// Traitement de l'adresse mail
 
 
if ($field_ == "U_MAIL") {
$requete = "update ins_STATS set IS_MAIL=\"".$HTTP_POST_VARS['U_MAIL']."\" where IS_MAIL=\"$ancien_mail\"" ;
mysql_query ($requete) ;
}
}
 
function getFormInsInfo($field, $value)
{
 
$query = "select * from annuaire_$field" ;
$id_field = "ID_$field" ;
$result = mysql_query($query) or die ("Echec de la requete sur ID_$field<br>".mysql_error()) ;
 
$res = "<select name=\"$id_field\" class=\"insInputForm\">\n" ;
$i = 0 ;
while ($row = mysql_fetch_object($result)) {
 
$res .= "<option value=\"".$row->$id_field."\"" ;
if ($value == $row->$field) $res .= " selected";
$res .= ">" ;
$res .= $row->$field ;
$res .= "</option>\n" ;
$i++ ;
}
$res .= "</select>\n" ;
return $res ;
}
 
// Fonction pour gérer les cotisations d'un inscrit, en
// fonction de son id ($u_id)
 
function cotisation($u_id)
{
global $GS_GLOBAL, $action, $IC_MONTANT, $IC_DATE, $id_cot, $IC_MC_ID ;
 
$res = '' ;
// un peu de javascript pour la confirmation en cas de destruction
 
$outputText = "function confirmLink(theLink, theSqlQuery)
{
var is_confirmed = confirm(theSqlQuery);
return is_confirmed;
} " ;
 
// fonction gsite pour inclure la fonction Javascript
// au code html
 
GEN_stockerCodeScript($outputText) ;
 
$url = $GLOBALS['ann_url']->getURL() ;
 
// Ce qui suit sont le traitement des 3 actions ajouter, modifier, supprimer
// qui agissent sur la table annuaire_COTISATION
 
// l'action 'cu' consiste en l'insertion d'une ligne dans la table annuaire_COTISATION
 
if ($action == "cu") {
$date = preg_replace("/([0-9]+)-([0-9]+)-([0-9]+)/", "\\3\\2\\1", $IC_DATE) ;
$query = "insert into annuaire_COTISATION values (\"\", $IC_MC_ID, $u_id, UNIX_TIMESTAMP($date),\"$IC_MONTANT\", 0, \"0000-00-00\")" ;
mysql_query ($query) or die ("Echec de la requete d'insertion dans annuaire_COTISATION<br>$query<br>".mysql_error()) ;
mysql_query("update annuaire_tela set U_COT=1 where U_ID=$u_id") ;
}
 
// l'action 'mu' permet de mettre à jour une ligne dans annuaire_COTISATION
 
if ($action == "mu") {
$date = preg_replace("/([0-9]+)-([0-9]+)-([0-9]+)/", "\\3\\2\\1", $IC_DATE) ;
$query = "update annuaire_COTISATION set IC_DATE=UNIX_TIMESTAMP($date), IC_MONTANT=\"$IC_MONTANT\",
IC_MC_ID=$IC_MC_ID where IC_ID=$id_cot" ;
mysql_query ($query) or die ("Echec de la requete d'insertion dans annuaire_COTISATION<br>$query<br>".mysql_error()) ;
}
 
// l'action 'rm' retire une ligne de la table annuaire_COTISATION
 
if ($action == "rm") {
$query = "delete from annuaire_COTISATION where IC_ID=$id_cot" ;
mysql_query ($query) or die ("Echec de la requete de suppression dans annuaire_COTISATION") ;
mysql_query("update annuaire_tela set U_COT=0 where U_ID=$u_id") ;
}
 
// Quoi qu'il arrive, on récupère les informations concernant
// les cotisations d'un inscrit et on les affiche sous forme de
// table HTML
 
$query = "select * from annuaire_COTISATION, MODE_COTISATION where IC_ANNU_ID=$u_id
and IC_MC_ID=MC_ID" ;
$result = mysql_query($query) or die ("Echec de la requete sur annuaire_COTISATION<br>".$query) ;
$res = "<h1>Etat des cotisations : </h1>" ;
 
// formatage de la date
$date = date("d-m-Y") ;
 
 
// l'action 'sc' correspond à l'édition d'une ligne de la table
// annuaire_COTISATION. Si elle est présente on affiche un formulaire
// de modification
 
if ($action == "sc") {
 
$res .= "<div><form action=\"$url&action=cu\" method=\"post\"><b>Date : </b>" ;
$res .= "<input type=\"text\" size=\"9\" class=\"insInputForm\" name=\"IC_DATE\" value=\"";
$res .= $date ;
$res .= "\">\n" ;
$res .= "<b>Montant : </b><input type=\"text\" class=\"insInputForm\" size=\"5\" name=\"IC_MONTANT\" value=\"30\"> &euro;\n" ;
$res .= mode_paiement(0) ;
$res .= "<input type=\"submit\" value=\"Valider\" class=\"texte_tb\">\n" ;
$res .= "<input type=\"button\" value=\"Annuler\" class=\"texte_tb\" onclick=\"javascript:window.location.href='$url';\"></form>\n" ;
$res .= "</div>\n" ;
 
// si l'action 'sc' n'est pas active on affiche toutes les lignes
// de cotisation de l'inscrit
 
} else {
if (mysql_num_rows($result) != 0) {
$res .= "<div>" ;
$table = new HTML_Table(array("width" => "100%", "class" => "texte_tb2")) ;
$table->addRow(array("Date", "Montant", "Mode", "modifier", "supprimer", "Voir le reçu", "Envoyer le reçu",
"Date d'envoie du reçu"),
array("class" => "insTitle1")) ;
 
while ($row = mysql_fetch_object($result)) {
// Le reçu a t il été envoyé ?
if ($row->IC_RECU != 0) {
$message_envoye = $row->IC_DATE_ENVOIE_RECU ; ;
} else {
$message_envoye = "Reçu non envoyé";
}
if ($action != "mc" || $id_cot != $row->IC_ID) {
$table->addRow(array (date ("j m Y", $row->IC_DATE), $row->IC_MONTANT." <b>&euro;</b>", $row->MC_LABEL,
"<a href=\"$url&amp;action=mc&amp;id_cot=$row->IC_ID\">modifier</a>",
"<a href=\"$url&amp;action=rm&amp;id_cot=$row->IC_ID\"".
" onclick=\"javascript:return confirmLink(this, '&ecirc;tes-vous".
" s&ucirc;r de vouloir supprimer cette entr&eacute;e');\">supprimer</a>",
"<a href=\"".URL_RECU."?cotisation_id=$row->IC_ID\">Voir le reçu</a>",
"<a href=\"$url&cotisation_id=$row->IC_ID\">Envoyer le reçu</a>",
$message_envoye)) ;
} else {
// Recherche du mode de paiement
 
$table->addRow(array("<form action=\"$url&amp;action=mu&amp;id_cot=$row->IC_ID\" method=\"post\">\n".
"<input type=\"text\" size=\"9\" class=\"insInputForm\" name=\"IC_DATE\" value=\"".date ("j-m-Y", $row->IC_DATE)."\">",
"<input type=\"text\" size=\"5\" class=\"insInputForm\" name=\"IC_MONTANT\" value=\"$row->IC_MONTANT\"><b>&euro;</b>",
mode_paiement($row->IC_MC_ID),
"<input type=\"submit\" class=\"texte_tb\" value=\"valider\">".
"<input type=\"button\" value=\"Annuler\" class=\"texte_tb\" onclick=\"javascript:window.location.href='$url';\"></form>",
"&nbsp;")) ;
}
}
$table->altRowAttributes(1, array("class" => "texte_tb2"), array("class" => "text2")) ;
$res .= $table->toHTML()."</div>\n" ;
unset($table) ;
} else {
$res .= "<div>non cotisant</div>\n" ;
}
$res .= "<div><input type=\"button\" class=\"texte_tb\" " ;
$res .= "value=\"Saisir une cotisation\" onclick=\"javascript:window.location.href='$url&action=sc';\"></div>\n" ;
}
 
return $res ;
}
 
function suppression($u_id) {
global $GS_GLOBAL, $action ;
 
// un peu de javascript pour la confirmation en cas de destruction
 
$outputText = "function confirmLink(theLink, theSqlQuery)
{
var is_confirmed = confirm(theSqlQuery);
return is_confirmed;
} " ;
 
// fonction gsite pour inclure la fonction Javascript
// au code html
 
GEN_stockerCodeScript($outputText) ;
 
$url = $GLOBALS['ann_url']->getURL() ;
 
$res = "<div>Supprimer l'inscription</div>\n" ;
$res .="<div><form action=\"$url&action=suppr_adh\" method=\"post\">\n" ;
$res .= "<input type=\"submit\" class=\"texte_tb\" value=\"Supprimer\" " ;
$res .= "onclick=\"javascript:return confirmLink(this, '&ecirc;tes-vous s&ucirc;r de vouloir supprimer cet adh&eacute;rent');\">\n" ;
$res .= "</form></div>\n" ;
 
if ($action=="suppr_adh") {
$queryLogin = "select U_MAIL from annuaire_tela where U_ID=$u_id" ;
$resultLogin = mysql_query($queryLogin) or die ("Echec de la requete sur annu_USERS");
$rowLogin = mysql_fetch_object($resultLogin) ;
$mail = $rowLogin->U_MAIL ;
mysql_free_result($resultLogin) ;
 
// vérifications
// 1. annu_ADMIN
$q_annu_ADMIN = "select AA_ID from annu_ADMIN where AA_ID=$u_id" ;
$r_annu_ADMIN = mysql_query($q_annu_ADMIN) or die ("Echec ..." );
if (mysql_num_rows($r_annu_ADMIN) != 0) {
$res .= "Une référence dans annu_ADMIN" ;
}
 
// 2.
// suppression
 
$query = "delete from annuaire_tela where U_ID=$u_id" ;
}
return $res ;
}
 
/** function mode_paiement () Produit un champs select avec le mode de paiement
*
*
* @param integer mode de paiement par defaut
* @return string HTML
*/
function mode_paiement ($defaut) {
$res = "<select name=\"IC_MC_ID\" class=\"insInputForm\">\n" ;
$req_mode = "select * from MODE_COTISATION" ;
$res_mode = mysql_query($req_mode) or die ($req_mode."<br>".mysql_error()) ;
while ($ligne_mode = mysql_fetch_object($res_mode)) {
$res .= "<option value=\"$ligne_mode->MC_ID\"" ;
if ($ligne_mode ->MC_ID == $defaut) $res .= " selected" ;
$res .= ">$ligne_mode->MC_LABEL</option>\n" ;
}
$res .= "</select>\n" ;
return $res ;
}
 
?>
/trunk/client/ins_annuaire/bibliotheque/inscription.fonct.php
New file
0,0 → 1,553
<?php
/*vim: set expandtab tabstop=4 shiftwidth=4: */
// +------------------------------------------------------------------------------------------------------+
// | PHP version 4.1 |
// +------------------------------------------------------------------------------------------------------+
// | Copyright (C) 2004 Tela Botanica (accueil@tela-botanica.org) |
// +------------------------------------------------------------------------------------------------------+
// | This library is free software; you can redistribute it and/or |
// | modify it under the terms of the GNU Lesser General Public |
// | License as published by the Free Software Foundation; either |
// | version 2.1 of the License, or (at your option) any later version. |
// | |
// | This library is distributed in the hope that it will be useful, |
// | but WITHOUT ANY WARRANTY; without even the implied warranty of |
// | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU |
// | Lesser General Public License for more details. |
// | |
// | You should have received a copy of the GNU Lesser General Public |
// | 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.1 2005-04-06 13:33:32 florian Exp $
// CVS : $Id: inscription.fonct.php,v 1.1 2005-04-06 13:33:32 florian Exp $
/**
* Fonctions du module inscription
*
* Fonctions du module inscription
*
*@package inscription
//Auteur original :
*@author Alexandre Granier <alexandre@tela-botanica.org>
//Autres auteurs :
*@author Aucun
*@copyright Tela-Botanica 2000-2004
*@version $Revision: 1.1 $ $Date: 2005-04-06 13:33:32 $
*@version $Revision: 1.1 $ $Date: 2005-04-06 13:33:32 $
// +------------------------------------------------------------------------------------------------------+
*/
 
// +------------------------------------------------------------------------------------------------------+
// | ENTETE du PROGRAMME |
// +------------------------------------------------------------------------------------------------------+
 
include_once 'inscription.fonct.wiki.php' ;
if (INS_UTILISE_SPIP) include_once 'inscription.fonct.spip.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
*/
// A COMPLETER , NE MARCHE PAS
function demande_inscription($valeurs) {
// On stocke les informations dans un variable de session
$_SESSION['donnees_inscription'] = $valeurs ;
// On envoie un email de confirmation pour l'utilisateur
$GLOBALS['ins_url']->addQueryString('id', session_id()) ;
mail($GLOBALS['email'], INS_ENTETE_INSCRIPTION, INS_MESSAGE_VALIDER_INSCRIPTION.$GLOBALS['ins_url']->getURL()) ;
}
 
/**
*
* @param array les valeurs renvoyés par le formulaire
* @return
*/
 
function inscription_validee($valeurs) {
insertion($valeurs) ;
$GLOBALS['AUTH']->username = $valeurs['email'] ;
$GLOBALS['AUTH']->password = $valeurs['mot_de_passe'] ;
// On loggue l'utilisateur
$GLOBALS['AUTH']->login() ;
// inscription à la lettre d'information
if (isset ($valeurs['lettre'])) {
inscription_lettre(INS_MAIL_INSCRIPTION_LISTE) ;
}
}
 
/**
* Réalise l'insertion dans la base de donnée
*
* @param array un tableau de valeur avec en clé les noms des champs du formulaire
* @return void
*/
 
function AUTH_formulaire_login($msg = '') {
//--------------------------------------------------------------------------
// Le formulaire
//--------------------------------------------------------------------------
$res = '';
if ($msg!='') {$res .= $msg.'<br /><br />';}
$res .= '<br /><div>'.INS_DEJA_INSCRIT.'</div><br />'."\n" ;
$GLOBALS['ins_url']->removeQueryString('action') ;
$form = new HTML_QuickForm('inscription', 'post', str_replace ('&amp;', '&', $GLOBALS['ins_url']->getURL())) ;
$form->addElement('text', 'username', INS_EMAIL) ;
$form->addElement('password', 'password', INS_MOT_DE_PASSE) ;
$form->addElement('submit', 'valider', INS_VALIDER);
$res .= $form->toHTML()."\n" ;
$res .= '<div>'.INS_TEXTE_PERDU.'</div><br /><br />'."\n" ;
$GLOBALS['ins_url']->addQueryString('action', 'inscription') ;
$form = new HTML_QuickForm('inscription', 'post', preg_replace ('/&amp;/', '&', str_replace ('&amp;', '&', $GLOBALS['ins_url']->getURL()))) ;
$form->addElement('submit', 'Inscription', INS_INSCRIPTION_PERSONNE) ;
if (INS_FORMULAIRE_STRUCTURE) $form->addElement('submit', 'form_structure', INS_INSCRIPTION_STRUCTURE) ;
$res .= "<div>".INS_LAIUS_INSCRIPTION_2."</div>\n" ;
$res .= $form->toHTML() ;
return $res;
}
 
/** message_erreur () - Renvoie le code HTML d'un message d'erreur
*
* @return string HTML
*/
 
function message_erreur() {
$res = '';
$url = preg_replace ('/&amp;/', '&', $GLOBALS['ins_url']->getURL()) ;
$res .= "<div class=\"inscription_erreur\">".INS_ERREUR_LOGIN."</div>\n" ;
$res .= "<div>".INS_SI_PASSE_PERDU."</div>\n" ;
$res .= '<div>' ;
$res .= '<form action="'.$url.'&action=sendpasswd" method="post">'."\n" ;
$res .= INS_EMAIL.'&nbsp;' ;
$res .= '<input type="text" value="'.$_POST['username'].'" name="mail" size="32" /></li></ul>'."\n" ;
$res .= "<input type=\"submit\" value=\"".INS_ENVOIE_PASSE."\" />" ;
$res .= "</form></div>\n" ;
 
// On remet le formulaire d'inscription mais un peu réduit
$res .= '<br /><h3 class="titre2_inscription">'.INS_DEJA_INSCRIT.'</h3>' ;
$form = new HTML_QuickForm ('inscription', 'post', $url) ;
$form->addElement ('text', 'username', INS_EMAIL) ;
$form->addElement ('password', 'password', INS_MOT_DE_PASSE) ;
$form->addElement('submit', 'valider', INS_VALIDER);
$res .= $form->toHTML() ;
$res .= '<h3 class="titre2_inscription">'.INS_PAS_INSCRIT.'</h3>' ;
$GLOBALS['ins_url']->addQueryString('action', 'inscription') ;
$form = new HTML_QuickForm('inscription', 'post', preg_replace ('/&amp;/', '&', str_replace ('&amp;', '&', $GLOBALS['ins_url']->getURL()))) ;
$form->addElement('submit', 'Inscription', INS_INSCRIPTION) ;
if (INS_FORMULAIRE_STRUCTURE) $form->addElement('submit', 'form_structure', INS_INSCRIPTION_STRUCTURE) ;
$res .= "<div>".INS_LAIUS_INSCRIPTION_2."</div>\n" ;
$res .= $form->toHTML() ;
return $res;
}
 
function insertion($valeur) {
// =========== Insertion dans l'annuaire gen_annuaire ===================
 
$id_administrateur = nextId(INS_ANNUAIRE, INS_CHAMPS_ID, $GLOBALS['ins_db']) ;
$requete = 'insert into '.INS_ANNUAIRE.' set '.
INS_CHAMPS_ID.'="'.$id_administrateur.'",'.
requete_annuaire($valeur) ;
 
$resultat = $GLOBALS['ins_db']->query ($requete) ;
if (DB::isError($resultat)) {
die ($resultat->getMessage().$resultat->getDebugInfo()) ;
}
 
// ================ Insertion dans SPIP =========================================
if (INS_UTILISE_SPIP) {
inscription_spip($id_administrateur, $valeur) ;
}
//inscription_interwikini_users() ;
}
 
/**
* Réalise une mise à jour dans la base de donnée
*
* @param array un tableau de valeur avec en clé les noms des champs du formulaire
* @return void
*/
function mise_a_jour($valeur) {
// ====================Mise à jour dans l'annuaire gen_annuaire ====================
$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)) {
die ($resultat->getMessage().$resultat->getDebugInfo()) ;
}
unset ($resultat) ;
 
// ========================= Mise à jour dans SPIP ================================
if (INS_UTILISE_SPIP) {
mod_inscription_spip($GLOBALS['AUTH']->getAuthData(INS_CHAMPS_ID), $valeur) ;
}
}
 
/** requete_annuaire() - Renvoie une chaine contenant les champs de l'annuaire avec leur valeur suite à le fonction process de QuickForm
*
* @return string une requete du type champs="valeur",...
*/
 
function requete_annuaire($valeur) {
$req = INS_CHAMPS_NOM.'="'.$valeur['nom'].'",'.
INS_CHAMPS_PRENOM.'="'.$valeur['prenom'].'",'.
INS_CHAMPS_MAIL.'="'.$valeur['email'].'",' ;
if (INS_UTILISE_WIKINI) $req .= INS_CHAMPS_NOM_WIKINI.'="'.$valeur['nomwiki'].'",' ;
$req .= INS_CHAMPS_PASSE.'="'.md5 ($valeur['mot_de_passe']).'",'.
INS_CHAMPS_PAYS.'="'.$valeur['pays'].'",'.
INS_CHAMPS_ADRESSE_1.'="'.$valeur['adresse_1'].'",'.
INS_CHAMPS_ADRESSE_2.'="'.$valeur['adresse_2'].'",'.
INS_CHAMPS_DATE_INSCRIPTION.'=NOW(),'.
INS_CHAMPS_CODE_POSTAL.'="'.$valeur['cp'].'" ' ;
if (INS_FORMULAIRE_STRUCTURE) {
$req .= ",".INS_CHAMPS_EST_STRUCTURE.'="'.$valeur['est_structure'].'"' ;
$req .= ",".INS_CHAMPS_SIGLE_STRUCTURE.'="'.$valeur['sigle_structure'].'"' ;
}
// traitement du numéro de département pour la france
if (isset($valeur[INS_CHAMPS_PAYS])) {
if ($valeur[INS_CHAMPS_PAYS] == 'FR') {
if (preg_match("/^97|98[0-9]*/", $valeur['cp'])) {
$n_dpt = substr($valeur['cp'], 0, 3) ;
} else {
$n_dpt = substr($valeur['cp'], 0, 2) ;
}
$req .= ",".INS_CHAMPS_DEPARTEMENT."='$n_dpt'";
}}
// Le téléphone et le fax
if (INS_CHAMPS_TELEPHONE) {
$req .= ",".INS_CHAMPS_TELEPHONE.'="'.$valeur['telephone'].'"' ;
}
if (INS_CHAMPS_FAX) {
$req .= ",".INS_CHAMPS_FAX.'="'.$valeur['fax'].'"' ;
}
if (INS_CHAMPS_STRUCTURE) {
$req .= ",".INS_CHAMPS_STRUCTURE.'="'.$valeur['structure'].'"' ;
}
return $req ;
}
 
 
 
/** formulaire_defaults() - Renvoie un tableau avec les valeurs par défaut du formulaire d'inscription
*
* @return array Valeurs par défaut du formulaire d'inscription
*/
function formulaire_defaults() {
$requete = 'select '.INS_ANNUAIRE.'.* '.
'from '.INS_ANNUAIRE.' '.
'where '.INS_ANNUAIRE.'.'.INS_CHAMPS_ID.'= "'.$GLOBALS['AUTH']->getAuthData (INS_CHAMPS_ID).'"' ;
$resultat = $GLOBALS['ins_db']->query ($requete) ;
if (DB::isError($resultat)) {
die ($resultat->getMessage().'<br />'.$resultat->getDebugInfo()) ;
}
$ligne = $resultat->fetchRow(DB_FETCHMODE_ASSOC) ;
$valeurs_par_defaut = array() ;
$valeurs_par_defaut['email'] = $ligne[INS_CHAMPS_MAIL];
$valeurs_par_defaut['nom'] = $ligne[INS_CHAMPS_NOM];
$valeurs_par_defaut['prenom'] = $ligne[INS_CHAMPS_PRENOM] ;
$valeurs_par_defaut['pays'] = $ligne[INS_CHAMPS_PAYS] ;
if (INS_UTILISE_WIKINI) {$valeurs_par_defaut['nomwiki'] = $ligne[INS_CHAMPS_NOM_WIKINI] ;}
$valeurs_par_defaut['cp'] = $ligne[INS_CHAMPS_CODE_POSTAL] ;
$valeurs_par_defaut['ville'] = $ligne[INS_CHAMPS_VILLE] ;
$valeurs_par_defaut['adresse_1'] = $ligne[INS_CHAMPS_ADRESSE_1] ;
$valeurs_par_defaut['adresse_2'] = $ligne[INS_CHAMPS_ADRESSE_2] ;
$valeurs_par_defaut['telephone'] = $ligne[INS_CHAMPS_TELEPHONE] ;
$valeurs_par_defaut['fax'] = $ligne[INS_CHAMPS_FAX] ;
$valeurs_par_defaut['structure'] = $ligne[INS_CHAMPS_STRUCTURE] ;
$valeurs_par_defaut['lettre'] = $ligne[INS_CHAMPS_LETTRE] ;
return $valeurs_par_defaut ;
}
 
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." ?');"));
$boutons->addGroup($buttons, null, null, '&nbsp;');
return '<div>'.$boutons->toHTML().'</div>' ;
}
 
/**
* Renvoie un lien pour se déconnex=cter
*
* @return string
*/
 
function deconnexion($url) {
// Un champs logout
return "<div><a href=\"".$url."&logout=1\">".INS_DECONNEXION."</a></div>" ;
}
 
 
function info() {
$requete = 'select * from '.INS_ANNUAIRE.' '.
'where '.INS_ANNUAIRE.'.'.INS_CHAMPS_ID.'="'.$GLOBALS['AUTH']->getAuthData(INS_CHAMPS_ID).'"' ;
$resultat = $GLOBALS['ins_db'] -> query($requete) ;
if (DB::isError($resultat)) {
die ($resultat->getMessage().'<br />'.$resultat->getDebugInfo()) ;
}
 
$ligne = $resultat->fetchRow(DB_FETCHMODE_ASSOC) ;
$res .= "<br /><h2 class=\"inscription_titre1\">".INS_MESSAGE_BIENVENU ;
$res .= "</h2><br />\n" ;
$res .= "<h3 class=\"inscription_titre2\">".INS_FICHE_PERSONNELLE."</h3><br />\n" ;
$res .= "<div>".INS_EMAIL." : ".$ligne[INS_CHAMPS_MAIL]."</div>\n" ;
if ($ligne[INS_CHAMPS_EST_STRUCTURE] == 1) $nom = INS_NOM_STRUCTURE ; else $nom = INS_NOM ;
$res .= "<div>".$nom." : ".$ligne[INS_CHAMPS_NOM]."</div>" ;
if ($ligne[INS_CHAMPS_EST_STRUCTURE] == 0) $res .= "<div>".INS_PRENOM." : ".$ligne[INS_CHAMPS_PRENOM]."</div>\n" ;
if (INS_UTILISE_WIKINI) {if ($ligne[INS_CHAMPS_NOM_WIKINI] != "") $res .= "<div>".INS_NOM_WIKI." : ".$ligne[INS_CHAMPS_NOM_WIKINI]."</div>\n" ;}
if ($ligne[INS_CHAMPS_ADRESSE_1] != "") $res .= "<div>".INS_ADRESSE_1." : ".$ligne[INS_CHAMPS_ADRESSE_1]."</div>\n" ;
if ($ligne[INS_CHAMPS_ADRESSE_2] != "") $res .= "<div>".INS_ADRESSE_2." : ".$ligne[INS_CHAMPS_ADRESSE_2]."</div>\n" ;
if ($ligne[INS_CHAMPS_TELEPHONE] != "") $res .= "<div>".INS_TEL." : ".$ligne[INS_CHAMPS_TELEPHONE]."</div>\n" ;
if ($ligne[INS_CHAMPS_FAX] != "") $res .= "<div>".INS_FAX." : ".$ligne[INS_CHAMPS_FAX]."</div>\n" ;
if ($ligne[INS_CHAMPS_STRUCTURE] != "") $res .= "<div>".INS_STRUCTURE." : ".$ligne[INS_CHAMPS_STRUCTURE]."</div>\n" ;
$res .= bouton(str_replace ('&amp;', '&', $GLOBALS['ins_url']->getURL()));
$res .= deconnexion($GLOBALS['ins_url']->getURL()) ;
return $res ;
}
 
 
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) ;
if (DB::isError ($resultat_mail)) {
die ("Echec de la requete : $requete_mail<br />".$resultat_mail->getMessage()) ;
}
$ligne_mail = $resultat_mail->fetchRow(DB_FETCHMODE_ASSOC) ;
if ($mail == $ligne_mail[INS_CHAMPS_MAIL]) {
return true ;
}
}
$requete = "select ".INS_CHAMPS_MAIL." from ".INS_ANNUAIRE." where ".INS_CHAMPS_MAIL."= \"$mail\"" ;
$resultat = $GLOBALS['ins_db']->query ($requete) ;
if (DB::isError ($resultat)) {
die ($resultat->getMessage().'<br />'.$resultat->getDebugInfo()) ;
}
if ($resultat->numRows() == 0) return true ;
return false ;
}
 
 
function envoie_passe()
{
global $SERVER_ADMIN ;
 
$headers['From'] = $SERVER_ADMIN ;
$headers['Subject'] = INS_NOUVEAU_MOT_DE_PASSE;
 
$nouveau_passe = create_new_random(6) ;
 
$body = INS_NOUVEAU_MOT_DE_PASSE_2.$nouveau_passe ;
$body .= INS_NOUVEAU_MOT_DE_PASSE_LAIUS ;
 
// modification du mot de passe dans la base
$requete = "update ".INS_ANNUAIRE." set ".INS_CHAMPS_PASSE."=MD5(\"$nouveau_passe\") where ".INS_CHAMPS_MAIL."=\"".$GLOBALS['username']."\"" ;
$resultat = $GLOBALS['ins_db']->query($requete) ;
if (DB::isError($resultat)) {
die ("Echec de la requete<br />".$resultat->getMessage()."<br />".$resultat->getDebugInfo()) ;
}
 
// création du mail
if (!mail ($GLOBALS['username'], $headers['Subject'], $body)) {
return 'erreur lors de l\'envoie de mail' ;
}
 
return "<div class=\"titre1_inscription\">".INS_MOT_DE_PASSE_ENVOYE_1.': '.$GLOBALS['mail']."</div>\n".
"<div><br />".INS_MOT_DE_PASSE_ENVOYE_2."</div>\n";
 
}
 
/**
* Inscrit un adhérent à la lettre d'actualité par l'envoie d'un email subscribe / unsubscribe
* à la liste
*
* @global AUTH Un objet PEAR::Auth
* @return boolean true en cas de succès
*/
 
function inscription_lettre($action) {
include_once 'Mail.php' ;
$mail = & Mail::factory ('smtp') ;
$email = $GLOBALS['AUTH']->getUsername() ;
$headers ['Return-Path'] = $email ;
$headers ['From'] = "<".$email.">" ;
$headers ['Subject'] = $action ;
$headers ['Reply-To'] = $email ;
$mail -> send ($action, $headers, "") ;
if (PEAR::isError ($mail)) {
echo '<div class="erreur">Le mail n\'est pas partie...</div>' ;
return false ;
}
return true ;
}
 
/**
*
* @global ins_db Un pointeur vers un objet PEAR::DB connecté
* @return
*/
 
function envoie_mail() //A COMPLETER!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
{
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.
" where ".INS_CHAMPS_MAIL."=\"".$GLOBALS['AUTH']->getUsername()."\"".
" and ".INS_CHAMPS_ID_PAYS."=".INS_CHAMPS_PAYS;
 
$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_entete = INS_MAIL_COORD_CORPS."\n" ;
$body = "mail : ".$ligne[INS_CHAMPS_MAIL]."\n" ;
$body .= "------------------------------------------\n";
$body .= INS_NOM.": ".unhtmlentities($ligne[INS_CHAMPS_NOM])." \n" ;
$body .= INS_PRENOM.' : '.unhtmlentities($ligne[INS_CHAMPS_PRENOM])." \n" ;
$body .= INS_PAYS." : ".unhtmlentities($ligne[PROJET_CHAMPS_LABEL_PAYS])." \n" ;
$body .= "-------------------------------------------\n" ;
$mime->setTXTBody($body);
$mime->setHTMLBody(info()) ;
$body = $mime->get();
$headers = $mime->headers($headers);
$mail = & Mail::factory('mail') ;
$mail -> send ($ligne[INS_CHAMPS_MAIL], $headers, $body) ;
if (PEAR::isError($mail)) {
echo 'erreur d\'envoi' ;
return false ;
}
return true ;
}
 
// For users prior to PHP 4.3.0 you may do this:
function unhtmlentities($string)
{
$trans_tbl = get_html_translation_table (HTML_ENTITIES);
$trans_tbl = array_flip ($trans_tbl);
return strtr ($string, $trans_tbl);
}
 
//==============================================================================
/** function create_new_random($n,$type) permet de générer un nombre de caractères aléatoires.
*
*
*
* ENTREE :
* - $n : créer un 'mot' de $n caractères
* - $type : permet de définir la liste des caractères disponibles
*
* SORTIE : chaine de $n caractères pris dans une liste $type
*/
function create_new_random($n,$type="")
{
$str = "";
 
switch ($type){
default:{
$chaine = "abcdefghkmnpqrstuvwxyzABCDEFGHKLMNPQRSTUVWXYZ23456789";
}
break;
}
srand((double)microtime()*1000000);
for($i = 0; $i < $n; $i++){
$str .= $chaine[rand()%strlen($chaine)];
}
return "$str";
}
 
//==============================================================================
/** function nextId () Renvoie le prochain identifiant numérique libre d'une table
*
* On passe en paramètre le nom de la table et l'identifiant de la base selon PEAR DB
*
* @param mixed handler de connexion
* @param string Nom de la table
* return interger l'identifiant
*/
 
function nextId($table, $colonne_identifiant)
{
$requete = 'select MAX('.$colonne_identifiant.') as maxi from '.$table ;
$resultat = $GLOBALS['ins_db']->query($requete) ;
if (DB::isError($resultat)) {
die (__FILE__ . __LINE__ . $resultat->getMessage() . $requete);
return $GLOBALS['ins_db']->raiseError($resultat) ;
}
if ($resultat->numRows() > 1) {
return $GLOBALS['ins_db']->raiseError("<br/>La table $table a un identifiant non unique<br/>") ;
}
$ligne = $resultat->fetchRow(DB_FETCHMODE_OBJECT) ;
return $ligne->maxi + 1 ;
}
 
/* +--Fin du code ----------------------------------------------------------------------------------------+
*
* $Log: not supported by cvs2svn $
* Revision 1.3 2005/03/21 16:57:30 florian
* correction de bug, mise à jour interface
*
* Revision 1.2 2004/12/17 17:41:51 alex
* ajout du numéro de tel, du fax et de la structure
*
* Revision 1.1 2004/12/15 13:32:25 alex
* version initiale
*
* Revision 1.2 2004/09/01 16:37:52 alex
* modification du formulaire
*
* Revision 1.1 2004/07/06 15:42:17 alex
* en cours
*
* Revision 1.7 2004/07/06 15:28:41 alex
* en cours
*
* Revision 1.5 2004/07/06 15:22:19 alex
* en cours
*
=======
* Revision 1.4 2004/06/30 10:00:26 alex
* modification de l'envoie de mail
*
* Revision 1.2 2004/06/23 12:41:51 alex
* amélioration de la gestion de la perte de mot de passe
*
* Revision 1.1 2004/06/18 09:20:47 alex
* version initiale
*
*
* +-- Fin du code ----------------------------------------------------------------------------------------+
*/
 
?>
/trunk/client/ins_annuaire/bibliotheque/annuaire.fonct.php
New file
0,0 → 1,205
<?php
/*vim: set expandtab tabstop=4 shiftwidth=4: */
// +------------------------------------------------------------------------------------------------------+
// | PHP version 4.1 |
// +------------------------------------------------------------------------------------------------------+
// | Copyright (C) 2004 Tela Botanica (accueil@tela-botanica.org) |
// +------------------------------------------------------------------------------------------------------+
// | This library is free software; you can redistribute it and/or |
// | modify it under the terms of the GNU Lesser General Public |
// | License as published by the Free Software Foundation; either |
// | version 2.1 of the License, or (at your option) any later version. |
// | |
// | This library is distributed in the hope that it will be useful, |
// | but WITHOUT ANY WARRANTY; without even the implied warranty of |
// | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU |
// | Lesser General Public License for more details. |
// | |
// | You should have received a copy of the GNU Lesser General Public |
// | 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: annuaire.fonct.php,v 1.1 2005-04-06 13:33:32 florian Exp $
/**
* Fonctions du module annuaire
*
* Fonctions du module annuaire
*
*@package annuaire
//Auteur original :
*@author Alexandre Granier <alexandre@tela-botanica.org>
//Autres auteurs :
*@author Aucun
*@copyright Tela-Botanica 2000-2004
*@version $Revision: 1.1 $
// +------------------------------------------------------------------------------------------------------+
*/
 
// +------------------------------------------------------------------------------------------------------+
// | ENTETE du PROGRAMME |
// +------------------------------------------------------------------------------------------------------+
 
include_once "HTML/QuickForm.php" ;
 
// +------------------------------------------------------------------------------------------------------+
// | LISTE de FONCTIONS |
// +------------------------------------------------------------------------------------------------------+
 
/** function parcourirAnnu () Affiche l'annuaire à partir d'une lettre
*
*
*
* @return string HTML
*/
 
function parcourirAnnu() {
 
$res = '<div><table><tr>';
 
// ecrire toutes les lettres avec un lien
for ($i = 65 ; $i <91 ; $i++) {
$res .= '<td><a style="font-size:15px;" href="'.$GLOBALS['ins_url']->getURL().'&amp;lettre=';
$res .= chr($i) ;
$res .= '">';
$res .= chr($i) ;
$res .= '</a></td>'."\n";
}
$res .= '</tr></table></div>'."\n";
 
// si une lettre est selectionne
if (!empty($_REQUEST['lettre'])) {
$requete = 'SELECT '.INS_CHAMPS_ID;
foreach($GLOBALS['annuaire_champs_visibles']['champs_db'] as $i) {
$requete .= ', '.$i;
}
$requete .= ' FROM '.INS_ANNUAIRE.' WHERE ';
if ($_REQUEST['lettre'] != 'tous') {
$requete .= INS_CHAMPS_NOM.' LIKE "'.$_REQUEST['lettre'].'%"';
} else {
$requete .= '1';
}
$requete .= ' ORDER BY '.INS_CHAMPS_NOM ;
$resultat = $GLOBALS['ins_db']->query($requete);
var_dump($resultat);
if ($resultat->numRows()>0) {
$i=0;
while ($ligne = $resultat->fetchRow(DB_FETCHMODE_ASSOC)) {
$donnees_membres[$i++]=$ligne;
}
$res .= listes_inscrit($donnees_membres, $GLOBALS['annuaire_champs_visibles']['label_champs']);
} else {$res .= ANN_PAS_D_INSCRITS;}
}
return $res ;
}
 
/**
* Renvoie le code HTML de la liste des inscrits
* en fonction de la requete passé en parametre
*
* @return Renvoie le code HTML de la liste des inscrits
*/
 
function listes_inscrit(& $donnees_membres, & $entete , $case_a_cocher=true) {
$res = '<div>'."\n";
if ($case_a_cocher) {$res .= '<form action="'.$GLOBALS['ins_url']->getURL().'"&amp;lettre='.$_REQUEST['lettre'].'" method="post" name="formmail">'."\n";}
$res .= '<table id="table_inscrit">'."\n".'<colgroup>'."\n";
if ($case_a_cocher) {$res .= '<col />';}
foreach($entete as $i) {$res .= '<col />'; }
$res .= '</colgroup>'."\n".'<thead>'."\n";
if ($case_a_cocher) {$res .= '<th>&nbsp;</th>'."\n";}
foreach($entete as $i) {
$res .= '<th>'.$i.'</th>'."\n";
}
$res .= '</thead>'."\n";
$indic=0;
$i=1;
foreach($entete as $i) {
if ($indic==0) {
$res.='<tr class="ligne_impaire">'."\n";
$indic=1;
}
else {
$res.='<tr class="ligne_paire">'."\n";
$indic=0;
}
}
for ($i=0;$i<count($donnees_membres);$i++) {
$id = array_shift($donnees_membres[$i]);
if ($case_a_cocher) {$res.='<td><input type="checkbox" name="select[]" value="'.$id.'"></td>'."\n";}
foreach($donnees_membres[$i] as $valeur) $res .= '<td>'.$valeur.'</td>'."\n" ;
$res .= '</tr>'."\n";
}
$res .= '</table></div>'."\n";
if ($case_a_cocher) {
$res .= '<div class="texte">'.ANN_CHECK_UNCHECK ;
$res .= '&nbsp;<input type="checkbox" name="selecttotal" onclick="javascript:setCheckboxes(\'formmail\');"></div>';
$res .= '<h3>'.ANN_ENVOYER_MAIL.'</h3>'."\n";
$res .= '<div>'."\n".'<table border="0">'."\n"
.'<tr><td class="texte">'.ANN_SUJET.' :</td>'."\n"
.'<td><input class="forml" type="text" name="titre_mail" size="60"></td>'."\n"
.'</tr><tr><td class="texte" valign="top">'.ANN_MESSAGE.'&nbsp;:&nbsp;</td>'."\n"
.'<td><textarea class="forml" name="corps" rows="5" cols="60"></textarea></td>'."\n"
.'</tr><tr><td></td><td align="center">';
$res.='<input type="submit" value="'.ANN_ENVOYER.'">';
$res.='</td>'."\n".'</tr>'."\n".'</table>'."\n".'</div>'."\n".'</form>'."\n";
}
return $res ;
}
 
 
 
/** envoie_mail_depuis_annuaire()
*
*
* @return envoie l'email
*/
 
function envoie_mail_depuis_annuaire() {
$requete = "select ".ANN_CHAMPS_MAIL." from ".ANN_ANNUAIRE.
" where ".ANN_CHAMPS_ID."='".$GLOBALS['AUTH']->getAuthData (ANN_CHAMPS_ID)."'";
$resultat = $GLOBALS['ann_db']->query($requete);
if (DB::isError($resultat)) {
die ($resultat->getMessage().'<br />'.$resultat->getDebugInfo());
}
$ligne = $resultat->fetchRow(DB_FETCHMODE_ASSOC);
$entete = "From: <".$ligne[ANN_CHAMPS_MAIL].">\n";
$_POST['corps'] .= ANN_PIED_MESSAGE;
$_POST['corps'] = stripslashes($_POST['corps']) ;
$liste = "" ;
foreach ($_POST['select'] as $key => $value) {
mail ($value, stripslashes($_POST['titre_mail']), $_POST['corps'] , $entete) ;
$liste .= $value."\n" ;
}
$_POST['corps'] .= "\n----------------------------------------------------------------------------";
$_POST['corps'] .= "\n".ANN_MESSAGE_ENVOYE_A." :\n $liste" ;
mail (CAR_MAIL_ADMIN, stripslashes($_POST['titre_mail']), $_POST['corps'], $entete);
$_POST['corps'] = '';
$_POST['titre_mail'] = '';
return '<div>'.ANN_MAIL_ENVOYER.'</div>' ;
}
 
/* +--Fin du code ----------------------------------------------------------------------------------------+
*
* $Log: not supported by cvs2svn $
* Revision 1.3 2005/03/24 08:24:29 alex
* --
*
* Revision 1.2 2005/01/06 15:18:31 alex
* modification de la fonction de formulaire d'authentification
*
* Revision 1.1.1.1 2005/01/03 17:27:49 alex
* Import initial
*
* Revision 1.1 2005/01/03 17:18:49 alex
* retour vers la liste des participants après un ajout.
*
*
*
* +-- Fin du code ----------------------------------------------------------------------------------------+
*/
?>
/trunk/client/ins_annuaire/bibliotheque/inscription.fonct.wiki.php
New file
0,0 → 1,133
<?php
/*vim: set expandtab tabstop=4 shiftwidth=4: */
// +------------------------------------------------------------------------------------------------------+
// | PHP version 4.1 |
// +------------------------------------------------------------------------------------------------------+
// | Copyright (C) 2004 Tela Botanica (accueil@tela-botanica.org) |
// +------------------------------------------------------------------------------------------------------+
// | This library is free software; you can redistribute it and/or |
// | modify it under the terms of the GNU Lesser General Public |
// | License as published by the Free Software Foundation; either |
// | version 2.1 of the License, or (at your option) any later version. |
// | |
// | This library is distributed in the hope that it will be useful, |
// | but WITHOUT ANY WARRANTY; without even the implied warranty of |
// | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU |
// | Lesser General Public License for more details. |
// | |
// | You should have received a copy of the GNU Lesser General Public |
// | 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.wiki.php,v 1.1 2005-04-06 13:33:32 florian Exp $
/**
* Fonctions wikini
*
* Ce fichier propose 3 fonctions pour intervenir sur la table interwikini_users.
*
*@package inscription
*@subpackage fonctions_wikini
//Auteur original :
*@author Alexandre Granier <alexandre@tela-botanica.org>
//Autres auteurs :
*@author Aucun
*@copyright Tela-Botanica 2000-2004
*@version $Revision: 1.1 $ $Date: 2005-04-06 13:33:32 $
// +------------------------------------------------------------------------------------------------------+
*/
 
// +------------------------------------------------------------------------------------------------------+
// | ENTETE du PROGRAMME |
// +------------------------------------------------------------------------------------------------------+
 
// +------------------------------------------------------------------------------------------------------+
// | LISTE de FONCTIONS |
// +------------------------------------------------------------------------------------------------------+
 
function inscription_interwikini_users() {
global $db, $HTTP_POST_VARS ;
$requete = "insert into interwikini_users set name=\"".$HTTP_POST_VARS['nomwiki'].
"\", password=\"".md5($HTTP_POST_VARS['password'])."\", email=\"".$HTTP_POST_VARS['email']."\"" ;
$resultat = $db->query ($requete) ;
if (DB::isError($resultat)) {
die ("Echec de la requete dans interwikini_users<br />".$resultat->getMessage()) ;
}
}
 
function mod_inscription_interwikini_users($id) {
global $db, $HTTP_POST_VARS, $AUTH ;
$requete = "update interwikini_users set password=\"".md5($HTTP_POST_VARS['password'])."\", email=\"".$HTTP_POST_VARS['mail']."\"".
" where name=\"".$AUTH->getAuthData(INS_CHAMPS_LOGIN)."\"" ;
$resultat = $db->query ($requete) ;
if (DB::isError($resultat)) {
die ("Echec de la requete dans interwikini_users<br />".$resultat->getMessage()) ;
}
}
 
function desinscription_interwikini_users($nomwiki) {
global $db ;
$requete = "delete from interwikini_users where name=\"$nomwiki\"" ;
$resultat = $db->query ($requete) ;
if (DB::isError($resultat)) {
die ("Echec de la requete dans interwikini_users<br />".$resultat->getMessage()) ;
}
}
 
function verif_doublonNomWiki($nom_wiki) {
global $db ;
$requete = "select name from interwikini_users where name = \"$nom_wiki\"" ;
$resultat = $db->query ($requete) ;
if (DB::isError ($resultat)) {
die ($resultat->getMessage().'<br />'.$resultat->getDebugInfo()) ;
}
if ($resultat->numRows() == 0) return true ;
return false ;
}
 
function wiki_cookie() {
if ($userid != "") {
// 1. name
// On recherche le nom
$nomwikini = $AUTH->getAuthData('ga_login') ;
setcookie ("name", $nomwikini, time () + 3600 * 24 * 30, "/" ) ; // 1 mois
//2. password
// on recherche le mot de passe crypté
$requete = "select ga_mot_de_passe from gen_annuaire where ga_id_administrateur=$userid" ;
$resultat = $db->query ($requete) ;
if (DB::isError($resultat)) {
die ("Erreur") ;
}
$ligne = $resultat->fetchRow (DB_FETCHMODE_OBJECT) ;
$mot_de_passe = $ligne->ga_mot_de_passe ;
setcookie ("password", $mot_de_passe, time () + 3600 * 24 * 30, "/") ;
// 3. remember
setcookie ("remember", 1, time () + 3600 * 24 * 30, "/") ;
}
}
 
/* +--Fin du code ----------------------------------------------------------------------------------------+
*
* $Log: not supported by cvs2svn $
* Revision 1.2 2005/03/21 16:57:30 florian
* correction de bug, mise à jour interface
*
* Revision 1.1 2004/12/15 13:32:25 alex
* version initiale
*
* Revision 1.1 2004/07/06 15:42:17 alex
* en cours
*
* Revision 1.1 2004/06/18 09:20:48 alex
* version initiale
*
*
* +-- Fin du code ----------------------------------------------------------------------------------------+
*/
 
 
 
 
?>
/trunk/client/ins_annuaire/bibliotheque/mail_tous.php
New file
0,0 → 1,105
<?php
/*vim: set expandtab tabstop=4 shiftwidth=4: */
// +------------------------------------------------------------------------------------------------------+
// | PHP version 4.1 |
// +------------------------------------------------------------------------------------------------------+
// | Copyright (C) 2004 Tela Botanica (accueil@tela-botanica.org) |
// +------------------------------------------------------------------------------------------------------+
// | This library is free software; you can redistribute it and/or |
// | modify it under the terms of the GNU Lesser General Public |
// | License as published by the Free Software Foundation; either |
// | version 2.1 of the License, or (at your option) any later version. |
// | |
// | This library is distributed in the hope that it will be useful, |
// | but WITHOUT ANY WARRANTY; without even the implied warranty of |
// | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU |
// | Lesser General Public License for more details. |
// | |
// | You should have received a copy of the GNU Lesser General Public |
// | 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: mail_tous.php,v 1.1 2005-04-06 13:33:32 florian Exp $
/**
* Permet d'envoie un mail à une sélection dans l'annuaire
*
*
*@package annuaire
//Auteur original :
*@author Alexandre Granier <alexandre@tela-botanica.org>
//Autres auteurs :
*@author Aucun
*@copyright Tela-Botanica 2000-2004
*@version $Revision: 1.1 $
// +------------------------------------------------------------------------------------------------------+
*/
 
// +------------------------------------------------------------------------------------------------------+
// | ENTETE du PROGRAMME |
// +------------------------------------------------------------------------------------------------------+
 
function putFrame() {
// configuration
global $objet, $corps, $annuaire_LABEL_STATUT, $SERVER_ADMIN ;
global $action ;
$url = $GLOBALS['ann_url']->getURL() ;
$annu_table = "annuaire_tela" ;
$champs_mail = "U_MAIL" ;
 
// Entete
$corps_debut = "RESEAU TELA BOTANICA - Le ".date("j/m/Y").
"\n\nBonjour,\n"."\n\nCordialement,\n-------------------\nTela Botanica le réseau des botanistes francophones\naccueil@tela-botanica.org\nhttp://www.tela-botanica.org\n";
 
$res = "<h1>Envoi d'un mail &agrave; tous les membres</h1>\n" ;
if ($_GET['action'] == ANN_MAIL_TOUS_ENVOIE) $res .= envoie_mail_selection() ;
// formulaire
$res .= "<div><form action=\"$url&action=".ANN_MAIL_TOUS_ENVOIE."\" method=\"post\"><table>\n" ;
$res .= "<tr><td class=\"insLabel\">" ;
$res .= "Objet&nbsp;:&nbsp;</td><td><input size=\"91\" name=\"objet\" type=\"text\" class=\"insInputForm\"></td></tr>\n" ;
$res .= "<tr><td class=\"insLabel\">Corps&nbsp;:&nbsp;</td><td><textarea name=\"corps\" cols=\"90\" rows=\"30\" class=\"insInputForm\">$corps_debut</textarea></td></tr>\n" ;
$res .= "<tr><td></td><td><input type=\"submit\" class=\"texte_tb\" value=\"envoyer\"" ;
$res .= " onclick=\"javascript:return confirm('Etes-vous sur de vouloir envoyer ce message !!');\"" ;
$res .= "></td></tr>\n" ;
$res .= "</table></form></div>\n" ;
 
return $res ;
}
 
include_once ("Mail.php");
 
// envoie le mail à tous
 
 
function envoie_mail_selection()
{
global $objet, $corps, $annuaire_LABEL_STATUT, $SERVER_ADMIN, $GS_GLOBAL ;
$annuaire = "annuaire_tela" ;
$champs_mail = "U_MAIL" ;
$headers['From'] = "accueil@tela-botanica.org" ;
$headers['Subject'] = stripslashes($objet) ;
 
$corps = stripslashes($corps) ;
$requete = $_SESSION['requete_mail_tous'] ;
unset ($_SESSION['requete_mail_tous']) ;
 
$resultat = mysql_query($requete) or die ("echec") ;
while ($ligne = mysql_fetch_object($resultat)) {
if (!mail($ligne->U_MAIL, $headers['Subject'], $corps, "From: ".$headers['From'])) {
return "<tr><td>Une erreur s'est produite:<br>".$mail_object->getMessage()."</td></tr>\n" ;
}
}
return "<div>Le mail est parti !</div>\n";
 
}
?>
/trunk/client/ins_annuaire/bibliotheque/recu_pdf_corps.php
New file
0,0 → 1,166
<?php
// +----------------------------------------------------------------------------+
// |pdf_recu_et_mail.php |
// +----------------------------------------------------------------------------+
// | Copyright (c) 2003 Tela Botanica |
// +----------------------------------------------------------------------------+
// | Ce fichier génère un fichier PDF |
// | contenant le recu pour une cotisation à Tela Botanica |
// | Il utilise la librairie FPDF |
// | http://www.fpdf.org/ |
// | Il envoie également un email à l'adhérent concerné |
// +----------------------------------------------------------------------------+
// | Auteur : Alexandre Granier <alexandre@tela-botanica.org> |
// +----------------------------------------------------------------------------+
//
// $Id: recu_pdf_corps.php,v 1.1 2005-04-06 13:33:32 florian Exp $
 
 
// Recherche des informations sur un utilisateur
 
$requete = "select * from annuaire_COTISATION, annuaire_tela, MODE_COTISATION
where IC_ID=$cotisation_id
and IC_ANNU_ID=U_ID
and IC_MC_ID=MC_ID" ;
$resultat = $db->query($requete) ;
if (DB::isError ($resultat)) {
die ("Echec de la requete : $requete<br />".$resultat->getMessage()) ;
}
$ligne = $resultat->fetchRow(DB_FETCHMODE_OBJECT) ;
$resultat->free() ;
 
/*
// On regarde si le reçu a déjà été envoyé
$requete = "select IC_RECU from annuaire_COTISATION where IC_ID=$cotisation_id" ;
$resultat = mysql_query ($requete) or die ($requete."<br>".mysql_error()) ;
$ligne = mysql_fetch_object($resultat) ;
mysql_free_result($resultat) ;
*/
 
if ($ligne->IC_RECU != 0) {
$num_recu = $ligne->IC_RECU ;
// $deja_envoye permettra au programme admin_annu.php de ne pas incrementé
// le compteur de recu
$deja_envoye = true ;
} else {
$res_compteur = $db->query("select COMPTEUR from COMPTEUR_COTISATION") ;
$ligne_compteur = $res_compteur->fetchRow(DB_FETCHMODE_OBJECT) ;
$num_recu = $ligne_compteur->COMPTEUR ;
$deja_envoye = false ;
}
 
@include_once "api/fpdf/fpdf.php";
 
if (!isset($envoie)) $chemin = "client/annuaire/" ;
 
// Constante nécessaire à fpdf.php
define('FPDF_FONTPATH','font/');
 
// Création de l'objet pdf
 
$pdf = new FPDF();
 
$pdf->Open();
$pdf->AddPage("P");
// La ligne du haut
 
$pdf->Line(10, 10, 200, 10) ;
 
// Contenu du document
 
$pdf->SetFont('Arial', '', 8) ;
 
$pdf->Cell(150, 10, "", 0, 0) ;
 
$pdf->MultiCell(40, 10, "Numéro d'ordre : $num_recu", 1,1, "C") ;
 
$pdf->SetY($pdf->GetY() - 10) ;
 
$pdf->SetFont('Arial','B',14);
$pdf->Cell(0,10,'Reçu dons aux œuvres', 0, 1, "C");
$pdf->SetFont('Arial', '', 10) ;
$pdf->Cell(0, 0, '(Article 200-5 et 238 bis du Code Général des impôts)', 0, 1, "C") ;
 
$pdf->Cell(0, 10, 'REÇU A CONSERVER ET A JOINDRE A VOTRE DECLARATION DE REVENUS 2004', 0, 1, "L") ;
 
// On met le logo de Tela
$pdf->Image($chemin."logotb.png", 12, 35, "29", "", "PNG", "http://www.tela-botanica.org/") ;
 
 
 
// On écrie Les titres du cadre
 
$pdf->SetFontSize(12) ;
$pdf->Cell(100, 10, 'Bénéficiaire du don', 0, 0, "C") ;
$pdf->Cell(100, 10, 'Donateur', 0, 1, "C") ;
 
$pdf->SetFont('Arial', 'B', 10) ;
 
$pdf->Cell(38, 5, '', 0, 0) ;
$pdf->Cell(62, 5, 'Association Tela Botanica', 0, 0, "L") ;
 
$pdf->SetFont('Arial', 'B', 10) ;
 
$pdf->Cell(100, 5, "$ligne->U_NAME $ligne->U_SURNAME", 0, 1, "L") ;
 
$pdf->SetFont('Arial', '', 10) ;
 
$pdf->Cell(38, 5, '', 0, 0) ;
$pdf->Cell(62, 5, 'Institut de Botanique', 0, 1, "L") ;
$pdf->Cell(38, 5, '', 0, 0) ;
$pdf->Cell(62, 5, '163, rue A. Broussonnet', 0, 0, "L") ;
$pdf->Cell(100, 5, "$ligne->U_ADDR1", 0, 1, "L") ;
 
$pdf->Cell(38, 5, '', 0, 0) ;
$pdf->Cell(62, 5, '34090 Montpellier', 0, 0, "L") ;
$pdf->Cell(100, 8, "$ligne->U_ADDR2", 0, 1, "L") ;
 
 
$pdf->Cell(100, 5, 'Objet :', 0,1, "L") ;
$pdf->SetFontSize(8) ;
$pdf->MultiCell(100, 4, 'Contribuer au rapprochement de tous les botanistes de langue française. Favoriser l\'échange d\'information'.
' et animer des projets botaniques grâce aux nouvelles technologies de la communication.', 0, 1, "") ;
 
$pdf->SetFontSize(10) ;
 
$pdf->Text(111, 58 + 8, "$ligne->U_ZIP_CODE $ligne->U_CITY") ;
$pdf->SetFontSize(8) ;
$pdf->MultiCell(100,4, 'Organisme d\'intérêt général à caractère scientifique concourant à la diffusion de la langue et des connaissances scientifiques françaises.', 0,1, "R") ;
 
 
 
// On remonte le curseur de 52
$pdf->SetY($pdf->GetY() - 58) ;
 
// Le cadre central
$pdf->Cell(100, 60, '', 1) ;
$pdf->Cell(90, 60, '', 1) ;
$pdf->Ln() ;
 
$pdf->SetFontSize(10) ;
$pdf->Cell(0,10, 'L\'Association reconnaît avoir reçu, à titre de don, la somme de :', 0, 1, "L") ;
 
$pdf->SetFont('Arial', 'B', 11) ;
$pdf->Cell(0,10, "*** $ligne->IC_MONTANT euros ***", 0, 1, "C") ;
 
$pdf->SetFont('Arial', '', 10) ;
 
$pdf->Ln() ;
$pdf->Cell(100,10, "Date du paiement : ".date ("d/m/Y", $ligne->IC_DATE), 0, 0, "L") ;
$pdf->Cell(100, 10, 'Montpellier, le '.date("d/m/Y"), 0, 1, "L") ;
 
// La signature de Daniel
$pdf->Image($chemin."signature_Daniel.png", 110, $pdf->GetY(),28.22, "") ;
 
$pdf->Ln() ;
$pdf->Cell(0, 10, "Mode de versement : $ligne->MC_LABEL", 0, 1, "L") ;
 
$pdf->Cell(100, 10, '', 0, 0) ;
$pdf->Cell (100, 10, 'Daniel MATHIEU, Président', 0, 1, "L") ;
$pdf->Ln(5) ;
 
$pdf->SetFontSize(10) ;
$pdf->Cell(0, 7, '60 % de votre don à Tela Botanica est déductible de vos impôts dans la limite de 20 % de votre revenu imposable.', 1, 1, "C") ;
 
 
?>