Subversion Repositories Applications.papyrus

Compare Revisions

No changes between revisions

Ignore whitespace Rev 1940 → Rev 1985

/tags/v4.0-djer/client/bottin/configuration/annuaire_backoffice_bottin.config.inc.php
New file
0,0 → 1,103
<?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$
/**
* 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$ $Date$
// +------------------------------------------------------------------------------------------------------+
*/
//================================= 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_i18n_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 description */
define ('INS_CHAMPS_DESCRIPTION','a_description');
/** 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_numero_dpt');
/** 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 de la table des pays*/
define ('INS_CHAMPS_ID_PAYS', 'gip_id_pays');
/** Champs nom du pays de la table des pays*/
define ('INS_CHAMPS_LABEL_PAYS', 'gip_nom_pays_traduit');
/** Champs qui contient la localisation */
define ('INS_CHAMPS_I18N_PAYS', ' gip_id_i18n') ;
/** Champs identifiant du département de la table des departement*/
define ('INS_CHAMPS_ID_DEPARTEMENT','gd_id_departement');
/** Champs nom du département de la table des departement*/
define ('INS_CHAMPS_NOM_DEPARTEMENT','gd_nom');
/** Champs pour l'abonnement à une liste, laisser vide si vous ne souhaitez pas d'inscription' */
define ('INS_CHAMPS_LETTRE', 'a_lettre');
/** Champs de la date d'inscription */
define ('INS_CHAMPS_DATE', 'a_date_inscription');
/** Champs du site Internet*/
define ('INS_CHAMPS_SITE_INTERNET', 'a_site_internet');
/** Champs pour la vue sur carto*/
define ('INS_CHAMPS_VISIBLE', 'a_voir_sur_carto');
/** Champs pour la vue sur carto*/
define ('INS_CHAMPS_NUM_AGREMENT', 'a_num_agrement_fpc');
/** Champs pour le logo*/
define ('INS_CHAMPS_LOGO', 'a_logo');
?>
/tags/v4.0-djer/client/bottin/configuration/annuaire_backoffice.config.inc.php
New file
0,0 → 1,33
<?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.4 2007-04-11 08:30:12 neiluj Exp $
 
/**
//==================================== CONSTANTES ==================================
* Constantes des noms de tables et de champs dans l'annuaire admin papyrus
//==================================================================================
*/
 
/** Nom de la table Annuaire */
define ('INS_ANNUAIRE', 'gen_annuaire');
/** Champs identifiant */
define ('INS_CHAMPS_ID', 'ga_id_administrateur');
/** Champs adresse mail */
define ('INS_CHAMPS_MAIL', 'ga_mail');
/** Champs nom */
define ('INS_CHAMPS_NOM', 'ga_nom');
/** Champs prénom */
define ('INS_CHAMPS_PRENOM', 'ga_prenom');
/** Champs mot de passe */
define ('INS_CHAMPS_PASSE', 'ga_mot_de_passe');
?>
/tags/v4.0-djer/client/bottin/configuration/bottin.config.inc.php
New file
0,0 → 1,329
<?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: bottin.config.inc.php,v 1.23 2007-11-16 14:21:32 alexandre_tb 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.23 $ $Date: 2007-11-16 14:21: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_i18n_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 description */
define ('INS_CHAMPS_DESCRIPTION','a_description');
/** 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_numero_dpt');
/** 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 de la table des pays*/
define ('INS_CHAMPS_ID_PAYS', 'gip_id_pays');
/** Champs nom du pays de la table des pays*/
define ('INS_CHAMPS_LABEL_PAYS', 'gip_nom_pays_traduit');
/** Champs qui contient la localisation */
define ('INS_CHAMPS_I18N_PAYS', ' gip_id_i18n') ;
/** Champs identifiant du département de la table des departement*/
define ('INS_CHAMPS_ID_DEPARTEMENT','gd_id_departement');
/** Champs nom du département de la table des departement*/
define ('INS_CHAMPS_NOM_DEPARTEMENT','gd_nom');
/** Champs pour l'abonnement à une liste, laisser vide si vous ne souhaitez pas d'inscription' */
define ('INS_CHAMPS_LETTRE', 'a_lettre');
/** Champs de la date d'inscription */
define ('INS_CHAMPS_DATE', 'a_date_inscription');
/** Champs du site Internet*/
define ('INS_CHAMPS_SITE_INTERNET', 'a_site_internet');
/** Champs pour la vue sur carto*/
define ('INS_CHAMPS_VISIBLE', 'a_voir_sur_carto');
/** Champs pour la vue sur carto*/
define ('INS_CHAMPS_NUM_AGREMENT', 'a_num_agrement_fpc');
/** Champs pour le logo*/
define ('INS_CHAMPS_LOGO', 'a_logo');
 
 
 
//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', '') ;
define ('INS_MOT_DE_PASSE_DB', '') ;
define ('INS_HOTE', 'localhost') ;
define ('INS_BASE', '') ;
define ('INS_TYPE_ENCODAGE','MD5');
// Formation du dsn
$dsn = INS_PROTOCOLE.'://'.INS_UTILISATEUR.':'.INS_MOT_DE_PASSE_DB.'@'.INS_HOTE.'/'.INS_BASE;
 
/** Pour les inclusions de bibliotheques PEAR, mieux vaux
* utiliser celle sur le serveur, sinon utiliser la fonction set_init_path
*/
 
 
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/');
 
//===================================== CHEMINS ====================================
/** Chemin de l'application (mettre un / à la fin) */
define ('INS_CHEMIN_APPLI', '/');
 
//===================================== LANGUES ====================================
/** Choix de la langue par défaut de l'application */
define ('INS_LANGUE_DEFAUT', 'fr');
include_once INS_CHEMIN_APPLI.'langues/bottin.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'];
 
//=========================AUTHENTIFICATION=================================
/** Variable globale contenant l'objet d'authentification de l'application, un objet AUTH*/
$GLOBALS['AUTH'] =& $GLOBALS['_GEN_commun']['pear_auth'];
//==================================== 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/bottin/');
 
//===================================== 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/bottin.langue_'.INS_LANGUE_DEFAUT.'.inc.php'; //appel du fichier de constantes des langues
}
 
/** 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', 'nom@domaine.ext');
 
$GLOBALS['mail_admin'] = array ('nom@domaine.ext') ; // Liste des personne recevant le mail
/** Sujet du message envoyé pour l'inscription */
define ('INS_MAIL_ADMIN_APRES_INSCRIPTION_SUJET', '[nom] 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', 1);
if (INS_UTILISE_WIKINI) {
/** Le nom du champs contenant le nom wikini dans l'annuaire */
define ('INS_CHAMPS_NOM_WIKINI', 'a_nom_wikini');
/** Le nom Wiki est il genere automatiquement */
define ('INS_NOM_WIKINI_GENERE', 1) ;
}
 
/** L'inscription utilise t'elle le module projet? Mettre à 1 pour oui , et 0 pour non */
define ('INS_UTILISE_MODULE_PROJET', 1) ;
if (INS_UTILISE_MODULE_PROJET) {
define ('INS_CHEMIN_PROJET', 'client/projet/') ;
}
 
/** Constante pour indiquer le repertoire des squelettes du bottin */
define ('INS_CHEMIN_SQUELETTE', INS_CHEMIN_APPLI.'squelettes/');
/** Constante pour indiquer le nom du squelette qui construit le moteur de recherche backoffice */
define ('INS_FICHIER_SQUELETTE_BACKOFFICE_MOTEUR', 'annuaire_backoffice_moteur_recherche.tpl.html');
 
/** Constante pour le fichier de donnees google_map */
define ('INS_FICHIER_DONNEES_GOOGLE', 'donnees_googlemap.php');
 
/** Contante pour le fichier de script google_map */
define ('INS_FICHIER_SCRIPT_GOOGLE', 'script_google_map.tpl.js.html');
 
/**
//==================================== PARAMETRAGE =================================
* Pour gérer la réécriture d'url de l'inscription
* Cela nécessite une ligne dans le fichier .htaccess, par exemple
* RewriteRule ^ins([0-9a-z]*)$ papyrus.php?menu=22&id=$1 [L]
* Cela sert à racourcir l'URL de confirmation d'inscription
//==================================================================================
*/
 
define ('INS_UTILISE_REECRITURE_URL', 1) ; // mettre à 1 si on souhaite utiliser la réécriture
 
if (INS_UTILISE_REECRITURE_URL) {
define ('INS_URL_PREFIXE', 'ins_') ; // Indique le préfixe de l'url http://www.mondomaine.org/prefix____
}
 
/** Constante concernant la carte google */
define ('INS_GOOGLE_KEY', '');
 
if (defined ('INS_GOOGLE_KEY')) {
define ('INS_GOOGLE_CENTRE_LAT', '43.59033826146747');
define ('INS_GOOGLE_CENTRE_LON', '3.44970703125');
define ('INS_GOOGLE_ALTITUDE', '8'); // de 1 a 15
define ('INS_GOOGLE_TYPE_DE_VUE', 'G_HYBRID_MAP');
define ('INS_GOOGLE_IMAGE_LARGEUR', 600); // en pixel
define ('INS_GOOGLE_IMAGE_HAUTEUR', 450);
}
 
/* +--Fin du code ----------------------------------------------------------------------------------------+
*
* $Log: not supported by cvs2svn $
* Revision 1.22 2007-11-08 09:30:35 alexandre_tb
* nouvelles constantes
* INS_CHEMIN_FICHIER_SQUELETTE
* INS_FICHIER_SQUELETTE_BACKOFFICE_MOTEUR
*
* Revision 1.21 2007-10-12 10:03:59 alexandre_tb
* ajout des contantes INS_GOOGLE_IMAGE_LARGEUR et INS_GOOGLE_IMAGE_HAUTEUR
*
* Revision 1.20 2007-10-01 12:17:02 alexandre_tb
* ajout de la constante INS_GOOGLE_TYPE_DE_VUE
*
* Revision 1.19 2007-09-06 08:26:05 alexandre_tb
* suppression de constantes qui ont migres dans la table inscription_config
* ajout de constantes pour la carte GOOGLE
*
* Revision 1.18 2007-08-29 12:46:59 alexandre_tb
* dans la config "hors papyrus", appel du fichier bottin.langues.... a la place de ins_annuaire.lang....
*
* Revision 1.17 2007-06-25 12:46:59 florian
* suppression des constantes en double
*
* Revision 1.16 2007-04-11 08:30:12 neiluj
* remise en état du CVS...
*
* Revision 1.14 2006/12/01 13:23:17 florian
* integration annuaire backoffice
*
* Revision 1.13 2006/09/20 14:56:41 alexandre_tb
* correction de la valeur par défaut INS_CHAMPS_I18N_PAYS
*
* Revision 1.12 2006/09/12 15:44:18 alexandre_tb
* suppression du $GLOBALS['mail_admin'] en double
*
* Revision 1.11 2006/09/12 15:40:33 alexandre_tb
* modification des valeurs par défaut
* utilisation de gen_i18n_pays pour la table des pays
*
* Revision 1.10 2006/06/29 07:47:22 alexandre_tb
* ajout du tableau mail_admin
*
* Revision 1.9 2006/04/28 12:44:05 florian
* integration bazar
*
* Revision 1.8 2006/04/10 09:51:28 alexandre_tb
* ajout de la constante INS_NOM_WIKINI_GENERE.
*
* Revision 1.7 2006/04/04 12:23:05 florian
* modifs affichage fiches, généricité de la carto, modification totale de l'appli annuaire
*
* Revision 1.6 2006/03/15 11:04:27 alexandre_tb
* ajout du tableau mail_admin qui contient la liste des administrateurs qui recevront un double du mail d'inscription
*
* Revision 1.5 2005/12/19 13:16:38 alexandre_tb
* généricité du fichier de config
*
* Revision 1.4 2005/12/19 11:06:01 alexandre_tb
* modification dans la table annuaire
*
* Revision 1.3 2005/11/17 18:48:02 florian
* corrections bugs + amélioration de l'application d'inscription
*
* Revision 1.2 2005/09/29 13:56:48 alexandre_tb
* En cours de production. Reste à gérer les news letters et d'autres choses.
*
* Revision 1.1 2005/09/27 13:56:18 alexandre_tb
* version initiale, les autres fichiers de configurations devraient progressivement disparaitre.
*
* +-- Fin du code ----------------------------------------------------------------------------------------+
*/
?>
/tags/v4.0-djer/client/bottin/configuration/annuaire.config.inc.php
New file
0,0 → 1,65
<?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.2 2006-04-04 12:23:05 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.2 $
// +------------------------------------------------------------------------------------------------------+
*/
//include_once INS_CHEMIN_APPLI.'langues/annuaire.langue.'.INS_LANGUE_DEFAUT.'.inc.php'; //appel du fichier de constantes des langues
define ('INS_NECESSITE_LOGIN', 0) ; // Precise si les infos sont visibles pour tous (mettre 0) ou pour les identifies seulement (mettre 1)
 
 
/* +--Fin du code ----------------------------------------------------------------------------------------+
*
* $Log: not supported by cvs2svn $
* Revision 1.1 2005/09/22 14:02:49 ddelon
* nettoyage annuaire et php5
*
* Revision 1.4 2005/09/22 13:30:49 florian
* modifs pour compatibilité XHTML Strict + corrections de bugs (mais ya encore du boulot!!)
*
* 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 ----------------------------------------------------------------------------------------+
*/
?>
/tags/v4.0-djer/client/bottin/configuration/cartographie.config.inc.php
New file
0,0 → 1,23
<?php
 
// +----------------------------------------------------------------------------+
// |car_config.inc.php |
// +----------------------------------------------------------------------------+
// | Copyright (c) 2004 Tela Botanica |
// +----------------------------------------------------------------------------+
// | Le module d'inscription amélioré, configuration |
// +----------------------------------------------------------------------------+
// | Auteur : Alexandre Granier <alexandre@tela-botanica.org> |
// +----------------------------------------------------------------------------+
//
// $Id: cartographie.config.inc.php,v 1.2 2006-04-04 12:23:05 florian Exp $
 
//==================================== CONSTANTES ==================================
// Constantes
//==================================================================================
define ('INS_MAIL_ADMIN', 'florian@ecole-et-nature.org') ; // L'email de l'administrateur de la carto pour envoyer un message en double
define ('INS_NECESSITE_LOGIN', 0) ; // Precise si les infos sont visibles pour tous (mettre 0) ou pour les identifies seulement (mettre 1)
define ('INS_ECHELLE_DEPART', 'europe') ; // Affiche l'échelle de départ à afficher pour la carto
define ('INS_AFFICHE_ECHELLE', 1) ; // Affiche l'échelle de la carto (mettre 1) ou non (mettre 0)
define ('INS_AFFICHE_ZONE_ROUGE', 1) ; // Affiche la liste déroulante permettant de mettre une zone au choix en rouge pour la reconnaitre (mettre 1) ou non (mettre 0)
?>
/tags/v4.0-djer/client/bottin/documentation/inscription.html
New file
0,0 → 1,17
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
<HEAD>
<META HTTP-EQUIV="CONTENT-TYPE" CONTENT="text/html; charset=utf-8">
<TITLE></TITLE>
<META NAME="GENERATOR" CONTENT="OpenOffice.org 2.2 (Linux)">
<META NAME="AUTHOR" CONTENT="Alexandre Granier">
<META NAME="CREATED" CONTENT="20070618;13430300">
<META NAME="CHANGEDBY" CONTENT="Alexandre Granier">
<META NAME="CHANGED" CONTENT="20070618;13442900">
</HEAD>
<BODY LANG="fr-FR" DIR="LTR">
<P>Aide : utilisation du template de l'inscription</P>
<P><BR><BR>
</P>
</BODY>
</HTML>
/tags/v4.0-djer/client/bottin/documentation/bottin_v0.24.sql
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/tags/v4.0-djer/client/bottin/documentation/bottin_v0.24.sql
New file
Property changes:
Added: svn:mime-type
+application/octet-stream
\ No newline at end of property
/tags/v4.0-djer/client/bottin/annuaire_backoffice.admin.php
New file
0,0 → 1,138
<?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$
/**
*
*@package bottin
//Auteur original :
*@author Florian Schmitt <florian@ecole-et-nature.org>
//Autres auteurs :
*@copyright Tela-Botanica 2000-2004
*@version $Revision$ $Date$
// +------------------------------------------------------------------------------------------------------+
*/
// +------------------------------------------------------------------------------------------------------+
// | ENTETE du PROGRAMME |
// +------------------------------------------------------------------------------------------------------+
 
 
// +------------------------------------------------------------------------------------------------------+
// | CLASSE |
// +------------------------------------------------------------------------------------------------------+
class Annuaire_Backoffice_Admin {
var $objet_pear_auth;
var $objet_pear_db;
var $objet_pear_url;
var $sortie_xhtml;
/** Fonction redigerContenu() - Affiche le formulaire de r?action
*
*
* @return string Le HTML
*/
function afficherContenuCorps()
{
/** Inclusion du fichier de configuration de cette application.*/
require_once PAP_CHEMIN_RACINE.'client/bottin/configuration/bottin.config.inc.php';
require_once INS_CHEMIN_APPLI.'configuration/cartographie.config.inc.php';
require_once PAP_CHEMIN_API_PEAR.'HTML/QuickForm.php' ;
//-------------------------------------------------------------------------------------------------------------------
// Initialisation des attributs
$this->objet_pear_auth = $GLOBALS['_GEN_commun']['pear_auth'];
$this->objet_pear_db = $GLOBALS['ins_db'];
$this->objet_pear_url = $GLOBALS['_GEN_commun']['url'];
$this->sortie_xhtml = '<h1>'.INS_CONFIG_ANNUAIRE_BACKOFFICE.'</h1><br />'."\n";
//-------------------------------------------------------------------------------------------------------------------
// Gestion des boutons de l'interface
if (isset($_POST['afficheur_annuler'])) {
return false;
} else if (isset($_POST['afficheur_enregistrer_quitter'])) {
$requete = 'UPDATE gen_menu SET gm_application_arguments="type_annuaire='.$_POST['type_annuaire'].'" WHERE gm_id_menu='.$_GET['adme_menu_id'];
$resultat = $this->objet_pear_db->query($requete) ;
if (DB::isError($resultat)) {
die ("Echec de la requete<br />".$resultat->getMessage()."<br />".$resultat->getDebugInfo()) ;
}
return false;
}
//--------------------------------------------------------------------------------------------------------------
// Gestion des valeurs par defauts, en fonctions des donnees sauvees dans carto_config
$requete = 'SELECT gm_application_arguments FROM gen_menu WHERE gm_id_menu='.$_GET['adme_menu_id'];
$resultat = $this->objet_pear_db->query($requete) ;
if (DB::isError($resultat)) {
die ("Echec de la requete<br />".$resultat->getMessage()."<br />".$resultat->getDebugInfo()) ;
}
$valeurs_par_defaut = array();
if ($resultat->numRows()>0) {
while ($ligne = $resultat->fetchRow(DB_FETCHMODE_ASSOC)) {
$arguments = explode(' ', $ligne->gm_application_arguments);
var_dump($arguments);
for ($i = 0; $i < count($arguments); $i++) {
$attr = explode('=', $arguments[$i]);
if ($attr[0] != '') {
$info_application->$attr[0] = (isset($attr[1]) ? $attr[1] : '');
}
}
}
//valeurs par defaut enregistrees dans la table
$valeurs_par_defaut['type_annuaire']=$info_application->type_annuaire;
} else {
//valeurs par defaut pour afficher une carto des structures
$valeurs_par_defaut['type_annuaire']=0;
}
//--------------------------------------------------------------------------------------------------------------
// Gestion du formulaire
$this->objet_pear_url->addQueryString('adme_site_id', $_GET['adme_site_id']);
$this->objet_pear_url->addQueryString('adme_menu_id', $_GET['adme_menu_id']);
$this->objet_pear_url->addQueryString('adme_action', 'administrer');
$form =& new HTML_QuickForm('form_param_annuaire_backoffice', 'post', str_replace('&amp;', '&', $this->objet_pear_url->getUrl()));
$squelette =& $form->defaultRenderer();
$squelette->setFormTemplate("\n".'<form{attributes}>'."\n".'{content}'."\n".'</form>'."\n");
$squelette->setElementTemplate( '<p>'."\n".
'<label style="width:100px;padding:5px;text-align:right;">{label}'.
'<!-- BEGIN required --><span class="symbole_obligatoire">*</span><!-- END required -->'."\n".
'<!-- BEGIN error --><span class="erreur">{error}</span><!-- END error -->'."\n".
' : </label>'."\n".'{element}'."\n".
'</p>'."\n" );
$option_tables[0] = INS_ANNUAIRE_BOTTIN;
$option_tables[1] = INS_ANNUAIRE_ADMIN_PAPYRUS;
$form->addElement('select', 'type_annuaire', INS_TYPE_ANNUAIRE, $option_tables);
$liste_bouton_debut = '<ul class="liste_bouton">'."\n";
$form->addElement('html', $liste_bouton_debut);
$form->addElement('submit', 'afficheur_enregistrer_quitter', INS_ENREGISTRER_ET_QUITTER);
$form->addElement('submit', 'afficheur_annuler', INS_ANNULER);
$liste_bouton_fin = '</ul>'."\n";
$form->addElement('html', $liste_bouton_fin);
$form->setDefaults($valeurs_par_defaut);
$this->sortie_xhtml .= $form->toHTML()."\n";
return $this->sortie_xhtml;
}
 
}// Fin de la classe
 
// +------------------------------------------------------------------------------------------------------+
// | PIED du PROGRAMME |
// +------------------------------------------------------------------------------------------------------+
?>
/tags/v4.0-djer/client/bottin/bibliotheque/cartographie.fonct.php
New file
0,0 → 1,343
<?php
 
//vim: set expandtab tabstop=4 shiftwidth=4:
// +-----------------------------------------------------------------------------------------------+
// | PHP version 4.0 |
// +-----------------------------------------------------------------------------------------------+
// | Copyright (c) 1997, 1998, 1999, 2000, 2001 The PHP Group |
// +-----------------------------------------------------------------------------------------------+
// | This source file is subject to version 2.0 of the PHP license, |
// | that is bundled with this package in the file LICENSE, and is |
// | available at through the world-wide-web at |
// | http://www.php.net/license/2_02.txt. |
// | If you did not receive a copy of the PHP license and are unable to |
// | obtain it through the world-wide-web, please send a note to |
// | license@php.net so we can mail you a copy immediately. |
// +-----------------------------------------------------------------------------------------------+
/**
*
*Page permettant l'affichage des informations de cartographie des inscrits
*
*@package cartographie
//Auteur original :
*@author Alexandre GRANIER <alexandre@tela-botanica.org>
//Autres auteurs :
*@copyright Tela-Botanica 2000-2004
*@version 03 mai 2004
// +-----------------------------------------------------------------------------------------------+
//
// $Id: cartographie.fonct.php,v 1.4 2007-04-11 08:30:12 neiluj Exp $
// FICHIER : $RCSfile: cartographie.fonct.php,v $
// AUTEUR : $Author: neiluj $
// VERSION : $Revision: 1.4 $
// DATE : $Date: 2007-04-11 08:30:12 $
*/
 
/** function carto_liste_fiches()
*
*
* @return string HTML
*/
function carto_liste_fiches(&$monde, $nom_table1, $nom_table2, $nom_champs_pays, $nom_champs_cp, $requete_sql) {
 
global $mailer;
global $select;//utilisé dans liste_inscrit.php
$javascript = "
function confirmer () {
if (window.confirm ('Cliquez sur OK pour confirmer.')) {
window.formmail.submit();
}
}
 
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($javascript);
 
$res = '';
$tabmonde = explode ('*',$monde->historique);
// Premier cas, on vient de cliquer sur un pays qui n'est pas
// la France, on affiche les adhérents de ce pays
if (count($tabmonde) == 3) {
$argument = $tabmonde[2];
$query = 'SELECT * FROM carto_PAYS WHERE CP_ID_pays="'.$argument.'"';
$result = $GLOBALS['ins_db']->query($query);
if (DB::isError($result)) {
die ($result->getMessage().'<br />'.$result->getDebugInfo()) ;
}
$row = $result->fetchRow(DB_FETCHMODE_OBJECT) ;
$pays = $row->CP_Intitule_pays;
$monde->nom = $monde->nom.'*'.$pays;
$tabonglet = explode ('*', $monde->historique);
$tabnom = explode ('*', $monde->nom);
$res .= "<b>\n";
foreach ($tabonglet as $key => $value) {
if ($key == 0) {
$chemin = $value;
$value = 'monde';
$res .= "<a class=\"chemin_carto\" href=\"".$monde->url."&amp;historique_cartes=$chemin\">&nbsp;&gt;&nbsp;".$tabnom[$key]."</a>";
} else if ($key == (count($tabonglet)-1)) {
$res .= "<a class=\"chemin_carto\">&nbsp;&gt;&nbsp;$pays</a>";
} else {
$chemin .= '*'.$value;
$res .= "<a class=\"chemin_carto\" href=\"".$monde->url."&amp;historique_cartes=$chemin\">&nbsp;&gt;&nbsp;".$tabnom[$key]."</a>";
}
}
$res .= "</b>\n";
$capitale = $row->CP_Intitule_capitale;
$query2 = ' SELECT count('.$nom_champs_cp.') as nbr'.
' FROM '.$nom_table1;
if ($nom_table2!=0) $query2 .= ', '.$nom_table2;
$query2 .= ' WHERE '.$nom_champs_pays.'="'.$argument.'"';
if ($requete_sql!='') $query2 .= ' AND ('.$requete_sql.')';
$result2 = $GLOBALS['ins_db']->query($query2);
if (DB::isError($result2)) {
die ($result2->getMessage().'<br />'.$result2->getDebugInfo()) ;
}
$row2 = $result2->fetchRow(DB_FETCHMODE_OBJECT) ;
$res .= '<br /><br /><div class="info_pays">'.$pays.' (capitale: '.$capitale.') : ' ;
if ($row2->nbr == 0) {
$res .= INS_AUCUN_INSCRIT.' '.INS_LABEL_PROJET ;
}
else if ($row2->nbr == 1) {
$res .= $row2->nbr.' '.INS_INSCRIT.' '.INS_LABEL_PROJET ;
}
else {
$res .= $row2->nbr.' '.INS_INSCRIT.'s '.INS_LABEL_PROJET ;
}
$res .= "</div>\n";
if ($row2->nbr>0) {
if ((INS_NECESSITE_LOGIN)and(!$GLOBALS['AUTH']->getAuth())) {
$res .= '<br /><p class="zone_alert">'.INS_VOUS_DEVEZ_ETRE_INSCRIT.'</p>'."\n" ;
}
else {
$requete = 'SELECT * FROM '.$nom_table1;
if ($nom_table2!=0) $requete .= ', '.$nom_table2;
$requete .= ' WHERE '.$nom_champs_pays.'="'.$argument.'"';
if ($requete_sql!='') $requete .= ' AND ('.$requete_sql.')';
//todo: gerer l'ordre ' ORDER BY '.INS_CHAMPS_NOM.', '.INS_CHAMPS_PRENOM;
if ($row2->nbr >= 1) {
$res .= listes_inscrit($requete, $select, $_SERVER['REQUEST_URI']) ;
if ($mailer==1) {
if (!is_array($select)) {
$res .= "<div>".INS_NO_DESTINATAIRE."</div>";
}
else {
$res .= '<div class="zone_info">'.INS_MESSAGE_ENVOYE.'</div>'."\n" ;
carto_envoie_mail() ;
}
}
else {
$res .= carto_texte_cocher() ;
}
$res .= carto_formulaire() ;
}
}
}
// 2 ème cas, on vient de cliquer sur un département français
} else if (count($tabmonde) == 4) {
$argument = $tabmonde[3];
$query = 'SELECT * FROM '.INS_TABLE_DPT.' WHERE '.INS_CHAMPS_ID_DEPARTEMENT.'='.$argument;
$result = $GLOBALS['ins_db']->query($query);
if (DB::isError($result)) {
die ($result->getMessage() .'<br />'.$result->getDebugInfo());
}
$row = $result->fetchRow(DB_FETCHMODE_ASSOC);
$nom = $row[INS_CHAMPS_NOM_DEPARTEMENT];
$tabonglet=explode ('*', $monde->historique);
$tabnom=explode ('*', $monde->nom);
$res.="<div><b>\n";
foreach ($tabonglet as $key=>$value) {
if ($key==0) {
$chemin=$value;
$value='monde';
$res.= "<a class=\"chemin_carto\" href=\"".$monde->url."&amp;historique_cartes=$chemin\">&nbsp;&gt;&nbsp;".$tabnom[$key]."</a>";
}
else if ($key==(count($tabonglet)-1)) {
$res.="<a class=\"chemin_carto\">&nbsp;&gt;&nbsp;$nom</a>";
}
else {
$chemin.='*'.$value;
$res.= "<a class=\"chemin_carto\" href=\"".$monde->url."&amp;historique_cartes=$chemin\">&nbsp;&gt;&nbsp;".$tabnom[$key]."</a>";
}
}
$res .= "</b></div>\n";
$query2 = ' SELECT count('.$nom_champs_cp.') as nbr'.
' FROM '.$nom_table1;
if ($nom_table2!=0) $query2 .= ', '.$nom_table2;
$query2 .= ' WHERE '.$nom_champs_cp.' LIKE "'.$argument.'%"'.
' AND '.$nom_champs_pays.'="FR"';
if ($requete_sql!='') $query2 .= ' AND ('.$requete_sql.')';
$result2 = $GLOBALS['ins_db']->query($query2);
if (DB::isError($result2)) {
die ($result2->getMessage().'<br />'.$result2->getDebugInfo()) ;
}
$row2 = $result2->fetchRow(DB_FETCHMODE_OBJECT);
$res .= '<br /><br /><div class="nb_inscrits">' ;
if ($row2->nbr == 0) {
$res .= INS_AUCUN_INSCRIT." ".INS_LABEL_PROJET ;
}
else if ($row2->nbr == 1) {
$res .= $row2->nbr." ".INS_INSCRIT." ".INS_LABEL_PROJET ;
}
else {
$res .= $row2->nbr." ".INS_INSCRIT."s ".INS_LABEL_PROJET ;
}
$res .= "</div><br />\n";
if ($row2->nbr>0) {
if ((INS_NECESSITE_LOGIN)and(!$GLOBALS['AUTH']->getAuth())) {
$res .= '<br /><p class="zone_alert">'.INS_VOUS_DEVEZ_ETRE_INSCRIT.'</p>'."\n" ;
} else {
$requete = 'SELECT * FROM '.$nom_table1;
if ($nom_table2!=0) $requete .= ', '.$nom_table2;
if (strlen($argument)==1) {
$argument='0'.$argument;
}
$requete .= ' WHERE '.$nom_champs_cp.' LIKE "'.$argument.'%"'.
' AND '.$nom_champs_pays.'="FR"';
if ($requete_sql!='') $requete .= ' AND ('.$requete_sql.')';
//todo: ' ORDER BY '.INS_CHAMPS_NOM.', '.INS_CHAMPS_PRENOM;
$res .= listes_inscrit($requete, $select, $_SERVER['REQUEST_URI']) ;
if ($mailer==1) {
if (!is_array($select)) {
$res.= INS_NO_DESTINATAIRE;
} else {
$res .= '<p class="zone_info">'.INS_MESSAGE_ENVOYE."</p>\n" ;
carto_envoie_mail() ;
}
} else {
$res .=carto_texte_cocher() ;
}
$res .= carto_formulaire() ;
}
}
}
return $res;
}
 
 
/** function carto_texte_cocher ()
*
*
* @return string HTML
*/
function carto_texte_cocher() {
$res = "<div class=\"texte\">".INS_CHECK_UNCHECK ;
$res .= "&nbsp;<input type=\"checkbox\" name=\"selecttotal\" onclick=\"javascript:setCheckboxes('formmail');\" /></div>";
return $res ;
}
 
 
/** function carto_formulaire ()
*
*
*
* @return string HTML
*/
function carto_formulaire($titre_mail="", $corps="") {
$res = "<br /><h2>".INS_ENVOYER_MAIL."</h2><br />\n";
$res .= INS_SUJET.' :<br /><input class="forml" type="text" name="titre_mail" size="60" value="'.$titre_mail.'" /><br /><br />'."\n"
.INS_MESSAGE.' :<br /><textarea class="forml" name="corps" rows="5" cols="60">'.$corps.'</textarea><br />'."\n";
$res.='<br /><input class="bouton" type="submit" onclick="javascript:confirmer();" value="'.INS_ENVOYER.'" /></form>'."\n";
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($requete, $select, $url) {
$res='';
$resultat= $GLOBALS['ins_db']->query($requete);
if (DB::isError($resultat)) {
die ($resultat->getMessage().'<br />'.$resultat->getDebugInfo()) ;
}
while ($ligne = $resultat->fetchRow(DB_FETCHMODE_ASSOC)) {
$res.='<input type="checkbox" name="select[]" value="'.$ligne[INS_CHAMPS_MAIL].'" />'."\n".
$ligne[INS_CHAMPS_NOM].'&nbsp;'.$ligne[INS_CHAMPS_PRENOM].'&nbsp;'.
$ligne[INS_CHAMPS_CODE_POSTAL].'&nbsp;'.$ligne[INS_CHAMPS_VILLE].'&nbsp;'.
date("d.m.Y", strtotime($ligne[INS_CHAMPS_DATE_INSCRIPTION])).'<br /><br />'."\n";
}
$res .= '<input type="hidden" name="mailer" value="1" />'."\n";
$res .= '<input type="hidden" name="select" value="'.$select.'" /><br />'."\n";
return $res ;
}
 
/** envoie_mail()
*
*
* @return envoie l'email
*/
function carto_envoie_mail() {
$requete = 'SELECT '.INS_CHAMPS_MAIL.' 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());
}
$ligne = $resultat->fetchRow(DB_FETCHMODE_ASSOC);
$entete = "From: <".$ligne[INS_CHAMPS_MAIL].">\n";
$GLOBALS['corps'] .= INS_TEXTE_FIN_MAIL;
$GLOBALS['corps'] = stripslashes($GLOBALS['corps']) ;
$liste = "" ;
foreach ($GLOBALS['select'] as $key => $value) {
mail ($value, stripslashes($GLOBALS['titre_mail']), $GLOBALS['corps'] , $entete) ;
$liste .= $value."\n" ;
}
$GLOBALS['corps'] .= "\n----------------------------------------------------------------------------";
$GLOBALS['corps'] .= "\n".INS_MESSAGE_ENVOYE_A." :\n $liste" ;
mail(INS_MAIL_ADMIN, stripslashes(INS_SURVEILLANCE_ENVOI_MAIL.$GLOBALS['titre_mail']), $GLOBALS['corps'], $entete);
$GLOBALS['corps'] = '';
$GLOBALS['titre_mail'] = '';
}
//-- Fin du code source ------------------------------------------------------------
/*
* $Log: not supported by cvs2svn $
* Revision 1.2 2006/04/04 12:23:05 florian
* modifs affichage fiches, généricité de la carto, modification totale de l'appli annuaire
*
* Revision 1.1 2005/09/22 14:02:49 ddelon
* nettoyage annuaire et php5
*
* Revision 1.2 2005/09/22 13:30:49 florian
* modifs pour compatibilité XHTML Strict + corrections de bugs (mais ya encore du boulot!!)
*
* Revision 1.1 2004/12/15 13:30:20 alex
* version initiale
*
*
*/
?>
/tags/v4.0-djer/client/bottin/bibliotheque/inscription.fonct.spip.php
New file
0,0 → 1,140
<?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.4 2007-04-11 08:30:12 neiluj 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.4 $ $Date: 2007-04-11 08:30:12 $
// +------------------------------------------------------------------------------------------------------+
*/
 
// +------------------------------------------------------------------------------------------------------+
// | 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['mot_de_passe'])."\", 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['mot_de_passe'])."\", 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, INS_CHEMIN_SPIP) ;
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 2006/03/15 11:03:34 alexandre_tb
* généralisation du code
*
* Revision 1.1 2005/09/22 14:02:49 ddelon
* nettoyage annuaire et php5
*
* Revision 1.4 2005/09/22 13:30:49 florian
* modifs pour compatibilité XHTML Strict + corrections de bugs (mais ya encore du boulot!!)
*
* 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 ----------------------------------------------------------------------------------------+
*/
 
 
 
 
?>
/tags/v4.0-djer/client/bottin/bibliotheque/lib.carto.extractimg.php
New file
0,0 → 1,86
<?php
 
//vim: set expandtab tabstop=4 shiftwidth=4:
// +-----------------------------------------------------------------------------------------------+
// | PHP version 4.0 |
// +-----------------------------------------------------------------------------------------------+
// | Copyright (c) 1997, 1998, 1999, 2000, 2001 The PHP Group |
// +-----------------------------------------------------------------------------------------------+
// | This source file is subject to version 2.0 of the PHP license, |
// | that is bundled with this package in the file LICENSE, and is |
// | available at through the world-wide-web at |
// | http://www.php.net/license/2_02.txt. |
// | If you did not receive a copy of the PHP license and are unable to |
// | obtain it through the world-wide-web, please send a note to |
// | license@php.net so we can mail you a copy immediately. |
// +-----------------------------------------------------------------------------------------------+
/**
* Fichier permettant de générer l'entête HTTP des images de la carto.
*
*Ce fichier permet de construire l'image de la carto et de la faire passer dans les entête HTTP.
*
*@package lib.carto
//Auteur original :
*@author Luc LAMBERT
//Autres auteurs :
*@author Nicolas MATHIEU
*@author Alexandre GRANIER <alexandre@tela-botanica.org>
*@author Jean-Pascal MILCENT <jpm@tela-botanica.org>
*@copyright Tela-Botanica 2000-2003
*@version 01 juillet 2002
// +-----------------------------------------------------------------------------------------------+
//
// $Id: lib.carto.extractimg.php,v 1.1 2005-09-22 14:02:49 ddelon Exp $
// FICHIER : $RCSfile: lib.carto.extractimg.php,v $
// AUTEUR : $Author: ddelon $
// VERSION : $Revision: 1.1 $
// DATE : $Date: 2005-09-22 14:02:49 $
//
// +-----------------------------------------------------------------------------------------------+
// A FAIRE :
//
*/
 
$image = imagecreatefrompng('tmp/carto/'.$fichier.'.png');
chmod ('tmp/carto/'.$fichier.'.png', 755) ;
 
header('Expires: Wen, 01 Dec 1999 01:00:00 GMT');// Date du passé
header('Last-Modified: ' . gmdate('D, d M Y H:i:s') . ' GMT');// toujours modifié
header('Cache-Control: no-cache, must-revalidate');// HTTP/1.1
header('Pragma: no-cache'); // HTTP/1.0
header ('content-type:image/png');
imagepng($image);
unlink('tmp/carto/'.$fichier.'.png');
//Nous nettoyons le dossier tmp des fichiers qu'il contient:
$poignet_de_dossier = opendir('tmp/carto/');
while ($fichier_dechet = readdir($poignet_de_dossier)) {
if ($fichier_dechet != '.' && $fichier_dechet != '..') {
unlink(CAR_CHEMIN_TMP.$fichier_dechet);
}
}
closedir($poignet_de_dossier);
exit();
 
//-- Fin du code source ------------------------------------------------------------
/*
* $Log: not supported by cvs2svn $
* Revision 1.2 2005/09/22 13:30:49 florian
* modifs pour compatibilité XHTML Strict + corrections de bugs (mais ya encore du boulot!!)
*
* Revision 1.1 2004/12/15 13:30:20 alex
* version initiale
*
* Revision 1.7 2003/03/04 08:09:39 jpm
* Ajout suppression des fichiers carto du dossier carto temporaire.
*
* Revision 1.6 2003/02/21 13:50:57 jpm
* Mise à jour nouvel objet Carto_Carte.
*
* Revision 1.5 2003/02/14 07:56:45 jpm
* Ajout d'un entête.
* Ajout de requêtes HTTP pour éviter le cache.
*
*
*
*/
?>
/tags/v4.0-djer/client/bottin/bibliotheque/lib.couleur.php
New file
0,0 → 1,136
<?php
 
 
//vim: set expandtab tabstop=4 shiftwidth=4:
// +-----------------------------------------------------------------------------------------------+
// | PHP version 4.0 |
// +-----------------------------------------------------------------------------------------------+
// | Copyright (c) 1997, 1998, 1999, 2000, 2001 The PHP Group |
// +-----------------------------------------------------------------------------------------------+
// | This source file is subject to version 2.0 of the PHP license, |
// | that is bundled with this package in the file LICENSE, and is |
// | available at through the world-wide-web at |
// | http://www.php.net/license/2_02.txt. |
// | If you did not receive a copy of the PHP license and are unable to |
// | obtain it through the world-wide-web, please send a note to |
// | license@php.net so we can mail you a copy immediately. |
// +-----------------------------------------------------------------------------------------------+
/**
* Fichier regroupant toutes les fonctions manipulant les couleurs
*
*Toutes les fonctions sur les couleurs sont disponibles dans ce fichier.
*
*@package couleur
//Auteur original :
*@author iubito <sylvain_machefert@yahoo.fr>
//Autres auteurs :
*@author Jean-Pascal MILCENT <jpm@tela-botanica.org>
//Autres auteurs :
*@copyright Tela-Botanica 2000-2003
*@version 25 fevrier 2003
// +-----------------------------------------------------------------------------------------------+
//
// $Id: lib.couleur.php,v 1.1 2005-09-22 14:02:49 ddelon Exp $
// FICHIER : $RCSfile: lib.couleur.php,v $
// AUTEUR : $Author: ddelon $
// VERSION : $Revision: 1.1 $
// DATE : $Date: 2005-09-22 14:02:49 $
//
// +-----------------------------------------------------------------------------------------------+
// A FAIRE :
*/
 
/**
//==================================== FONCTION ==================================
* La fonction array couleur_hexadecimalAuRgb(string color) renvoie des valeurs de couleur en RGB.
*
*Cette fonction prend une valeur de couleur codée en hexadécimal et retourne
*les valeurs RGB correspondantes sous forme de tableau.
*Exemple d'utilisation:
*$rgb = couleur_hexadecimalAuRgb("fffc49");
*echo "<br>couleur_hexadecimalAuRgb de 'fffc49' : ".$rgb['R']." ".$rgb['V']." ".$rgb['B'];
*
*@author iubito <sylvain_machefert@yahoo.fr>
*@copyright iubito - http://iubito.free.fr/ - 2003
*
*@param string $couleur représente une couleur codée en héxadécimal.
*
*@return array tableau associatif contenant les 3 valeurs RGB, avec clé du rouge 'R',
* du vert 'V' et enfin du bleu 'B'.
//==============================================================================
*/
function couleur_hexadecimalAuRgb($couleur_html)
{
//gestion du #...
if (substr($couleur_html, 0, 1) == "#") {
$couleur_html = substr($couleur_html, 1, 6);
}
$tablo_rgb['R'] = hexdec(substr($couleur_html, 0, 2));
$tablo_rgb['V'] = hexdec(substr($couleur_html, 2, 2));
$tablo_rgb['B'] = hexdec(substr($couleur_html, 4, 2));
return $tablo_rgb;
}
 
 
/**
//==================================== FONCTION ==================================
* La fonction string couleur_rgbAuHexadecimal(array tablo) renvoie la valeur d'une
*couleur en héxadécimal.
*
*Cette fonction prend un tableau de valeurs d'une couleur codées en RGB et retourne
*la valeur hexadécimal correspondante sous forme de chaîne.
*C'est la réciproque exacte de la fonction couleur_hexadecimalAuRgb.
*
*@author iubito <sylvain_machefert@yahoo.fr>
*@copyright iubito - http://iubito.free.fr/ - 2003
*
*@param array $tablo_RGB représente un tableau associatif avec les valeurs RGB
*d'une couleur.Les trois clés du tableau sont : R pour rouge, V pour vert et B pour bleu.
*
*@return string chaîne contenant la valeur de la couleur sous forme héxadécimale.
//==============================================================================
*/
function couleur_rgbAuHexadecimal($tablo_rgb)
{
//Vérification des bornes...
foreach($tablo_rgb as $cle => $valeur) {
$tablo_rgb[$cle] = bornes($tablo_rgb[$cle],0,255);
}
//Le str_pad permet de remplir avec des 0
//parce que sinon couleur_rgbAuHexadecimal(array(0,255,255)) retournerai #0ffff<=manque un 0 !
return "#".str_pad(dechex(($tablo_rgb['R']<<16)|($tablo_rgb['V']<<8)|$tablo_rgb['B']),6,"0",STR_PAD_LEFT);
}
 
/**
//==================================== FONCTION ==================================
* La fonction int couleur_bornerNbre(int nb, int min, int max) borne des nombres.
*
*Cette fonction permet de borner la valeur d'un nombre entre un minimum $mini et
*un maximum $maxi.
*
*@author iubito <sylvain_machefert@yahoo.fr>
*@copyright iubito - http://iubito.free.fr/ - 2003
*
*@param integer $nbre le nombre à borner.
*@param integer $mini la borne minimum.
*@param integer $maxi la borne maximum.
*
*@return integer le nombre limité aux bornes si nécessaire.
//==============================================================================
*/
function couleur_bornerNbre($nbre, $mini, $maxi)
{
if ($nbre < $mini) {
$nbre = $mini;
}
if ($nbre > $maxi) {
$nbre = $maxi;
}
return $nbre;
}
 
?>
/tags/v4.0-djer/client/bottin/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-09-22 14:02:49 ddelon 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() ;
 
?>
/tags/v4.0-djer/client/bottin/bibliotheque/edition_fiche.php
New file
0,0 → 1,183
<?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.6 2007-11-08 09:28:18 alexandre_tb Exp $
 
 
define ("URL_RECU", $GLOBALS['ins_url']->protocol. '://'.$GLOBALS['ins_url']->host."/client/annuaire/voir_recu_pdf.php") ;
 
include_once ("HTML/Table.php") ;
 
// admin_annu est une application cliente de gsite elle commence donc
// dans une fonction putFrame()
 
 
function putFrame() {
if (isset($_REQUEST[INS_CHAMPS_ID]) && !isset($_REQUEST['action'])) {
$_REQUEST['action'] = 'modifier';
}
 
$res = '<h1>Edition d\'un adh&eacute;rent : </h1>'."\n" ;
$formulaire = new HTML_formulaireInscription('formulaire_inscription', 'post',
preg_replace('/&amp;/', '&', $GLOBALS['ins_url']->getURL()), '_self', '', 0) ;
$formulaire->addElement('hidden', 'id_inscription', $GLOBALS['ins_config']['ic_id_inscription']) ;
$formulaire->construitFormulaire(preg_replace('/&amp;/', '&', $GLOBALS['ins_url']->getURL()), $_REQUEST[INS_CHAMPS_ID]);
if (isset($_REQUEST['form_structure'])) {
if ($_REQUEST['form_structure']==1) {
$formulaire->formulaireStructure() ;
}
}
//pour la modification d'une inscription, on charge les valeurs par défauts
if (isset ($_REQUEST[INS_CHAMPS_ID]) == 'modifier') {
$formulaire->addElement('hidden', 'action', 'modifier_v') ;
$formulaire->setDefaults(formulaire_defaults($_REQUEST[INS_CHAMPS_ID])) ;
}
if (isset ($_REQUEST['action']) && $_REQUEST['action'] == 'modifier_v') {
$GLOBALS['id_utilisateur'] = $_REQUEST[INS_CHAMPS_ID];
if ($formulaire->validate()) {
inscription_mise_a_jour($formulaire->getSubmitValues(), $_REQUEST[INS_CHAMPS_ID]);
return $res.$formulaire->toHTML();
} else {
return $res.$formulaire->toHTML();
}
}
$res .= $formulaire->toHTML();
if (isset($_REQUEST['action']) && $_REQUEST['action'] == 'suppr_adh') {
$res .= suppression($_REQUEST[INS_CHAMPS_ID]) ;
return ;
}
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, $field ;
 
$url = $GLOBALS['ins_url']->getURL() ;
 
if ($field != $field_) {
$res = "<b>$label</b>" ;
$res .= "<a href=\"$url&amp;field=$field_\">" ;
$res .= $value ? $value : "(vide)";
$res .= "</a>\n" ;
}
if ($field == $field_) {
$res = '<form action="'.$url.'&amp;'.INS_CHAMPS_ID.'='.$_REQUEST[INS_CHAMPS_ID].'&amp;action=up&amp;field_='.$field_.'" method="post">' ;
$res .= "<b>$label</b>\n" ;
switch ($field_) {
case INS_CHAMPS_PAYS :
$res .= select (INS_TABLE_PAYS, INS_CHAMPS_ID_PAYS, INS_CHAMPS_LABEL_PAYS, $value);
break ;
default :
$res .= '<input type="text" size="40" name="'.$field_.'" value="'.$value.'">'."\n" ;
}
$res .= '<input type="submit" value="valider">'."\n" ;
$res .= "</form>" ;
}
return $res ;
}
 
 
// upSQL met à jour la table annuaire_tela
 
function upSQL()
{
global $field_ ;
 
// Recherche de l'ancien mail
$req_am = 'select '.INS_CHAMPS_MAIL.' from '.INS_ANNUAIRE.' where '.INS_CHAMPS_ID.'='.$_REQUEST[INS_CHAMPS_ID] ;
$res_am = $GLOBALS['ins_db']->query ($req_am) ;
$ligne_am = $res_am->fetchRow(DB_FETCHMODE_ASSOC) ;
$ancien_mail = $ligne_am[INS_CHAMPS_MAIL] ;
if ($field_ == INS_CHAMPS_PAYS) {
$field_ = INS_CHAMPS_PAYS ;
$_REQUEST[$field_] = $_REQUEST[INS_TABLE_PAYS] ;
}
$query = 'update '.INS_ANNUAIRE.' set '.$field_.'="'.$_REQUEST[$field_].'" where '.INS_CHAMPS_ID.'='.$_REQUEST[INS_CHAMPS_ID] ;
$GLOBALS['ins_db']->query($query) ;
// Traitement du département
if ($field_ == INS_CHAMPS_CODE_POSTAL) {
if (preg_match("/^97|98[0-9]*/", $HTTP_POST_VARS[INS_CHAMPS_CODE_POSTAL])) {
$n_dpt = substr($HTTP_POST_VARS[INS_CHAMPS_CODE_POSTAL], 0, 3) ;
} else {
$n_dpt = substr($HTTP_POST_VARS[INS_CHAMPS_CODE_POSTAL], 0, 2) ;
}
$GLOBALS['ins_db']->query ('update '.INS_ANNUAIRE.' set '.INS_CHAMPS_DEPARTEMENT.'='.$n_dpt.' where '.INS_CHAMPS_ID.'='.$_REQUEST[INS_CHAMPS_ID]) ;
}
}
 
function suppression($u_id) {
 
$url = $GLOBALS['ins_url']->getURL() ;
 
$res = "<div>Supprimer l'inscription</div>\n" ;
$res .="<div><form action=\"$url&action=suppr_adh\" method=\"post\">\n" ;
$res .= "<input type=\"submit\" value=\"Supprimer\" " ;
$res .= "onclick=\"javascript:return confirm('&ecirc;tes-vous s&ucirc;r de vouloir supprimer cet adh&eacute;rent');\">\n" ;
$res .= "</form></div>\n" ;
 
if (isset ($_REQUEST['action']) && $_REQUEST['action'] =="suppr_adh") {
$queryLogin = 'select '.INS_CHAMPS_MAIL.' from '.INS_ANNUAIRE.' where '.INS_CHAMPS_ID.'='.$_REQUEST[INS_CHAMPS_ID] ;
$resultLogin = $GLOBALS['ins_db']->query($queryLogin) ;
$rowLogin = $resultLogin->fetchRow(DB_FETCHMODE_ASSOC) ;
$mail = $rowLogin[INS_CHAMPS_MAIL];
 
// suppression
$query = 'delete from '.INS_ANNUAIRE.' where '.INS_CHAMPS_ID.'='.$_REQUEST[INS_CHAMPS_ID] ;
$GLOBALS['ins_db']->query($query);
// Appel des actions desinscriptions des applications clientes
$d = dir(GEN_CHEMIN_CLIENT);
$id_utilisateur = $_REQUEST[INS_CHAMPS_ID];
while (false !== ($repertoire = $d->read())) {
if (file_exists(GEN_CHEMIN_CLIENT.$repertoire.GEN_SEP.$repertoire.'.desinscription.inc.php'))
include_once GEN_CHEMIN_CLIENT.$repertoire.GEN_SEP.$repertoire.'.desinscription.inc.php' ;
}
$d->close();
}
return $res ;
}
 
function select ($table, $champs_id, $champs_label, $defaut = '') {
$requete = 'select * from '.$table.' where gip_id_i18n like "'.$GLOBALS['lang'].'%"' ;
$resultat = $GLOBALS['ins_db']->query($requete) ;
if (DB::isError($resultat)) {
echo $resultat->getMessage().'<br />'.$requete ;
}
$res = '<select name="'.$table.'">' ;
while ($ligne = $resultat->fetchRow(DB_FETCHMODE_ASSOC)) {
$res .= '<option value="'.$ligne[$champs_id].'"' ;
if ($defaut != '' && $defaut == $ligne[$champs_id]) $res .= ' selected' ;
$res .= '>'.$ligne[$champs_label].'</option>' ;
}
$res .= '</select>' ;
return $res ;
}
 
?>
/tags/v4.0-djer/client/bottin/bibliotheque/cartographie.fonct.liste_inscrit.php
New file
0,0 → 1,210
<?
// +--------------------------------------------------------------------------------+
// | liste_inscrit.php |
// +--------------------------------------------------------------------------------+
// | Copyright (c) 2002 |
// +--------------------------------------------------------------------------------+
// | |
// +--------------------------------------------------------------------------------+
// | Auteur : Alexandre Granier <alexandre@tela-botanica.org> |
// +--------------------------------------------------------------------------------+
//
// $Id: cartographie.fonct.liste_inscrit.php,v 1.5 2007-04-11 08:30:12 neiluj Exp $
 
global $HTTP_USER_AGENT;
 
$classe_titre = 'titlePage' ;
 
$javascript = 'function confirmer ()
{
if (window.confirm (\'Cliquez sur OK pour confirmer.\')) {
window.formmail.submit();
}
}
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;
}
 
';
 
GEN_stockerCodeScript($javascript);
$res = "";
$tabmonde = explode ('*',$monde->historique);
// Premier cas, on vient de cliquer sur un pays qui n'est pas
// la France, on affiche les adhérents de ce pays
if (count($tabmonde) == 3) {
$argument = $tabmonde[2];
$query = 'SELECT * FROM carto_PAYS WHERE CP_ID_pays="'.$argument.'"';
$result = $GLOBALS['ins_db']->query($query);
if (DB::isError($result)) {
die ($result->getMessage().'<br />'.$result->getDebugInfo()) ;
}
$row = $result->fetchRow(DB_FETCHMODE_OBJECT) ;
$pays = $row->CP_Intitule_pays;
$monde->nom = $monde->nom.'*'.$pays;
$tabonglet = explode ('*', $monde->historique);
$tabnom = explode ('*', $monde->nom);
$res .= "<b>\n";
foreach ($tabonglet as $key => $value) {
if ($key == 0) {
$chemin = $value;
$value = 'monde';
$res .= "<a class=\"chemin_carto\" href=\"".$monde->url."&amp;historique_cartes=$chemin\">&nbsp;&gt;&nbsp;".$tabnom[$key]."</a>";
}
else if ($key == (count($tabonglet)-1)) {
$res .= "<a class=\"chemin_carto\">&nbsp;&gt;&nbsp;$pays</a>";
}
else {
$chemin .= '*'.$value;
$res .= "<a class=\"chemin_carto\" href=\"".$monde->url."&amp;historique_cartes=$chemin\">&nbsp;&gt;&nbsp;".$tabnom[$key]."</a>";
}
}
$res .= "</b>\n";
$capitale = $row->CP_Intitule_capitale;
$query2 = " SELECT count(".INS_CHAMPS_ID.") as nbr".
" from ".INS_ANNUAIRE.
" where ".INS_CHAMPS_PAYS."='$argument'";
$result2 = $GLOBALS['ins_db']->query($query2);
if (DB::isError($result2)) {
die ($result2->getMessage().'<br />'.$result2->getDebugInfo()) ;
}
$row2 = $result2->fetchRow(DB_FETCHMODE_OBJECT) ;
$res .= "<br /><br /><div class=\"$classe_titre\">$pays (capitale: $capitale) : " ;
if ($row2->nbr == 0) {
$res .= INS_AUCUN_INSCRIT.' '.INS_LABEL_PROJET ;
}
else if ($row2->nbr == 1) {
$res .= $row2->nbr.' '.INS_INSCRIT.INS_LABEL_PROJET ;
}
else {
$res .= $row2->nbr.' '.INS_INSCRIT.'s '.INS_LABEL_PROJET ;
}
$res .= "</div>\n";
if ($row2->nbr>0) {
if ((INS_NECESSITE_LOGIN)and(!$GLOBALS['AUTH']->getAuth())) {
$res .= '<br /><p class="zone_alert">'.INS_VOUS_DEVEZ_ETRE_INSCRIT.'</p>'."\n" ;
}
else {
$requete = 'SELECT * FROM '.INS_ANNUAIRE.
' WHERE '.INS_CHAMPS_PAYS.'="'.$argument.'"'.
' ORDER BY '.INS_CHAMPS_NOM.', '.INS_CHAMPS_PRENOM;
if ($row2->nbr > 1) {
$res .= listes_inscrit($requete, $select, $url) ;
if ($mailer==1) {
if (!is_array($select)) {
$res .= "<div>".INS_NO_DESTINATAIRE."</div>";
}
else {
$res .= "<div class=\"$classe_titre\">".INS_MESSAGE_ENVOYE."</div>\n" ;
carto_envoie_mail() ;
}
}
else {
$res .= carto_texte_cocher() ;
}
$res .= carto_formulaire($titre_mail, $corps) ;
}
}
}
}
 
// 2 ème cas, on vient de cliquer sur un département français
 
else if (count($tabmonde) == 4) {
$numero_departement = $tabmonde[3];
$query = 'SELECT * FROM '.INS_TABLE_DPT.' WHERE '.INS_CHAMPS_ID_DEPARTEMENT.'='.$numero_departement;
$result = $GLOBALS['ins_db']->query($query);
if (DB::isError($result)) {
die ($result->getMessage() .'<br />'.$result->getDebugInfo());
}
$row = $result->fetchRow(DB_FETCHMODE_ASSOC);
$nom = $row[INS_CHAMPS_NOM_DEPARTEMENT];
$tabonglet=explode ('*', $monde->historique);
$tabnom=explode ('*', $monde->nom);
$res.="<div><b>\n";
foreach ($tabonglet as $key=>$value) {
if ($key==0) {
$chemin=$value;
$value='monde';
$res.= "<a class=\"chemin_carto\" href=\"".
$monde->url."&amp;historique_cartes=$chemin\">&nbsp;&gt;&nbsp;".$tabnom[$key]."</a>";
}
else if ($key==(count($tabonglet)-1)) {
$res.="<a class=\"chemin_carto\">&nbsp;&gt;&nbsp;$nom</a>";
}
else {
$chemin.='*'.$value;
$res.= "<a class=\"chemin_carto\" href=\"".$monde->url."&amp;historique_cartes=$chemin\">&nbsp;&gt;&nbsp;".$tabnom[$key]."</a>";
}
}
$res .= "</b></div>\n";
$query2 = ' SELECT count('.INS_CHAMPS_ID.') as nbr'.
' FROM '.INS_ANNUAIRE.
' WHERE '.INS_CHAMPS_CODE_POSTAL.' LIKE "'.$numero_departement.'%"'.
' AND '.INS_CHAMPS_PAYS.'="FR"';
$result2 = $GLOBALS['ins_db']->query($query2);
if (DB::isError($result2)) {
die ($result2->getMessage().'<br />'.$result2->getDebugInfo()) ;
}
$row2 = $result2->fetchRow(DB_FETCHMODE_OBJECT);
$res .= "<br /><br /><div class=\"$classe_titre\">" ;
if ($row2->nbr == 0) {
$res .= INS_AUCUN_INSCRIT." ".INS_LABEL_PROJET ;
}
else if ($row2->nbr == 1) {
$res .= $row2->nbr." ".INS_INSCRIT." ".INS_LABEL_PROJET ;
}
else {
$res .= $row2->nbr." ".INS_INSCRIT."s ".INS_LABEL_PROJET ;
}
$res .= "</div><br />\n";
if ($row2->nbr>0) {
if ((INS_NECESSITE_LOGIN)and(!$GLOBALS['AUTH']->getAuth())) {
$res .= '<br /><p class="zone_alert">'.INS_VOUS_DEVEZ_ETRE_INSCRIT.'</p>'."\n" ;
} else {
$requete = 'SELECT * FROM '.INS_ANNUAIRE.
' WHERE '.INS_CHAMPS_CODE_POSTAL.' LIKE "'.$argument.'%"'.
' AND '.INS_CHAMPS_PAYS.'="FR"';
' ORDER BY '.INS_CHAMPS_NOM.', '.INS_CHAMPS_PRENOM;
$res .= listes_inscrit($requete, $select, $_SERVER['REQUEST_URI']) ;
if ($mailer==1) {
if (!is_array($select)) {
$res.= INS_NO_DESTINATAIRE;
} else {
$res .= "<div class=\"$classe_titre\">".INS_MESSAGE_ENVOYE."</div>\n" ;
carto_envoie_mail() ;
}
} else {
$res .=carto_texte_cocher() ;
}
$res .= carto_formulaire() ;
}
}
}
?>
/tags/v4.0-djer/client/bottin/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.2 2006-01-02 09:51:03 alexandre_tb 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.2 $
// +------------------------------------------------------------------------------------------------------+
*/
 
// +------------------------------------------------------------------------------------------------------+
// | ENTETE du PROGRAMME |
// +------------------------------------------------------------------------------------------------------+
 
function putFrame() {
// configuration
global $objet, $corps, $annuaire_LABEL_STATUT, $SERVER_ADMIN ;
global $action ;
$url = $GLOBALS['ins_url']->getURL() ;
 
// Entete
$corps_debut = "RESEAU TELA BOTANICA - Le ".date("j/m/Y").
"\n\nBonjour,\n"."\n\nCordialement,\n-------------------\n".
"Tela Botanica le réseau des botanistes francophones\n".
"accueil@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>" ;
$res .= "Objet&nbsp;:&nbsp;</td><td><input size=\"91\" name=\"objet\" type=\"text\"></td></tr>\n" ;
$res .= '<tr><td>Corps&nbsp;:&nbsp;</td><td><textarea name="corps" cols="90" rows="30">'.
$corps_debut.'</textarea></td></tr>'."\n" ;
$res .= "<tr><td></td><td><input type=\"submit\" 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()
{
 
$headers['From'] = INS_MAIL_ADMIN_APRES_INSCRIPTION ;
$headers['Subject'] = stripslashes($_REQUEST['objet']) ;
 
$corps = stripslashes($_REQUEST['corps']) ;
$requete = $_SESSION['requete_mail_tous'] ;
unset ($_SESSION['requete_mail_tous']) ;
 
$resultat = $GLOBALS['ins_db']->query($requete) ;
while ($ligne = $resultat->fetchRow(DB_FETCHMODE_ASSOC)) {
if (!mail($ligne[INS_CHAMPS_MAIL], $headers['Subject'], $corps, "From: ".$headers['From'])) {
return "<div>Une erreur s'est produite:<br>".$mail_object->getMessage()."</div>\n" ;
}
}
return "<div>Le mail est parti !</div>\n";
}
/* +--Fin du code ----------------------------------------------------------------------------------------+
*
* $Log: not supported by cvs2svn $
* +-- Fin du code ----------------------------------------------------------------------------------------+
*/
?>
/tags/v4.0-djer/client/bottin/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-09-22 14:02:49 ddelon 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") ;
 
 
?>
/tags/v4.0-djer/client/bottin/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-09-22 14:02:49 ddelon 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 ;
}
 
?>
/tags/v4.0-djer/client/bottin/bibliotheque/bottin.class.php
New file
0,0 → 1,387
<?php
 
//vim: set expandtab tabstop=4 shiftwidth=4:
// +-----------------------------------------------------------------------------------------------+
// | PHP version 4.0 |
// +-----------------------------------------------------------------------------------------------+
// | Copyright (c) 1997, 1998, 1999, 2000, 2001 The PHP Group |
// +-----------------------------------------------------------------------------------------------+
// | This source file is subject to version 2.0 of the PHP license, |
// | that is bundled with this package in the file LICENSE, and is |
// | available at through the world-wide-web at |
// | http://www.php.net/license/2_02.txt. |
// | If you did not receive a copy of the PHP license and are unable to |
// | obtain it through the world-wide-web, please send a note to |
// | license@php.net so we can mail you a copy immediately. |
// +-----------------------------------------------------------------------------------------------+
/**
*
*Fichier des fonctions du bottin
*
*@package bottin
//Auteur original :
*@author Alexandre GRANIER <alexandre@tela-botanica.org.org>
//Autres auteurs :
*@copyright Outils-reseaux 2006-2040
*@version 05 avril 2006
// +-----------------------------------------------------------------------------------------------+
//
// $Id: bottin.class.php,v 1.6 2007-08-27 13:12:15 alexandre_tb Exp $
// FICHIER : $RCSfile: bottin.class.php,v $
// AUTEUR : $Author: alexandre_tb $
// VERSION : $Revision: 1.6 $
// DATE : $Date: 2007-08-27 13:12:15 $
*/
 
 
// +------------------------------------------------------------------------------------------------------+
// | ENTETE du PROGRAMME |
// +------------------------------------------------------------------------------------------------------+
 
require_once PAP_CHEMIN_API_PEAR.'PEAR.php';
 
// +------------------------------------------------------------------------------------------------------+
// | CONSTANTE DES TEMPLATES |
// +------------------------------------------------------------------------------------------------------+
 
// Page d'accueil
define ('INS_TEMPLATE_PAGE_ACCUEIL', 1);
 
//Template du formulaire
define ('INS_TEMPLATE_FORMULAIRE', 3);
 
// Template mail confirmation inscription
define ('INS_TEMPLATE_MAIL_CONFIRMATION_SUJET', 4);
define ('INS_TEMPLATE_MAIL_CONFIRMATION_CORPS', 2);
 
// Template d envoie de mot de passe perdu
define ('INS_TEMPLATE_MAIL_PASSE_SUJET', 5);
define ('INS_TEMPLATE_MAIL_PASSE_CORPS', 6);
 
// Template du mail apres moderation accepte
define ('INS_TEMPLATE_MAIL_APRES_MODERATION_SUJET', 7);
define ('INS_TEMPLATE_MAIL_APRES_MODERATION_CORPS', 8);
 
// Modele du titre du formulaire (ce qui precede le formulaire)
define ('INS_TEMPLATE_TITRE_FORMULAIRE', 9);
 
// Message apres demande d inscription moderee
define ('INS_TEMPLATE_MESSAGE_INSCRIPTION_MODEREE', 10);
 
// Modele de la page de la cartogrphie google
define ('INS_TEMPLATE_CARTO_GOOGLE_ACCUEIL', 11);
 
 
class inscription extends PEAR {
/**
* Constructeur
*
*
* @return void
* @access public
*/
function inscription() {
}
/**
* Renvoie le code HTML d une liste avec les lettres
*
* @global Un pointeur vers une connexion de base de donnee $GLOBALS['ins_url']
* @return array ['ic_param'] les parametres tels que dans la table inscription_config
* @access public
*/
function getConfig($id_inscription = '') {
// Recuperation de la configuration
$requete = 'select * from inscription_configuration';
if ($id_inscription != '') $requete .= ' where ic_id_inscription="'.$id_inscription.'"';
$resultat = $GLOBALS['ins_db']->query($requete);
if (DB::isError($resultat)) return "Echec de la requete : $requete<br />".$resultat->getMessage() ;
if ($resultat->numRows() != 0) {
$ligne = $resultat->fetchRow(DB_FETCHMODE_ASSOC);
return $ligne;
} else {
return PEAR::raiseError('La table inscription_configuration est vide...');
}
}
/**
* Renvoi un tableau avec les informations de inscription_attente
*
* @global Un pointeur vers une connexion de base de donnee $GLOBALS['ins_db']
* @return array Un tableau ['id'], ['nom'], ['prenom'] ... ou la chaine vide si il n'y a personne en attente
* @access public
*/
function getInscritEnAttenteModeration() {
$requete = 'select * from inscription_attente';
$resultat = $GLOBALS['ins_db']->query($requete);
$tableau_inscrit = array();
if (DB::isError($resultat)) return "Echec de la requete : $requete<br />".$resultat->getMessage() ;
if ($resultat->numRows() != 0) {
while ($ligne = $resultat->fetchRow(DB_FETCHMODE_OBJECT)) {
$donnees = unserialize (stripslashes($ligne->ia_donnees)) ;
array_push ($tableau_inscrit, array_merge (array('id' => $ligne->ia_id_inscription, 'date' => $ligne->ia_date), $donnees));
}
return $tableau_inscrit;
} else {
return '';
}
}
/** Renvoi le tableau HTML des inscrits en attente
*
* @global $GLOBALS['ins_url'] un objet Net_URL avec l url courante
* @param array Un tableau de tableau d inscrit avec ['id'],['nom'],['prenom'],['email'],['ville'],['date']
* @return string Un tableau HTML
*/
function getTableauEnAttente($tableau) {
$html = '';
if (empty ($tableau)) {
return INS_PAS_D_INSCRIT_EN_ATTENTE;
}
$table = new HTML_Table();
$table->addRow(array (INS_NOM, INS_EMAIL, INS_VILLE, INS_DATE_INS, INS_ACTION), '', 'TH');
$action = '<a href="'.$GLOBALS['ins_url']->getURL().'">'.'</a>';
foreach ($tableau as $demandeur) {
// L identifiant du demandeur dans l url
$GLOBALS['ins_url']->addQueryString (INS_VARIABLE_ID_DEMANDEUR, $demandeur['id']) ;
$GLOBALS['ins_url']->addQueryString(ANN_VARIABLE_ACTION, ANN_ACTION_VALIDER_INSCRIPTION);
$valide = '<a href="'.$GLOBALS['ins_url']->getURL().'">'.INS_VALIDER.'</a> / ';
$GLOBALS['ins_url']->addQueryString(ANN_VARIABLE_ACTION, ANN_ACTION_SUPPRIMER_DEMANDE_INSCRIPTION);
$valide .= '<a href="'.$GLOBALS['ins_url']->getURL().
'" onclick="javascript:return confirm(\''.INS_SUPPRIMER.' ?\')">'.INS_SUPPRIMER.'</a>';
$table->addRow(array($demandeur['a_nom'].' '.(isset($demandeur['a_prenom']) ? $demandeur['a_prenom']: ''), $demandeur['a_mail'],
$demandeur['a_ville'], $demandeur['date'], $valide));
}
return $table->toHTML();
}
/**
* Renvoie un tableau avec les moderateurs de l inscription
* ceux du champs ic_mail_moderateur
*
* @return array Un tableau de mail de moderateur
*/
function getModerateurs() {
}
/**
* Insere une demande d inscription dans la table inscription_attente et
* envoi un mail aux moderateurs
*
* @param string Un identifiant de session, soit genere aleatoirement soit venu de la tablea inscription_demande
* @global array la globale $GLOBALS['ins_config']
* @global mixed un pointeur vers une base de donnees $GLOBALS['ins_db']
* @return string Un message a renvoye a l utilisateur indiquant que sa demande a ete prise en compte
*/
function demandeInscriptionModere($valeurs) {
// On stocke les informations dans un variable de session
// On coupe l'identifiant de session pour ne prendre que les 8 premiers caractères
// afin d'eviter d'obtenir une url trop longue
$chaine = substr (session_id(), 0, 8) ;
$requete_verif = 'select * from inscription_attente where ia_id_inscription="'.$chaine.'"' ;
$resultat_verif = $GLOBALS['ins_db']->query ($requete_verif) ;
if ($resultat_verif->numRows() != 0) {
$requete_suppression = 'delete from inscription_attente where ia_id_inscription="'.$chaine.'"' ;
$GLOBALS['ins_db']->query ($requete_suppression) ;
}
$requete = 'insert into inscription_attente set ia_id_inscription="'.$chaine.'", ia_donnees="'.
addslashes(serialize($valeurs)).'", ia_date=NOW()' ;
$resultat = $GLOBALS['ins_db']->query ($requete) ;
if (DB::isError ($resultat)) {
echo ("Echec de la requete : $requete<br />".$resultat->getMessage()) ;
}
// On envoie un email aux moderateurs
require_once PAP_CHEMIN_RACINE.'api/pear/HTML/Template/IT.php';
$tpl = new HTML_Template_IT() ;
// Le gabarit du mail est dans un template
// template 3
$url = $GLOBALS['ins_url']->getURL();
$requete = 'select it_template from inscription_template where it_id_template=3'.
' and it_i18n like "%'.INS_LANGUE_DEFAUT.'"' ;
if (!$tpl -> setTemplate($GLOBALS['ins_db']->getOne ($requete))) {
echo 'erreur' ;
}
$tpl->setVariable('URL_INSCRIPTION', $url) ;
$mails_moderateur = split ('/\n/', $GLOBALS['ins_config']['ic_mail_moderateur']);
foreach ($mails_moderateur as $mail) {
mail ($mail, INS_MODERATION_SUJET,
html_entity_decode(INS_NOUVELLE_INSCRIPTION_A_MODERE),
'From: '.$GLOBALS['ins_config']['ic_from_mail_confirmation']) ;
}
return true ;
}
/**
* Valide une demande d inscription
* Transfere les donnees de la table inscription_attente vers annuaire
*
* Envoie un email d avertissement a l inscrit
*
* @global array la globale ins_config
*/
function validerInscription() {
$requete = 'SELECT ia_donnees FROM inscription_attente WHERE ia_id_inscription="'.$_GET[INS_VARIABLE_ID_DEMANDEUR].'"' ;
$resultat = $GLOBALS['ins_db']->query($requete) ;
if (DB::isError ($resultat)) {
return ("Echec de la requete : $requete<br />".$resultat->getMessage()) ;
}
$ligne = $resultat->fetchRow(DB_FETCHMODE_OBJECT) ;
$donnees = unserialize (stripslashes($ligne->ia_donnees)) ;
// dans les donnees serialisees, on recupere l identifiant de l inscription
// pour charger la globale ins_config
$GLOBALS['ins_config'] = inscription::getConfig($donnees['id_inscription']);
// Template du formulaire
$GLOBALS['ins_config']['ic_inscription_template'] = inscription::getTemplate(INS_TEMPLATE_FORMULAIRE,
$GLOBALS['ins_config']['ic_id_inscription']);
 
$id_utilisateur = inscription_insertion($donnees) ;
// Envoie du mail
$destinataire = $donnees['a_mail'];
$sujet = inscription::getTemplate(INS_TEMPLATE_MAIL_APRES_MODERATION_SUJET, $GLOBALS['ins_config']['ic_id_inscription']);
$corps = inscription::getTemplate(INS_TEMPLATE_MAIL_APRES_MODERATION_CORPS, $GLOBALS['ins_config']['ic_id_inscription']);
// Appel des actions desinscriptions des applications clientes
$d = dir(GEN_CHEMIN_CLIENT);
while (false !== ($repertoire = $d->read())) {
if (file_exists(GEN_CHEMIN_CLIENT.$repertoire.GEN_SEP.$repertoire.'.inscription.inc.php'))
include_once GEN_CHEMIN_CLIENT.$repertoire.GEN_SEP.$repertoire.'.inscription.inc.php' ;
}
$d->close();
if (INS_CHAMPS_LETTRE != '' && isset ($donnees['a_lettre'])) {
inscription_lettre($GLOBALS['ins_config']['ic_mail_inscription_news']) ;
}
if (!mail ($destinataire, $sujet, $corps, 'From: '.$GLOBALS['ins_config']['ic_from_mail_confirmation'])) return 'erreur dans l\'envoi du mail';
inscription::supprimerDemandeInscription();
}
/**
* Supprime une demande d inscription dans la table inscription_attente
*
* @global string l indentifiant de la demande
* @global mixed la globale ins_db
*/
function supprimerDemandeInscription() {
// Suppression de la ligne dans inscription_attente
$req_sup = 'delete from inscription_attente where ia_id_inscription="'.$_GET[INS_VARIABLE_ID_DEMANDEUR].'"';
$res_sup = $GLOBALS['ins_db']->query ($req_sup);
if (DB::isError ($res_sup)) {
return ("Echec de la requete : $req_sup<br />".$res_sup->getMessage()) ;
}
}
/**
* Supprimer un inscrit de l annuaire et appelle les fichiers
* client appli.desinscription.inc.php
*
* @static
* @global int l identifiant de l inscrit
* @global mixed la globale ins_db
*/
 
function supprimerInscription() {
 
$queryLogin = 'select '.INS_CHAMPS_MAIL.' from '.INS_ANNUAIRE.' where '.INS_CHAMPS_ID.'='.$_GET[INS_VARIABLE_ID_INSCRIT] ;
$resultLogin = $GLOBALS['ins_db']->query($queryLogin) ;
$rowLogin = $resultLogin->fetchRow(DB_FETCHMODE_ASSOC) ;
$mail = $rowLogin[INS_CHAMPS_MAIL];
// suppression
$query = 'delete from '.INS_ANNUAIRE.' where '.INS_CHAMPS_ID.'='.$_GET[INS_VARIABLE_ID_INSCRIT] ;
$resultat = $GLOBALS['ins_db']->query($query);
if (DB::isError ($resultat)) {
return ("Echec de la requete : $req_sup<br />".$res_sup->getMessage()) ;
}
// Appel des actions desinscriptions des applications clientes
$d = dir(GEN_CHEMIN_CLIENT);
$id_utilisateur = $_GET[INS_VARIABLE_ID_INSCRIT];
while (false !== ($repertoire = $d->read())) {
if (file_exists(GEN_CHEMIN_CLIENT.$repertoire.GEN_SEP.$repertoire.'.desinscription.inc.php'))
include_once GEN_CHEMIN_CLIENT.$repertoire.GEN_SEP.$repertoire.'.desinscription.inc.php' ;
}
$d->close();
}
function getTemplate($id_template, $id_inscription, $langue = INS_LANGUE_DEFAUT) {
 
$requete = 'select it_template from inscription_template where it_id_template="'.$id_template.'"'.
' and it_i18n like "'.$langue.'%" and it_ce_inscription="'.$id_inscription.'"' ;
$resultat = $GLOBALS['ins_db']->query($requete);
if (DB::isError ($resultat)) {
$this->raiseError();
}
$ligne = $resultat->fetchRow (DB_FETCHMODE_OBJECT);
return $ligne->it_template;
}
}
 
 
class lettresAlphabet extends PEAR {
var $url;
var $variable_lettre ;
/**
* Constructeur
*
* @param Net_URL un objet Net_URL
* @param string $variable_lettre le nom de la variable $_GET qui sera place dans l URL
* @return void
* @access public
*/
function lettresAlphabet($url, $variable_lettre = 'lettre') {
$this->url = $url ;
$this->variable_lettre = $variable_lettre ;
}
/**
* Renvoie le code HTML d une liste avec les lettres
*
* @return string HTML
* @access public
*/
function toHMTL() {
$res = '<ul class="liste_lettre">'."\n" ;
for ($i = 65 ; $i <91 ; $i++) {
$this->url->addQueryString($this->variable_lettre, chr($i)) ;
$res .= "\t".'<li class="liste_lettre"><a class="lien_alphabet" '.
'href="'.
$this->url->getURL().'">';
$res .= chr($i) ;
$res .= '</a></li>'."\n";
}
$res .= '</ul>';
return $res ;
}
}
 
//-- Fin du code source ------------------------------------------------------------
/*
* $Log: not supported by cvs2svn $
* Revision 1.5 2007-06-25 15:02:50 alexandre_tb
* correction bug
*
* Revision 1.4 2007-06-25 09:59:03 alexandre_tb
* ajout de carte_google, mise en place des templates avec api/formulaire, configuration de multiples inscriptions, ajout de modele pour les mails
*
* Revision 1.3 2007-06-01 13:47:47 alexandre_tb
* nouvelles methodes
*
* Revision 1.2 2007-05-25 14:31:24 alexandre_tb
* en cours
*
* Revision 1.1 2006/12/13 13:26:52 alexandre_tb
* version initiale
*
*/
?>
/tags/v4.0-djer/client/bottin/bibliotheque/inscription.class.php
New file
0,0 → 1,420
<?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.30 2007-11-08 09:29:36 alexandre_tb Exp $
/**
* Inscription
*
* Un module d'inscription, en general ce code est specifique a
* un site web
*
*@package inscription
//Auteur original :
*@author Alexandre GRANIER <alexandre@tela-botanica.org>
//Autres auteurs :
*@copyright Tela-Botanica 2000-2004
*@version $Revision: 1.30 $ $Date: 2007-11-08 09:29:36 $
// +------------------------------------------------------------------------------------------------------+
*/
 
// +------------------------------------------------------------------------------------------------------+
// | ENTETE du PROGRAMME |
// +------------------------------------------------------------------------------------------------------+
 
require_once PAP_CHEMIN_API_PEAR.'HTML/QuickForm.php' ;
 
class ListeDePays extends PEAR{
 
var $_db ;
/** Constructeur
* Verifie 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_i18n_pays n\'est pas presente dans la base de donnee !') ;
}
/** 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 cle, 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
.' where '.INS_CHAMPS_I18N_PAYS.'="'.$i18n.'"';
$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 a 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 ;
}
/** Renvoie le nom d'un pays traduit dans la langue passé en paramètre
*
* @param string une chaine de type i18n ou une chaine code iso langue (fr_FR ou fr ou FR)
* @return un tableau contenant en cle, le code iso du pays, en majuscule et en valeur le nom du pays traduit
*/
function getNomPays($codeIso, $i18n = INS_LANGUE_DEFAUT) {
if (strlen($i18n) == 2) {
$i18n = strtolower($i18n)."-".strtoupper($i18n) ;
}
$requete = 'select '.INS_CHAMPS_LABEL_PAYS.' from '.INS_TABLE_PAYS.
' where '.INS_CHAMPS_I18N_PAYS.'="'.$i18n.'" and '.
INS_CHAMPS_ID_PAYS.'="'.$codeIso.'"';
$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 a aucun pays ou n\'est pas dans la table!') ;
}
$ligne = $resultat->fetchRow(DB_FETCHMODE_ASSOC) ;
return $ligne[INS_CHAMPS_LABEL_PAYS] ;
}
}
 
class HTML_formulaireInscription extends HTML_Quickform {
 
/**
* Constructeur
*
* @param string formName Le nom du formulaire
* @param string method Methode 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, $id_utilisateur = '')
{
$squelette =& $this->defaultRenderer();
$squelette->setFormTemplate("\n".'<form {attributes}>'."\n".'<table style="border:0;width:100%;">'."\n".'{content}'."\n".'</table>'."\n".'</form>'."\n");
$squelette->setElementTemplate( '<tr>'."\n".
'<td style="font-size:12px;width:140px;text-align:right;">'."\n".'{label}'.
'<!-- BEGIN required --><span class="symbole_obligatoire">&nbsp;*</span><!-- END required -->'."\n".
' :</td>'."\n".
'<td style="text-align:left;padding:5px;"> '."\n".'{element}'."\n".
'<!-- BEGIN error --><span class="erreur">{error}</span><!-- END error -->'."\n".
'</td>'."\n".
'</tr>'."\n");
$squelette->setElementTemplate( '<tr><td colspan="2" style="font-size:12px;text-align:left;">{label}{element}</td></tr>'."\n", 'lettre');
$squelette->setElementTemplate( '<tr><td colspan="2" style="font-size:12px;text-align:left;">{label}{element}</td></tr>'."\n", 'visible');
$squelette->setElementTemplate( '<tr><td colspan="2" class="bouton" id="bouton_annuler">{label}{element}</td></tr>'."\n", 'groupe_bouton');
$squelette->setGroupTemplate('<tr><td colspan="2">{content}</td></tr>'."\n", 'groupe_bouton');
$squelette->setRequiredNoteTemplate("\n".'<tr>'."\n".'<td colspan="2" class="symbole_obligatoire">* {requiredNote}</td></tr>'."\n");
//Traduction de champs requis
$this->setRequiredNote(INS_CHAMPS_REQUIS) ;
$this->setJsWarnings(INS_ERREUR_SAISIE,INS_VEUILLEZ_CORRIGER);
$script = '
// Variables globales
var map = null;
var geocoder = null;
var lat = document.getElementById("latitude");
var lon = document.getElementById("longitude");
function load() {
if (GBrowserIsCompatible()) {
map = new GMap2(document.getElementById("map"));
map.addControl(new GSmallMapControl());
map.addControl(new GMapTypeControl());
map.addControl(new GScaleControl());
map.enableContinuousZoom();
// On centre la carte
center = new GLatLng('.INS_GOOGLE_CENTRE_LAT.', '.INS_GOOGLE_CENTRE_LON.');
map.setCenter(center, '.INS_GOOGLE_ALTITUDE.');
//marker = new GMarker(center, {draggable: true}) ;
GEvent.addListener(map, "click", function(marker, point) {
if (marker) {
map.removeOverlay(marker);
var lat = document.getElementById("latitude");
var lon = document.getElementById("longitude");
lat.value = "";
lon.value = "";
} else {
// On ajoute un marqueur a l endroit du clic et on place les coordonnees dans les champs latitude et longitude
marker = new GMarker(point, {draggable: true}) ;
GEvent.addListener(marker, "dragend", function () {
coordMarker = marker.getPoint() ;
var lat = document.getElementById("latitude");
var lon = document.getElementById("longitude");
lat.value = coordMarker.lat();
lon.value = coordMarker.lng();
});
map.addOverlay(marker);
setLatLonForm(marker);
}
});' ;
if($_REQUEST['action'] == 'modifier') {
if ($GLOBALS['AUTH']->getAuthData(INS_CHAMPS_ID) != '') {
$id_utilisateur = $GLOBALS['AUTH']->getAuthData(INS_CHAMPS_ID) ;
}
$requete_defaut = 'select a_longitude, a_latitude from annuaire where a_id='.$id_utilisateur;
$resultat_defaut = $GLOBALS['ins_db']->query($requete_defaut);
$ligne = $resultat_defaut->fetchRow(DB_FETCHMODE_OBJECT) ;
if ($ligne->a_latitude != '' && $ligne->a_longitude != '') {
$script .= '
point = new GLatLng('.$ligne->a_latitude.', '.$ligne->a_longitude.');
marker = new GMarker(point, {draggable: true});
map.addOverlay(marker);' ;
}
}
$script .= 'geocoder = new GClientGeocoder();
};' .
'}
function showAddress() {
var adress_1 = document.getElementById("a_adresse1").value ;
if (document.getElementById("a_adresse2")) ' .
' var adress_2 = document.getElementById("a_adresse2").value ;' .
' else var adress_2 = "";
var ville = document.getElementById("a_ville").value ;
var cp = document.getElementById("a_code_postal").value ;
if (document.getElementById("a_ce_pays").type == "select-one") {
var selectIndex = document.getElementById("a_ce_pays").selectedIndex;
var pays = document.getElementById("a_ce_pays").options[selectIndex].text ;
} else {
var pays = document.getElementById("a_ce_pays").value;
}
var address = adress_1 + \' \' + adress_2 + \' \' + \' \' + cp + \' \' + ville + \' \' +pays ;
if (geocoder) {
geocoder.getLatLng(
address,
function(point) {
if (!point) {
alert(address + " not found");
} else {
map.setCenter(point, 13);
var marker = new GMarker(point, {draggable: true});
GEvent.addListener(marker, "dragend", function () {
coordMarker = marker.getPoint() ;
var lat = document.getElementById("latitude");
var lon = document.getElementById("longitude");
lat.value = coordMarker.lat();
lon.value = coordMarker.lng();
});
map.addOverlay(marker);
setLatLonForm(marker)
marker.openInfoWindowHtml(address+ "'.INS_GOOGLE_MSG.'");
}
}
);
}
}
function setLatLonForm(marker) {
coordMarker = marker.getPoint() ;
var lat = document.getElementById("latitude");
var lon = document.getElementById("longitude");
lat.value = coordMarker.lat();
lon.value = coordMarker.lng();
}
';
// Mise en place du systeme de template du bazar
include_once GEN_CHEMIN_API.'/formulaire/formulaire.fonct.inc.php';
$tableau= formulaire_valeurs_template_champs($GLOBALS['ins_config']['ic_inscription_template']);
 
if (isset ($_REQUEST['action']) && $_REQUEST['action']=='modifier') {
//Ajout des valeurs par defaut
if ($GLOBALS['AUTH']->getAuthData(INS_CHAMPS_ID) != '') {
$id_utilisateur = $GLOBALS['AUTH']->getAuthData(INS_CHAMPS_ID) ;
}
$requete_defaut = 'select * from annuaire where a_id='.$id_utilisateur;
$resultat_defaut = $GLOBALS['ins_db']->query($requete_defaut);
$valeurs_par_defaut = $resultat_defaut->fetchRow(DB_FETCHMODE_ASSOC);
for ($i=0; $i<count($tableau); $i++) {
if ( $tableau[$i]['type']=='liste' || $tableau[$i]['type']=='checkbox' ) {
if (is_int ($tableau[$i]['nom_bdd'])) $def=$tableau[$i]['type'].$tableau[$i]['nom_bdd'];
else $def = $tableau[$i]['nom_bdd'];
}
elseif ( $tableau[$i]['type']=='texte' || $tableau[$i]['type']=='textelong' ||
$tableau[$i]['type']=='listedatedeb' || $tableau[$i]['type']=='listedatefin' ||
$tableau[$i]['type']=='champs_mail' || $tableau[$i]['type']=='champs_cache'
|| $tableau[$i]['type']=='lien_internet' || $tableau[$i]['type']=='newsletter') {
$def=$tableau[$i]['nom_bdd'];
} elseif ($tableau[$i]['type']=='carte_google') {
$def = 'carte_google';
$valeurs_par_defaut[$def] = array ('latitude' => $valeurs_par_defaut[$tableau[$i]['limite1']],
'longitude' => $valeurs_par_defaut[$tableau[$i]['limite2']]);
GEN_stockerCodeScript($script);
// On ajoute l attribut load a la balise body
GEN_AttributsBody('onload', 'load()');
}
$tableau[$i]['type']($this, $tableau[$i]['nom_bdd'], $tableau[$i]['label'], $tableau[$i]['limite1'],
$tableau[$i]['limite2'], $valeurs_par_defaut[$def], $tableau[$i]['table_source'],
$tableau[$i]['obligatoire']) ;
}
}
else {
for ($i=0; $i<count($tableau); $i++) {
if ($tableau[$i]['type'] == 'carte_google') {
GEN_stockerCodeScript($script);
// On ajoute l attribut load a la balise body
GEN_AttributsBody('onload', 'load()');
}
$tableau[$i]['type']($this, $tableau[$i]['nom_bdd'], $tableau[$i]['label'], $tableau[$i]['limite1'],
$tableau[$i]['limite2'], $tableau[$i]['defaut'], $tableau[$i]['table_source'], $tableau[$i]['obligatoire']) ;
}
}
$debut = inscription::getTemplate(INS_TEMPLATE_TITRE_FORMULAIRE, $GLOBALS['ins_config']['ic_id_inscription'])."\n";
$this->addElement('html', $debut);
// on fait un groupe avec les boutons pour les mettres sur la meme ligne
$boutons[] = &HTML_QuickForm::createElement('button', 'annuler', INS_ANNULER, array ("onclick" => "javascript:document.location.href='".$url."'",
'id' => 'annuler', 'class' => 'bouton'));
$boutons[] = &HTML_QuickForm::createElement('submit', 'valider', INS_VALIDER, array ('id' => 'valider', 'class' =>'bouton'));
$this->addGroup($boutons, 'groupe_bouton', '', "\n");
if (isset ($GLOBALS['ins_config']['ic_google_key']) && $GLOBALS['ins_config']['ic_google_key'] != '') {
GEN_stockerFichierScript('googleMapScript', $GLOBALS['ins_config']['ic_google_key']);
}
} // end of member function construitFormulaire
/** Modifie le formulaire pour l'adapter au cas des structures
*
*
* @return void
* @access public
*/
function formulaireStructure()
{
/*
$this->removeElement('nom', false) ;
$this->removeElement('prenom') ;
$this->removeElement('email', false) ;
$this->removeElement('telephone', false) ;
$nom_structure = & HTML_QuickForm::createElement('text', 'nom', INS_NOM_STRUCTURE) ;
$this->insertElementBefore($nom_structure, 'mot_de_passe') ;
$mail = & HTML_QuickForm::createElement('text', 'email', INS_MAIL_STRUCTURE) ;
$this->insertElementBefore($mail, 'mot_de_passe') ;
$this->addRule('nom', INS_NOM_REQUIS, 'required', '', 'client') ;
/*
$sigle_structure = & HTML_QuickForm::createElement('text', 'sigle_structure', INS_SIGLE_DE_LA_STRUCTURE) ;
$this->insertElementBefore($sigle_structure, 'email') ;
*/
// not required
//$this->addRule('sigle_structure', INS_SIGLE_REQUIS, 'required', '', 'client') ;
// what's this ?
//$num_agrement = & HTML_QuickForm::createElement('text', 'num_agrement', INS_NUM_AGREMENT) ;
//$this->insertElementBefore($num_agrement, 'email') ;
/*
$telephone = & HTML_QuickForm::createElement('text', 'telephone', INS_TELEPHONE_STRUCTURE) ;
$this->insertElementBefore($telephone, 'lettre') ;
$fax = & HTML_QuickForm::createElement('text', 'fax', INS_FAX_STRUCTURE) ;
$this->insertElementBefore($fax, 'lettre') ;
$this->removeElement('site', false) ;
$site_structure = & HTML_QuickForm::createElement('text', 'site', INS_SITE_STRUCTURE) ;
$this->insertElementBefore($site_structure, 'lettre') ;
// bloc contact
$coord = & HTML_QuickForm::createElement('html', '<tr><td colspan="2"><strong>'.INS_COORD_CONTACT.'</strong></td></tr>') ;
$nom = & HTML_QuickForm::createElement('text', 'nom_contact', INS_NOM_CONTACT) ;
$prenom = & HTML_QuickForm::createElement('text', 'prenom_contact', INS_PRENOM_CONTACT) ;
$poste = & HTML_QuickForm::createElement('text', 'poste_contact', INS_POSTE_CONTACT) ;
$tel = & HTML_QuickForm::createElement('text', 'tel_contact', INS_TEL_CONTACT) ;
$this->insertElementBefore($coord, 'lettre') ;
$this->insertElementBefore($nom, 'lettre') ;
$this->insertElementBefore($prenom, 'lettre') ;
$this->insertElementBefore($poste, 'lettre') ;
$this->insertElementBefore($tel, 'lettre') ;
*/
$separateur = & HTML_QuickForm::createElement('html', '<tr><td colspan="2"><hr /></td></tr>') ;
$this->insertElementBefore($separateur, 'lettre') ;
//$fax = & HTML_QuickForm::createElement('text', 'fax', INS_FAX) ;
//$image = & HTML_QuickForm::createElement('file', 'image', INS_LOGO_OU_IMAGE) ;
//$this->insertElementBefore($image, 'lettre') ;
//$this->setMaxFileSize(150000); //logo de 150 ko maximum
$this->removeElement('est_structure', false) ;
$this->addElement('hidden', 'est_structure', 1) ;
$this->addElement('hidden', 'form_structure', 1) ;
}
/**
*
*
* @return string
* @access public
*/
function toHTML( )
{
$res = HTML_QuickForm::toHTML() ;
return $res ;
} // end of member function toHTML
}
 
?>
/tags/v4.0-djer/client/bottin/bibliotheque/annuaire_backoffice.fonct.php
New file
0,0 → 1,330
<?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.13 2007-11-08 09:26:20 alexandre_tb Exp $
 
 
/** function mkengine ()
*
*
*
* @return
*/
 
include_once PAP_CHEMIN_API_PEAR.'Pager/Pager.php' ;
include_once PAP_CHEMIN_API_PEAR.'HTML/Table.php';
 
function mkengine()
{
global $bouton, $HTTP_POST_VARS ;
$requete = mkquery() ;
//$ret = '<div>'. $requete .'</div>';
$ret = '';
// Deux requetes, une avec tous les resultats, l'autre avec les resultats affiches
 
$result_final = $GLOBALS['ins_db']->query($requete) ;
if (DB::isError($result_final)) {
echo $result_final->getMessage().'<br />'.$requete ;
}
$nbr_final = $result_final->numRows() ;
$_SESSION['requete_mail_tous'] = $requete ;
$donnees = array();
while ($ligne = $result_final->fetchRow(DB_FETCHMODE_ASSOC)) {
$donnees[] = $ligne ;
}
if (!isset($_REQUEST['setPerPage'])) $_REQUEST['setPerPage'] = 50 ;
$param_pager = array (
'mode' => 'Jumping',
'delta' => 5,
'itemData' => $donnees
) ;
$pager = & Pager::factory($param_pager);
$mes_vars = array ("recherche", "nom", "ville", "mail" ,"dept", "prenom", "cotisant", "pays", "sort", "T_REPONSE", "lettre","statut") ;
// Deux cas , soit on a clique sur rechercher, soit on a clique sur un lien
foreach ($mes_vars as $key=>$value) {
if (!$bouton) { // on a clique sur un lien
if (empty($HTTP_POST_VARS[$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 donnees dans la table (hors CACHER = 1)
$requete_nbre_inscrit = "select count(*) as CPT from ".INS_ANNUAIRE;
$resultat_nbre_inscrit = $GLOBALS['ins_db']->query($requete_nbre_inscrit) ;
 
if ($resultat_nbre_inscrit->numRows() == 1) {
$tmp_nb = $resultat_nbre_inscrit->fetchRow(DB_FETCHMODE_OBJECT);
$nbr_total = $tmp_nb->CPT;
$chaine = "parmi $nbr_total donn&eacute;es";
if ($nbr_total <= 0) $ret .= "<B>Erreur</B> lors du comptage des structures ($nbr_total trouv&eacute;es) : $requete_nbre_inscrit";
}
else $ret .= "<B>Erreur</B> lors du comptage des structures : $requete_nbre_inscrit";
 
 
// fin comptage
 
//$ret = '';
$ret .= '<h1>'.AM_L_TITRE.' '.$chaine.'</h1>'."\n" ;
// construction du moteur de str
$url = $GLOBALS['ins_url']->getURL();
isset ($_REQUEST['recherche']) ? $recherche = stripslashes($_REQUEST['recherche']) : $recherche = '';
// formulaire contenant les pays, avec par defaut soit le pays en cours
// soit "tous les pays"
$liste_pays = new ListeDePays($GLOBALS['ins_db']) ;
$tableau_pays = $liste_pays->getListePays(INS_LANGUE_DEFAUT) ;
foreach ($tableau_pays as $codeIso => $labelPays) {
if (!empty($pays)) {
$pays = $_REQUEST['pays'];
}
}
// Construction du <select> des departements
$requete_dpt = 'select '.INS_CHAMPS_ID_DEPARTEMENT.', '.INS_CHAMPS_NOM_DEPARTEMENT.' from '.INS_TABLE_DPT ;
$resultat_dpt = $GLOBALS['ins_db']->query($requete_dpt) ;
if (DB::isError($resultat_dpt)) {
echo 'Echec de la requete<br />'.$requete_dpt.'<br />'.$resultat_dpt->getMessage();
}
while ($ligne_dpt = $resultat_dpt->fetchRow(DB_FETCHMODE_ASSOC)) {
$tableau_dpt[$ligne_dpt[INS_CHAMPS_ID_DEPARTEMENT]] = $ligne_dpt[INS_CHAMPS_NOM_DEPARTEMENT];
if (isset ($_REQUEST['dept']) && $_REQUEST['dept'] == $ligne_dpt[INS_CHAMPS_ID_DEPARTEMENT]) {
$dpt = $_REQUEST['dept'];
}
}
$pager_select_box = $pager->getperpageselectbox (50 , 200, 50 , false ,'%d');
ob_start();
include_once INS_CHEMIN_SQUELETTE.INS_FICHIER_SQUELETTE_BACKOFFICE_MOTEUR ;
$ret .= ob_get_contents();
ob_end_clean();
// La liste des lettres de l'alphabet
for ($i = 65 ; $i <91 ; $i++) {
$GLOBALS['ins_url']->addQueryString('lettre', chr($i)) ;
$ret .= "\t<a href=\"".$GLOBALS['ins_url']->getURL();
$ret .= '">';
$ret .= chr($i) ;
$ret .= "</a> \n";
}
$GLOBALS['ins_url']->addQueryString ('lettre', 'tous') ;
$ret .= " <a href=\"".$GLOBALS['ins_url']->getURL().'">'.AM_L_TOUS."</a>\n" ;
//$ret .= "</div>\n" ;
$ret .= '<div>'.$nbr_final.' r&eacute;sultat(s)</div>' ;
$GLOBALS['ins_url']->removeQueryString('lettre') ;
// Menu Ajouter un inscrit
$GLOBALS['ins_url']->addQueryString('ajouter', '1') ;
$ret .= '<div><a href="'.$GLOBALS['ins_url']->getURL().'">'.INS_AJOUT_MEMBRE.'</a></div>'."\n";
$GLOBALS['ins_url']->removeQueryString('ajouter') ;
$data = $pager->getPageData();
$table = new HTML_Table(array ('class' => 'table_bazar')) ;
$table->addRow(array(
'<a href="'.$GLOBALS['ins_url']->getURL().'&amp;sort='.INS_CHAMPS_NOM.'">Identit&eacute;</a>',
'<a href="'.$GLOBALS['ins_url']->getURL().'&amp;sort='.INS_CHAMPS_MAIL.'">Adresse mail</a>',
'<a href="'.$GLOBALS['ins_url']->getURL().'&amp;sort='.INS_CHAMPS_VILLE.'">'.AM_L_VILLE.'</a>',
'Pays ou Dpt (fr)',
INS_SUPPRIMER
), '', 'TH') ;
$debut = isset($_REQUEST['pageID']) ? $_REQUEST['pageID'] : 1 ;
for ($i = ($debut - 1) * $_REQUEST['setPerPage'];
$i < $_REQUEST['setPerPage'] * $debut;
$i++) {
// On teste s'il y une valeur, si oui on ajoute la ligne
if (isset ($data[$i])) {
$urlPop = $GLOBALS['ins_url']->getURL().'&amp;'.INS_CHAMPS_ID.'='.$data[$i][INS_CHAMPS_ID];
$ligne_inscrit = array ("<a href=\"$urlPop\">".$data[$i][INS_CHAMPS_NOM].' '.$data[$i][INS_CHAMPS_PRENOM].
'</a>', $data[$i][INS_CHAMPS_MAIL], $data[$i][INS_CHAMPS_VILLE]) ;
// Pour la france on met le departement, sinon on laisse le nom du pays
if ($data[$i][INS_CHAMPS_PAYS] != 'fr') {
array_push ($ligne_inscrit, $data[$i][INS_CHAMPS_LABEL_PAYS]);
} else {
$req_dpt = 'select '.INS_CHAMPS_NOM_DEPARTEMENT.' from '.INS_TABLE_DPT.",".INS_ANNUAIRE.
" where ".INS_ANNUAIRE.'.'.INS_CHAMPS_ID.'='.$data[$i][INS_CHAMPS_ID] ;
$req_dpt .= " and ".INS_ANNUAIRE.'.'.INS_CHAMPS_DEPARTEMENT.'='.INS_TABLE_DPT.'.'
.INS_CHAMPS_ID_DEPARTEMENT ;
$resultat_dpt = $GLOBALS['ins_db']->query($req_dpt) ;
if (DB::isError($resultat_dpt)) {
echo $resultat_dpt->getMessage().$resultat_dpt->getDebugInfo();
}
$ligne_dpt = $resultat_dpt->fetchRow(DB_FETCHMODE_ASSOC) ;
array_push ($ligne_inscrit, $ligne_dpt[INS_CHAMPS_NOM_DEPARTEMENT]) ;
}
$GLOBALS['ins_url']->addQueryString(ANN_VARIABLE_ACTION, ANN_ACTION_SUPPRIMER_INSCRIT);
$GLOBALS['ins_url']->addQueryString(INS_VARIABLE_ID_INSCRIT, $data[$i][INS_CHAMPS_ID]);
array_push ($ligne_inscrit, '<a href="'.$GLOBALS['ins_url']->getURL().
'" onclick="javascript:return confirm(\''.INS_SUPPRIMER.' ?\');">'.INS_SUPPRIMER.'</a>');
$GLOBALS['ins_url']->removeQueryString(ANN_VARIABLE_ACTION);
$GLOBALS['ins_url']->removeQueryString(INS_VARIABLE_ID_INSCRIT);
$table->addRow($ligne_inscrit) ;
}
}
$ret .= $table->toHTML();
$links = $pager->getLinks();
$ret .= $links['all'] ;
 
$ret .= '<div><a href="'.$GLOBALS['ins_url']->getURL().'&amp;action='.ANN_MAIL_TOUS
.'">'.AM_L_MAIL_SELECTION."</a></div>\n" ;
return $ret;
}
 
 
function mkquery()
{
// Requete sur l'annuaire pour extraire le nom, prenom, ville, nom du departement (jointure),
// l'etat 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" => INS_CHAMPS_NOM, "prenom" => INS_CHAMPS_PRENOM , "mail" => INS_CHAMPS_MAIL , "ville" => INS_CHAMPS_VILLE,
"dept" => INS_CHAMPS_DEPARTEMENT, "pays" => INS_CHAMPS_PAYS ) ;
 
$mes_vars = array ("recherche", "nom", "ville", "mail" ,"dept", "prenom", "cotisant", "pays", "sort", "T_REPONSE", "lettre","statut") ;
 
$queries = "select ".INS_ANNUAIRE.".*" ;
$queries .= ", ".INS_TABLE_PAYS.'.'.INS_CHAMPS_LABEL_PAYS ;
$queries .= " from ".INS_ANNUAIRE ;
$queries .= ",".INS_TABLE_PAYS ;
// Construction en fonction des champs saisies
// juste le champs "rechercher", on regarde partout
$where = ' where ' ;
if (isset ($_REQUEST['recherche']) && $_REQUEST['recherche'] != "") {
$where .= '('.INS_CHAMPS_NOM.' like "%'.$_REQUEST['recherche'].'%"' ; // le premier
foreach($fields_annu as $key=>$value) {
if ($key == "nom" || $key == 'dept') continue ;
$where .= ($key == "pays" ?
$_REQUEST['pays'] == "tous" ? ")" :
") and $value = '".$_REQUEST['pays']."'" : ' or '.$value.' like "%'.$_REQUEST['recherche'].'%"') ; // les autres
}
if (isset ($_REQUEST['dept']) && $_REQUEST['dept'] != 'tous') {
$where .= 'and '.INS_CHAMPS_DEPARTEMENT.'="'.$_REQUEST['dept'].'"' ;
}
} else {
 
// si un ou plusieurs autres champs ont ete indique, on les rajoute ici
 
$or_flag = false ;
foreach($fields_annu as $key=>$valeur) {
if ($key != "") {
if ($key == "pays") {
if (!isset($_REQUEST[$key]) || $_REQUEST[$key] == "tous") {
$where .= " and ".INS_CHAMPS_PAYS." like '%'";
} else {
$where .= " and $valeur like \"%".$_REQUEST[$key]."%\"" ;
}
} else {
if ($key == "dept") {
if (isset($_REQUEST[$key]) && $_REQUEST[$key] != "tous") {
$where .= " and ".INS_CHAMPS_DEPARTEMENT."=".$_REQUEST[$key] ;
if ($fields_annu["pays"] != "fr") $where .= " and ".INS_CHAMPS_PAYS."=\"fr\"" ;
}
} else {
if (isset ($_REQUEST[$key]) && $or_flag) {
$where .= "$valeur like \"%".$_REQUEST[$key]."%\"" ;
} else {
$where .= "$valeur like \"%%\"" ;
}
if ($key != "ville") $where .= " and " ;
}
}
$or_flag = true ;
}
}
// ici le cas ou rien n'a ete saisie du tout, on affiche tout
if (!$or_flag) {
$where .= INS_CHAMPS_NOM." like '%')" ;
}
}
 
if (isset($_REQUEST['lettre'])) {
if ($_REQUEST['lettre'] == 'tous') $_REQUEST['lettre'] = '';
$where = ' where '.INS_CHAMPS_NOM.' like "'.$_REQUEST['lettre'].'%"' ;
}
$where .= " and ".INS_ANNUAIRE.".".INS_CHAMPS_PAYS."=".INS_TABLE_PAYS.".".INS_CHAMPS_ID_PAYS."" ;
 
if (isset($nom) && $nom != "") $where .= " and ".INS_CHAMPS_NOM." like \"%$nom%\"" ;
if (isset($_REQUEST['prenom']) && $_REQUEST['prenom'] != "")
$where .= " and ".INS_CHAMPS_PRENOM.' like "%'.$_REQUEST['prenom'].'%"' ;
if (isset($ville) && $ville != "") $where .= " and ".INS_CHAMPS_VILLE." like \"%$ville%\"" ;
if (isset($mail) && $mail != "") $where .= " and ".INS_CHAMPS_MAIL." like \"%$mail%\"" ;
$where .= ' and gip_id_i18n like "%'.$GLOBALS['lang'].'%"' ;
 
if (isset ($_REQUEST['lettre']) && $_REQUEST['lettre'] == "tous") $_REQUEST['lettre'] = "" ;
if (!isset ($_REQUEST['lettre'])) $_REQUEST['lettre'] = '' ;
 
$queries .= $where ;
if (isset($_REQUEST['sort']) && $_REQUEST['sort'] != "") $queries .= ' order by '.$_REQUEST['sort'] ;
return $queries;
}
 
function ajouterInscrit() {
$res = '';
$GLOBALS['ins_url']->addQueryString ('ajouter', '1');
$GLOBALS['ins_url']->addQueryString ('ajouter_v', '1');
$formulaire = new HTML_formulaireInscription('inscription', '',
str_replace ('&amp;', '&', $GLOBALS['ins_url']->getURL()), '', '') ;
$formulaire->construitFormulaire(str_replace ('&amp;', '&', $GLOBALS['ins_url']->getURL())) ;
$msg = '';
if (isset($_REQUEST['ajouter_v'])) {
if ($formulaire->validate()) {
$id_utilisateur = insertion($formulaire->getSubmitValues()) ;
// Appel des actions desinscriptions des applications clientes
$d = dir(GEN_CHEMIN_CLIENT);
while (false !== ($repertoire = $d->read())) {
if (file_exists(GEN_CHEMIN_CLIENT.$repertoire.GEN_SEP.$repertoire.'.inscription.inc.php'))
include_once GEN_CHEMIN_CLIENT.$repertoire.GEN_SEP.$repertoire.'.inscription.inc.php' ;
$msg .= GEN_CHEMIN_CLIENT.$repertoire.GEN_SEP.$repertoire.'.inscription.inc.php<br />';
}
$d->close();
if (INS_CHAMPS_LETTRE != '' && isset ($valeurs['lettre'])) {
inscription_lettre(INS_MAIL_INSCRIPTION_LISTE) ;
}
if (!isset ($msg)) $msg = '';
return $msg.mkengine();
}
}
return $formulaire->toHTML();
}
?>
/tags/v4.0-djer/client/bottin/bibliotheque/bottin.fonct.php
New file
0,0 → 1,1424
<?php
 
//vim: set expandtab tabstop=4 shiftwidth=4:
// +-----------------------------------------------------------------------------------------------+
// | PHP version 4.0 |
// +-----------------------------------------------------------------------------------------------+
// | Copyright (c) 1997, 1998, 1999, 2000, 2001 The PHP Group |
// +-----------------------------------------------------------------------------------------------+
// | This source file is subject to version 2.0 of the PHP license, |
// | that is bundled with this package in the file LICENSE, and is |
// | available at through the world-wide-web at |
// | http://www.php.net/license/2_02.txt. |
// | If you did not receive a copy of the PHP license and are unable to |
// | obtain it through the world-wide-web, please send a note to |
// | license@php.net so we can mail you a copy immediately. |
// +-----------------------------------------------------------------------------------------------+
/**
*
*Fichier des fonctions du bottin
*
*@package bottin
//Auteur original :
*@author Florian SCHMITT <florian@ecole-et-nature.org>
//Autres auteurs :
*@copyright Outils-reseaux 2006-2040
*@version 05 avril 2006
// +-----------------------------------------------------------------------------------------------+
//
// $Id$
// FICHIER : $RCSfile$
// AUTEUR : $Author$
// VERSION : $Revision$
// DATE : $Date$
*/
 
 
include_once 'inscription.fonct.wiki.php' ;
if (INS_UTILISE_SPIP) include_once 'inscription.fonct.spip.php' ;
include_once PAP_CHEMIN_API_PEAR.'HTML/QuickForm.php';
include_once PAP_CHEMIN_RACINE.'api/formulaire/formulaire.fonct.inc.php';
/** function inscription_onglets() Affiche les onglets de présentation de la structure
*
*
*
* @return string HTML
*/
function inscription_onglets() {
//on trouve l'id de la fiche en fonction de l'onglet choisi auparavant
if (isset($_GET['voir_fiche'])) {
$id_fiche=$_GET['voir_fiche'];
} elseif (isset($_GET['voir_abonnement'])) {
$id_fiche=$_GET['voir_abonnement'];
} elseif (isset($_GET['voir_actus'])) {
$id_fiche=$_GET['voir_actus'];
} elseif (isset($_GET['voir_ressources'])) {
$id_fiche=$_GET['voir_ressources'];
} elseif (isset($_GET['voir_competences'])) {
$id_fiche=$_GET['voir_competences'];
} else {
$id_fiche = '';
}
//preparation de l'affichage des onglets
$res='<ul id="onglets_inscription">'."\n";
//partie présentation
$GLOBALS['ins_url']->addQueryString('voir_fiche', $id_fiche);
$res .= '<li id="fiche"';
if (isset($_GET['voir_fiche'])) $res .= ' class="onglet_actif" ';
$res .= '><a href="'.$GLOBALS['ins_url']->getURL().'">'.INS_PRESENTATION.'</a>'."\n".'</li>'."\n";
$GLOBALS['ins_url']->removeQueryString('voir_fiche');
if ($id_fiche==$GLOBALS['AUTH']->getAuthData(INS_CHAMPS_ID)) {
//partie abonnement
$GLOBALS['ins_url']->addQueryString('voir_abonnement', $id_fiche);
$res .= '<li id="abonnements"';
if (isset($_GET['voir_abonnement'])) $res .= ' class="onglet_actif" ';
$res .= '><a href="'.$GLOBALS['ins_url']->getURL().'">'.INS_ABONNEMENTS.'</a></li>'."\n" ;
$GLOBALS['ins_url']->removeQueryString('voir_abonnement');
}
//partie actualites
$GLOBALS['ins_url']->addQueryString('voir_actus', $id_fiche);
$res .= '<li id="actus"><a href="'.$GLOBALS['ins_url']->getURL().'">'.INS_ACTUALITES.'</a>'."\n".'</li>'."\n";
$GLOBALS['ins_url']->removeQueryString('voir_actus');
//partie ressources
$GLOBALS['ins_url']->addQueryString('voir_ressources', $id_fiche);
$res .= '<li id="ressources"><a href="'.$GLOBALS['ins_url']->getURL().'">'.INS_RESSOURCES.'</a>'."\n".'</li>'."\n";
$GLOBALS['ins_url']->removeQueryString('voir_ressources');
//partie competences
//$GLOBALS['ins_url']->addQueryString('voir_competences', $id_fiche);
//$res .= '<li id="competences"><a href="'.$GLOBALS['ins_url']->getURL().'">'.INS_COMPETENCES.'</a>'."\n".'</li>'."\n";
//$GLOBALS['ins_url']->removeQueryString('voir_competences');
$res.= '</ul>'."\n";
return $res;
}
 
/** function affiche_onglet_info() sélectionne le type d'information à montrer pour une fiche
*
*
*
* @return string HTML
*/
function affiche_onglet_info() {
include_once INS_CHEMIN_APPLI.'bibliotheque/inscription.fonct.php';
include_once INS_CHEMIN_APPLI.'bibliotheque/inscription.class.php';
if ( isset($_GET['voir_fiche']) ) {
$res=info($_GET['voir_fiche'], 'fiche');
} elseif (isset($_GET['voir_abonnement'])) {
$res=info($_GET['voir_abonnement'], 'abonnement');
} elseif (isset($_GET['voir_actus'])) {
$res=info($_GET['voir_actus'], 'actus');
} elseif (isset($_GET['voir_ressources'])) {
$res=info($_GET['voir_ressources'], 'ressources');
} elseif (isset($_GET['voir_competences'])) {
$res=info($_GET['voir_competences'], 'competences');
}
return $res;
}
 
/** function Annuaire_recherche () Moteur de recherche dans l'annuaire des inscrits
*
*
*
* @return string HTML
*/
function Annuaire_recherche() {
$res ='<h2>'.INS_RECHERCHE_ANNUAIRE_DES_INSCRITS.'</h2>'."\n";
$form =& new HTML_QuickForm('form_recherche_annuaire', 'post', str_replace('&amp;', '&', $GLOBALS['ins_url']->getURL()));
$squelette =& $form->defaultRenderer();
$squelette->setFormTemplate("\n".'<form{attributes}>'."\n".'<table>'."\n".'{content}'."\n".'</table>'."\n".'</form>'."\n");
$squelette->setElementTemplate( '<tr>'."\n".
'<td style="padding:5px;text-align:right;">{label}'.
'<!-- BEGIN required --><span class="symbole_obligatoire">*</span><!-- END required -->'."\n".
'<!-- BEGIN error --><span class="erreur">{error}</span><!-- END error -->'."\n".
' : </td>'."\n".
'<td style="padding:5px;text-align:left;">{element}</td>'."\n".
'</tr>'."\n" );
$squelette->setElementTemplate( '<tr>'."\n".'<td colspan=2 style="padding:5px;">{label}{element}</td>'."\n".'</tr>'."\n", 'bouton_rechercher');
$option_type=array ('0' => INS_PERSONNES_OU_STRUCTURES,
'1' => INS_PERSONNES,
'2' => INS_STRUCTURES);
$form->addElement('select', 'nom_type', INS_JE_RECHERCHE, $option_type);
//requete pour recuperer la liste des pays
$requete = 'SELECT '.INS_CHAMPS_ID_PAYS.', '.INS_CHAMPS_LABEL_PAYS.' FROM '.INS_TABLE_PAYS.' WHERE '.INS_CHAMPS_I18N_PAYS.'="fr-FR"';
$resultat = $GLOBALS['ins_db']->query($requete) ;
if (DB::isError($resultat)) {
die ("Echec de la requete : $requete<br />".$resultat->getMessage()) ;
}
$option_pays = array('zz' => INS_TOUS_PAYS) ;
while ($ligne = $resultat->fetchRow(DB_FETCHMODE_ASSOC)) {
$option_pays[$ligne[INS_CHAMPS_ID_PAYS]] = $ligne[INS_CHAMPS_LABEL_PAYS] ;
}
$form->addElement('select', 'nom_pays', INS_PAYS, $option_pays);
//requete pour recuperer la liste des départements
$requete = 'SELECT '.INS_CHAMPS_ID_DEPARTEMENT.', '.INS_CHAMPS_NOM_DEPARTEMENT.' FROM '.INS_TABLE_DPT;
$resultat = $GLOBALS['ins_db']->query($requete) ;
if (DB::isError($resultat)) {
die ("Echec de la requete : $requete<br />".$resultat->getMessage()) ;
}
$option_departements = array('0' => INS_TOUS_DEPARTEMENTS) ;
while ($ligne = $resultat->fetchRow(DB_FETCHMODE_ASSOC)) {
$option_departements[$ligne[INS_CHAMPS_ID_DEPARTEMENT]] = $ligne[INS_CHAMPS_NOM_DEPARTEMENT] ;
}
$form->addElement('select', 'nom_departement', INS_DEPARTEMENT_POUR_LA_FRANCE, $option_departements);
$form->addElement('text', 'nom_annuaire', INS_NOM_ANNUAIRE);
$form->addElement('submit', 'bouton_rechercher', INS_RECHERCHER);
//valeurs par defaut
$defauts=array('nom_pays'=>'fr','nom_departement'=>'0');
$form->setDefaults($defauts);
//affichage du formulaire
$res .=$form->toHtml();
//on teste si l'on affiche le resultat de la recherche ou
if (isset($_POST['nom_type'])) {
$requete = 'SELECT '.INS_CHAMPS_ID.', '.INS_CHAMPS_NOM.', '.INS_CHAMPS_PRENOM.', '.INS_CHAMPS_VILLE.', '.INS_CHAMPS_CODE_POSTAL;
$requete .= ' FROM '.INS_ANNUAIRE.' WHERE ';
$req_where=0;
if ($_POST['nom_type']==1) {
$requete .= INS_CHAMPS_EST_STRUCTURE.'=0 ';
$req_where=1;
} elseif ($_POST['nom_type']==2) {
$requete .= INS_CHAMPS_EST_STRUCTURE.'=1 ';
$req_where=1;
}
if ($_POST['nom_pays']!='0'and$_POST['nom_pays']!='zz') {
if ($req_where) {
$requete .= 'AND ';
} else {
$req_where=1;
}
$requete .= INS_CHAMPS_PAYS.'="'.$_POST['nom_pays'].'" ';
}
if ($_POST['nom_departement']!='0') {
if ($req_where) {
$requete .= 'AND ';
} else {
$req_where=1;
}
$requete .= INS_CHAMPS_DEPARTEMENT.'="'.$_POST['nom_departement'].'" ';
}
if ($_POST['nom_annuaire']!='') {
if ($req_where) {
$requete .= 'AND ';
} else {
$req_where=1;
}
$requete .= '('.INS_CHAMPS_NOM.' LIKE "%'.$_POST['nom_annuaire'].'%"'.
' OR '.INS_CHAMPS_PRENOM.' LIKE "%'.$_POST['nom_annuaire'].'%"'.
' OR '.INS_CHAMPS_SIGLE_STRUCTURE.' LIKE "%'.$_POST['nom_annuaire'].'%"'.
' OR '.INS_CHAMPS_DESCRIPTION.' LIKE "%'.$_POST['nom_annuaire'].'%") ';
}
if (!$req_where) $requete .= '1';
$requete .=' ORDER BY '.INS_CHAMPS_NOM;
$resultat = $GLOBALS['ins_db']->query($requete);
if ($resultat->numRows()>0) {
$res .='<h2>'.INS_RESULTATS_RECHERCHE.' ('.$resultat->numRows().' '.INS_ENTREES.')</h2>'."\n";
$res .='<p class="zone_info">'.INS_CLIQUER_ELEMENT_LISTE.'</p>'."\n";
$i=0;
while ($ligne = $resultat->fetchRow(DB_FETCHMODE_ASSOC)) {
$donnees_membres[$i++]=$ligne;
}
$res .= listes_inscrit($donnees_membres);
}
else {
$res .='<h2>'.INS_RESULTATS_RECHERCHE.'</h2>'."\n";
$res .= '<p class="zone_alert">'.INS_PAS_DE_RESULTATS.'</p>'."\n";
}
} else {
$res .='<h2>'.INS_DIX_DERNIERES_INSCRIPTIONS.'</h2>'."\n";
$requete = 'SELECT '.INS_CHAMPS_ID.', '.INS_CHAMPS_NOM.', '.INS_CHAMPS_PRENOM.', '.INS_CHAMPS_VILLE.', '.INS_CHAMPS_CODE_POSTAL;
$requete .= ' FROM '.INS_ANNUAIRE.' ORDER BY '.INS_CHAMPS_DATE.' DESC LIMIT 0 , 10';
$resultat = $GLOBALS['ins_db']->query($requete);
if ($resultat->numRows()>0) {
$i=0;
while ($ligne = $resultat->fetchRow(DB_FETCHMODE_ASSOC)) {
$donnees_membres[$i++]=$ligne;
}
$res .= listes_inscrit($donnees_membres, 0);
}
else {
$res .= '<p class="zone_alert">'.INS_PAS_DE_RESULTATS.'</p>'."\n";
}
}
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, $affiche_form_mail=1) {
$res = '';
if ($GLOBALS['AUTH']->getAuth()&&$affiche_form_mail) {$res .= '<form action="'.$GLOBALS['ins_url']->getURL().'" method="post" name="formmail">'."\n";}
$res .= '<ul style="clear:both;">'."\n";
if ($GLOBALS['AUTH']->getAuth()&&$affiche_form_mail) {
$res .= '<form action="'.$GLOBALS['ins_url']->getURL().'" method="post" name="formmail">'."\n";
}
$res .= '<ul>'."\n";
for ($i=0;$i<count($donnees_membres);$i++) {
$id = array_shift($donnees_membres[$i]);
$GLOBALS['ins_url']->addQueryString('voir_fiche', $id);
$res .= '<li>'."\n";
if ($GLOBALS['AUTH']->getAuth()&&$affiche_form_mail) {
$res.='<input type="checkbox" name="select[]" value="'.$id.'" />'."\n";
}
$res .= '<a href="'.$GLOBALS['ins_url']->getURL().'">'."\n";
$res .= '<strong>'.$donnees_membres[$i][INS_CHAMPS_NOM].
'&nbsp;'.$donnees_membres[$i][INS_CHAMPS_PRENOM].'</strong>'."\n".
'&nbsp;'.$donnees_membres[$i][INS_CHAMPS_CODE_POSTAL].
'&nbsp;'.$donnees_membres[$i][INS_CHAMPS_VILLE];
$res .= '</a>'."\n".'</li>'."\n";
}
$res .= '</ul>'."\n";
if ($GLOBALS['AUTH']->getAuth()&&$affiche_form_mail) {
$res .= INS_CHECK_UNCHECK ;
$res .= '&nbsp;<input type="checkbox" name="selecttotal" onclick="javascript:setCheckboxes(\'formmail\');"><br />';
$res .= '<h3>'.INS_ENVOYER_MAIL.'</h3>'."\n";
$res .= '<p style="text-align:right;">'.INS_SUJET.'&nbsp;:&nbsp;<input style="border:1px solid #000;width:450px;" type="text" name="titre_mail"><br />'."\n".
INS_MESSAGE.'&nbsp;:&nbsp;<textarea style="border:1px solid #000;width:450px;" name="corps" rows="5" cols="60"></textarea></p>'."\n".
'<p style="width:100px;margin:4px auto;text-align:center;"><input name="bouton_envoi_mail" type="submit" value="'.INS_ENVOYER.'" /></p>'."\n".
'<p style="width:100px;margin:4px auto;text-align:center;"><input type="submit" value="'.INS_ENVOYER.'" /></p>'."\n".
'<input type="hidden" name="fin" value="true" /><input type="hidden" name="mailer" value="1" />'.
'</form>'."\n";
} else {
if ($affiche_form_mail) $res .='<br /><p class="zone_info">'.INS_PAS_IDENTIFIE.'</p>'."\n";
}
return $res ;
}
 
 
 
/** envoie_mail_depuis_annuaire()
*
*
* @return envoie l'email
*/
 
function envoie_mail_depuis_annuaire() {
$requete = "select ".INS_CHAMPS_MAIL." 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());
}
$ligne = $resultat->fetchRow(DB_FETCHMODE_ASSOC);
$entete = "From: <".$ligne[INS_CHAMPS_MAIL].">\n";
$_POST['corps'] .= INS_PIED_MESSAGE;
$_POST['corps'] = stripslashes($_POST['corps']) ;
$liste = "" ;
$liste_numero = implode (',', $_POST['select']) ;
$requete_liste_mail = 'select '.INS_CHAMPS_MAIL.' from '.INS_ANNUAIRE.' where '.INS_CHAMPS_ID.
' in ('.$liste_numero.')' ;
$resultat_liste_mail = $GLOBALS['ins_db']->query($requete_liste_mail);
while ($ligne_liste_mail = $resultat_liste_mail->fetchRow(DB_FETCHMODE_ASSOC)) {
mail ($ligne_liste_mail[INS_CHAMPS_MAIL], stripslashes($_POST['titre_mail']), $_POST['corps'] , $entete) ;
$liste .= $ligne_liste_mail[INS_CHAMPS_MAIL]."\n" ;
}
$_POST['corps'] .= "\n----------------------------------------------------------------------------";
$_POST['corps'] .= "\n".INS_MESSAGE_ENVOYE_A." :\n $liste" ;
mail (INS_MAIL_ADMIN_APRES_INSCRIPTION, stripslashes($_POST['titre_mail']), $_POST['corps'], $entete);
$_POST['corps'] = '';
$_POST['titre_mail'] = '';
return '<div>'.INS_MAIL_ENVOYE.'</div>' ;
}
 
/** function carto_liste_fiches()
*
*
* @return string HTML
*/
function carto_liste_fiches(&$monde, $nom_table1, $nom_table2, $nom_champs_pays, $nom_champs_cp, $requete_sql) {
 
global $mailer;
global $select;//utilisé dans liste_inscrit.php
$javascript = "
function confirmer () {
if (window.confirm ('Cliquez sur OK pour confirmer.')) {
window.formmail.submit();
}
}
 
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($javascript);
 
$res = '';
$tabmonde = explode ('*',$monde->historique);
// Premier cas, on vient de cliquer sur un pays qui n'est pas
// la France, on affiche les adhérents de ce pays
if (count($tabmonde) == 3) {
$argument = $tabmonde[2];
$query = 'SELECT * FROM carto_PAYS WHERE CP_ID_pays="'.$argument.'"';
$result = $GLOBALS['ins_db']->query($query);
if (DB::isError($result)) {
die ($result->getMessage().'<br />'.$result->getDebugInfo()) ;
}
$row = $result->fetchRow(DB_FETCHMODE_OBJECT) ;
$pays = $row->CP_Intitule_pays;
$monde->nom = $monde->nom.'*'.$pays;
$tabonglet = explode ('*', $monde->historique);
$tabnom = explode ('*', $monde->nom);
$res .='<br /><strong>'.INS_RETOUR_A_LA_CARTE."\n";
foreach ($tabonglet as $key => $value) {
if ($key == 0) {
$chemin = $value;
$value = 'monde';
$res .= "<a class=\"chemin_carto\" href=\"".$monde->url."&amp;historique_cartes=$chemin\">&nbsp;&gt;&nbsp;".$tabnom[$key]."</a>";
} else if ($key == (count($tabonglet)-1)) {
$res .= "<a class=\"chemin_carto\">&nbsp;&gt;&nbsp;$pays</a>";
} else {
$chemin .= '*'.$value;
$res .= "<a class=\"chemin_carto\" href=\"".$monde->url."&amp;historique_cartes=$chemin\">&nbsp;&gt;&nbsp;".$tabnom[$key]."</a>";
}
}
$res .= '</strong>'."\n";
$capitale = $row->CP_Intitule_capitale;
$query2 = ' SELECT count('.$nom_champs_cp.') as nbr'.
' FROM '.$nom_table1;
if ($nom_table2!=0) $query2 .= ', '.$nom_table2;
$query2 .= ' WHERE '.$nom_champs_pays.'="'.$argument.'"';
if ($requete_sql!='') $query2 .= ' AND ('.$requete_sql.')';
$result2 = $GLOBALS['ins_db']->query($query2);
if (DB::isError($result2)) {
die ($result2->getMessage().'<br />'.$result2->getDebugInfo()) ;
}
$row2 = $result2->fetchRow(DB_FETCHMODE_OBJECT) ;
$res .= '<br /><br /><div class="info_pays">'.$pays.' (capitale: '.$capitale.') : ' ;
if ($row2->nbr == 0) {
$res .= INS_AUCUN_INSCRIT.' '.INS_LABEL_PROJET ;
}
else if ($row2->nbr == 1) {
$res .= $row2->nbr.' '.INS_INSCRIT.' '.INS_LABEL_PROJET ;
}
else {
$res .= $row2->nbr.' '.INS_INSCRIT.'s '.INS_LABEL_PROJET ;
}
$res .= "</div>\n";
if ($row2->nbr>0) {
if ((INS_NECESSITE_LOGIN)and(!$GLOBALS['AUTH']->getAuth())) {
$res .= '<br /><p class="zone_alert">'.INS_VOUS_DEVEZ_ETRE_INSCRIT.'</p>'."\n" ;
}
else {
$requete = 'SELECT '.INS_CHAMPS_ID.', '.INS_CHAMPS_NOM.', '.INS_CHAMPS_PRENOM.', '.INS_CHAMPS_VILLE.', '.INS_CHAMPS_CODE_POSTAL.' FROM '.$nom_table1;
if ($nom_table2!=0) $requete .= ', '.$nom_table2;
$requete .= ' WHERE '.$nom_champs_pays.'="'.$argument.'"';
if ($requete_sql!='') $requete .= ' AND ('.$requete_sql.')';
$requete .= ' ORDER BY '.INS_CHAMPS_NOM.', '.INS_CHAMPS_PRENOM;
$resultat = $GLOBALS['ins_db']->query($requete);
$i=0;
while ($ligne = $resultat->fetchRow(DB_FETCHMODE_ASSOC)) {
$donnees_membres[$i++]=$ligne;
}
$res .= listes_inscrit($donnees_membres, 1);
if ($mailer==1) {
if (!is_array($select)) {
$res .= "<div>".INS_NO_DESTINATAIRE."</div>";
}
else {
$res .= '<div class="zone_info">'.INS_MESSAGE_ENVOYE.'</div>'."\n" ;
carto_envoie_mail() ;
}
}
else {
$res .= carto_texte_cocher() ;
}
$res .= carto_formulaire() ;
}
}
// 2 ème cas, on vient de cliquer sur un département français
} else if (count($tabmonde) == 4) {
$argument = $tabmonde[3];
$query = 'SELECT * FROM '.INS_TABLE_DPT.' WHERE '.INS_CHAMPS_ID_DEPARTEMENT.'='.$argument;
$result = $GLOBALS['ins_db']->query($query);
if (DB::isError($result)) {
die ($result->getMessage() .'<br />'.$result->getDebugInfo());
}
$row = $result->fetchRow(DB_FETCHMODE_ASSOC);
$nom = $row[INS_CHAMPS_NOM_DEPARTEMENT];
$query2 = ' SELECT count('.$nom_champs_cp.') as nbr'.
' FROM '.$nom_table1;
if ($nom_table2!=0) $query2 .= ', '.$nom_table2;
$query2 .= ' WHERE '.$nom_champs_cp.' LIKE "'.$argument.'%"'.
' AND '.$nom_champs_pays.'="FR"';
if ($requete_sql!='') $query2 .= ' AND ('.$requete_sql.')';
$result2 = $GLOBALS['ins_db']->query($query2);
if (DB::isError($result2)) {
die ($result2->getMessage().'<br />'.$result2->getDebugInfo()) ;
}
$row2 = $result2->fetchRow(DB_FETCHMODE_OBJECT);
$res .= '<br /><p class="zone_info">'."\n" ;
if ($row2->nbr == 0) {
$res .= INS_AUCUN_INSCRIT." ".INS_LABEL_PROJET ;
}
else if ($row2->nbr == 1) {
$res .= $row2->nbr." ".INS_INSCRIT." ".INS_LABEL_PROJET ;
}
else {
$res .= $row2->nbr." ".INS_INSCRIT."s ".INS_LABEL_PROJET ;
}
$res .= '</p>'."\n";
if ($row2->nbr>0) {
if ((INS_NECESSITE_LOGIN)and(!$GLOBALS['AUTH']->getAuth())) {
$res .= '<br /><p class="zone_alert">'.INS_VOUS_DEVEZ_ETRE_INSCRIT.'</p>'."\n" ;
} else {
$requete = 'SELECT '.INS_CHAMPS_ID.', '.INS_CHAMPS_NOM.', '.INS_CHAMPS_PRENOM.', '.INS_CHAMPS_VILLE.', '.INS_CHAMPS_CODE_POSTAL.' FROM '.$nom_table1;
if ($nom_table2!=0) $requete .= ', '.$nom_table2;
if (strlen($argument)==1) {
$argument='0'.$argument;
}
$requete .= ' WHERE '.$nom_champs_cp.' LIKE "'.$argument.'%"'.
' AND '.$nom_champs_pays.'="FR"';
if ($requete_sql!='') $requete .= ' AND ('.$requete_sql.')';
$requete .= ' ORDER BY '.INS_CHAMPS_NOM.', '.INS_CHAMPS_PRENOM;
$resultat = $GLOBALS['ins_db']->query($requete);
$i=0;
while ($ligne = $resultat->fetchRow(DB_FETCHMODE_ASSOC)) {
$donnees_membres[$i++]=$ligne;
}
$res .= listes_inscrit($donnees_membres, 1);
if ($mailer==1) {
if (!is_array($select)) {
$res.= INS_NO_DESTINATAIRE;
} else {
$res .= '<p class="zone_info">'.INS_MESSAGE_ENVOYE."</p>\n" ;
carto_envoie_mail() ;
}
}
}
}
}
return $res;
}
 
 
/** function carto_texte_cocher ()
*
*
* @return string HTML
*/
function carto_texte_cocher() {
$res = '<br />'.INS_CHECK_UNCHECK ;
$res .= '&nbsp;<input type="checkbox" name="selecttotal" onclick="javascript:setCheckboxes(\'formmail\');" />'."\n";
return $res ;
}
 
 
/** function carto_formulaire ()
*
*
*
* @return string HTML
*/
function carto_formulaire($titre_mail="", $corps="") {
$res = '<br /><h2>'.INS_ENVOYER_MAIL.'</h2><br />'."\n".
INS_SUJET.' :<br /><input class="forml" type="text" name="titre_mail" size="60" value="'.$titre_mail.'" /><br /><br />'."\n".
INS_MESSAGE.' :<br /><textarea class="forml" name="corps" rows="5" cols="60">'.$corps.'</textarea><br /><br />'."\n".
'<input class="bouton" type="submit" onclick="javascript:confirmer();" value="'.INS_ENVOYER.'" />'."\n".
'</form>'."\n";
return $res ;
}
 
/** envoie_mail()
*
*
* @return envoie l'email
*/
function carto_envoie_mail() {
$requete = 'SELECT '.INS_CHAMPS_MAIL.' 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());
}
$ligne = $resultat->fetchRow(DB_FETCHMODE_ASSOC);
 
include_once PAP_CHEMIN_API_PEAR.'Mail.php' ;
$entetes['From'] = $ligne[INS_CHAMPS_MAIL];
 
$objet_mail =& Mail::factory('smtp');
$entetes['Subject'] = $GLOBALS['titre_mail'];
$entetes['Date'] = date("m-d-Y H:i") ;
$GLOBALS['corps'] .= INS_TEXTE_FIN_MAIL;
$liste = "" ;
$destinataire = array() ;
foreach ($GLOBALS['select'] as $key => $value) {
$requete = 'select '.INS_CHAMPS_MAIL.' from '.INS_ANNUAIRE.' where '.INS_CHAMPS_ID.'="'.$value.'"';
$mail = $GLOBALS['ins_db']->getOne($requete) ;
array_push ($destinataire, $mail) ;
$liste .= $mail."\n" ;
}
$objet_mail->send($destinataire, $entetes, $GLOBALS['corps']);
$GLOBALS['corps'] .= "
----------------------------------------------------------------------------".INS_MESSAGE_ENVOYE_A."
$liste" ;
mail(INS_MAIL_ADMIN, stripslashes(INS_SURVEILLANCE_ENVOI_MAIL.$GLOBALS['titre_mail']), $GLOBALS['corps'], $entetes);
$GLOBALS['corps'] = '';
$GLOBALS['titre_mail'] = '';
}
 
//-----Fonctions de l'inscription-----------------------------------------------------+
 
 
/**
* Inscription_demande
*
* Cette fonction insere dans la table inscription_demande
* les donnees saisies dans le formulaire
* et envoi un mail de confirmation a l utilisateur
* Ce mail contient un lien pour valider l inscription
*
* Le mail peut etre modifier via le modele de inscription_template
* ayant pour it_id_template = 2
*
* @param array les valeurs renvoyes par le formulaire
* @return void
*/
function inscription_demande($valeurs) {
// On stocke les informations dans un variable de session
// On coupe l'identifiant de session pour ne prendre que les 8 premiers caractères
// afin d'éviter d'obtenir une url trop longue
$chaine = substr (session_id(), 0, 8) ;
$requete_verif = 'select * from inscription_demande where id_identifiant_session="'.$chaine.'"' ;
$resultat_verif = $GLOBALS['ins_db']->query ($requete_verif) ;
if ($resultat_verif->numRows() != 0) {
$requete_suppression = 'delete from inscription_demande where id_identifiant_session="'.$chaine.'"' ;
$GLOBALS['ins_db']->query ($requete_suppression) ;
}
$requete = 'insert into inscription_demande set id_identifiant_session="'.$chaine.'", id_donnees="'.
addslashes(serialize($valeurs)).'", id_date=NOW()' ;
$resultat = $GLOBALS['ins_db']->query ($requete) ;
if (DB::isError ($resultat)) {
echo ("Echec de la requete : $requete<br />".$resultat->getMessage()) ;
}
// On envoie un email de confirmation pour l'utilisateur
$GLOBALS['ins_url']->addQueryString ('id', $chaine) ;
if ($GLOBALS['ins_config']['ic_utilise_reecriture_url']) {
$url = 'http://'.$GLOBALS['ins_url']->host.'/'.$GLOBALS['ins_config']['ic_url_prefixe'].$chaine ;
} else {
$url = str_replace ('&amp;', '&', $GLOBALS['ins_url']->getURL()) ;
}
require_once PAP_CHEMIN_RACINE.'api/pear/HTML/Template/IT.php';
$tpl = new HTML_Template_IT() ;
// Le gabarit du mail est dans un template
if (!$tpl -> setTemplate(inscription::getTemplate(INS_TEMPLATE_MAIL_CONFIRMATION_CORPS, $GLOBALS['ins_config']['ic_id_inscription']))) {
echo 'erreur' ;
}
$tpl->setVariable('URL_INSCRIPTION', $url) ;
 
mail ($_POST['a_mail'], inscription::getTemplate(INS_TEMPLATE_MAIL_CONFIRMATION_SUJET, $GLOBALS['ins_config']['ic_id_inscription']),
$tpl->get(),
'From: '.$GLOBALS['ins_config']['ic_from_mail_confirmation']) ;
}
 
/**
*
* @param array les valeurs renvoyes par le formulaire
* @return
*/
 
function inscription_validee($valeurs) {
inscription_insertion($valeurs) ;
$GLOBALS['AUTH']->username = $valeurs['a_mail'] ;
$GLOBALS['AUTH']->password = $valeurs['mot_de_passe'] ;
// On loggue l'utilisateur
$GLOBALS['AUTH']->start() ;
// inscription a la lettre d'information
if ($GLOBALS['ins_config']['ic_mail_inscription_news'] != '' && isset ($valeurs['lettre'])) {
inscription_lettre($GLOBALS['ins_config']['ic_mail_inscription_news']) ;
}
}
 
/**
* Renvoie l'accueil de l'inscription
*
* @return string HTML
*/
function inscription_AUTH_formulaire_login() {
require_once PAP_CHEMIN_RACINE.'api/pear/HTML/Template/IT.php';
$tpl = new HTML_Template_IT() ;
// Le formulaire pour se logguer est dans un template
 
if (!$tpl -> setTemplate(inscription::getTemplate(INS_TEMPLATE_PAGE_ACCUEIL, $GLOBALS['ins_config']['ic_id_inscription']))) {
echo 'erreur' ;
}
$tpl->setVariable('URL_INSCRIPTION', $GLOBALS['ins_url']->getURL());
return $tpl->get() ;
}
 
 
/** formulaire_envoi_passe() - Renvoie le code HTML d'un formulaire d'envoi de mot de passe par mail
*
* @return string HTML
*/
function inscription_formulaire_envoi_passe() {
$res = '<h2>'.INS_SI_PASSE_PERDU.'</h2>'."\n" ;
$GLOBALS['ins_url']->addQueryString('action', 'sendpasswd');
$res .= '<form action="'.$GLOBALS['ins_url']->getURL().'" method="post">'."\n" ;
$res .= '<p class="label100">'.INS_EMAIL.' : </p>'."\n" ;
$res .= '<input type="text" value="';
if (isset($_POST['username'])) $res .= $_POST['username'];
$res .= '" name="mail" size="32" />'."\n" ;
$res .= '<input type="submit" value="'.INS_ENVOIE_PASSE.'" />' ;
$res .= '</form><br />'."\n" ;
$GLOBALS['ins_url']->removeQueryString('action');
$res .= inscription_AUTH_formulaire_login() ;
return $res;
}
 
 
function inscription_insertion($valeur) {
// =========== Insertion dans l'annuaire ===================
// Generation du nom wikini a partir du nom et du prenom
if ($GLOBALS['ins_config']['ic_utilise_nom_wiki'] && $GLOBALS['ins_config']['ic_genere_nom_wiki']) {
$valeur['nom_wiki'] = inscription_genere_nom_wiki ($valeur['a_nom'], isset ($valeur['a_prenom']) ? $valeur['a_prenom'] : '') ;
} else {
if (!$GLOBALS['ins_config']['ic_genere_nom_wiki']) {
if (isset($valeur['nomwiki'])) $valeur['nom_wiki'] = $valeur['nomwiki'];
}
}
$id_utilisateur = inscription_nextId(INS_ANNUAIRE, INS_CHAMPS_ID, $GLOBALS['ins_db']) ;
$requete = 'INSERT INTO '.INS_ANNUAIRE.' SET '.
INS_CHAMPS_ID.'="'.$id_utilisateur.'",'.
inscription_requete_annuaire($valeur) ;
 
$resultat = $GLOBALS['ins_db']->query($requete) ;
if (DB::isError($resultat)) {
return ($resultat->getMessage().$resultat->getDebugInfo()) ;
}
 
// ================ Insertion dans SPIP =========================================
if (INS_UTILISE_SPIP) {
inscription_spip($id_utilisateur, $valeur) ;
}
if ($GLOBALS['ins_config']['ic_utilise_nom_wiki']) inscription_interwikini_users('', $valeur) ;
return $id_utilisateur ;
}
 
 
/**
* Realise une mise a jour dans la base de donnee
*
* @param array un tableau de valeur avec en cle les noms des champs du formulaire
* @return void
*/
function inscription_mise_a_jour($valeur, $id = '') {
// ====================Mise a jour dans l'annuaire gen_annuaire ====================
if ($id == '') {
$id = $GLOBALS['AUTH']->getAuthData(INS_CHAMPS_ID);
}
$requete = 'update '.INS_ANNUAIRE.' set '.
inscription_requete_annuaire ($valeur).
' where '.INS_CHAMPS_ID.'="'.$id.'"';
$resultat = $GLOBALS['ins_db']->query ($requete) ;
if (DB::isError($resultat)) {
return ($resultat->getMessage().$resultat->getDebugInfo()) ;
}
unset ($resultat) ;
 
// ========================= Mise a 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 a la fonction process de QuickForm
*
* @return string une requete du type champs="valeur",...
*/
 
function inscription_requete_annuaire($valeur) {
// On recupere le template de l inscription
include_once GEN_CHEMIN_API.'/formulaire/formulaire.fonct.inc.php';
$tableau= formulaire_valeurs_template_champs($GLOBALS['ins_config']['ic_inscription_template']);
$requete = '';
for ($i=0; $i<count($tableau); $i++) {
//cas des checkbox et des listes
if ($tableau[$i]['type']=='checkbox' || $tableau[$i]['type']=='liste') {
if (is_int($tableau[$i]['nom_bdd'])) {
} else {
if(isset($valeur[$tableau[$i]['nom_bdd']]))
$requete .= $tableau[$i]['nom_bdd'].'="'.$valeur[$tableau[$i]['nom_bdd']].'",';
}
}
//cas des fichiers
elseif ($tableau[$i]['type']=='fichier_simple') {
if (isset($valeur['texte_fichier'.$tableau[$i]['nom_bdd']]) && $valeur['texte_fichier'.$tableau[$i]['nom_bdd']]!='') {
//baz_insertion_fichier($valeur['texte_fichier'.$tableau[$i]['nom_bdd']], $GLOBALS['_BAZAR_']['id_fiche'], 'fichier'.$tableau[$i]['nom_bdd']);
}
}
 
//cas des images
elseif ($tableau[$i]['type']=='image') {
if(is_file($_FILES['image']['tmp_name'])) {
$chemin_destination= INS_CHEMIN_APPLI.'images/'.md5($_FILES['image']['name']).strrchr($_FILES['image']['name'], '.');
move_uploaded_file($_FILES['image']['tmp_name'], $chemin_destination);
$chemin_destination= 'http://'.$_SERVER['HTTP_HOST'].'/'.$chemin_destination;
$requete .= $tableau[$i]['nom_bdd'].'="'.$chemin_destination.'", ';
} else {
$chemin_destination=NULL;
}
}
//cas des champs texte
elseif ( $tableau[$i]['type']=='texte' || $tableau[$i]['type']=='textelong'|| $tableau[$i]['type']=='champs_mail'
|| $tableau[$i]['type']=='champs_cache' || $tableau[$i]['type']=='lien_internet') {
//on mets les slashes pour les saisies dans les champs texte et textearea
$val=addslashes($valeur[$tableau[$i]['nom_bdd']]) ;
$requete .= $tableau[$i]['nom_bdd'].'="'.$val.'", ' ;
}
// Cas de la carte google
elseif ($tableau[$i]['type'] == 'carte_google') {
$requete .= 'a_latitude="'.$valeur['latitude'].'", a_longitude="'.$valeur['longitude'].'",';
}
elseif ($tableau[$i]['type'] == 'mot_de_passe') {
$requete .= $tableau[$i]['nom_bdd'].'="'.md5($valeur['mot_de_passe']).'",';
}
elseif ($tableau[$i]['type'] == 'newsletter') {
if (!isset($valeur[$tableau[$i]['nom_bdd']])) $valeur[$tableau[$i]['nom_bdd']] = 0;
$requete .= $tableau[$i]['nom_bdd'].'="'.$valeur[$tableau[$i]['nom_bdd']].'",';
// Si le champs newletter vaut cad, la case est coche, on inscrit le pretendant
// a la lettre d actualite
if (isset($GLOBALS['anciennes_valeurs_annuaire'])) {
if ($GLOBALS['anciennes_valeurs_annuaire'][$tableau[$i]['nom_bdd']] != $valeur[$tableau[$i]['nom_bdd']]) {
if ($valeur[$tableau[$i]['nom_bdd']] == 1) {
inscription_lettre($tableau[$i]['limite1']);
} else {
desinscription_lettre($tableau[$i]['limite2']);
}
}
} else {
if ($valeur[$tableau[$i]['nom_bdd']] == 1) {
inscription_lettre($tableau[$i]['limite1']);
} else {
desinscription_lettre($tableau[$i]['limite2']);
}
}
}
}
// traitement du numero de departement pour la france
if ($valeur['a_ce_pays'] == 'fr') {
if (preg_match("/^97|98[0-9]*/", $valeur['a_code_postal'])) {
$n_dpt = substr($valeur['a_code_postal'], 0, 3) ;
} else {
$n_dpt = substr($valeur['a_code_postal'], 0, 2) ;
}
$requete .= INS_CHAMPS_DEPARTEMENT.'="'.$n_dpt.'",';
}
$requete .= 'a_date_inscription=now(), a_ce_id_inscription="'.$valeur['id_inscription'].'"';
return $requete ;
}
 
 
 
/** formulaire_defaults() - Renvoie un tableau avec les valeurs par defaut du formulaire d'inscription
*
* @return array Valeurs par defaut du formulaire d'inscription
*/
function inscription_formulaire_defaults($id = '') {
if ($id == '') {
$id = $GLOBALS['AUTH']->getAuthData(INS_CHAMPS_ID);
}
$requete = 'select '.INS_ANNUAIRE.'.* '.
'from '.INS_ANNUAIRE.' '.
'where '.INS_ANNUAIRE.'.'.INS_CHAMPS_ID.'= "'.$id.'"' ;
$resultat = $GLOBALS['ins_db']->query ($requete) ;
if (DB::isError($resultat)) {
return ($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] ;
if (INS_CHAMPS_STRUCTURE != '' && isset($ligne[INS_CHAMPS_STRUCTURE])) {
$valeurs_par_defaut['structure'] = $ligne[INS_CHAMPS_STRUCTURE] ;
//$valeurs_par_defaut['type_structure'] = $ligne['a_type_structure'];
}
$valeurs_par_defaut['site'] = $ligne[INS_CHAMPS_SITE_INTERNET] ;
$valeurs_par_defaut['lettre'] = $ligne[INS_CHAMPS_LETTRE] ;
$valeurs_par_defaut['visible'] = $ligne[INS_CHAMPS_VISIBLE] ;
$valeurs_par_defaut['sigle_structure'] = $ligne[INS_CHAMPS_SIGLE_STRUCTURE] ;
$valeurs_par_defaut['id_inscription'] = $ligne['a_ce_id_inscription'] ;
if (INS_CHAMPS_NUM_AGREMENT != '') $valeurs_par_defaut['num_agrement'] = $ligne[INS_CHAMPS_NUM_AGREMENT] ;
/*
if ($GLOBALS['ins_config']['ic_google_key']) {
$valeurs_par_defaut['longitude'] = $ligne['a_longitude'] ;
$valeurs_par_defaut['latitude'] = $ligne['a_latitude'] ;
}*/
$tableau = formulaire_valeurs_template_champs($GLOBALS['ins_config']['ic_inscription_template']);
return $valeurs_par_defaut ;
}
 
 
/** info() - Renvoie une fiche d'information sur la personne ou la structure
*
* @param integer identifiant de la fiche a afficher, mettre -1 pour voir sa propre fiche
* @param text nom de l'onglet de la fiche
*
* @return text Code HTML de la fiche
*/
function info($id=-1, $type_info='fiche') {
if ($id==-1) $id=$GLOBALS['AUTH']->getAuthData(INS_CHAMPS_ID);
$requete = 'SELECT * FROM '.INS_ANNUAIRE.' WHERE '.INS_ANNUAIRE.'.'
.INS_CHAMPS_ID.'="'.$id.'"' ;
$resultat = $GLOBALS['ins_db'] -> query($requete) ;
if (DB::isError($resultat)) {
die ($resultat->getMessage().'<br />'.$resultat->getDebugInfo()) ;
}
 
$ligne = $resultat->fetchRow(DB_FETCHMODE_ASSOC) ;
$valeur = $ligne ;
//voir la presentation de la fiche
if ($type_info=='fiche' || $type_info == 'info') {
$res = '';
if ($ligne[INS_CHAMPS_EST_STRUCTURE] == 1) {
$res .= '<h2>'.INS_FICHE_STRUCTURE.'</h2>'."\n" ;
} else {
$res .= '<h2>'.INS_FICHE_PERSONNELLE.'</h2>'."\n" ;
}
$res .= '<div class="fiche">'."\n" ;
if ($ligne[INS_CHAMPS_LOGO] != NULL) {
$res .= '<img style="float:right;width:120px;height:120px;margin:0 0 10px 10px;" src="'.$ligne[INS_CHAMPS_LOGO].'" alt="logo" />'."\n";
}
if ($ligne[INS_CHAMPS_EST_STRUCTURE] == 1) {
$res .= '<h3>'.$ligne[INS_CHAMPS_NOM].'</h3>'."\n";
$res .= inscription_ligne(INS_SIGLE_DE_LA_STRUCTURE, $ligne[INS_CHAMPS_SIGLE_STRUCTURE]) ;
if (INS_CHAMPS_NUM_AGREMENT != '') $res .= inscription_ligne(INS_NUM_AGREMENT, $ligne[INS_CHAMPS_NUM_AGREMENT]) ;
} else {
$res .= '<h3>'.$ligne[INS_CHAMPS_PRENOM].' '.$ligne[INS_CHAMPS_NOM].'</h3>'."\n";
}
 
 
//if ($GLOBALS['AUTH']->getAuth()) $res .= inscription_ligne(INS_EMAIL, '<a href="mailto:'.$ligne[INS_CHAMPS_MAIL].'">'.$ligne[INS_CHAMPS_MAIL].'</a>');
//else $res .= '<br /><p class="zone_info">'.INS_PAS_IDENTIFIE.'</p>'."\n";
if (INS_UTILISE_WIKINI) {
$res .= inscription_ligne (INS_NOM_WIKI, $ligne[INS_CHAMPS_NOM_WIKINI])."\n" ;
}
 
// On recupere le template de l inscription
include_once GEN_CHEMIN_API.'/formulaire/formulaire.fonct.inc.php';
$tableau= formulaire_valeurs_template_champs($GLOBALS['ins_config']['ic_inscription_template']);
$requete = '';
for ($i=0; $i<count($tableau); $i++) {
//cas des checkbox et des listes
if ($tableau[$i]['type']=='liste') {
if (is_int($tableau[$i]['nom_bdd'])) {
$res .= inscription_ligne($tableau[$i]['label'], addslashes($valeur[$tableau[$i]['nom_bdd']]));
} else {
if(isset($valeur[$tableau[$i]['nom_bdd']])) {
list ($table, $col_id, $col_label, $col_langue, $langue) = explode (',', $tableau[$i]['table_source']);
$requete = 'select '.$col_label.' from '.$table.' where '.$col_id.'="'.$valeur[$tableau[$i]['nom_bdd']].'"';;
if (isset($col_langue)) $requete .= ' and '.$col_langue.' like "'.INS_LANGUE_DEFAUT.'%"';
$resultat = $GLOBALS['ins_db']->getOne($requete);
$res .= inscription_ligne($tableau[$i]['label'], addslashes($resultat));
}
}
} elseif ($tableau[$i]['type']=='checkbox') {
}
//cas des fichiers
elseif ($tableau[$i]['type']=='fichier_simple') {
if (isset($valeur['texte_fichier'.$tableau[$i]['nom_bdd']]) && $valeur['texte_fichier'.$tableau[$i]['nom_bdd']]!='') {
//baz_insertion_fichier($valeur['texte_fichier'.$tableau[$i]['nom_bdd']], $GLOBALS['_BAZAR_']['id_fiche'], 'fichier'.$tableau[$i]['nom_bdd']);
}
}
//cas des images
elseif ($tableau[$i]['type']=='image_simple') {
if (isset($_FILES['image']['name']) && $_FILES['image']['name']!='') {
//$requete .= baz_insertion_image($GLOBALS['_BAZAR_']['id_fiche']);
}
}
//cas des champs texte
elseif ($tableau[$i]['type']=='texte' || $tableau[$i]['type']=='textelong') {
//on mets les slashes pour les saisies dans les champs texte et textearea
$res .= inscription_ligne($tableau[$i]['label'], stripslashes($valeur[$tableau[$i]['nom_bdd']]));
} elseif ($tableau[$i]['type']=='champs_mail') {
$res .= inscription_ligne($tableau[$i]['label'], '<a href="mailto:'.$valeur[$tableau[$i]['nom_bdd']].'">'.$valeur[$tableau[$i]['nom_bdd']].'</a>');
}
// Cas de la carte google
elseif ($tableau[$i]['type'] == 'carte_google') {
//$requete .= 'a_latitude="'.$valeur['latitude'].'", a_longitude="'.$valeur['longitude'].'",';
}
elseif ($tableau[$i]['type'] == 'mot_de_passe') {
$requete .= $tableau[$i]['nom_bdd'].'="'.md5($valeur['a_mot_de_passe']).'",';
} else if ($tableau[$i]['type'] == 'labelhtml') {
if ($tableau[$i]['obligatoire'] != 0) $res .= '<div>'.$tableau[$i]['label'].'</div>';
} else if ($tableau[$i]['type'] == 'lien_internet' && $valeur[$tableau[$i]['nom_bdd']] != 'http://') {
$res .= inscription_ligne ($tableau[$i]['label'],
'<a href="'.$valeur[$tableau[$i]['nom_bdd']].'">'.$valeur[$tableau[$i]['nom_bdd']].'</a>');
}
}
if ($type_info == 'fiche') {
if ($id==$GLOBALS['AUTH']->getAuthData(INS_CHAMPS_ID)) {
$res .= '<ul style="margin:15px;">'."\n";;
$GLOBALS['ins_url']->addQueryString('id_inscription', $ligne['a_ce_id_inscription']);
$GLOBALS['ins_url']->addQueryString('action', 'modifier');
//$GLOBALS['ins_url']->addQueryString('id_inscription', $GLOBALS['ins_config']['ic_id_inscription']);
$res .= '<li><a href="'.$GLOBALS['ins_url']->getURL().'&amp;form_structure='.$ligne[INS_CHAMPS_EST_STRUCTURE].'">'.INS_MODIFIER_INSCRIPTION.'</a></li>'."\n" ;
$GLOBALS['ins_url']->addQueryString('action', 'supprimer');
$res .= '<li><a href="'.$GLOBALS['ins_url']->getURL().'&amp;form_structure='.$ligne[INS_CHAMPS_EST_STRUCTURE].'" onclick="javascript:return confirm(\''.INS_SUPPRIMER_INSCRIPTION.'?\');">'.INS_SUPPRIMER_INSCRIPTION.'</a></li>'."\n" ;
$GLOBALS['ins_url']->removeQueryString('id_inscription');
$GLOBALS['ins_url']->addQueryString('action', 'deconnexion');
$GLOBALS['ins_url']->addQueryString('logout', 1);
$res .= '<li><a href="'.$GLOBALS['ins_url']->getURL().'">'.INS_DECONNEXION.'</a></li>'."\n" ;
$GLOBALS['ins_url']->removeQueryString('action');
$GLOBALS['ins_url']->removeQueryString('id_inscription');
$res .= '</ul>'."\n";
}
}
$res .= '</div>'."\n"; //div fiche
//voir les abonnements presents dans les applis clientes
} elseif ($type_info=='abonnement') {
$res = '<h1>'.$ligne[INS_CHAMPS_PRENOM].' '.$ligne[INS_CHAMPS_NOM].'</h1>'."\n";
$res .= '<h2>'.INS_GESTION_DES_ABONNEMENTS.'</h2>'."\n" ;
// Appel des actions d'abonnement des applications clientes
$d = dir(GEN_CHEMIN_CLIENT);
$abonnement='';
$abonnements='';
while (false !== ($repertoire = $d->read())) {
if (file_exists(GEN_CHEMIN_CLIENT.$repertoire.GEN_SEP.'bibliotheque'.GEN_SEP.$repertoire.'.abonnement.inc.php')) {
require_once GEN_CHEMIN_CLIENT.$repertoire.GEN_SEP.'bibliotheque'.GEN_SEP.$repertoire.'.abonnement.inc.php' ;
$abonnements .= $abonnement;
}
}
$d->close();
$res .= $abonnements;
//voir les actus
} elseif ($type_info=='actus') {
$res = '<h1>'.$ligne[INS_CHAMPS_PRENOM].' '.$ligne[INS_CHAMPS_NOM].'</h1>'."\n";
$res .= '<h2>'.INS_ACTUALITES_DEPOSEES.'</h2>'."\n" ;
//require_once GEN_CHEMIN_CLIENT.'bazar'.GEN_SEP.'configuration'.GEN_SEP.'baz_config.inc.php';
//require_once GEN_CHEMIN_CLIENT.'bazar'.GEN_SEP.'bibliotheque'.GEN_SEP.'bazar.fonct.rss.php';
$_GET['action']=1;
$res .= RSSversHTML(gen_RSS('', '', $id, 1, ''), 0, 'jma', 0);
//voir les ressources
} elseif ($type_info=='ressources') {
$res = '<h1>'.$ligne[INS_CHAMPS_PRENOM].' '.$ligne[INS_CHAMPS_NOM].'</h1>'."\n";
$res .= '<h2>'.INS_RESSOURCES_ASSOCIEES.'</h2>'."\n" ;
$requete = 'SELECT bf_id_fiche, bf_titre FROM bazar_fiche, bazar_appropriation WHERE ba_ce_id_fiche=bf_id_fiche AND ba_ce_id_structure='.$id ;
$resultat = $GLOBALS['ins_db'] -> query($requete) ;
$res .= '<ul>'."\n";
while ($ligne = $resultat->fetchRow(DB_FETCHMODE_ASSOC)) {
$res .= '<li><a href="'.INS_URL_BAZAR.'&amp;action=8&amp;id_fiche='.$ligne['bf_id_fiche'].'" onclick="window.open(this.href,\'_blank\');return false;">'.$ligne['bf_titre'].'</a></li>'."\n";
}
$res .= '</ul><br />'."\n";
//voir les competences
} elseif ($type_info=='competences') {
$res = '<h1>'.$ligne[INS_CHAMPS_PRENOM].' '.$ligne[INS_CHAMPS_NOM].'</h1>'."\n";
$res .= '<h2>'.INS_COMPETENCES_ASSOCIEES.'</h2>'."\n" ;
}
return $res ;
}
 
 
/** inscription_ligne() - Renvoie une ligne avec label et valeur
*
* @param string label Le label
* @param string valeur
* @return string HTML
*/
function inscription_ligne($label, $valeur) {
if ($valeur == '' || $valeur == null) {
return;
}
if (($label == '')or($label == '&nbsp;')) {
return '<div class="inscription_infos">'.$valeur.'</div>'."\n";
} else {
return '<div class="inscription_infos"><strong class="inscription_label">'."\n".$label.' : </strong>'.$valeur.'</div>'."\n";
}
}
 
 
/** Renvoie vrai si l'email passe en parametre n'est pas deja dans l'annuaire
* ou si, en cas de modification d'inscription, l'inscrit ne modifie pas son email
*
* @return boolean
*/
function inscription_verif_doublonMail($mail) {
if (!isset($GLOBALS['id_utilisateur'])) {
if (isset ($GLOBALS['AUTH'])) {
$GLOBALS['id_utilisateur'] = $GLOBALS['AUTH']->getAuthData(INS_CHAMPS_ID) ;
}
}
if (isset ($GLOBALS['id_utilisateur']) && $GLOBALS['id_utilisateur'] != '') {
$requete_mail = "select ".INS_CHAMPS_MAIL." from ".INS_ANNUAIRE." where ".
INS_CHAMPS_ID."=".$GLOBALS['id_utilisateur'] ;
$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 inscription_envoie_passe() {
$res='';
$requete = 'SELECT '.INS_CHAMPS_MAIL.' FROM '.INS_ANNUAIRE.' WHERE '.INS_CHAMPS_MAIL.'="'.$_POST['mail'].'"' ;
$resultat = $GLOBALS['ins_db']->query($requete) ;
if (DB::isError($resultat)) {
die ("Echec de la requete<br />".$resultat->getMessage()."<br />".$resultat->getDebugInfo()) ;
}
if ($resultat->numRows() == 0) {
$res .= '<p class="erreur">'.INS_MAIL_INCONNU_DANS_ANNUAIRE.'</p>'."\n" ;
} else {
include_once PAP_CHEMIN_RACINE.'api/pear/Mail.php' ;
$mail = & Mail::factory('mail') ;
$headers ['Return-Path'] = $GLOBALS['ins_config']['ic_from_mail_confirmation'] ;
$headers ['From'] = $GLOBALS['ins_config']['ic_from_mail_confirmation'] ;
$headers ['Subject'] = inscription::getTemplate(INS_TEMPLATE_MAIL_PASSE_SUJET, $GLOBALS['ins_config']['ic_id_inscription']) ;
$headers ['Reply-To'] = $GLOBALS['ins_config']['ic_from_mail_confirmation'] ;
 
$nouveau_passe = create_new_random(6) ;
// modification du mot de passe dans la base
$requete = 'UPDATE '.INS_ANNUAIRE.' SET '.INS_CHAMPS_PASSE.'=MD5("'.$nouveau_passe.'") WHERE '.INS_CHAMPS_MAIL.'="'.$_POST['mail'].'"' ;
$resultat = $GLOBALS['ins_db']->query($requete) ;
if (DB::isError($resultat)) {
die ("Echec de la requete<br />".$resultat->getMessage()."<br />".$resultat->getDebugInfo()) ;
}
$body = inscription::getTemplate(INS_TEMPLATE_MAIL_PASSE_CORPS, $GLOBALS['ins_config']['ic_id_inscription']);
$body = str_replace('{MOT_DE_PASSE}', $nouveau_passe, $body);
$mail->send($_POST['mail'], $headers, $body) ;
if (PEAR::isError($mail)) {
$res .= '<p class="erreur">'.INS_PROBLEME_ENVOI_MAIL.'</p>'."\n" ;
return $res ;
}
$res .= '<p class="info">'.INS_NOUVEAU_MOT_DE_PASSE_ENVOYE.'</p>'."\n" ;
}
return $res ;
}
 
/**
* Inscrit un adherent a la lettre d'actualite par l'envoie d'un email subscribe / unsubscribe
* a la liste
*
* @global AUTH Un objet PEAR::Auth
* @return boolean true en cas de succes
*/
 
function inscription_lettre($email_inscription) {
include_once PAP_CHEMIN_RACINE.'api/pear/Mail.php' ;
$mail = & Mail::factory ('mail') ;
$email = $GLOBALS['AUTH']->getUsername() ;
$headers ['Return-Path'] = $email ;
$headers ['From'] = "<".$email.">" ;
$headers ['Subject'] = $email_inscription ;
$headers ['Reply-To'] = $email ;
$mail -> send ($email_inscription, $headers, "") ;
if (PEAR::isError ($mail)) {
echo '<p class="erreur">Le mail n\'est pas parti...</p>' ;
return false ;
}
return true ;
}
 
/**
* desinscrit un adherent a la lettre d'actualite par l'envoie d'un email subscribe / unsubscribe
* a la liste
*
* @global AUTH Un objet PEAR::Auth
* @return boolean true en cas de succes
*/
 
function desinscription_lettre($email_desinscription) {
include_once PAP_CHEMIN_RACINE.'api/pear/Mail.php' ;
$mail = & Mail::factory ('mail') ;
$email = $GLOBALS['AUTH']->getUsername() ;
$headers ['Return-Path'] = $email ;
$headers ['From'] = "<".$email.">" ;
$headers ['Subject'] = $email_desinscription ;
$headers ['Reply-To'] = $email ;
$mail -> send ($email_desinscription, $headers, "") ;
if (PEAR::isError ($mail)) {
echo '<p class="erreur">Le mail n\'est pas parti...</p>' ;
return false ;
}
return true ;
}
 
/**
* Genere un nom wiki valide a partir des donnees saisies par l'utilisateur
* fait une requete dans la base
*
* @return string un nom wiki valide
*/
 
function inscription_genere_nom_wiki($prenom, $nom) {
// 1. suppression des espaces
$nom = trim ($nom) ;
$prenom = trim ($prenom) ;
// 2. suppression des caracteres non ascii et ajout de la premiere lettre en majuscule
$nom = inscription_trim_non_ascii ($nom) ;
$prenom = inscription_trim_non_ascii ($prenom) ;
// Vérification
$nom_wiki = $prenom.$nom ;
if (!preg_match('/^[A-Z][a-z]+[A-Z,0-9][A-Z,a-z,0-9]*$/', $nom_wiki)) {
$nom_wiki = chr(rand(65, 90)).$nom_wiki.chr(rand(65, 90)) ;
}
return $nom_wiki ;
}
 
/**
* Cette fonction supprime les caracteres autres que asccii et les chiffres
*
* @return string la chaine e½puree
*/
 
function inscription_trim_non_ascii ($nom) {
$premiere_lettre = true ;
for ($i = 0; $i < strlen ($nom); $i++) {
if (!preg_match ('/[a-zA-Z0-9]/', $nom[$i])) {
$nom[$i] = '_' ;
}
// remplacement de la première lettre en majuscule
if (preg_match ('/[a-zA-Z]/', $nom[$i]) && $premiere_lettre) {
$nom[$i] = strtoupper ($nom[$i]) ;
$premiere_lettre = false ;
} else {
if (preg_match ('/[a-zA-Z]/', $nom[$i])) {
$nom[$i] = strtolower ($nom[$i]) ;
}
}
}
$nom = preg_replace ('/_/', '', $nom) ;
return $nom ;
}
 
//==============================================================================
/** function create_new_random($n,$type) permet de generer un nombre de caracteres aleatoires.
*
*
*
* ENTREE :
* - $n : creer un 'mot' de $n caracteres
* - $type : permet de definir la liste des caracteres disponibles
*
* SORTIE : chaine de $n caracteres 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 numerique libre d'une table
*
* On passe en parametre 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 inscription_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 source ------------------------------------------------------------
/*
* $Log$
* Revision 1.28 2007-11-08 09:27:26 alexandre_tb
* modification de inscription_verif_doublon_mail pour compatibilite avec annuaire_backoffice
*
* Revision 1.27 2007-10-12 09:59:06 alexandre_tb
* suppression de code inutile
*
* Revision 1.26 2007-10-10 12:22:23 alexandre_tb
* correction bug login à l inscription
* remplacement d un die en return
* gestion de l image logo
* gestion newsletter
* pb de deconnexion
*
* Revision 1.25 2007-10-01 12:16:04 alexandre_tb
* ajout du type lien_internet, et encodage
*
* Revision 1.24 2007-09-07 14:23:03 alexandre_tb
* retablissement d une div mal imbrique dans info()
*
* Revision 1.23 2007-09-06 13:13:55 alexandre_tb
* encodage
* correction de la requete d insertion pour ajouter la valeur a_ce_id_inscription a partir de l element id_inscription
*
* Revision 1.22 2007-09-06 08:27:27 alexandre_tb
* utilisation du template pour produire les mails de confirmation et la fiche d inscrit
*
* Revision 1.21 2007-08-27 13:11:40 alexandre_tb
* divers
*
* Revision 1.20 2007-07-05 10:11:43 neiluj
* ajout de l'include de api/formulaire/formulaire.fonct.inc.php pour éviter un fatal error
*
* Revision 1.18 2007-06-26 09:32:33 neiluj
* debug inscription (warnings) et adaptation php5
*
* Revision 1.17 2007-06-25 15:37:57 alexandre_tb
* correction de bug
*
* Revision 1.16 2007-06-25 09:59:03 alexandre_tb
* ajout de carte_google, mise en place des templates avec api/formulaire, configuration de multiples inscriptions, ajout de modele pour les mails
*
* Revision 1.15 2007-06-01 15:10:25 alexandre_tb
* ajout d un chmod 0755 apres l upload du logo
*
* Revision 1.14 2007-05-25 14:31:24 alexandre_tb
* en cours
*
* Revision 1.13 2007/04/20 14:04:38 alexandre_tb
* inclusion de QuickForm qui manquait
*
* Revision 1.12 2007/04/11 08:30:12 neiluj
* remise en état du CVS...
*
* Revision 1.8.2.1 2007/01/26 10:28:43 alexandre_tb
* correction d un notice
*
* Revision 1.8 2006/12/01 13:23:15 florian
* integration annuaire backoffice
*
* Revision 1.7 2006/10/05 13:53:54 florian
* amélioration des fichiers sql
*
* Revision 1.6 2006/09/13 12:31:18 florian
* ménage: fichier de config Papyrus, fichiers temporaires
*
* Revision 1.5 2006/04/28 12:44:05 florian
* integration bazar
*
* Revision 1.4 2006/04/11 08:39:52 alexandre_tb
* correction de l'envoie de mail par la carto
*
* Revision 1.3 2006/04/10 14:21:51 florian
* correction bug affichage formulaire de mail en double
*
* Revision 1.2 2006/04/10 14:15:10 florian
* les cases à cocher apparaissent à nouveau
*
* Revision 1.1 2006/04/10 14:01:36 florian
* uniformisation de l'appli bottin: plus qu'un fichier de fonctions
*
*
*/
?>
/tags/v4.0-djer/client/bottin/bibliotheque/inscription.fonct.php
New file
0,0 → 1,649
<?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.31 2007-09-06 08:28:32 alexandre_tb Exp $
/**
* Fonctions du module inscription
*
* Fonctions du module inscription
*
*@package inscription
//Auteur original :
*@author Alexandre Granier <alexandre@tela-botanica.org>
//Autres auteurs :
*@author Florian Schmitt <florian@ecole-et-nature.org>
*@copyright Tela-Botanica 2000-2004
*@version $Revision: 1.31 $ $Date: 2007-09-06 08:28:32 $
// +------------------------------------------------------------------------------------------------------+
*/
 
// +------------------------------------------------------------------------------------------------------+
// | ENTETE du PROGRAMME |
// +------------------------------------------------------------------------------------------------------+
 
include_once 'inscription.fonct.wiki.php' ;
include_once 'inscription.class.php' ;
if (INS_UTILISE_SPIP) include_once 'inscription.fonct.spip.php' ;
 
// +------------------------------------------------------------------------------------------------------+
// | LISTE de FONCTIONS |
// +------------------------------------------------------------------------------------------------------+
 
 
/**
*
* @param array les valeurs renvoyés par le formulaire
* @return
*/
 
function demande_inscription($valeurs) {
// On stocke les informations dans un variable de session
// On coupe l'identifiant de session pour ne prendre que les 8 premiers caractères
// afin d'éviter d'obtenir une url trop longue
$chaine = substr (session_id(), 0, 8) ;
$requete_verif = 'select * from inscription_demande where id_identifiant_session="'.$chaine.'"' ;
$resultat_verif = $GLOBALS['ins_db']->query ($requete_verif) ;
if ($resultat_verif->numRows() != 0) {
$requete_suppression = 'delete from inscription_demande where id_identifiant_session="'.$chaine.'"' ;
$GLOBALS['ins_db']->query ($requete_suppression) ;
}
$requete = 'insert into inscription_demande set id_identifiant_session="'.$chaine.'", id_donnees="'.
addslashes(serialize($valeurs)).'", id_date=NOW()' ;
$resultat = $GLOBALS['ins_db']->query ($requete) ;
if (DB::isError ($resultat)) {
echo ("Echec de la requete : $requete<br />".$resultat->getMessage()) ;
}
// On envoie un email de confirmation pour l'utilisateur
$GLOBALS['ins_url']->addQueryString ('id', $chaine) ;
if (INS_UTILISE_REECRITURE_URL) {
$url = 'http://'.$GLOBALS['ins_url']->host.'/'.INS_URL_PREFIXE.$chaine ;
} else {
$url = str_replace ('&amp;', '&', $GLOBALS['ins_url']->getURL()) ;
}
require_once PAP_CHEMIN_API_PEAR.'HTML/Template/IT.php';
$tpl = new HTML_Template_IT() ;
// Le gabarit du mail est dans un template
// template 2
$requete = 'select it_template from inscription_template where it_id_template=2'.
' and it_i18n like "%'.INS_LANGUE_DEFAUT.'"' ;
if (!$tpl -> setTemplate($GLOBALS['ins_db']->getOne ($requete))) {
echo 'erreur' ;
}
$tpl->setVariable('URL_INSCRIPTION', $url) ;
 
mail ($GLOBALS['email'], 'Inscription', $tpl->get(), 'From: '.INS_MAIL_ADMIN_APRES_INSCRIPTION) ;
}
 
 
 
/**
* Renvoie l'accueil de l'inscription
*
* @return string HTML
*/
function AUTH_formulaire_login() {
require_once PAP_CHEMIN_API_PEAR.'/HTML/Template/IT.php';
$tpl = new HTML_Template_IT() ;
// Le formulaire pour se logguer est dans un template
// template 1
$requete = 'SELECT it_template FROM inscription_template WHERE it_id_template=1'.
' AND it_i18n LIKE "%'.INS_LANGUE_DEFAUT.'"' ;
if (!$tpl -> setTemplate($GLOBALS['ins_db']->getOne ($requete))) {
echo 'erreur' ;
}
$tpl->setVariable('URL_INSCRIPTION', $GLOBALS['ins_url']->getURL());
return $tpl->get() ;
}
 
 
/** formulaire_envoi_passe() - Renvoie le code HTML d'un formulaire d'envoi de mot de passe par mail
*
* @return string HTML
*/
function formulaire_envoi_passe() {
$res = '<h2>'.INS_SI_PASSE_PERDU.'</h2>'."\n" ;
$res .= '<form action="'.$GLOBALS['ins_url']->getURL().'&amp;action=sendpasswd" method="post">'."\n" ;
$res .= '<p class="label100">'.INS_EMAIL.' : </p>'."\n" ;
$res .= '<input type="text" value="';
if (isset($_POST['username'])) $res .= $_POST['username'];
$res .= '" name="mail" size="32" />'."\n" ;
$res .= '<input type="submit" value="'.INS_ENVOIE_PASSE.'" />' ;
$res .= '</form><br />'."\n" ;
$res .= AUTH_formulaire_login() ;
return $res;
}
 
 
function insertion($valeur) {
// =========== Insertion dans l'annuaire ===================
// Génération du nom wikini à partir du nom et du prénom
if (INS_UTILISE_WIKINI && INS_NOM_WIKINI_GENERE) {
$valeur['nom_wiki'] = genere_nom_wiki ($valeur['nom'], isset ($valeur['prenom']) ? $valeur['prenom'] : '') ;
} else {
if (!INS_NOM_WIKINI_GENERE) {
$valeur['nom_wiki'] = $valeur['nomwiki'];
}
}
$id_utilisateur = nextId(INS_ANNUAIRE, INS_CHAMPS_ID, $GLOBALS['ins_db']) ;
$requete = 'INSERT INTO '.INS_ANNUAIRE.' SET '.
INS_CHAMPS_ID.'="'.$id_utilisateur.'",'.
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_utilisateur, $valeur) ;
}
if (INS_UTILISE_WIKINI) inscription_interwikini_users('', $valeur) ;
return $id_utilisateur ;
}
 
 
/**
* 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, $id = '') {
// ====================Mise à jour dans l'annuaire gen_annuaire ====================
if ($id == '') {
$id = $GLOBALS['AUTH']->getAuthData(INS_CHAMPS_ID);
}
$requete = 'update '.INS_ANNUAIRE.' set '.
requete_annuaire ($valeur).
'where '.INS_CHAMPS_ID.'="'.$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.'="'.addslashes($valeur['nom']).'", ';
if (isset($valeur['est_structure']) && $valeur['est_structure'] == 0)
$req .= INS_CHAMPS_PRENOM.'="'.addslashes($valeur['prenom']).'", ';
// Initialisation de variable pour éviter des notices
foreach (array ('adresse_1', 'adresse_2', 'ville', 'telephone', 'fax', 'site') as $val) {
if (!isset ($valeur[$val])) $valeur[$val] = '' ;
}
 
$req .= INS_CHAMPS_MAIL.'="'.addslashes($valeur['email']).'", ' ;
$req .= INS_CHAMPS_PASSE.'="'.md5($valeur['mot_de_passe']).'", '.
INS_CHAMPS_PAYS.'="'.addslashes($valeur['pays']).'", '.
INS_CHAMPS_ADRESSE_1.'="'.addslashes($valeur['adresse_1']).'", '.
INS_CHAMPS_ADRESSE_2.'="'.addslashes($valeur['adresse_2']).'", '.
INS_CHAMPS_DATE_INSCRIPTION.'=NOW(), '.
INS_CHAMPS_CODE_POSTAL.'="'.addslashes($valeur['cp']).'", '.
INS_CHAMPS_VILLE.'="'.addslashes($valeur['ville']).'", '.
INS_CHAMPS_EST_STRUCTURE.'="'.addslashes($valeur['est_structure']).'", '.
INS_CHAMPS_TELEPHONE.'="'.addslashes($valeur['telephone']).'", '.
INS_CHAMPS_FAX.'="'.addslashes($valeur['fax']).'", '.
INS_CHAMPS_SITE_INTERNET.'="'.addslashes($valeur['site']).'" ';
if (isset($valeur['visible'])) $req .= ', '.INS_CHAMPS_VISIBLE.'="'.$valeur['visible'].'"';
else $req .= ', '.INS_CHAMPS_VISIBLE.'=0';
if (INS_CHAMPS_LETTRE != '') {
if (isset($valeur['lettre'])) {
$req .= ', '.INS_CHAMPS_LETTRE.'="'.$valeur['lettre'].'" ';
inscription_lettre('inscrire');
}
else {
$req .= ', '.INS_CHAMPS_LETTRE.'=0 ';
inscription_lettre('desinscrire');
}
}
if (isset($valeur['sigle_structure'])) {
$req .= ', '.INS_CHAMPS_SIGLE_STRUCTURE.'="'.addslashes($valeur['sigle_structure']).'"' ;
}
if (isset($valeur['num_agrement'])) {
$req .= ', '.INS_CHAMPS_NUM_AGREMENT.'="'.addslashes($valeur['num_agrement']).'"' ;
}
// traitement du numéro de département pour la france
if ($valeur['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'";
}
if (INS_UTILISE_WIKINI && isset ($valeur['nom_wiki'])) $req .= ','.INS_CHAMPS_NOM_WIKINI.'="'.$valeur['nom_wiki'].'"';
if ($GLOBALS['ins_config']['ic_google_key']) {
$req .= ', a_longitude="'.$valeur['longitude'].'", a_latitude="'.$valeur['latitude'].'"';
}
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($id = '') {
if ($id == '') {
$id = $GLOBALS['AUTH']->getAuthData(INS_CHAMPS_ID);
}
$requete = 'select '.INS_ANNUAIRE.'.* '.
'from '.INS_ANNUAIRE.' '.
'where '.INS_ANNUAIRE.'.'.INS_CHAMPS_ID.'= "'.$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] ;
if (INS_CHAMPS_STRUCTURE != '' && isset($ligne[INS_CHAMPS_STRUCTURE])) {
$valeurs_par_defaut['structure'] = $ligne[INS_CHAMPS_STRUCTURE] ;
//$valeurs_par_defaut['type_structure'] = $ligne['a_type_structure'];
}
$valeurs_par_defaut['site'] = $ligne[INS_CHAMPS_SITE_INTERNET] ;
$valeurs_par_defaut['lettre'] = $ligne[INS_CHAMPS_LETTRE] ;
$valeurs_par_defaut['visible'] = $ligne[INS_CHAMPS_VISIBLE] ;
$valeurs_par_defaut['sigle_structure'] = $ligne[INS_CHAMPS_SIGLE_STRUCTURE] ;
if (INS_CHAMPS_NUM_AGREMENT != '') $valeurs_par_defaut['num_agrement'] = $ligne[INS_CHAMPS_NUM_AGREMENT] ;
return $valeurs_par_defaut ;
}
 
 
/** ligne_inscription() - Renvoie une ligne avec label et valeur
*
* @param string label Le label
* @param string valeur
* @return string HTML
*/
function ligne_inscription($label, $valeur) {
if ($valeur == '') {
return;
}
if (($label == '')or($label == '&nbsp;')) {
return '<li>'."\n".$valeur."\n".'</li>'."\n" ;
} else {
return '<li>'."\n".'<strong>'.$label.' : </strong>'."\n".$valeur."\n".'</li>'."\n" ;
}
}
 
 
/** Renvoie vrai si l'email passé en paramètre n'est pas déjà dans l'annuaire
* ou si, en cas de modification d'inscription, l'inscrit ne modifie pas son email
*
* @return boolean
*/
function verif_doublonMail($mail, $id = '') {
if ($id == '') {
if (isset ($GLOBALS['AUTH'])) {
$id = $GLOBALS['AUTH']->getAuthData(INS_CHAMPS_ID) ;
}
}
if (isset ($id) && $id != '') {
$requete_mail = "select ".INS_CHAMPS_MAIL." from ".INS_ANNUAIRE." where ".
INS_CHAMPS_ID."=".$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() {
$res='';
$requete = 'SELECT '.INS_CHAMPS_MAIL.' FROM '.INS_ANNUAIRE.' WHERE '.INS_CHAMPS_MAIL.'="'.$_POST['mail'].'"' ;
$resultat = $GLOBALS['ins_db']->query($requete) ;
if (DB::isError($resultat)) {
die ("Echec de la requete<br />".$resultat->getMessage()."<br />".$resultat->getDebugInfo()) ;
}
if ($resultat->numRows() == 0) {
$res .= '<p class="erreur">'.INS_MAIL_INCONNU_DANS_ANNUAIRE.'</p>'."\n" ;
} else {
include_once PAP_CHEMIN_RACINE.'api/pear/Mail.php' ;
$mail = & Mail::factory('smtp') ;
$headers ['Return-Path'] = "<".INS_MAIL_ADMIN_APRES_INSCRIPTION.">" ;
$headers ['From'] = "<".INS_MAIL_ADMIN_APRES_INSCRIPTION.">" ;
$headers ['Subject'] = INS_MOT_DE_PASSE_CHANGE ;
$headers ['Reply-To'] = "<".INS_MAIL_ADMIN_APRES_INSCRIPTION.">" ;
$headers ['To'] = "<".$_POST['mail'].">" ;
$nouveau_passe = create_new_random(6) ;
// modification du mot de passe dans la base
$requete = 'UPDATE '.INS_ANNUAIRE.' SET '.INS_CHAMPS_PASSE.'=MD5("'.$nouveau_passe.'") WHERE '.INS_CHAMPS_MAIL.'="'.$_POST['mail'].'"' ;
$resultat = $GLOBALS['ins_db']->query($requete) ;
if (DB::isError($resultat)) {
die ("Echec de la requete<br />".$resultat->getMessage()."<br />".$resultat->getDebugInfo()) ;
}
$body = INS_NOUVEAU_MOT_DE_PASSE_2.$nouveau_passe ;
$body .= INS_NOUVEAU_MOT_DE_PASSE_LAIUS ;
$mail->send($_POST['mail'], $headers, $body) ;
if (PEAR::isError($mail)) {
$res .= '<p class="erreur">'.INS_PROBLEME_ENVOI_MAIL.'</p>'."\n" ;
return $res ;
}
$res .= '<p class="info">'.INS_NOUVEAU_MOT_DE_PASSE_ENVOYE.'</p>'."\n" ;
}
return $res ;
}
 
/**
*
* @global ins_db Un pointeur vers un objet PEAR::DB connecté
* @return
*/
 
function envoie_mail() {
include_once PAP_CHEMIN_RACINE.'api/pear/Mail.php' ;
$crlf="\n";
$headers ['From'] = $GLOBALS['ins_config']['ic_from_mail_confirmation'] ;
$headers ['Subject'] = html_entity_decode(INS_MAIL_COORD_SUJET) ;
$headers ['Reply-To'] = $GLOBALS['ins_config']['ic_from_mail_confirmation'] ;
$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) ;
$valeur = $ligne;
$body_entete = INS_MAIL_COORD_CORPS."\n" ;
 
// On recupere le template de l inscription
include_once GEN_CHEMIN_API.'/formulaire/formulaire.fonct.inc.php';
$tableau= formulaire_valeurs_template_champs($GLOBALS['ins_config']['ic_inscription_template']);
for ($i=0; $i<count($tableau); $i++) {
//cas des checkbox et des listes
if ($tableau[$i]['type']=='liste') {
if (is_int($tableau[$i]['nom_bdd'])) {
$body .= $tableau[$i]['label'].' : '.$valeur[$tableau[$i]['nom_bdd']]."\n";
} else {
if(isset($valeur[$tableau[$i]['nom_bdd']])) {
list ($table, $col_id, $col_label, $col_langue, $langue) = explode (',', $tableau[$i]['table_source']);
$requete = 'select '.$col_label.' from '.$table.' where '.$col_id.'="'.$valeur[$tableau[$i]['nom_bdd']].'"';;
if (isset($col_langue)) $requete .= ' and '.$col_langue.' like "'.INS_LANGUE_DEFAUT.'%"';
$resultat = $GLOBALS['ins_db']->getOne($requete);
$body .= $tableau[$i]['label'].' : '. $resultat."\n";
}
}
} elseif ($tableau[$i]['type']=='checkbox') {
}
//cas des champs texte
elseif ($tableau[$i]['type']=='texte' || $tableau[$i]['type']=='textelong' || $tableau[$i]['type']=='champs_mail') {
//on mets les slashes pour les saisies dans les champs texte et textearea
$body .= $tableau[$i]['label'].' : '.$valeur[$tableau[$i]['nom_bdd']]."\n";
}
}
$body = html_entity_decode($body);
$mail = & Mail::factory('mail') ;
$mail -> send ($ligne[INS_CHAMPS_MAIL], $headers, $body) ;
// Envoi du mail aux administrateur du site
$body = $body_entete.$body;
$body = html_entity_decode($body);
$mails_moderateur = split ('/\n/', $GLOBALS['ins_config']['ic_mail_admin_apres_inscription']);
foreach ($mails_moderateur as $mail_admin) {
$mail -> send ($mail_admin, $headers, $body) ;
}
return true ;
}
 
 
/**
* Génère un nom wiki valide à partir des données saisies par l'utilisateur
* fait une requete dans la base
*
* @return string un nom wiki valide
*/
 
function genere_nom_wiki($prenom, $nom) {
// 1. suppression des espaces
$nom = trim ($nom) ;
$prenom = trim ($prenom) ;
// 2. suppression des caractères non ascii et ajout de la première lettre en majuscule
$nom = trim_non_ascii ($nom) ;
$prenom = trim_non_ascii ($prenom) ;
// Vérification
$nom_wiki = $prenom.$nom ;
if (!preg_match('/^[A-Z][a-z]+[A-Z,0-9][A-Z,a-z,0-9]*$/', $nom_wiki)) {
$nom_wiki = chr(rand(65, 90)).$nom_wiki.chr(rand(65, 90)) ;
}
return $nom_wiki ;
}
 
/**
* Cette fonction supprime les caractères autres que asccii et les chiffres
*
* @return string la chaine épurée
*/
 
function trim_non_ascii ($nom) {
$premiere_lettre = true ;
for ($i = 0; $i < strlen ($nom); $i++) {
if (!preg_match ('/[a-zA-Z0-9]/', $nom[$i])) {
$nom[$i] = '_' ;
}
// remplacement de la première lettre en majuscule
if (preg_match ('/[a-zA-Z]/', $nom[$i]) && $premiere_lettre) {
$nom[$i] = strtoupper ($nom[$i]) ;
$premiere_lettre = false ;
} else {
if (preg_match ('/[a-zA-Z]/', $nom[$i])) {
$nom[$i] = strtolower ($nom[$i]) ;
}
}
}
$nom = preg_replace ('/_/', '', $nom) ;
return $nom ;
}
 
// 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 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.30 2007-06-25 09:59:03 alexandre_tb
* ajout de carte_google, mise en place des templates avec api/formulaire, configuration de multiples inscriptions, ajout de modele pour les mails
*
* Revision 1.29 2007-05-25 14:32:17 alexandre_tb
* en cours
*
* Revision 1.28 2007/04/20 08:39:37 alexandre_tb
* correction de commentaire
*
* Revision 1.27 2007/04/11 08:30:12 neiluj
* remise en état du CVS...
*
* Revision 1.23 2006/12/01 13:23:15 florian
* integration annuaire backoffice
*
* Revision 1.22 2006/10/05 13:53:53 florian
* amélioration des fichiers sql
*
* Revision 1.21 2006/09/20 13:10:01 alexandre_tb
* Ajout d'un test sur la lettre d'actualité
*
* Revision 1.20 2006/07/06 10:33:58 alexandre_tb
* Suppression d'un warning
*
* Revision 1.19 2006/07/04 09:39:27 alexandre_tb
* correction d'un bug mineur
*
* Revision 1.18 2006/06/01 14:42:20 alexandre_tb
* suppression d'un commentaire inutile
*
* Revision 1.17 2006/04/28 12:44:05 florian
* integration bazar
*
* Revision 1.16 2006/04/11 08:41:41 alexandre_tb
* Ajout du champs nom wiki dans le formulaire si la constante INS_GENERE_NOM_WIKI n'est pas activé
*
* Revision 1.15 2006/04/10 14:01:36 florian
* uniformisation de l'appli bottin: plus qu'un fichier de fonctions
*
* Revision 1.14 2006/04/04 12:23:05 florian
* modifs affichage fiches, généricité de la carto, modification totale de l'appli annuaire
*
* Revision 1.13 2006/03/21 10:25:33 alexandre_tb
* ajout d'un template pour le mail de confirmation
*
* Revision 1.12 2006/03/15 11:02:35 alexandre_tb
* ajout de l'insertion du prénom qui avait disparu
*
* Revision 1.11 2006/03/02 16:57:31 alexandre_tb
* correction appel au générateur de nom wiki
*
* Revision 1.10 2006/02/28 14:02:20 alexandre_tb
* suppression des insertion dans les tables du bazar
*
* Revision 1.9 2006/02/14 10:19:10 alexandre_tb
* Mise en place des templates
* CREATE TABLE `inscription_template` (
* `it_id_template` smallint(5) unsigned NOT NULL default '0',
* `it_i18n` varchar(5) NOT NULL default '',
* `it_template` text NOT NULL,
* PRIMARY KEY (`it_id_template`)
* ) ENGINE=MyISAM DEFAULT CHARSET=latin1;
*
* Revision 1.8 2006/01/02 09:51:38 alexandre_tb
* généralisation du code et intégration au bottin
*
* Revision 1.7 2005/12/19 13:19:07 alexandre_tb
* Correction de l'affichage des pays
*
* Revision 1.6 2005/11/24 16:17:52 florian
* changement template inscription + modifs carto
*
* Revision 1.5 2005/11/18 16:04:15 florian
* corrections de bugs, optimisations, tests pour rendre inscription stable.
*
* Revision 1.4 2005/11/17 18:48:02 florian
* corrections bugs + amélioration de l'application d'inscription
*
* Revision 1.3 2005/10/03 09:45:21 alexandre_tb
* suppression d'un echo
*
* Revision 1.2 2005/09/29 13:56:48 alexandre_tb
* En cours de production. Reste à gérer les news letters et d'autres choses.
*
* Revision 1.1 2005/09/22 14:02:49 ddelon
* nettoyage annuaire et php5
*
* Revision 1.4 2005/09/22 13:30:49 florian
* modifs pour compatibilité XHTML Strict + corrections de bugs (mais ya encore du boulot!!)
*
* 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
*
*
* +-- Fin du code ----------------------------------------------------------------------------------------+
*/
 
?>
/tags/v4.0-djer/client/bottin/bibliotheque/annuaire.fonct.php
New file
0,0 → 1,327
<?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.7 2007-04-11 08:30:12 neiluj 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.7 $
// +------------------------------------------------------------------------------------------------------+
*/
 
// +------------------------------------------------------------------------------------------------------+
// | ENTETE du PROGRAMME |
// +------------------------------------------------------------------------------------------------------+
 
//include_once "HTML/QuickForm.php" ;
 
// +------------------------------------------------------------------------------------------------------+
// | LISTE de FONCTIONS |
// +------------------------------------------------------------------------------------------------------+
 
/** function inscription_onglets() Affiche les onglets de présentation de la structure
*
*
*
* @return string HTML
*/
function inscription_onglets() {
$res='<ul id="onglets_inscription">'."\n";
//partie présentation
$GLOBALS['ins_url']->addQueryString('voir_fiche', $_GET['voir_fiche']);
$res .= '<li id="fiche"><a href="'.$GLOBALS['ins_url']->getURL().'">'.INS_PRESENTATION.'</a>'."\n".'</li>'."\n";
$GLOBALS['ins_url']->removeQueryString('voir_fiche');
//partie abonnement
$GLOBALS['ins_url']->addQueryString('voir_abonnement', $_GET['voir_fiche']);
$res .= '<li id="abonnements"><a href="'.$GLOBALS['ins_url']->getURL().'">'.INS_ABONNEMENTS.'</a></li>'."\n" ;
$GLOBALS['ins_url']->removeQueryString('voir_abonnement');
//partie actualites
$GLOBALS['ins_url']->addQueryString('voir_actus', $_GET['voir_fiche']);
$res .= '<li id="actus"><a href="'.$GLOBALS['ins_url']->getURL().'">'.INS_ACTUALITES.'</a>'."\n".'</li>'."\n";
$GLOBALS['ins_url']->removeQueryString('voir_actus');
//partie ressources
$GLOBALS['ins_url']->addQueryString('voir_ressources', $_GET['voir_fiche']);
$res .= '<li id="ressources"><a href="'.$GLOBALS['ins_url']->getURL().'">'.INS_RESSOURCES.'</a>'."\n".'</li>'."\n";
$GLOBALS['ins_url']->removeQueryString('voir_ressources');
//partie competences
$GLOBALS['ins_url']->addQueryString('voir_competences', $_GET['voir_fiche']);
$res .= '<li id="competences"><a href="'.$GLOBALS['ins_url']->getURL().'">'.INS_COMPETENCES.'</a>'."\n".'</li>'."\n";
$GLOBALS['ins_url']->removeQueryString('voir_competences');
$res.= '</ul>'."\n";
return $res;
}
 
/** function Annuaire_recherche () Moteur de recherche dans l'annuaire des inscrits
*
*
*
* @return string HTML
*/
function Annuaire_recherche() {
$res ='<h2>'.INS_RECHERCHE_ANNUAIRE_DES_INSCRITS.'</h2>'."\n";
$form =& new HTML_QuickForm('form_recherche_annuaire', 'post', str_replace('&amp;', '&', $GLOBALS['ins_url']->getURL()));
$squelette =& $form->defaultRenderer();
$squelette->setFormTemplate("\n".'<form{attributes}>'."\n".'<table>'."\n".'{content}'."\n".'</table>'."\n".'</form>'."\n");
$squelette->setElementTemplate( '<tr>'."\n".
'<td style="padding:5px;text-align:right;">{label}'.
'<!-- BEGIN required --><span class="symbole_obligatoire">*</span><!-- END required -->'."\n".
'<!-- BEGIN error --><span class="erreur">{error}</span><!-- END error -->'."\n".
' : </td>'."\n".
'<td style="padding:5px;text-align:left;">{element}</td>'."\n".
'</tr>'."\n" );
$squelette->setElementTemplate( '<tr>'."\n".'<td colspan=2 style="padding:5px;">{label}{element}</td>'."\n".'</tr>'."\n", 'bouton_rechercher');
$option_type=array ('0' => INS_PERSONNES_OU_STRUCTURES,
'1' => INS_PERSONNES,
'2' => INS_STRUCTURES);
$form->addElement('select', 'nom_type', INS_JE_RECHERCHE, $option_type);
//requete pour recuperer la liste des pays
$requete = 'SELECT '.INS_CHAMPS_ID_PAYS.', '.INS_CHAMPS_LABEL_PAYS.' FROM '.INS_TABLE_PAYS.' WHERE '.INS_CHAMPS_I18N_PAYS.'="fr-FR"';
$resultat = $GLOBALS['ins_db']->query($requete) ;
if (DB::isError($resultat)) {
die ("Echec de la requete : $requete<br />".$resultat->getMessage()) ;
}
$option_pays = array('zz' => INS_TOUS_PAYS) ;
while ($ligne = $resultat->fetchRow(DB_FETCHMODE_ASSOC)) {
$option_pays[$ligne[INS_CHAMPS_ID_PAYS]] = $ligne[INS_CHAMPS_LABEL_PAYS] ;
}
$form->addElement('select', 'nom_pays', INS_PAYS, $option_pays);
//requete pour recuperer la liste des départements
$requete = 'SELECT '.INS_CHAMPS_ID_DEPARTEMENT.', '.INS_CHAMPS_NOM_DEPARTEMENT.' FROM '.INS_TABLE_DPT;
$resultat = $GLOBALS['ins_db']->query($requete) ;
if (DB::isError($resultat)) {
die ("Echec de la requete : $requete<br />".$resultat->getMessage()) ;
}
$option_departements = array('0' => INS_TOUS_DEPARTEMENTS) ;
while ($ligne = $resultat->fetchRow(DB_FETCHMODE_ASSOC)) {
$option_departements[$ligne[INS_CHAMPS_ID_DEPARTEMENT]] = $ligne[INS_CHAMPS_NOM_DEPARTEMENT] ;
}
$form->addElement('select', 'nom_departement', INS_DEPARTEMENT_POUR_LA_FRANCE, $option_departements);
$form->addElement('text', 'nom_annuaire', INS_NOM_ANNUAIRE);
$form->addElement('submit', 'bouton_rechercher', INS_RECHERCHER);
//valeurs par defaut
$defauts=array('nom_pays'=>'fr','nom_departement'=>'0');
$form->setDefaults($defauts);
//affichage du formulaire
$res .=$form->toHtml();
//on teste si l'on affiche le resultat de la recherche ou
if (isset($_POST['nom_type'])) {
$requete = 'SELECT '.INS_CHAMPS_ID.', '.INS_CHAMPS_NOM.', '.INS_CHAMPS_PRENOM.', '.INS_CHAMPS_VILLE.', '.INS_CHAMPS_CODE_POSTAL;
$requete .= ' FROM '.INS_ANNUAIRE.' WHERE ';
$req_where=0;
if ($_POST['nom_type']==1) {
$requete .= INS_CHAMPS_EST_STRUCTURE.'=0 ';
$req_where=1;
} elseif ($_POST['nom_type']==2) {
$requete .= INS_CHAMPS_EST_STRUCTURE.'=1 ';
$req_where=1;
}
if ($_POST['nom_pays']!='0'and$_POST['nom_pays']!='zz') {
if ($req_where) {
$requete .= 'AND ';
} else {
$req_where=1;
}
$requete .= INS_CHAMPS_PAYS.'="'.$_POST['nom_pays'].'" ';
}
if ($_POST['nom_departement']!='0') {
if ($req_where) {
$requete .= 'AND ';
} else {
$req_where=1;
}
$requete .= INS_CHAMPS_DEPARTEMENT.'="'.$_POST['nom_departement'].'" ';
}
if ($_POST['nom_annuaire']!='') {
if ($req_where) {
$requete .= 'AND ';
} else {
$req_where=1;
}
$requete .= '('.INS_CHAMPS_NOM.' LIKE "%'.$_POST['nom_annuaire'].'%"'.
' OR '.INS_CHAMPS_PRENOM.' LIKE "%'.$_POST['nom_annuaire'].'%"'.
' OR '.INS_CHAMPS_SIGLE_STRUCTURE.' LIKE "%'.$_POST['nom_annuaire'].'%"'.
' OR '.INS_CHAMPS_DESCRIPTION.' LIKE "%'.$_POST['nom_annuaire'].'%") ';
}
if (!$req_where) $requete .= '1';
$requete .=' ORDER BY '.INS_CHAMPS_NOM;
$resultat = $GLOBALS['ins_db']->query($requete);
if ($resultat->numRows()>0) {
$res .='<h2>'.INS_RESULTATS_RECHERCHE.' ('.$resultat->numRows().' '.INS_ENTREES.')</h2>'."\n";
$res .='<p class="zone_info">'.INS_CLIQUER_ELEMENT_LISTE.'</p>'."\n";
$i=0;
while ($ligne = $resultat->fetchRow(DB_FETCHMODE_ASSOC)) {
$donnees_membres[$i++]=$ligne;
}
$res .= listes_inscrit($donnees_membres);
}
else {
$res .='<h2>'.INS_RESULTATS_RECHERCHE.'</h2>'."\n";
$res .= '<p class="zone_alert">'.INS_PAS_DE_RESULTATS.'</p>'."\n";
}
} else {
$res .='<h2>'.INS_DIX_DERNIERES_INSCRIPTIONS.'</h2>'."\n";
$requete = 'SELECT '.INS_CHAMPS_ID.', '.INS_CHAMPS_NOM.', '.INS_CHAMPS_PRENOM.', '.INS_CHAMPS_VILLE.', '.INS_CHAMPS_CODE_POSTAL;
$requete .= ' FROM '.INS_ANNUAIRE.' ORDER BY '.INS_CHAMPS_DATE.' DESC LIMIT 0 , 10';
$resultat = $GLOBALS['ins_db']->query($requete);
if ($resultat->numRows()>0) {
$i=0;
while ($ligne = $resultat->fetchRow(DB_FETCHMODE_ASSOC)) {
$donnees_membres[$i++]=$ligne;
}
$res .= listes_inscrit($donnees_membres, 0);
}
else {
$res .= '<p class="zone_alert">'.INS_PAS_DE_RESULTATS.'</p>'."\n";
}
}
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, $affiche_form_mail=1) {
$res = '';
if ($GLOBALS['AUTH']->getAuth()&&$affiche_form_mail) {$res .= '<form action="'.$GLOBALS['ins_url']->getURL().'" method="post" name="formmail">'."\n";}
$res .= '<ul>'."\n";
for ($i=0;$i<count($donnees_membres);$i++) {
$id = array_shift($donnees_membres[$i]);
$GLOBALS['ins_url']->addQueryString('voir_fiche', $id);
$res .= '<li><a href="'.$GLOBALS['ins_url']->getURL().'">'."\n";
if ($GLOBALS['AUTH']->getAuth()&&$affiche_form_mail) {
$res.='<input type="checkbox" name="select[]" value="'.$id.'">'."\n";
}
$res .= '<strong>'.$donnees_membres[$i][INS_CHAMPS_NOM].
'&nbsp;'.$donnees_membres[$i][INS_CHAMPS_PRENOM].'</strong>'."\n".
'&nbsp;'.$donnees_membres[$i][INS_CHAMPS_CODE_POSTAL].
'&nbsp;'.$donnees_membres[$i][INS_CHAMPS_VILLE];
$res .= '</a></li>'."\n";
}
$res .= '</ul>'."\n";
if ($GLOBALS['AUTH']->getAuth()&&$affiche_form_mail) {
$res .= INS_CHECK_UNCHECK ;
$res .= '&nbsp;<input type="checkbox" name="selecttotal" onclick="javascript:setCheckboxes(\'formmail\');"><br />';
$res .= '<h3>'.INS_ENVOYER_MAIL.'</h3>'."\n";
$res .= '<p style="text-align:right;">'.INS_SUJET.'&nbsp;:&nbsp;<input style="border:1px solid #000;width:450px;" type="text" name="titre_mail"><br />'."\n".
INS_MESSAGE.'&nbsp;:&nbsp;<textarea style="border:1px solid #000;width:450px;" name="corps" rows="5" cols="60"></textarea></p>'."\n".
'<p style="width:100px;margin:4px auto;text-align:center;"><input type="submit" value="'.INS_ENVOYER.'" /></p>'."\n".
'</form>'."\n";
} else {
if ($affiche_form_mail) $res .='<br /><p class="zone_info">'.INS_PAS_IDENTIFIE.'</p>'."\n";
}
return $res ;
}
 
 
 
/** envoie_mail_depuis_annuaire()
*
*
* @return envoie l'email
*/
 
function envoie_mail_depuis_annuaire() {
$requete = "select ".INS_CHAMPS_MAIL." 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());
}
$ligne = $resultat->fetchRow(DB_FETCHMODE_ASSOC);
$entete = "From: <".$ligne[INS_CHAMPS_MAIL].">\n";
$_POST['corps'] .= ANN_PIED_MESSAGE;
$_POST['corps'] = stripslashes($_POST['corps']) ;
$liste = "" ;
$liste_numero = implode (',', $_POST['select']) ;
$requete_liste_mail = 'select '.INS_CHAMPS_MAIL.' from '.INS_ANNUAIRE.' where '.INS_CHAMPS_ID.
' in ('.$liste_numero.')' ;
$resultat_liste_mail = $GLOBALS['ins_db']->query($requete_liste_mail);
while ($ligne_liste_mail = $resultat_liste_mail->fetchRow(DB_FETCHMODE_ASSOC)) {
mail ($ligne_liste_mail[INS_CHAMPS_MAIL], stripslashes($_POST['titre_mail']), $_POST['corps'] , $entete) ;
$liste .= $ligne_liste_mail[INS_CHAMPS_MAIL]."\n" ;
}
$_POST['corps'] .= "\n----------------------------------------------------------------------------";
$_POST['corps'] .= "\n".ANN_MESSAGE_ENVOYE_A." :\n $liste" ;
mail (INS_MAIL_ADMIN_APRES_INSCRIPTION, 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.4 2006/04/10 14:01:36 florian
* uniformisation de l'appli bottin: plus qu'un fichier de fonctions
*
* Revision 1.3 2006/04/04 12:23:05 florian
* modifs affichage fiches, généricité de la carto, modification totale de l'appli annuaire
*
* Revision 1.2 2005/09/29 16:13:54 alexandre_tb
* En cours de production.
*
* Revision 1.1 2005/09/22 14:02:49 ddelon
* nettoyage annuaire et php5
*
* Revision 1.4 2005/09/22 13:30:49 florian
* modifs pour compatibilité XHTML Strict + corrections de bugs (mais ya encore du boulot!!)
*
* 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 ----------------------------------------------------------------------------------------+
*/
?>
/tags/v4.0-djer/client/bottin/bibliotheque/tmp/carto/vide.txt
--- bibliotheque/inscription.fonct.wiki.php (revision 0)
+++ bibliotheque/inscription.fonct.wiki.php (revision 1985)
@@ -0,0 +1,156 @@
+<?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.7 2007-06-25 15:37:57 alexandre_tb 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.7 $ $Date: 2007-06-25 15:37:57 $
+// +------------------------------------------------------------------------------------------------------+
+*/
+
+// +------------------------------------------------------------------------------------------------------+
+// | ENTETE du PROGRAMME |
+// +------------------------------------------------------------------------------------------------------+
+
+// +------------------------------------------------------------------------------------------------------+
+// | LISTE de FONCTIONS |
+// +------------------------------------------------------------------------------------------------------+
+
+function inscription_interwikini_users($id, $valeur) {
+ // On vérifie l'existance du nom wiki dans interwikini_users
+ $requete_verif = 'select name from interwikini_users where name="'.$valeur['nom_wiki'].'"';
+ $resultat_verif = $GLOBALS['ins_db']->query ($requete_verif) ;
+ if (DB::isError($resultat_verif)) {
+ echo ("Echec de la requete dans interwikini_users<br />".$resultat_verif->getMessage()) ;
+ }
+ if ($resultat_verif->numRows() != 0) {
+ return ;
+ }
+ $requete = "insert into interwikini_users set name=\"".$valeur['nom_wiki'].
+ "\", password=\"".md5($valeur['mot_de_passe'])."\", email=\"".$valeur['a_mail']."\"".
+ ', signuptime=now()' ;
+ $resultat = $GLOBALS['ins_db']->query ($requete) ;
+ if (DB::isError($resultat)) {
+ echo ("Echec de la requete dans interwikini_users<br />".$resultat->getMessage()) ;
+ }
+}
+
+function mod_inscription_interwikini_users($nomwiki, $valeur) {
+
+ $requete = "update interwikini_users set password=\"".md5($valeur['mot_de_passe'])."\", email=\"".$valeur['email']."\"".
+ " where name=\"$nomwiki\"" ;
+ $resultat = $GLOBALS['ins_db']->query ($requete) ;
+ if (DB::isError($resultat)) {
+ die ("Echec de la requete dans interwikini_users<br />".$resultat->getMessage()) ;
+ }
+}
+
+function desinscription_interwikini_users($nomwiki) {
+ $requete = "delete from interwikini_users where name=\"$nomwiki\"" ;
+ $resultat = $GLOBALS['ins_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.6 2007/04/11 08:30:12 neiluj
+* remise en état du CVS...
+*
+* Revision 1.4 2006/07/04 09:39:03 alexandre_tb
+* correction d'un bug mineur
+*
+* Revision 1.3 2006/04/11 08:42:07 alexandre_tb
+* Vérification de l'existance d'un nom wiki avant son insertion
+*
+* Revision 1.2 2005/09/29 13:56:48 alexandre_tb
+* En cours de production. Reste à gérer les news letters et d'autres choses.
+*
+* Revision 1.1 2005/09/22 14:02:49 ddelon
+* nettoyage annuaire et php5
+*
+* Revision 1.4 2005/09/22 13:30:49 florian
+* modifs pour compatibilité XHTML Strict + corrections de bugs (mais ya encore du boulot!!)
+*
+* 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 ----------------------------------------------------------------------------------------+
+*/
+
+
+
+
+?>
/tags/v4.0-djer/client/bottin/bibliotheque/lib.carto.php
New file
0,0 → 1,1261
<?php
 
//vim: set expandtab tabstop=4 shiftwidth=4:
// +-----------------------------------------------------------------------------------------------+
// | PHP version 4.0 |
// +-----------------------------------------------------------------------------------------------+
// | Copyright (c) 1997, 1998, 1999, 2000, 2001 The PHP Group |
// +-----------------------------------------------------------------------------------------------+
// | This source file is subject to version 2.0 of the PHP license, |
// | that is bundled with this package in the file LICENSE, and is |
// | available at through the world-wide-web at |
// | http://www.php.net/license/2_02.txt. |
// | If you did not receive a copy of the PHP license and are unable to |
// | obtain it through the world-wide-web, please send a note to |
// | license@php.net so we can mail you a copy immediately. |
// +-----------------------------------------------------------------------------------------------+
/**
* Fichier regroupant toutes les classes de la carto
*
*Toutes les classe de la carto sont disponibles dans ce fichier.
*
*@package carto
//Auteur original :
*@author Nicolas MATHIEU
//Autres auteurs :
*@author Alexandre GRANIER <alexandre@tela-botanica.org>
*@author Jean-Pascal MILCENT <jpm@tela-botanica.org>
*@copyright Tela-Botanica 2000-2003
*@version 01 juillet 2002
// +-----------------------------------------------------------------------------------------------+
//
// $Id: lib.carto.php,v 1.9 2007-04-20 14:16:45 alexandre_tb Exp $
// FICHIER : $RCSfile: lib.carto.php,v $
// AUTEUR : $Author: alexandre_tb $
// VERSION : $Revision: 1.9 $
// DATE : $Date: 2007-04-20 14:16:45 $
//
// +-----------------------------------------------------------------------------------------------+
// A FAIRE :
// 1.-Rendre cette classe indépendante de l'arborescence du site.
// On trouve encore des urls ou des chemins d'accé au fichier codé en dur dans l'appli
// Il faudrait pouvoir les paramétrés dans la classe.
// 2.- Supprimer l'attribut $this->historiques qui doit être devenu complétement obscoléte et le
// remplacer par $this->historique_cartes
// 3.- Renomer $this->liste_zone_carte en quelque chose de plus parlant...
*/
//Inclusion d'un autre fichier de librairie
include_once 'lib.couleur.php';
 
//Sert seulement en interne pour le débogage des requetes SQL
$NOM_FICHIER = 'lib.carto.php';
 
//==================================================================================================
// La classe Carto_HistoriqueCarte sert à pouvoir afficher les liens avec les carte précédentes
// On accède à cette fonctionnalité grâce à la méthode afficherHistoriqueCarte()
// L'objet Carto_HistoriqueCarte recoit en parametres :
// -la généalogie du niveau ou on en est (du type monde*europe*france )
// -l'url du document
// -en option : *le caractere de separation (par defaut c'est >)
// *la classe css des liens
//===================================================================================================
 
class Carto_HistoriqueCarte
{
var $historique;
var $url;
var $caractere_separation;
var $class_css;
var $nom;
 
function Carto_HistoriqueCarte ($objet_carte, $caractere = '&gt;', $class = '')
{
global $GS_GLOBAL;
 
$this->historique = $objet_carte->historique;
$this->url = $objet_carte->url;
$this->nom = $objet_carte->nom;
unset ($objet_carte);
$this->caractere_separation = $caractere;
$this->class_css = $class;
}//Fin du constructeur Carto_HistoriqueCarte().
function afficherHistoriqueCarte ()
{
$res='<div style="float:left;">'.INS_ECHELLE;
$tabonglet = explode ('*', $this->historique);
$tabnom = explode ('*', $this->nom);
foreach ($tabonglet as $key=>$value) {
if ($key == 0) {
$chemin = $value;
}
else {
$chemin .= '*'.$value;
}
$res.= '<a ';
if (!empty($this->class_css)) {
$res.='class="'.$this->class_css.'" ';
}
$res.='href="'.$this->url.'&amp;historique_cartes='.$chemin.'">&nbsp;'.$this->caractere_separation.'&nbsp;'.$tabnom[$key].'</a>';
}
$res.= '</div>'."\n";
return $res;
}//Fin de la méthode afficherHistoriqueCarte().
 
}//Fin de la classe Carto_HistoriqueCarte.
 
//================================================================================================
//La classe Action sert a definir les paramètres nécessaires pour recueillir l'action a réaliser en
// fonction des coordonnées du point, du masque et du niveau.
//Elle remplace la fonction get_cartoAction() que l'on peut trouver dans le fichier carto_commun.php
//des différentes application utilisant la carto.
// Les champs a renseigner sont les suivants :
// -le nom de la table ($nom_table_carto_action) où sont stokée les actions à réalisées
// en fonction des couleurs
// -les 5 champs principaux de la table :
// -l'identifiant de la zone géographique (un nom, un numéro ou une abréviation) -> $nom_champ_cle
// -les couleurs -> $nom_champ_rouge, $nom_champ_vert, $nom_champ_bleu
// -l'action -> $nom_champ_action
// Elle possède une seule méthode : get_cartoAction().
//================================================================================================
 
class Carto_Action
{
var $_table_zone_geo;
var $_id_zone_geo_zone;
var $_rouge;
var $_vert;
var $_bleu;
var $_table_action;
var $_id_carte_action;
var $_id_zone_geo_action;
var $_type_zone_geo_action;
var $_action;
var $_id_carte_destination;
function Carto_Action ($table_zone_geo, $zone_chp_id_zone, $chp_rouge,
$chp_vert, $chp_bleu, $table_carto_action, $action_chp_id_carte, $action_chp_id_zone,
$action_chp_type_zone, $chp_action, $chp_destination)
{
$this->_table_zone_geo = $table_zone_geo;
$this->_id_zone_geo_zone = $zone_chp_id_zone;
$this->_rouge = $chp_rouge;
$this->_vert = $chp_vert;
$this->_bleu = $chp_bleu;
$this->_table_action = $table_carto_action;
$this->_id_carte_action = $action_chp_id_carte;
$this->_id_zone_geo_action = $action_chp_id_zone;
$this->_type_zone_geo_action = $action_chp_type_zone;
$this->_action = $chp_action;
$this->_id_carte_destination = $chp_destination;
}
//**********************************************************************************************************
// Méthode get_cartoAction($imageX, $imageY, $masque, $id_carte)
// Elle renvoit l'action a réaliser.
// Nous passons les paramètres suivant :
// -les coordonnees du point ($imageX et $imageY)
// -le masque pour recuperer la couleur ($masque)
// -l'identifiant de la carte où nous nous trouvons ($id_carte)
//**********************************************************************************************************
function _consulterActionImage($imageX, $imageY, $masque, $id_carte)
{
// Nous récuperons les valeurs RVB de la couleur sur laquelle l'utilisateur a cliqué.
// Les valeurs RVB sont stockées dans le tableau associatif $valeurs_RVB.
$masque_courant = imagecreatefrompng($masque);
$index_couleur = imagecolorat($masque_courant,$imageX,$imageY);
$valeurs_RVB = imagecolorsforindex($masque_courant, $index_couleur);
// Nous effectuons une requete dans la table carto_ACTION pour récupérer la valeur
// du champ "action", afin de savoir quoi faire.
$requete =
'SELECT '.$this->_action.', '.$this->_id_carte_destination.', '.$this->_id_zone_geo_action.
' FROM '.$this->_table_action.', '.$this->_table_zone_geo.
' WHERE '.$this->_table_zone_geo.'.'.$this->_rouge.' = '.$valeurs_RVB['red'].
' AND '.$this->_table_zone_geo.'.'.$this->_vert.' = '.$valeurs_RVB['green'].
' AND '.$this->_table_zone_geo.'.'.$this->_bleu.' = '.$valeurs_RVB['blue'].
' AND '.$this->_table_action.'.'.$this->_id_zone_geo_action.' = '.$this->_table_zone_geo.'.'.$this->_id_zone_geo_zone.
' AND '.$this->_table_action.'.'.$this->_id_carte_action.' = "'.$id_carte.'"';
$resultat=mysql_query($requete) or die('
<H2 style="text-align: center; font-weight: bold; font-size: 26px;">Erreur de requête</H2>'.
'<b>Requete : </b>'.$requete.
'<br/><br/><b>Erreur : </b>'.mysql_error());
$ligne = mysql_fetch_object ($resultat);
if (mysql_num_rows ($resultat) != 0) {
$chp_id_zone_geo = $this->_id_zone_geo_action;
$chp_action = $this->_action;
$chp_id_carte_destination = $this->_id_carte_destination;
$action['id_zone_geo'] = $ligne->$chp_id_zone_geo;
$action['type_action'] = $ligne->$chp_action;
$action['id_carte_destination'] = $ligne->$chp_id_carte_destination;
return $action;
}
}//Fin de la méthode _consulterActionImage().
//**********************************************************************************************************
// Méthode _consulterActionListe($id_zone_carte, $id_carte)
// Elle renvoit l'action a réaliser.
// Nous passons les paramètres suivant :
// -l'identifiant de la zone que l'on veut afficher
// -l'identifiant de la carte où nous nous trouvons ($id_carte)
//**********************************************************************************************************
function _consulterActionListe($id_zone_carte, $id_carte)
{
// Nous effectuons une requete dans la table carto_ACTION pour récupérer la valeur
// du champ "action", afin de savoir quoi faire.
$requete =
'SELECT '.$this->_action.', '.$this->_id_carte_destination.', '.$this->_id_zone_geo_action.
' FROM '.$this->_table_action.', '.$this->_table_zone_geo.
' WHERE '.$this->_table_action.'.'.$this->_id_zone_geo_action.' = '.$this->_table_zone_geo.'.'.$this->_id_zone_geo_zone.
' AND '.$this->_table_zone_geo.'.'.$this->_id_zone_geo_zone.' = "'.$id_zone_carte.'"'.
' AND '.$this->_table_action.'.'.$this->_id_carte_action.' = "'.$id_carte.'"';
$resultat=mysql_query($requete) or die('
<H2 style="text-align: center; font-weight: bold; font-size: 26px;">Erreur de requête</H2>'.
'<b>Requete : </b>'.$requete.
'<br/><br/><b>Erreur : </b>'.mysql_error());
$ligne = mysql_fetch_object ($resultat);
if (mysql_num_rows ($resultat) != 0) {
$chp_id_zone_geo = $this->_id_zone_geo_action;
$chp_action = $this->_action;
$chp_id_carte_destination = $this->_id_carte_destination;
$action['id_zone_geo'] = $ligne->$chp_id_zone_geo;
$action['type_action'] = $ligne->$chp_action;
$action['id_carte_destination'] = $ligne->$chp_id_carte_destination;
return $action;
}
}//Fin de la méthode get_cartoAction().
}//Fin de la classe Carto_Action.
 
//================================================================================================
// L'objet carte est l'objet principal de la carto. C'est lui possede qui possède les methodes
//pour colorier les cartes.
// Il faut lui donner les parametres suivants :
// -le nom de la premier carte ($id).
// -le nom du masque ($masque).
// -le nom du fond de carte a colorier ($fond).
// -le tableau $info_table_couleur : il contient les renseignements concernant la table des couleurs ainsi
// qu'un autre tableau dans lequel figure le nombre d'elements par zone.
// L'objet comporte deux methodes principales :
// -'ajouterFils()' qui permet d'ajouter les cartes de niveau inferieur.
// -'donnerFormulaireImage()' qui lance l'action a faire en fonction de l'action de l'utilisateur.
// Il faut aussi penser a donner directement le champs url.
//================================================================================================
 
class Carto_Carte
{
/*|=============================================================================================|*/
/*| LES ATTRIBUTS DE LA CLASSE |*/
/*|---------------------------------------------------------------------------------------------|*/
var $id;
var $_id_zone_geo_carte;
var $nom;
var $masque;
var $fond;
var $chemin;
var $image;
var $fils;
var $url;
var $_info_table_zg;
var $filiation;
var $image_x;
var $image_y;
var $historique_cartes;
var $liste_zone_carte;
var $historique;
// La couleur dominante ( $maxiRVB ), la couleur la plus claire ($miniRVB) et la couleur
// intermédiaire précédant le maximum ( $mediumRVB ) au cas ou il y aurait un trop grand
//ecart entre les deux plus grandes valeurs.
var $_zeroR;
var $_zeroV;
var $_zeroB;
var $_miniR;
var $_miniV;
var $_miniB;
var $_mediumR;
var $_mediumV;
var $_mediumB;
var $_maxiR;
var $_maxiV;
var $_maxiB;
//Le type de formule mathématique permettant de colorier la carte
var $_formule_coloriage;
//L'action à réaliser
var $_action;
 
/*|=============================================================================================|*/
/*| LE CONSTRUCTEUR DE LA CLASSE |*/
/*|---------------------------------------------------------------------------------------------|*/
function Carto_Carte ($id, $id_zone_geo_carte, $nom, $masque, $fond, $chemin, $info_table)
{
$this->id = $id;
$this->_id_zone_geo_carte = $id_zone_geo_carte;
$this->nom = $nom;
$this->masque = $chemin.$masque;
$this->fond = $chemin.$fond;
$this->chemin = $chemin;
$this->_info_table_zg = $info_table;
$this->_action = new Carto_Action($info_table['nom_table_zone'],$info_table['nom_chp_id_zone'], $info_table['nom_chp_rouge'], $info_table['nom_chp_vert'], $info_table['nom_chp_bleu'],
'carto_ACTION', 'CA_ID_Carte', 'CA_ID_Zone_geo', 'CA_Type_zone', 'CA_Action', 'CA_ID_Carte_destination');
$this->fils = array();
$this->filiation = $id;
$this->historique_cartes = '';
$this->liste_zone_carte = '';
$this->definirCouleurs();
$this->definirFormuleColoriage();
}
/*|=============================================================================================|*/
/*| LES METHODES PUBLIQUES |*/
/*|---------------------------------------------------------------------------------------------|*/
function definirCouleurs (
$couleur_zero_R = '255', $couleur_zero_V = '255', $couleur_zero_B = '255',
$couleur_mini_R = '210', $couleur_mini_V = '230', $couleur_mini_B = '210',
$couleur_medium_R = '92', $couleur_medium_V = '181', $couleur_medium_B = '92',
$couleur_maxi_R = '0', $couleur_maxi_V = '127', $couleur_maxi_B = '0')
{
$this->_zeroR = $couleur_zero_R;
$this->_zeroV = $couleur_zero_V;
$this->_zeroB = $couleur_zero_B;
$this->_miniR = $couleur_mini_R;
$this->_miniV = $couleur_mini_V;
$this->_miniB = $couleur_mini_B;
$this->_mediumR = $couleur_medium_R;
$this->_mediumV = $couleur_medium_V;
$this->_mediumB = $couleur_medium_B;
$this->_maxiR = $couleur_maxi_R;
$this->_maxiV = $couleur_maxi_V;
$this->_maxiB = $couleur_maxi_B;
}
function definirFormuleColoriage ($nomFormuleColoriage = 'defaut')
{
$this->_formule_coloriage = $nomFormuleColoriage;
}
//********************************************************************************************************
// La méthode donnerImageSimple ($objet) permet de récupérer une image non cliquable.
//*********************************************************************************************************
function donnerImageSimple ($objet)
{
$nom_fichier_image = $this->_donnerIdUnique();
$objet->_lancerColoriage('', $nom_fichier_image);
$res = '<img src="'.INS_CHEMIN_APPLI.'/bibliotheque/lib.carto.extractimg.php?fichier='.$nom_fichier_image.'" alt="image.png">';
return $res;
}
//********************************************************************************************************
// La methode ajouterFils() est essentielle. Elle permet d'ajouter toutes les sous cartes voulues.
// Il faut lui indiquer, comme a la carte du niveau du dessus, son nom, le masque, le fond et info_table_couleur.
// On a ainsi une inclusion d'objets les uns dans les autres.
//*********************************************************************************************************
function ajouterFils ($id, $id_zone_geo_carte, $nom, $masque, $fond, $info_table)
{
$this->fils[$id] = new Carto_Carte ($id, $id_zone_geo_carte, $nom, $masque, $fond, $this->chemin, $info_table);
//Si on ajoute à la carte du monde comme fils celle de l'europe, alors
//on aura comme valeur pour $this->filiation de la carte d'europe : monde*europe
$this->fils[$id]->filiation = $this->filiation.'*'.$id;
$this->fils[$id]->url = $this->url;
//Si on ajoute à la carte du monde dont le nom est 'Monde' comme fils celle de l'europe,
//dont le nom est 'Europe', alors on aura comme valeur pour $this->nom de la carte d'europe : Monde*Europe
$this->fils[$id]->nom = $this->nom.'*'.$nom;
$this->fils[$id]->historique_cartes = $this->historique_cartes;
}
//*********************************************************************************************************
// La methode donnerFormulaireImage() est la methode principale de la carto. C'est elle qui gere ce qu'il y a faire en
// fonction de l'action de l'utilisateur.
// Trois cas se distinguent :
// -soit l'utilisateur a clique sur un point de la carte.
// -soit il a clique sur un des liens que l'on a afficher avec la méthode afficherHistoriqueCarte de l'objet Carto_HistoriqueCarte.
// -soit il a sélectionné une zone géographique dans la liste déroulante.
// Elle renvoit a la fin:
// -soit une nouvelle carte coloriée
// -soit false.
//**********************************************************************************************************
function donnerFormulaireImage ()
{
global $GS_GLOBAL;
$res = '';
// Nous commençons par tester tout d'abords si nous venons d'une autre carte. Pour cela nous vérifions,
// si les attributs $this->image_x et $this->image_y de la classe Carte existe ou ne sont pas null.
// La carte est une image appelée par une balise <input type="image"> et non par une balise classique <img>.
// Ansi, lorsqu'on clique sur la carte le formulaire appelle (via l'url du formulaire) l'application
// utilisant la classe carte et lui renvoit deux variables contenant les coordonnées x et y du clic.
// L'application instancie à nouveau les objets cartes mais cette fois ci la carte affichée dépendra des
// informations founit par une table de la base de données.
// La classe carto_action instanciée dans l'application utilisant la classe carte fournit les noms
// des champs et celui de la table contenant les valeur RVB de chaque zone des cartes, l'identifiant
// de la zone et l'action à entreprendre pour la zone conssidérée.
// La méthode imgform() utilise la méthode get_cartoAction() de l'objet Carto_Action pour connaître
// en fonction des coordonnées du clic l'action à entreprendre.
if (isset ($this->image_x) && ($this->image_x != '') && isset ($this->image_y) && ($this->image_y != '')) {
// on regarde ici si l'on a pas un objet de plus bas niveau présent dans la variable de session carte
//a charger a la place de l'objet de plus haut niveau
$var_session_retour = $_SESSION['carte'] ;
if ($var_session_retour) {
$image_x = $this->image_x;
$image_y = $this->image_y;
$liste_zone_carte = $this->liste_zone_carte;
// Nous chargons alors l'ojet approprié en descendant grâce a la généalogie
 
$historique_cartes = explode('*',$this->historique_cartes);
foreach ($historique_cartes as $key => $value) {
if ($key != 0) {
foreach (get_object_vars($this->fils[$value]) as $key => $value)
$this->$key = $value;
}
}
 
$this->image_x = $image_x;
$this->image_y = $image_y;
$this->liste_zone_carte = $liste_zone_carte;
unset ($_SESSION['carte']) ;
}
// on regarde qu'est-ce qu'on doit faire grace a la methode _consulterAction() de l'objet Carto_Action
$action = $this->_action->_consulterActionImage($this->image_x, $this->image_y, $this->masque, $this->id);
// Nous distinguons 2 cas :
//le cas ou il faut afficher une nouvelle carte ... :
if ($action['type_action'] == 'Aller_a') {
$id_carte_destination = $action['id_carte_destination'] ;
$this->fils[$id_carte_destination]->liste_zone_carte = $this->liste_zone_carte;
if (INS_AFFICHE_ZONE_ROUGE) {
$res .= ''.$this->fils[$id_carte_destination]->_donnerListeZoneCarte()."<br />\n";
}
$res .= '<input type="image" src="';
$id_image = $this->_donnerIdUnique();
$this->fils[$id_carte_destination]->_lancerColoriage($id_image);
$obj = serialize($this->fils[$id_carte_destination]);
$_SESSION['carte'] = $obj ;
$this->historique = $this->fils[$id_carte_destination]->filiation;
$this->id = $this->fils[$id_carte_destination]->id;
$this->nom = $this->fils[$id_carte_destination]->nom;
}
//Dans le cas où l'on veut rappeler une nouvelle carte, il se peut que la nouvelle carte à rappeler
//soit la même que précédement.
//Cette possibilité peut se présenter quand on clique sur un zone blanche d'une carte (càd dans la mer)
//Là, on recharge la carte précédente :
elseif ($action['type_action'] == 'Recharger') {
if (INS_AFFICHE_ZONE_ROUGE) {
$res .= ''.$this->_donnerListeZoneCarte()."<br />\n";
}
$res .= '<input type="image" src="';
$id_image = $this->_donnerIdUnique();
$this->_lancerColoriage($id_image);
$obj = serialize($this);
$_SESSION['carte'] = $obj ;
$this->historique = $this->filiation;
}
// ... et le cas ou il faut lancer le dernier niveau
else if ($action['type_action'] == 'Stop') {
unset ($_SESSION['carte']) ;
$this->historique = $this->filiation.'*'.$action['id_zone_geo'];
$obj = serialize($this);
$_SESSION['carte'] = $obj ;
return false;
}
}
elseif ($this->liste_zone_carte != '') {
$liste_zone_carte = $this->liste_zone_carte;
$historique_cartes = explode('*',$this->historique_cartes);
foreach ($historique_cartes as $key => $value) {
if ($key != 0) {
foreach (get_object_vars($this->fils[$value]) as $key => $value)
$this->$key = $value;
}
}
$this->liste_zone_carte = $liste_zone_carte;
if (INS_AFFICHE_ZONE_ROUGE) {
$res .= ''.$this->_donnerListeZoneCarte($this->liste_zone_carte)."<br />\n";
}
$res .= '<input type="image" src="';
$id_image = $this->_donnerIdUnique();
$this->_lancerColoriage($id_image, '', $this->liste_zone_carte);
$this->historique = $this->historique_cartes;
$obj = serialize($this);
$_SESSION['carte'] = $obj ;
}
// On teste maintenant si l'on vient d'un lien. Si c'est le cas on a recu un argument
// qui nous donne la "genealogie" de la carte que l'on doit afficher
else if ($this->historique_cartes) {
// Nous chargons alors l'ojet approprié en descendant grâce a la généalogie
$historique_cartes = explode('*',$this->historique_cartes);
foreach ($historique_cartes as $key => $value) {
if ($key != 0) {
foreach (get_object_vars($this->fils[$value]) as $key => $value)
$this->$key = $value;
}
}
// une foit que l'on a charge le bon objet nous le colorions
if (INS_AFFICHE_ZONE_ROUGE) {
$res .= ''.$this->_donnerListeZoneCarte()."<br />\n";
}
$res .= '<input type="image" src="';
$id_image = $this->_donnerIdUnique();
$this->_lancerColoriage($id_image);
$this->historique = $this->historique_cartes;
$obj = serialize($this);
$_SESSION['carte'] = $obj ;
}
// Enfin si on ne vient pas d'une carte ou d'un lien c'est que l'on vient de l'onglet carto du menu
// et on affiche alors la premiere carte
else {
unset ($_SESSION['carte']) ;
if (INS_AFFICHE_ZONE_ROUGE) {
$res .= ''.$this->_donnerListeZoneCarte()."<br />\n";
}
$res .= '<input type="image" src="';
$id_image = $this->_donnerIdUnique();
$this->_lancerColoriage($id_image);
$this->historique = $this->id;
$obj = serialize($this);
$_SESSION['carte'] = $obj ;
}
$res .= INS_CHEMIN_APPLI.'/bibliotheque/lib.carto.extractimg.php?fichier='.$this->id.$id_image.'"';
$res .= ' name="image" onmouseover="javascript:show(\'d\');" onmouseout="javascript:show(\'d\');" />'."\n";
$res .= '<input type="hidden" name="historique_cartes" value="'.$this->historique.'" />'."\n";
return $res;
}
/*|=============================================================================================|*/
/*| LES METHODES PRIVEES |*/
/*|---------------------------------------------------------------------------------------------|*/
function _donnerListeZoneCarte($zone_par_defaut = '')
{
$retour = '';
$requete =
'SELECT '.$this->_info_table_zg['nom_chp_id_zone'].', '.$this->_info_table_zg['nom_chp_nom_zone'].
' FROM '.$this->_info_table_zg['nom_table_zone'];
if ($this->_info_table_zg['nom_chp_zone_sup'] != ''){
if(ereg("[a-z]+",$this->_id_zone_geo_carte)){
$requete .=
' WHERE '.$this->_info_table_zg['nom_chp_zone_sup'].' = "'.$this->_id_zone_geo_carte.'"';
}
else{
$requete .=
' WHERE '.$this->_info_table_zg['nom_chp_zone_sup'].' = '.$this->_id_zone_geo_carte;
}
}
$requete .=
' ORDER BY '.$this->_info_table_zg['nom_chp_nom_zone'].' ASC';
$resultat = mysql_query ($requete) or die(BOG_afficherErreurSql(__FILE__, __LINE__,
'', $requete));
$i=0;
$retour = '<select name="liste_zone_carte" style="float:right;" onchange="javascript:this.form.submit();">'."\n";
$retour .= '<option value="">'.INS_VISUALISER_ZONE.'</option>'."\n";
$nom_chp_nom_zone = $this->_info_table_zg['nom_chp_nom_zone'];
$nom_chp_id_zone = $this->_info_table_zg['nom_chp_id_zone'];
while ($ligne = mysql_fetch_object ($resultat)) {
if ($zone_par_defaut == $ligne->$nom_chp_id_zone){
$retour .= '<option value="'.$ligne->$nom_chp_id_zone.'" selected="selected">'.$ligne->$nom_chp_nom_zone.'</option>'."\n";
}
else {
$retour .= '<option value="'.$ligne->$nom_chp_id_zone.'">'.$ligne->$nom_chp_nom_zone.'</option>'."\n";
}
$i++;
}
$retour .= '</select>'."\n";
return $retour;
}
//==============================================================================
// METHODE _lancerColoriage()
//
// Elle lance le coloriage de l'image.
// Elle est lancée toute seule par la méthode donnerFormulaireImage().
// Les informations qui lui sont necessaires sont déjà données à l'objet carte (fond, info_table_couleur).
//==============================================================================
function _lancerColoriage ($id_image = '_00', $nom_fichier = '', $id_zone_a_reperer = '')
{
$this->image = imagecreatefrompng($this->fond);
$this->_colorierImage ($this->image, $this->_info_table_zg['nom_table_zone'], $this->_info_table_zg['nom_chp_id_zone'], $this->_info_table_zg['nom_chp_rouge'],
$this->_info_table_zg['nom_chp_vert'], $this->_info_table_zg['nom_chp_bleu'], $this->_info_table_zg['nom_chp_zone_sup'],
$this->_info_table_zg['tableau_valeurs_zone'], $id_zone_a_reperer) ;
if ($nom_fichier != '') {
imagepng(&$this->image, INS_CHEMIN_APPLI.'bibliotheque/tmp/carto/'.$nom_fichier.'.png');
//$this->image = imagepng(&$this->image);
}
else {
imagepng(&$this->image, INS_CHEMIN_APPLI.'bibliotheque/tmp/carto/'.$this->id.$id_image.'.png');
//imagepng(&$this->image);
}
}
//==============================================================================
// METHODE _colorierImage()
//
// Elle réalise le coloriage de l'image.
//==============================================================================
function _colorierImage (&$image_fond, $table_zone_geo, $chp_id_zone_couleur, $chp_rouge, $chp_vert, $chp_bleu, $chp_zone_sup, $tableau_valeurs_zone, $id_zone_a_reperer)
{
//----------------------------------------------------------------------------
// Cherche les valeurs RVB de la couleur de chaque zone géographique et les rentre dans
//un tableau d'objets Carto_InformationCouleur (voir la description de la classe ci-dessus.
$requete_01 =
'SELECT *'.
' FROM '.$table_zone_geo;
if ($chp_zone_sup != ''){
if(ereg("[a-z]+",$this->_id_zone_geo_carte)){
$requete_01 .=
' WHERE '.$chp_zone_sup.' = "'.$this->_id_zone_geo_carte.'"';
}
else{
$requete_01 .=
' WHERE '.$chp_zone_sup.' = '.$this->_id_zone_geo_carte;
}
}
$resultat_01 = mysql_query ($requete_01) or die('
<H2 style="text-align: center; font-weight: bold; font-size: 26px;">Erreur de requête</H2>'.
'<b>Requete : </b>'.$requete_01.
'<br/><br/><b>Erreur : </b>'.mysql_error());
$i=0;
$attachments = array();
while ($ligne_01 = mysql_fetch_object ($resultat_01)) {
$attachments[$i] = new Carto_InformationCouleur ($ligne_01->$chp_id_zone_couleur, $ligne_01->$chp_rouge, $ligne_01->$chp_vert, $ligne_01->$chp_bleu);
$i++;
}
//Nous libérons toute la mémoire associée à l'identifiant de résultat.
mysql_free_result ($resultat_01);
//----------------------------------------------------------------------------
// On realide l'association entre l'index des couleurs et la zone de meme couleur
$attachments = $this->_construireAssociationIndexZone ($image_fond, $attachments);
//----------------------------------------------------------------------------
//Dans l'application qui utilise la classe carte, nous avons instancié un tableau
//associatif qui contient en clé l'identifiant d'une zone géographique et en valeur
//un nombre (qui peut-être un nombre d'inscrit, d'institutions, de taxons...).
// Nous récupérons ci-dessous la valeur minimum autre que 0 présente dans ce tableau
//puis une valeur conscidérée comme maximum
if (!is_array($tableau_valeurs_zone)) {
$mini = 0;
$medium = 0;
$maxi = 0;
$nbre_valeurs = 0;
}
else {
if (count($tableau_valeurs_zone) == 0) {
$mini=0;
$medium = 0;
$maxi=0;
}
else {
$i=0;
foreach ($tableau_valeurs_zone as $cle => $valeur) {
//Nous recherchons le minimum, le maximum et le la valeur médium juste au dessous du maximum.
if ($valeur != 0) {
$tablo_valeurs[$i] = $valeur;
$i++;
}
}
//Nombre d'entrées dans le tableau de valeurs non nulles :
$nbre_valeurs = count($tablo_valeurs);
$somme_valeurs = array_sum($tablo_valeurs);
$tablo_frequences = array_count_values($tablo_valeurs);
$nbre_frequences = count($tablo_frequences);
if ($nbre_valeurs > 0){
//Nous trions le tableau dans l'ordre croissant :
sort($tablo_valeurs);
//Nous récupérons la valeur la plus petite :
$mini = $tablo_valeurs[0];
$maxi = $tablo_valeurs[$nbre_valeurs-1];
isset($tablo_valeurs[$nbre_valeurs-2]) ? $medium = $tablo_valeurs[$nbre_valeurs-2] : $medium = 0;
$moyenne = $somme_valeurs/$nbre_valeurs;
$ecart_au_carre_moyen = 0;
for ($i = 0; $i < $nbre_valeurs; $i++) {
$ecart_au_carre_moyen += pow(($tablo_valeurs[$i] - $moyenne), 2);
}
$variance = $ecart_au_carre_moyen/$nbre_valeurs;
$ecart_type = sqrt($variance);
$moyenne = round($moyenne, 0);
$variance = round($variance, 0);
$ecart_type = round($ecart_type, 0);
/*echo 'Nombre de valeurs : '.$nbre_valeurs.'<br>';
echo 'Nombre de frequences : '.$nbre_frequences.'<br>';
echo 'Moyenne : '.$moyenne.'<br>';
echo 'Variance : '.$variance.'<br>';
echo 'Ecart-type : '.$ecart_type.'<br>';
echo 'Formule de coloriage : '.$this->_formule_coloriage.'<br>';
echo "mini : $mini medium : $medium maxi : $maxi<br/>";
*/
}
}
}
 
//----------------------------------------------------------------------------
// Nous réalisons le coloriage de toutes les zones :
$requete_03 =
"SELECT $chp_id_zone_couleur ".
"FROM $table_zone_geo";
$resultat_03 = mysql_query ($requete_03) or die('
<H2 style="text-align: center; font-weight: bold; font-size: 26px;">Erreur de requête</H2>'.
'<b>Requete : </b>'.$requete_03.
'<br/><br/><b>Erreur : </b>'.mysql_error());
while ($ligne_03 = mysql_fetch_object ($resultat_03)) {
$id_zone_geo = $ligne_03->$chp_id_zone_couleur;
if (!isset ($tableau_valeurs_zone[$id_zone_geo])) {
$tableau_valeurs_zone[$id_zone_geo] = 0;
}
//Nous cherchons la couleur a afficher pour chaque zone.
if ($tableau_valeurs_zone[$id_zone_geo] != 0) {
//echo 'ZONE:'.$id_zone_geo."<br/>";
//echo $tableau_valeurs_zone[$id_zone_geo]."<br/>";
$theColor = $this->_donnerCouleur(
$this->_miniR, $this->_miniV, $this->_miniB,
$this->_mediumR , $this->_mediumV , $this->_mediumB ,
$this->_maxiR , $this->_maxiV , $this->_maxiB ,
$mini, $medium, $maxi, $nbre_valeurs, $ecart_type, $moyenne, $tablo_valeurs,
$tablo_frequences, $nbre_frequences,
$tableau_valeurs_zone[$id_zone_geo],
$this->_formule_coloriage);
//echo $theColor['R'].'<br>';
//echo $theColor['V'].'<br>';
//echo $theColor['B'].'<br>';
}
else {
$theColor['R'] = $this->_zeroR;
$theColor['V'] = $this->_zeroV;
$theColor['B'] = $this->_zeroB;
}
//Nous réalisons le coloriage de toutes les zones de l'image avec la couleur obtenue.
$this->_remplacerCouleur($image_fond, $attachments, $id_zone_geo, $theColor['R'], $theColor['V'], $theColor['B'], $id_zone_a_reperer);
}
//Nous libérons toute la mémoire associée à l'identifiant de résultat de la requête.
mysql_free_result ($resultat_03);
}
//==============================================================================
// METHODE _construireAssociationIndexZone ($image, &$att)
//
// Le tableau $att est passé par référence. La méthode modifie donc directement
// le tableau et ne renvoit donc rien.
// Attache dans un tableau $att, contenant sous forme d'objet (Carto_ColorInfo)
// les valeurs RVB des zones d'une image, la valeur de l'index correspondant
// à la couleur de la zone.
// Note : les images en question sont constituées de zones distincte possédant
// chacune une couleur unique et unie.
//==============================================================================
function _construireAssociationIndexZone(&$image_fond, &$att)
{
// Nous récupérons le nombre de couleur différentes contenues dans l'image.
//echo $this->fond.'<BR>';
$image_fond = imagecreatefrompng($this->fond);
$taille_palette = imagecolorstotal ($image_fond);
if (!$image_fond) echo 'erreur fond : '.$this->fond;
// Pour chaque couleur contenue dans l'image, nous cherchons l'objet correspondant
// dans le tableau $att, qui contient des informations sur chaque zone de l'image,
// et nous attribuons à l'objet la valeur de l'index de sa couleur dans l'image.
for ($i = 0; $i < $taille_palette; $i++) {
$valeurs_RVB = array();
$valeurs_RVB = imagecolorsforindex ($image_fond, $i);
for ($j = 0; $j < count ($att); $j++) {
if (($att[$j]->rouge == $valeurs_RVB['red']) && ($att[$j]->vert == $valeurs_RVB['green']) && ($att[$j]->bleu == $valeurs_RVB['blue'])) {
$att[$j]->index = $i;
//echo 'ICI'.$att[$j]->id_zone.$att[$j]->index.'<br>';
break;
}
}
}
return $att;
}//Fin méthode _construireAssociationIndexZone()
 
//==============================================================================
// METHODE _donnerCouleur()
//------------------------------------------------------------------------------
// Renvoie pour une valeur donnee la couleur a mettre
//------------------------------------------------------------------------------
// ENTREE
// $miniR : valeur rouge du minimum
// $miniV : valeur vert du minimum
// $miniB : valeur blue du minimum
// $maxiR : valeur rouge du maximum
// $maxiV : valeur vert du maximum
// $maxiB : valeur bleu du maximum
// $mediumR : valeur rouge du deuxieme maximum
// $mediumV : valeur vert du deuxieme maximum
// $mediumB : valeur bleu du deuxieme maximum
// $mini : valeur mini sur l'echelle
// $medium : valeur juste au dessous du maximum sur l'echelle
// $maxi : valeur maxi sur l'echelle
// $val : valeur dont on cherche la couleur
//------------------------------------------------------------------------------
// SORTIE
// $couleur array donne la couleur pour la valeur demande ($val)
//------------------------------------------------------------------------------
function _donnerCouleur($miniR, $miniV, $miniB, $mediumR, $mediumV, $mediumB, $maxiR,
$maxiV, $maxiB, $mini, $medium, $maxi, $nbre_valeurs, $ecart_type, $moyenne, $tablo_valeurs, $tablo_frequences, $nbre_frequences, $val, $formuleColoriage)
{
if ($formuleColoriage == 'defaut'){
if ($val == $maxi) {
$couleur['R'] = $maxiR;
$couleur['V'] = $maxiV;
$couleur['B'] = $maxiB;
}
if ($val == $mini && $val != $maxi) {
$couleur['R'] = $miniR;
$couleur['V'] = $miniV;
$couleur['B'] = $miniB;
}
if ($maxi/10 > $medium && $maxi/40 < $medium) {
$diff = $medium - $mini;
if ($diff > 0 && $val != $medium && $val != $maxi) {
$diffR = $mediumR - $miniR;
$diffV = $mediumV - $miniV;
$diffB = $mediumB - $miniB;
$variationR = round ( ($diffR/$diff ), 0 );
$variationV = round ( ($diffV/$diff ), 0 );
$variationB = round ( ($diffB/$diff ), 0 );
$couleur['R'] = couleur_bornerNbre(($miniR + ($val * $variationR)), 0, 255);
$couleur['V'] = couleur_bornerNbre(($miniV + ($val * $variationV)), 0, 255);
$couleur['B'] = couleur_bornerNbre(($miniB + ($val * $variationB)), 0, 255);
}
else if ($val == $medium) {
$couleur['R'] = $mediumR;
$couleur['V'] = $mediumV;
$couleur['B'] = $mediumB;
}
}
else {
$diff = $maxi - $mini;
if ($diff > 0 && $val != $maxi && $val != $mini) {
$diffR = $maxiR - $miniR;
$diffV = $maxiV - $miniV;
$diffB = $maxiB - $miniB;
$variationR = round ( ($diffR/$diff ), 0 );
$variationV = round ( ($diffV/$diff ), 0 );
$variationB = round ( ($diffB/$diff ), 0 );
$couleur['R'] = couleur_bornerNbre(($miniR + ($val * $variationR)), 0, 255);
$couleur['V'] = couleur_bornerNbre(($miniV + ($val * $variationV)), 0, 255);
$couleur['B'] = couleur_bornerNbre(($miniB + ($val * $variationB)), 0, 255);
}
else if ($diff == 0){
$couleur['R'] = $mediumR;
$couleur['V'] = $mediumV;
$couleur['B'] = $mediumB;
}
}
}
elseif ($formuleColoriage == 'ecart_type') {
if ($ecart_type == 0) {
$couleur['R'] = $maxiR;
$couleur['V'] = $maxiV;
$couleur['B'] = $maxiB;
}
elseif ($ecart_type >= 1 && $ecart_type <= 15) {
if ($val == $mini) {
$couleur['R'] = $miniR;
$couleur['V'] = $miniV;
$couleur['B'] = $miniB;
}
elseif ($val == $medium) {
$couleur['R'] = $mediumR;
$couleur['V'] = $mediumV;
$couleur['B'] = $mediumB;
}
elseif ($val == $maxi) {
$couleur['R'] = $maxiR;
$couleur['V'] = $maxiV;
$couleur['B'] = $maxiB;
}
else {
$dif_valeur_maxi_mini = $maxi - $mini;
$diffR = $maxiR - $miniR;
$diffV = $maxiV - $miniV;
$diffB = $maxiB - $miniB;
$variationR = round ( ($diffR/$dif_valeur_maxi_mini ), 0 );
$variationV = round ( ($diffV/$dif_valeur_maxi_mini ), 0 );
$variationB = round ( ($diffB/$dif_valeur_maxi_mini ), 0 );
$couleur['R']=$miniR + ($val * $variationR);
$couleur['V']=$miniV + ($val * $variationV);
$couleur['B']=$miniB + ($val * $variationB);
}
}
elseif ($ecart_type > 15) {
//Le tableau est trié de la plus petite à la plus grande clé.
ksort($tablo_frequences);
$i = 0;
foreach ($tablo_frequences as $cle => $valeur){
//Nous cherchons la correspondance entre la valeur et la clé.
if ($cle == $val) {
//Pour faire le Rouge, Vert, Bleu
$couleur['R'] = $miniR + ($i/$nbre_frequences) * ($maxiR - $miniR);
$couleur['V'] = $miniV + ($i/$nbre_frequences) * ($maxiV - $miniV);
$couleur['B'] = $miniB + ($i/$nbre_frequences) * ($maxiB - $miniB);
}
$i++;
}
}
}
return $couleur;
}//Fin méthode _donnerCouleur()
 
//==============================================================================
// METHODE _remplacerCouleur ($img, $att, $id_zone_geo, $r, $g, $b)
//
// $img is the image, $att an array of carto_colorinfo objects, $id_zone_geo the name
// of an object of $att, ($r, $g, $b) the new color.
//
// In the palette of $img, the color matching with $id_zone_geo is modified.
//==============================================================================
function _remplacerCouleur(&$image, &$atta, $id_zone_geo, $rouge, $vert, $bleu, $id_zone_a_reperer)
{
// Nous recherchons la valeur de l'index.
$index = -1;
for ($i = 0; $i < count ($atta); $i++) {
if ($atta[$i]->id_zone == $id_zone_geo) {
$index = $atta[$i]->index;
//Dans le cas où nous voulons repérer une zone sur la carte :
if($id_zone_geo == $id_zone_a_reperer) {
$rouge = 255;
$vert = 0;
$bleu = 0;
}
break;
}
}
// Nous mettons à jour l'image de la carte avec la valeur de l'index.
if ($index >= 0) {
imagecolorset (&$image, $index, $rouge, $vert, $bleu);
}
}//Fin de la méthode _remplacerCouleur
//==============================================================================
// METHODE _donnerIdUnique ()
//
// Cette méthode privée retourne un identifiant de 32 caractères unique.
//
//==============================================================================
function _donnerIdUnique()
{
$id = '';
$id = md5 (uniqid (rand()));
return $id;
}//Fin de la méthode _donnerIdUnique()
 
 
}//Fin de la classe Carto_Carte()
 
//==============================================================================
// La classe Carto_InformationCouleur n'est utilisée que par la classe carte.
// C'est une classe privée.
// Elle sert à stocker les informations (RVB et index) sur la couleur d'une
// zone d'une image.
//==============================================================================
 
class Carto_InformationCouleur
{
/*|=============================================================================================|*/
/*| LES ATTRIBUTS DE LA CLASSE |*/
/*|---------------------------------------------------------------------------------------------|*/
var $id_zone;
var $rouge;
var $vert;
var $bleu;
var $index;
/*|=============================================================================================|*/
/*| LE CONSTRUCTEUR DE LA CLASSE |*/
/*|---------------------------------------------------------------------------------------------|*/
function Carto_InformationCouleur($id_zone, $rouge, $vert, $bleu)
{
$this->id_zone = $id_zone;
$this->rouge = $rouge;
$this->vert = $vert;
$this->bleu = $bleu;
$this->index = -1;
}
}//Fin de la classe Carto_InformationCouleur
 
 
//==============================================================================
// FUNCTION carto_errorMsg ()
//
// Return an error message about carto management.
//==============================================================================
 
function carto_errorMsg()
{
global $PRIVATE_CARTO_ERROR;
 
return $PRIVATE_CARTO_ERROR;
}
 
//==============================================================================
// FUNCTION carto_putErrorImage ()
//
// Dump a default error image.
//==============================================================================
 
function carto_putErrorImage()
{
$img = '47494638396120002000800100ff000000006621f90401000001002c000000002000'.
'200040026d848fa99be11f009c53524373b41ae2da65dcf345e1693aa536aae77ab1'.
'e1d7a2a22ad5f60deb6fe54bc958418f0b05bb9190bee2f1327276a2c91db16a855a'.
'a4489c31bb24d5b8614fb32b2a9ea7d228738785dab673e7f81554b395682008dc52'.
'4236b4210416c390a8a85000003b';
header ('Content-Type: image/gif');
echo gs_hex2bin($img);
}
 
//==============================================================================
//==============================================================================
// Les fonctions qui suivent permettent de recuperer des infos (nom de l'image,
// du masque, du niveau ou du titre) d'une carte.
//==============================================================================
//==============================================================================
 
function carto_consulterTitreCarte($id_carte)
{
global $NOM_FICHIER;
$requete =
'SELECT * '.
' FROM carto_DESCRIPTION_CARTE'.
' WHERE CDC_ID_Carte = "'.$id_carte.'"';
$resultat = mysql_query ($requete) or die('
<H2 style="text-align: center; font-weight: bold; font-size: 26px;">Erreur de requête</H2>'.
'<b>Nom du fichier : </b> '.$NOM_FICHIER.'<br/>'.
'<b>Nom fonction : </b> carto_consulterTitreCarte<br/>'.
'<b>Requete : </b>'.$requete.
'<br/><br/><b>Erreur : </b>'.mysql_error());
$ligne = mysql_fetch_object ($resultat);
$titre_carte = $ligne->CDC_Titre_carte;
return $titre_carte;
}
 
function carto_consulterFichierFond($id_carte)
{
global $NOM_FICHIER;
$requete =
'SELECT * '.
' FROM carto_DESCRIPTION_CARTE'.
' WHERE CDC_ID_Carte = "'.$id_carte.'"';
$resultat = mysql_query ($requete) or die('
<H2 style="text-align: center; font-weight: bold; font-size: 26px;">Erreur de requête</H2>'.
'<b>Nom du fichier : </b> '.$NOM_FICHIER.'<br/>'.
'<b>Nom fonction : </b> carto_consulterFichierFond<br/>'.
'<b>Requete : </b>'.$requete.
'<br/><br/><b>Erreur : </b>'.mysql_error());
$ligne = mysql_fetch_object ($resultat);
$nom_fichier_carte_fond = $ligne->CDC_Carte_fond;
return $nom_fichier_carte_fond;
}
 
function carto_consulterFichierMasque($id_carte)
{
global $NOM_FICHIER;
$requete =
'SELECT * '.
' FROM carto_DESCRIPTION_CARTE'.
' WHERE CDC_ID_Carte = "'.$id_carte.'"';
$resultat = mysql_query ($requete) or die('
<H2 style="text-align: center; font-weight: bold; font-size: 26px;">Erreur de requête</H2>'.
'<b>Nom du fichier : </b> '.$NOM_FICHIER.'<br/>'.
'<b>Nom fonction : </b> carto_consulterFichierMasque<br/>'.
'<b>Requete : </b>'.$requete.
'<br/><br/><b>Erreur : </b>'.mysql_error());
$ligne = mysql_fetch_object ($resultat);
$nom_fichier_carte_masque = $ligne->CDC_Carte_masque;
return $nom_fichier_carte_masque;
}
 
function carto_consulterTypeZoneCarte($id_carte)
{
global $NOM_FICHIER;
$requete =
'SELECT * '.
' FROM carto_DESCRIPTION_CARTE'.
' WHERE CDC_ID_Carte = "'.$id_carte.'"';
$resultat = mysql_query($requete) or die('
<H2 style="text-align: center; font-weight: bold; font-size: 26px;">Erreur de requête</H2>'.
'<b>Nom du fichier : </b> '.$NOM_FICHIER.'<br/>'.
'<b>Nom fonction : </b> carto_consulterTypeZoneCarte<br/>'.
'<b>Requete : </b>'.$requete.
'<br/><br/><b>Erreur : </b>'.mysql_error());
$ligne = mysql_fetch_object($resultat);
$type_zone_carte = $ligne->CDC_Type_zone_carte;
return $type_zone_carte;
}
 
function carto_consulterIdZoneGeoCarte($id_carte)
{
global $NOM_FICHIER;
$requete =
'SELECT * '.
' FROM carto_DESCRIPTION_CARTE'.
' WHERE CDC_ID_Carte = "'.$id_carte.'"';
$resultat = mysql_query($requete) or die('
<H2 style="text-align: center; font-weight: bold; font-size: 26px;">Erreur de requête</H2>'.
'<b>Nom du fichier : </b> '.$NOM_FICHIER.'<br/>'.
'<b>Nom fonction : </b> carto_consulterIdZoneGeoCarte<br/>'.
'<b>Requete : </b>'.$requete.
'<br/><br/><b>Erreur : </b>'.mysql_error());
$ligne = mysql_fetch_object ($resultat);
$id_zone_carte = $ligne->CDC_ID_Zone_geo_carte;
return $id_zone_carte;
}
 
//-- Fin du code source ------------------------------------------------------------
/*
* $Log: not supported by cvs2svn $
* Revision 1.8 2007/04/11 08:30:12 neiluj
* remise en état du CVS...
*
* Revision 1.5 2006/12/01 13:23:16 florian
* integration annuaire backoffice
*
* Revision 1.4 2006/04/04 12:23:05 florian
* modifs affichage fiches, généricité de la carto, modification totale de l'appli annuaire
*
* Revision 1.3 2005/12/07 14:59:14 alexandre_tb
* suppression d'un echo
*
* Revision 1.2 2005/11/24 16:17:52 florian
* changement template inscription + modifs carto
*
* Revision 1.1 2005/09/22 14:02:49 ddelon
* nettoyage annuaire et php5
*
* Revision 1.2 2005/09/22 13:30:49 florian
* modifs pour compatibilité XHTML Strict + corrections de bugs (mais ya encore du boulot!!)
*
* Revision 1.1 2004/12/15 13:30:20 alex
* version initiale
*
* Revision 1.17 2003/05/16 13:17:40 jpm
* Correction d'une erreur (des guillemets en trop).
*
* Revision 1.16 2003/03/14 14:12:14 jpm
* Correction bug : le nom de la zone ne restait pas dans la liste déroulante.
*
* Revision 1.15 2003/03/11 14:49:47 jpm
* Simplification de l'interface.
*
* Revision 1.14 2003/03/07 15:10:24 jpm
* Ajout de commentaires : "à faire"
*
* Revision 1.13 2003/03/04 16:14:06 alex
* Utilisation de la fonction cxt_clearVariable à la place de cxt_clear
*
* Revision 1.12 2003/03/04 08:09:39 jpm
* Ajout suppression des fichiers carto du dossier carto temporaire.
*
* Revision 1.11 2003/02/26 12:12:38 jpm
* Ajout de la gestion des listes déroulantes représentant la zone géographique
* à éditer.
*
* Revision 1.10 2003/02/21 13:50:57 jpm
* Mise à jour nouvel objet Carto_Carte.
*
* Revision 1.8 2003/02/14 08:01:14 jpm
* Changement des noms de méthode selon les recommandations de PEAR.
* Ajout d'attributs à la classe.
* Ajout de la possibilité de redéfinir les couleurs de coloriage d'une carte.
* Ajout de la possibilité de désigner une formule mathématique de coloriage.
*
* Revision 1.7 2003/02/12 18:15:56 jpm
* Meilleure gestion de l'obtentions des valeurs minimum, medium et maximum
* pour l'ensemble des zones géographiques d'une carte.
* Ajout de commentaires.
* Meilleure gestion des erreurs de requêtes.
*
*
*/
?>
/tags/v4.0-djer/client/bottin/bibliotheque/inscription.fonct.formulaire.php
New file
0,0 → 1,513
<?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.formulaire.php,v 1.2 2007-06-25 09:59:03 alexandre_tb Exp $
/**
* Formulaire
*
* Les fonctions de mise en page des formulaire
*
*@package bottin
//Auteur original :
*@author Florian SCHMITT <florian@ecole-et-nature.org>
*@author Aleandre GRANIER <alexandre@tela-botanica.org>
*@copyright Tela-Botanica 2000-2007
*@version $Revision: 1.2 $ $Date: 2007-06-25 09:59:03 $
// +------------------------------------------------------------------------------------------------------+
*/
 
//-------------------FONCTIONS DE MISE EN PAGE DES FORMULAIRES
 
/** liste() - Ajoute un élément de type liste au formulaire
*
* @param mixed L'objet QuickForm du formulaire
* @param int identifiant de la liste sur bazar_liste
* @param string label à afficher dans le formulaire
* @param string première restriction de la taille des champs du formulaire
* @param string deuxième restriction de la taille des champs du formulaire
* @param string valeur par défaut du formulaire
* @param string table source pour les valeurs de la liste
* @param string ce champs est il obligatoire? (required)
* @param boolean sommes nous dans le moteur de recherche?
* @return void
*/
function liste(&$formtemplate, $id_liste , $label, $limite1, $limite2, $defaut, $source, $obligatoire, $dans_moteur_de_recherche=0) {
$requete = 'SELECT * FROM bazar_liste_valeurs WHERE blv_ce_liste='.$id_liste.' AND blv_ce_i18n="'.$GLOBALS['_BAZAR_']['langue'].'"';
$resultat = & $GLOBALS['ins_db'] -> query($requete) ;
if (DB::isError ($resultat)) {
die ($resultat->getMessage().$resultat->getDebugInfo()) ;
}
if ($dans_moteur_de_recherche==0) {
$select[0]=BAZ_CHOISIR;
}
else {
$select[0]=BAZ_INDIFFERENT;
}
while ($ligne = $resultat->fetchRow()) {
$select[$ligne[1]] = $ligne[2] ;
}
$option=array('style'=>'width: '.$limite1.'px;', 'id' => 'liste'.$id_liste);
require_once PAP_CHEMIN_API_PEAR.'HTML/QuickForm/select.php';
$select= new HTML_QuickForm_select('liste'.$id_liste, $label, $select, $option);
$select->setSize($limite2);
$select->setMultiple(0);
$select->setSelected($defaut);
$formtemplate->addElement($select) ;
if (($dans_moteur_de_recherche==0) && isset($obligatoire) && ($obligatoire==1)) {
$formtemplate->addRule('liste'.$id_liste, BAZ_CHOISIR_OBLIGATOIRE.' '.$label , 'nonzero', '', 'client') ;
$formtemplate->addRule('liste'.$id_liste, $label.' obligatoire', 'required', '', 'client') ;}
}
 
 
/** checkbox() - Ajoute un élément de type checkbox au formulaire
*
* @param mixed L'objet QuickForm du formulaire
* @param int identifiant de la liste sur bazar_liste
* @param string label à afficher dans le formulaire
* @param string première restriction de la taille des champs du formulaire
* @param string deuxième restriction de la taille des champs du formulaire
* @param string valeur par défaut du formulaire
* @param string table source pour les valeurs de la liste
* @param string ce champs est il obligatoire? (required)
* @return void
*/
function checkbox(&$formtemplate, $id_liste , $label, $limite1, $limite2, $defaut, $source, $obligatoire, $dans_moteur_de_recherche=0) {
$requete = 'SELECT * FROM bazar_liste_valeurs WHERE blv_ce_liste='.$id_liste.' AND blv_ce_i18n="'.$GLOBALS['_BAZAR_']['langue'].'" ORDER BY blv_label';
$resultat = & $GLOBALS['ins_db'] -> query($requete) ;
if (DB::isError ($resultat)) {
die ($resultat->getMessage().$resultat->getDebugInfo()) ;
}
require_once PAP_CHEMIN_API_PEAR.'HTML/QuickForm/checkbox.php' ;
$i=0;
if (isset($defaut)) $tab=split(', ', $defaut);
while ($ligne = $resultat->fetchRow()) {
if ($i==0) $labelchkbox=$label ; else $labelchkbox='&nbsp;';
$checkbox[$i]= & HTML_Quickform::createElement('checkbox', $ligne[1], $labelchkbox, $ligne[2],
array ('style'=>'display:inline;margin:2px;')) ;
foreach ($tab as $val) {
if ($ligne[1]==$val) $checkbox[$i]->setChecked(1);
}
$i++;
}
$squelette_checkbox =& $formtemplate->defaultRenderer();
$squelette_checkbox->setElementTemplate( '<tr><td colspan="2" style="text-align:left;">'."\n".'<fieldset class="bazar_fieldset">'."\n".'<legend>{label}'.
'<!-- BEGIN required --><span class="symbole_obligatoire">&nbsp;*</span><!-- END required -->'."\n".
'</legend>'."\n".'{element}'."\n".'</fieldset> '."\n".'</td></tr>'."\n", 'checkbox'.$id_liste);
$squelette_checkbox->setGroupElementTemplate( "\n".'<div class="bazar_checkbox">'."\n".'{element}'."\n".'</div>'."\n", 'checkbox'.$id_liste);
$formtemplate->addGroup($checkbox, 'checkbox'.$id_liste, $label, "\n");
if (($dans_moteur_de_recherche==0) && isset($obligatoire) && ($obligatoire==1)) {
$formtemplate->addGroupRule('checkbox'.$id_liste, $label.' obligatoire', 'required', null, 1, 'client');
}
}
 
 
/** listedatedeb() - Ajoute un élément de type date sous forme de liste au formulaire pour designer une date de début
*
* @param mixed L'objet QuickForm du formulaire
* @param string nom de la table dans la base de donnée
* @param string label à afficher dans le formulaire
* @param string première restriction de la taille des champs du formulaire
* @param string deuxième restriction de la taille des champs du formulaire
* @param string valeur par défaut du formulaire
* @param string table source pour les valeurs de la date
* @param string ce champs est il obligatoire? (required)
* @return void
*/
function listedatedeb(&$formtemplate, $nom_bdd , $label, $limite1, $limite2, $defaut, $source, $obligatoire, $dans_moteur_de_recherche=0) {
$optiondate = array('language' => BAZ_LANGUE_PAR_DEFAUT,
'minYear' => date('Y')-4,
'maxYear'=> (date('Y')+10),
'format' => 'd m Y',
'addEmptyOption' => BAZ_DATE_VIDE,
);
$formtemplate->addElement('date', $nom_bdd, $label, $optiondate) ;
//gestion des valeurs par défaut (date du jour)
if (isset($defaut) && $defaut!='') {
$tableau_date = explode ('-', $defaut);
$formtemplate->setDefaults(array($nom_bdd => array ('d'=> $tableau_date[2], 'm'=> $tableau_date[1], 'Y'=> $tableau_date[0])));
}
else {
$defauts=array($nom_bdd => array ('d'=>date('d'), 'm'=>date('m'), 'Y'=>date('Y')));
$formtemplate->setDefaults($defauts);
}
//gestion du champs obligatoire
if (($dans_moteur_de_recherche==0) && isset($obligatoire) && ($obligatoire==1)) {
$formtemplate->addRule($nom_bdd, $label.' obligatoire', 'required', '', 'client') ;
}
}
 
/** listedatefin() - Ajoute un élément de type date sous forme de liste au formulaire pour designer une date de fin
*
* @param mixed L'objet QuickForm du formulaire
* @param string nom de la table dans la base de donnée
* @param string label à afficher dans le formulaire
* @param string première restriction de la taille des champs du formulaire
* @param string deuxième restriction de la taille des champs du formulaire
* @param string valeur par défaut du formulaire
* @param string table source pour les valeurs de la date
* @param string ce champs est il obligatoire? (required)
* @return void
*/
function listedatefin(&$formtemplate, $nom_bdd , $label, $limite1, $limite2, $defaut, $source, $obligatoire, $dans_moteur_de_recherche=0) {
listedatedeb($formtemplate, $nom_bdd , $label, $limite1, $limite2, $defaut, $source, $obligatoire, $dans_moteur_de_recherche);
}
 
 
/** texte() - Ajoute un élément de type texte au formulaire
*
* @param mixed L'objet QuickForm du formulaire
* @param string nom de la table dans la base de donnée
* @param string label à afficher dans le formulaire
* @param string première restriction de la taille des champs du formulaire
* @param string deuxième restriction de la taille des champs du formulaire
* @param string valeur par défaut du formulaire
* @param string table source pour les valeurs du texte (inutile)
* @param string ce champs est il obligatoire? (required)
* @return void
*/
function texte(&$formtemplate, $nom_bdd , $label, $limite1, $limite2, $defaut, $source, $obligatoire, $dans_moteur_de_recherche=0) {
$option=array('size'=>$limite1,'maxlength'=>$limite2, 'id' => $nom_bdd);
$formtemplate->addElement('text', $nom_bdd, $label, $option) ;
//gestion des valeurs par défaut
$defauts=array($nom_bdd=>$defaut);
$formtemplate->setDefaults($defauts);
$formtemplate->applyFilter($nom_bdd, 'addslashes') ;
//gestion du champs obligatoire
if (($dans_moteur_de_recherche==0) && isset($obligatoire) && ($obligatoire==1)) {
$formtemplate->addRule($nom_bdd, $label.' obligatoire', 'required', '', 'client') ;
}
}
 
 
/** textelong() - Ajoute un élément de type textearea au formulaire
*
* @param mixed L'objet QuickForm du formulaire
* @param string nom de la table dans la base de donnée
* @param string label à afficher dans le formulaire
* @param string taille des colonnes de l'élément
* @param string taille des lignes de l'élément
* @param string valeur par défaut du formulaire
* @param string table source pour les valeurs du texte (inutile)
* @param string ce champs est il obligatoire? (required)
* @return void
*/
function textelong(&$formtemplate, $nom_bdd , $label, $limite1, $limite2, $defaut, $source, $obligatoire, $dans_moteur_de_recherche=0) {
$formtexte= new HTML_QuickForm_textarea($nom_bdd, $label, array('style'=>'white-space: normal;', 'id' => $nom_bdd));
$formtexte->setCols($limite1);
$formtexte->setRows($limite2);
$formtemplate->addElement($formtexte) ;
//gestion des valeurs par défaut
$defauts=array($nom_bdd=>$defaut);
$formtemplate->setDefaults($defauts);
$formtemplate->applyFilter($nom_bdd, 'addslashes') ;
//gestion du champs obligatoire
if (($dans_moteur_de_recherche==0) && isset($obligatoire) && ($obligatoire==1)) {
$formtemplate->addRule($nom_bdd, $label.' obligatoire', 'required', '', 'client') ;
}
}
 
/** url() - Ajoute un élément de type url internet au formulaire
*
* @param mixed L'objet QuickForm du formulaire
* @param string numero du champs input du formulaire (pour le différencier d'autres champs du meme type dans ce formulaire)
* @param string label à afficher dans le formulaire
* @param string taille des colonnes de l'élément
* @param string taille des lignes de l'élément
* @param string valeur par défaut du formulaire
* @param string table source pour les valeurs du texte (inutile)
* @param string ce champs est il obligatoire? (required)
* @return void
*/
function url(&$formtemplate, $nom_bdd , $label, $limite1, $limite2, $defaut, $source, $obligatoire, $dans_moteur_de_recherche=0) {
//recherche des URLs deja entrees dans la base
$html_url= '';
if (isset($GLOBALS['_BAZAR_']["id_fiche"])) {
$requete = 'SELECT bu_id_url, bu_url, bu_descriptif_url FROM bazar_url WHERE bu_ce_fiche='.$GLOBALS['_BAZAR_']["id_fiche"];
$resultat = & $GLOBALS['_BAZAR_']['db'] -> query($requete) ;
if (DB::isError ($resultat)) {
die ($GLOBALS['_BAZAR_']['db']->getMessage().$GLOBALS['_BAZAR_']['db']->getDebugInfo()) ;
}
if ($resultat->numRows()>0) {
$html_url= '<tr>'."\n".'<td colspan="2">'."\n".'<strong>'.BAZ_LISTE_URL.'</strong>'."\n";
$tableAttr = array("class" => "bazar_table") ;
$table = new HTML_Table($tableAttr) ;
$entete = array (BAZ_LIEN , BAZ_SUPPRIMER) ;
$table->addRow($entete) ;
$table->setRowType(0, "th") ;
$lien_supprimer=$GLOBALS['ins_db'];
$lien_supprimer->addQueryString('action', $_GET['action']);
$lien_supprimer->addQueryString('id_fiche', $GLOBALS['_BAZAR_']["id_fiche"]);
$lien_supprimer->addQueryString('typeannonce', $_REQUEST['typeannonce']);
while ($ligne = $resultat->fetchRow(DB_FETCHMODE_OBJECT)) {
$lien_supprimer->addQueryString('id_url', $ligne->bu_id_url);
$table->addRow (array(
'<a href="'.$ligne->bu_url.'" target="_blank"> '.$ligne->bu_descriptif_url.'</a>', // col 1 : le lien
'<a href="'.$lien_supprimer->getURL().'" onclick="javascript:return confirm(\''.BAZ_CONFIRMATION_SUPPRESSION_LIEN.'\');" >'.BAZ_SUPPRIMER.'</a>'."\n")) ; // col 2 : supprimer
$lien_supprimer->removeQueryString('id_url');
}
 
// Nettoyage de l'url
$lien_supprimer->removeQueryString('action');
$lien_supprimer->removeQueryString('id_fiche');
$lien_supprimer->removeQueryString('typeannonce');
$table->altRowAttributes(1, array("class" => "ligne_impaire"), array("class" => "ligne_paire"));
$table->updateColAttributes(1, array("align" => "center"));
$html_url.= $table->toHTML()."\n".'</td>'."\n".'</tr>'."\n" ;
}
}
$html ='<tr>'."\n".'<td colspan="2">'."\n".'<h4>'.$label.'</h4>'."\n".'</td>'."\n".'</tr>'."\n";
$formtemplate->addElement('html', $html) ;
if ($html_url!='') $formtemplate->addElement('html', $html_url) ;
$formtemplate->addElement('text', 'url_lien'.$nom_bdd, BAZ_URL_LIEN) ;
$formtemplate->addElement('text', 'url_texte'.$nom_bdd, BAZ_URL_TEXTE) ;
//gestion du champs obligatoire
if (($dans_moteur_de_recherche==0) && isset($obligatoire) && ($obligatoire==1)) {
$formtemplate->addRule('url_lien'.$nom_bdd, BAZ_URL_LIEN_REQUIS, 'required', '', 'client') ;
$formtemplate->addRule('url_texte'.$nom_bdd, BAZ_URL_TEXTE_REQUIS, 'required', '', 'client') ;
}
}
 
/** fichier() - Ajoute un élément de type fichier au formulaire
*
* @param mixed L'objet QuickForm du formulaire
* @param string numero du champs input du formulaire (pour le différencier d'autres champs du meme type dans ce formulaire)
* @param string label à afficher dans le formulaire
* @param string taille des colonnes de l'élément
* @param string taille des lignes de l'élément
* @param string valeur par défaut du formulaire
* @param string table source pour les valeurs du texte (inutile)
* @param string ce champs est il obligatoire? (required)
* @return void
*/
function fichier(&$formtemplate, $nom_bdd , $label, $limite1, $limite2, $defaut, $source, $obligatoire, $dans_moteur_de_recherche=0) {
//AJOUTER DES FICHIERS JOINTS
$html_fichier= '';
if (isset($GLOBALS['_BAZAR_']["id_fiche"])) {
$requete = 'SELECT * FROM bazar_fichier_joint WHERE bfj_ce_fiche='.$GLOBALS['_BAZAR_']["id_fiche"];
$resultat = & $GLOBALS['ins_db'] -> query($requete) ;
if (DB::isError ($resultat)) {
die ($GLOBALS['_BAZAR_']['db']->getMessage().$GLOBALS['_BAZAR_']['db']->getDebugInfo()) ;
}
if ($resultat->numRows()>0) {
$html_fichier = '<tr>'."\n".'<td colspan="2">'."\n".'<strong>'.BAZ_LISTE_FICHIERS_JOINTS.'</strong>'."\n";
$tableAttr = array("class" => "bazar_table") ;
$table = new HTML_Table($tableAttr) ;
$entete = array (BAZ_FICHIER , BAZ_SUPPRIMER) ;
$table->addRow($entete) ;
$table->setRowType(0, "th") ;
$lien_supprimer=$GLOBALS['_BAZAR_']['url'];
$lien_supprimer->addQueryString('action', $_GET['action']);
$lien_supprimer->addQueryString('id_fiche', $GLOBALS['_BAZAR_']["id_fiche"]);
$lien_supprimer->addQueryString('typeannonce', $_REQUEST['typeannonce']);
while ($ligne = $resultat->fetchRow(DB_FETCHMODE_OBJECT)) {
$lien_supprimer->addQueryString('id_fichier', $ligne->bfj_id_fichier);
$table->addRow(array('<a href="client/bazar/upload/'.$ligne->bfj_fichier.'"> '.$ligne->bfj_description.'</a>', // col 1 : le fichier et sa description
'<a href="'.$lien_supprimer->getURL().'" onclick="javascript:return confirm(\''.BAZ_CONFIRMATION_SUPPRESSION_FICHIER.'\');" >'.BAZ_SUPPRIMER.'</a>'."\n")) ; // col 2 : supprimer
$lien_supprimer->removeQueryString('id_fichier');
}
$table->altRowAttributes(1, array("class" => "ligne_impaire"), array("class" => "ligne_paire"));
$table->updateColAttributes(1, array("align" => "center"));
$html_fichier .= $table->toHTML()."\n".'</td>'."\n".'</tr>'."\n" ;
}
}
$html ='<tr>'."\n".'<td colspan="2">'."\n".'<h4>'.$label.'</h4>'."\n".'</td>'."\n".'</tr>'."\n";
$formtemplate->addElement('html', $html) ;
if ($html_fichier!='') $formtemplate->addElement('html', $html_fichier) ;
$formtemplate->addElement('text', 'texte_fichier'.$nom_bdd, BAZ_FICHIER_DESCRIPTION) ;
$formtemplate->addElement('file', 'fichier'.$nom_bdd, BAZ_FICHIER_JOINT) ;
$formtemplate->addRule('image', BAZ_IMAGE_VALIDE_REQUIS, '', '', 'client') ; //a completer pour checker l'image
$formtemplate->setMaxFileSize($limite1);
//gestion du champs obligatoire
if (($dans_moteur_de_recherche==0) && isset($obligatoire) && ($obligatoire==1)) {
$formtemplate->addRule('texte_fichier'.$nom_bdd, BAZ_FICHIER_LABEL_REQUIS, 'required', '', 'client') ;
$formtemplate->addRule('fichier'.$nom_bdd, BAZ_FICHIER_JOINT_REQUIS, 'required', '', 'client') ;
}
}
 
/** image() - Ajoute un élément de type image au formulaire
*
* @param mixed L'objet QuickForm du formulaire
* @param string numero du champs input du formulaire (pour le différencier d'autres champs du meme type dans ce formulaire)
* @param string label à afficher dans le formulaire
* @param string taille maximum du fichier colonnes de l'élément
* @param string taille des lignes de l'élément
* @param string valeur par défaut du formulaire
* @param string table source pour les valeurs du texte (inutile)
* @param string ce champs est il obligatoire? (required)
* @return void
*/
function image(&$formtemplate, $nom_bdd , $label, $limite1, $limite2, $defaut, $source, $obligatoire, $dans_moteur_de_recherche=0) {
//AJOUTER UNE IMAGE
$html_image= '';
if (isset($GLOBALS['_BAZAR_']["id_fiche"])) {
$requete = 'SELECT bf_url_image FROM bazar_fiche WHERE bf_id_fiche='.$GLOBALS['_BAZAR_']['id_fiche'];
$resultat = & $GLOBALS['ins_db'] -> query($requete) ;
if (DB::isError ($resultat)) {
die ($GLOBALS['_BAZAR_']['db']->getMessage().$GLOBALS['_BAZAR_']['db']->getDebugInfo()) ;
}
if ($resultat->numRows()>0) {
while ($ligne = $resultat->fetchRow(DB_FETCHMODE_OBJECT)) {
$image=$ligne->bf_url_image;
}
if ($image!=NULL) {
$lien_supprimer=$GLOBALS['_BAZAR_']['url'];
$lien_supprimer->addQueryString('action', $_GET['action']);
$lien_supprimer->addQueryString('id_fiche', $GLOBALS['_BAZAR_']["id_fiche"]);
$lien_supprimer->addQueryString('typeannonce', $_REQUEST['typeannonce']);
$lien_supprimer->addQueryString('image', 1);
$html_image = '<tr>'."\n".
'<td>'."\n".'<img src="client/bazar/upload/'.$image.'" alt="'.BAZ_TEXTE_IMG_ALTERNATIF.'" width="130" height="130" />'."\n".'</td>'."\n".
'<td>'."\n".'<a href="'.$lien_supprimer->getURL().'" onclick="javascript:return confirm(\''.BAZ_CONFIRMATION_SUPPRESSION_IMAGE.'\');" >'.BAZ_SUPPRIMER.'</a><br /><br />'."\n".
'<strong>'.BAZ_POUR_CHANGER_IMAGE.'</strong><br />'."\n".'</td>'."\n".'</tr>'."\n";
}
}
}
$html ='<tr>'."\n".'<td colspan="2">'."\n".'<h4>'.$label.'</h4>'."\n".'</td>'."\n".'</tr>'."\n";
$formtemplate->addElement('html', $html) ;
if ($html_image!='') $formtemplate->addElement('html', $html_image) ;
$formtemplate->addElement('file', 'image', BAZ_IMAGE) ;
//TODO: controler si c'est une image
$formtemplate->setMaxFileSize($limite1);
//gestion du champs obligatoire
if (($dans_moteur_de_recherche==0) && isset($obligatoire) && ($obligatoire==1)) {
$formtemplate->addRule('image', BAZ_IMAGE_VALIDE_REQUIS, 'required', '', 'client') ;
}
}
 
 
 
/** labelhtml() - Ajoute un élément de type textearea au formulaire
*
* @param mixed L'objet QuickForm du formulaire
* @param string nom de la table dans la base de donnée (pas utilisé)
* @param string label à afficher dans le formulaire
* @param string taille des colonnes de l'élément (pas utilisé)
* @param string taille des lignes de l'élément (pas utilisé)
* @param string valeur par défaut du formulaire (pas utilisé)
* @param string table source pour les valeurs du texte (pas utilisé)
* @param string ce champs est il obligatoire? (required) (pas utilisé)
* @return void
*/
function labelhtml(&$formtemplate, $nom_bdd , $label, $limite1, $limite2, $defaut, $source, $obligatoire, $dans_moteur_de_recherche=0) {
require_once PAP_CHEMIN_API_PEAR.'HTML/QuickForm/html.php';
$formhtml= new HTML_QuickForm_html('<tr>'."\n".'<td colspan="2" style="text-align:left;">'."\n".$label."\n".'</td>'."\n".'</tr>'."\n");
$formtemplate->addElement($formhtml) ;
}
 
/** carte_google() - Ajoute un élément de carte google au formulaire
*
* @param mixed L'objet QuickForm du formulaire
* @param string l url vers la script google
* @param string label à afficher dans le formulaire
* @param string première restriction de la taille des champs du formulaire
* @param string deuxième restriction de la taille des champs du formulaire
* @param string valeur par défaut du formulaire
* @param string table source pour les valeurs de la liste
* @param string ce champs est il obligatoire? (required)
* @param boolean sommes nous dans le moteur de recherche?
* @return void
*/
function carte_google(&$formtemplate, $url_google_script , $label, $limite1, $limite2, $defaut, $source, $obligatoire, $dans_moteur_de_recherche=0) {
if (is_array ($defaut)) {
$formtemplate->setDefaults(array('latitude' => $defaut['latitude'], 'longitude' => $defaut['longitude']));
}
GEN_stockerFichierScript('googleMapScript', $url_google_script);
$formtemplate->addElement('button', 'chercher_sur_carte', 'Vérifier mon adresse avec la carte', array("onclick" => "showAddress();"));
$formtemplate->addElement('text', 'latitude', 'Latitude', array('id' => 'latitude', 'size' => 6, 'readonly' => 'readonly'));
$formtemplate->addElement('text', 'longitude', 'longitude', array('id' => 'longitude', 'size' => 6, 'readonly' => 'readonly'));
$formtemplate->addElement('html', '<tr><td colspan="2" ><div id="map" style="width: 600px; height: 450px"></div></td></tr>');
include_once BAZ_CHEMIN_APPLI.'bibliotheque/bazar.fonct.google.php';
GEN_stockerCodeScript($script);
}
 
 
/** valeur_template() - Renvoi des valeurs inscrite dans le fichier de template
*
* @param string valeur du template de bazar_nature
*
* @return mixed tableau contenant les champs du fichier template
*/
function ins_valeurs_template($valeur_template) {
//Parcours du fichier de templates, pour mettre les champs specifiques
$tableau= array();
$nblignes=0;
$chaine = explode ("\n", $valeur_template);
array_pop($chaine);
foreach ($chaine as $ligne) {
$souschaine = explode ("***", $ligne) ;
$tableau[$nblignes]['type'] = trim($souschaine[0]) ;
if (isset($souschaine[1])) {$tableau[$nblignes]['nom_bdd'] = trim($souschaine[1]);}
else {$tableau[$nblignes]['nom_bdd'] ='';}
if (isset($souschaine[2])) $tableau[$nblignes]['label'] = trim($souschaine[2]);
else {$tableau[$nblignes]['label'] ='';}
if (isset($souschaine[3])) $tableau[$nblignes]['limite1'] = trim($souschaine[3]);
else {$tableau[$nblignes]['limite1'] ='';}
if (isset($souschaine[4])) $tableau[$nblignes]['limite2'] = trim($souschaine[4]);
else {$tableau[$nblignes]['limite2'] ='';}
if (isset($souschaine[5])) $tableau[$nblignes]['defaut'] = trim($souschaine[5]);
else {$tableau[$nblignes]['defaut'] ='';}
if (isset($souschaine[6])) $tableau[$nblignes]['table_source'] = trim($souschaine[6]);
else {$tableau[$nblignes]['table_source'] ='';}
if (isset($souschaine[7])) $tableau[$nblignes]['id_source'] = trim($souschaine[7]);
else {$tableau[$nblignes]['id_source'] ='';}
if (isset($souschaine[8])) $tableau[$nblignes]['obligatoire'] = trim($souschaine[8]);
else {$tableau[$nblignes]['obligatoire'] ='';}
if (isset($souschaine[9])) $tableau[$nblignes]['recherche'] = trim($souschaine[9]);
else {$tableau[$nblignes]['recherche'] ='';}
// traitement des cases a cocher, dans ce cas la, on a une table de jointure entre la table
// de liste et la table bazar_fiche (elle porte un nom du genre bazar_ont_***)
// dans le template, a la place d'un nom de champs dans 'nom_bdd', on a un nom de table
// et 2 noms de champs separes par un virgule ex : bazar_ont_theme,bot_id_theme,bot_id_fiche
if (isset($tableau[$nblignes]['nom_bdd']) && preg_match('/,/', $tableau[$nblignes]['nom_bdd'])) {
$tableau_info_jointe = explode (',', $tableau[$nblignes]['nom_bdd']) ;
$tableau[$nblignes]['table_jointe'] = $tableau_info_jointe[0] ;
$tableau[$nblignes]['champs_id_fiche'] = $tableau_info_jointe[1] ;
$tableau[$nblignes]['champs_id_table_jointe'] = $tableau_info_jointe[2] ;
}
$nblignes++;
}
return $tableau;
}
/* +--Fin du code ----------------------------------------------------------------------------------------+
*
* $Log: not supported by cvs2svn $
* Revision 1.1 2007-06-06 10:12:40 alexandre_tb
* en cours: objectif mettre en place un système de template comme bazar
*
*
* +-- Fin du code ----------------------------------------------------------------------------------------+
*/
?>
/tags/v4.0-djer/client/bottin/inscription.admin.php
New file
0,0 → 1,279
<?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$
/**
*
*@package bottin
//Auteur original :
*@author Florian Schmitt <florian@ecole-et-nature.org>
*@author Alexandre Granier <alexandre@tela-botanica.org>
//Autres auteurs :
*@copyright Tela-Botanica 2000-2007
*@version $Revision$ $Date$
// +------------------------------------------------------------------------------------------------------+
*/
// +------------------------------------------------------------------------------------------------------+
// | ENTETE du PROGRAMME |
// +------------------------------------------------------------------------------------------------------+
include_once 'configuration/bottin.config.inc.php';
include_once INS_CHEMIN_APPLI.'langues/bottin.admin.langue_fr.php';
 
 
// +------------------------------------------------------------------------------------------------------+
// | CLASSE |
// +------------------------------------------------------------------------------------------------------+
 
 
class Inscription_Admin {
var $objet_pear_auth;
var $objet_pear_db;
var $objet_pear_url;
var $sortie_xhtml;
/** Fonction redigerContenu() - Affiche le formulaire de r?action
*
*
* @return string Le HTML
*/
function afficherContenuCorps()
{
/** Inclusion du fichier de configuration de cette application.*/
require_once PAP_CHEMIN_RACINE.'client/bottin/configuration/bottin.config.inc.php';
//require_once INS_CHEMIN_APPLI.'configuration/cartographie.config.inc.php';
require_once PAP_CHEMIN_API_PEAR.'HTML/QuickForm.php' ;
//-------------------------------------------------------------------------------------------------------------------
// Initialisation des attributs
$this->objet_pear_auth = $GLOBALS['_GEN_commun']['pear_auth'];
$this->objet_pear_db = $GLOBALS['ins_db'];
$this->objet_pear_url = $GLOBALS['_GEN_commun']['url'];
$this->sortie_xhtml = '<h1>'.INS_CONFIG_INSCRIPTION.'</h1><br />'."\n";
//-------------------------------------------------------------------------------------------------------------------
// Gestion des boutons de l'interface
if (isset($_POST['afficheur_annuler'])) {
return false;
}
 
$requete = 'SELECT gm_application_arguments FROM gen_menu WHERE gm_id_menu='.$_GET['adme_menu_id'];
$resultat = $this->objet_pear_db->query($requete) ;
if (DB::isError($resultat)) {
return ("Echec de la requete<br />".$resultat->getMessage()."<br />".$resultat->getDebugInfo()) ;
}
$valeurs_par_defaut = array();
if ($resultat->numRows()>0) {
while ($ligne = $resultat->fetchRow(DB_FETCHMODE_OBJECT)) {
$arguments = explode(' ', $ligne->gm_application_arguments);
for ($i = 0; $i < count($arguments); $i++) {
$attr = explode('=', $arguments[$i]);
if ($attr[0] != '') {
$info_application->$attr[0] = (isset($attr[1]) ? $attr[1] : '');
}
}
}
//valeurs par defaut enregistrees dans la table
if (isset ($info_application->type_annuaire))$valeurs_par_defaut['type_annuaire']=$info_application->type_annuaire;
} else {
//valeurs par defaut pour afficher une carto des structures
$valeurs_par_defaut['type_annuaire']=0;
}
//-------------------------------------------------------------------------------------------------------------
// Si le formulaire vient d etre poste, on met a jour la table inscription_configuration
if (isset($_POST['enregistrer_quitter'])) {
if (isset ($_POST['id_inscription'])) {
$req = 'update inscription_configuration set '.
'ic_nom_inscription="'.$_POST['ic_nom_inscription'].'", '.
'ic_url_bazar="'.$_POST['ic_url_bazar'].'", '.
(isset ($_POST['ic_inscription_modere']) ? 'ic_inscription_modere="'.$_POST['ic_inscription_modere'].'", ':'ic_inscription_modere=0, ').
'ic_mail_moderateur="'.$_POST['ic_mail_moderateur'].'", '.
'ic_from_mail_confirmation="'.$_POST['ic_from_mail_confirmation'].'", '.
'ic_utilise_nom_wiki="'.$_POST['ic_utilise_nom_wiki'].'", '.
(isset ($_POST['ic_genere_nom_wiki']) ? 'ic_genere_nom_wiki="'.$_POST['ic_genere_nom_wiki'].'", ':'').
(isset ($_POST['ic_utilise_reecriture_url']) ? 'ic_utilise_reecriture_url="'.$_POST['ic_utilise_reecriture_url'].'", ':'').
'ic_url_prefixe="'.$_POST['ic_url_prefixe'].'", '.
(isset ($_POST['ic_mail_valide_inscription']) ? 'ic_mail_valide_inscription="'.$_POST['ic_mail_valide_inscription'].'", ':'').
'ic_mail_inscription_news="'.$_POST['ic_mail_inscription_news'].'", '.
'ic_mail_admin_apres_inscription="'.$_POST['ic_mail_admin_apres_inscription'].'"'.
' where ic_id_inscription="'.$_GET['id_inscription'].'"';
$res = $GLOBALS['ins_db']->query($req);$this->sortie_xhtml .= $req;
if (DB::isError($res)) $this->sortie_xhtml .= $res->getMessage().'<br />'.$res->getDebugInfo();
}
if (isset($_POST['id_template'])) {
$req = 'update inscription_template set ' .
'it_nom_template="'.$_POST['it_nom_template'].'",' .
'it_template="'.$_POST['it_template'].'" ' .
'where it_id_template="'.$_REQUEST['id_template'].'"'.
' and it_ce_inscription="'.$_REQUEST['id_inscription'].'"';
$GLOBALS['ins_db']->query($req);
}
}
// Requete pour recuperer les valeurs de la table inscription_config
$requete = 'select * from inscription_configuration order by ic_id_inscription';
$resultat = $GLOBALS['ins_db']->query($requete) ;
if (DB::isError($resultat)) {
return ("Echec de la requete<br />".$resultat->getMessage()."<br />".$resultat->getDebugInfo()) ;
}
if ($resultat->numRows() == 0) {
return 'La table inscription_configuration est vide. Il faut qu\'elle contienne au moins une ligne';
}
$GLOBALS['ins_url']->addQueryString('adme_site_id', $_GET['adme_site_id']);
$GLOBALS['ins_url']->addQueryString('adme_menu_id', $_GET['adme_menu_id']);
$GLOBALS['ins_url']->addQueryString('adme_action', 'administrer');
// Affichage des inscriptions disponible
$this->sortie_xhtml .= '<ul>';
while ($ligne = $resultat->fetchRow(DB_FETCHMODE_ASSOC)) {
$GLOBALS['ins_url']->addQueryString('id_inscription', $ligne['ic_id_inscription']);
$this->sortie_xhtml .= '<li><a href="'.$GLOBALS['ins_url']->getURL().'">'.$ligne['ic_nom_inscription'];
$this->sortie_xhtml .= '</a></li>';
}
$this->sortie_xhtml .= '</ul>';
if (isset ($_GET['id_inscription'])) {
$requete = 'select * from inscription_configuration where ic_id_inscription="'.$_GET['id_inscription'].'"';
$resultat = $GLOBALS['ins_db']->query($requete) ;
if (DB::isError($resultat)) {
return ("Echec de la requete<br />".$resultat->getMessage()."<br />".$resultat->getDebugInfo()) ;
}
if ($resultat->numRows() == 0) {
return 'La table inscription_configuration est vide. Il faut qu\'elle contienne au moins une ligne';
}
$ligne = $resultat->fetchRow(DB_FETCHMODE_ASSOC);
$this->sortie_xhtml .= '<h2>'.$ligne['ic_nom_inscription'].'</h2>';
//-------------------------------------------------------------------------------------------------------------
// Gestion du formulaire
$GLOBALS['ins_url']->addQueryString('id_inscription', $ligne['ic_id_inscription']);
$form = &new HTML_QuickForm('form_param_inscription', 'post', str_replace('&amp;', '&', $GLOBALS['ins_url']->getUrl()));
$squelette =& $form->defaultRenderer();
$squelette->setFormTemplate("\n".'<form {attributes}>'."\n".'{content}'."\n".'</form>'."\n");
$squelette->setElementTemplate( '<p>'."\n".
'<label style="width:100px;padding:5px;text-align:right;">{label}'.
'<!-- BEGIN required --><span class="symbole_obligatoire">*</span><!-- END required -->'."\n".
'<!-- BEGIN error --><span class="erreur">{error}</span><!-- END error -->'."\n".
' : </label>'."\n".'{element}'."\n".
'</p>'."\n" );
 
$form->addElement('text', 'ic_nom_inscription', INS_NOM_INSCRIPTION);
$form->addElement('checkbox', 'ic_inscription_modere', INS_INSCRIPTION_MODERE);
$form->addElement('textarea', 'ic_mail_moderateur', INS_MAILS_MODERATEURS, array('cols' => 30, 'rows' => 4));
$form->addElement('checkbox', 'ic_mail_valide_inscription', INS_INSCRIPTION_VERIFICATION_EMAIL);
$form->addElement('textarea', 'ic_mail_admin_apres_inscription', INS_MAILS_ADMIN, array('cols' => 30, 'rows' => 4));
$form->addElement('text', 'ic_from_mail_confirmation', INS_FROM_MAIL_CONFIRMATION, array('size' => '50'));
$form->addElement('checkbox', 'ic_utilise_nom_wiki', INS_CHAMPS_WIKI);
$form->addElement('checkbox', 'ic_genere_nom_wiki', INS_GENERE_NOM_WIKI);
$form->addElement('checkbox', 'ic_utilise_reecriture_url', INS_REECRITURE_URL);
$form->addElement('text', 'ic_url_prefixe', INS_PREFIXE_URL);
$form->addElement('text', 'ic_mail_inscription_news', INS_MAIL_INSCRIPTION_NEWS, array('size' => '50'));
$form->addElement('text', 'ic_url_bazar', INS_URL_BAZAR);
$form->addElement('hidden', 'id_inscription', $_GET['id_inscription']);
$form->addElement('submit', 'enregistrer_quitter', INS_ENREGISTRER_ET_QUITTER);
$form->addElement('button', 'afficheur_annuler', INS_ANNULER);
$form->setDefaults($ligne);
$this->sortie_xhtml .= $form->toHTML()."\n";
$this->sortie_xhtml .= '<hr /><br />';
// recuperation des templates
$requete = 'select * from inscription_template where it_ce_inscription="'.$_GET['id_inscription'].'"';
$resultat = $GLOBALS['ins_db']->query($requete) ;
if (DB::isError($resultat)) {
return ("Echec de la requete<br />".$resultat->getMessage()."<br />".$resultat->getDebugInfo()) ;
}
if ($resultat->numRows() == 0) {
$this->sortie_xhtml .= 'La table inscription_template est vide. Ca n\'est pas normal';
}
$this->sortie_xhtml .= '<ul>';
while ($ligne = $resultat->fetchRow(DB_FETCHMODE_ASSOC)) {
$GLOBALS['ins_url']->addQueryString('id_template', $ligne['it_id_template']);
$this->sortie_xhtml .= '<li><a href="'.$GLOBALS['ins_url']->getURL().'">'.$ligne['it_nom_template'].'</a></li>'."\n";
}
$this->sortie_xhtml .= '</ul>';
// Si un template a ete clique, on affiche le formulaire
if (isset ($_GET['id_template'])) {
$requete = 'select * from inscription_template where it_id_template="'.$_GET['id_template'].'"';
if (isset ($GLOBALS['langue'])) $requete .= ' and it_i18n="'.$GLOBALS['langue'].'"';
$requete .= ' and it_ce_inscription="'.$_GET['id_inscription'].'"';
$resultat = $GLOBALS['ins_db']->query($requete) ;
if (DB::isError($resultat)) {
return ("Echec de la requete<br />".$resultat->getMessage()."<br />".$resultat->getDebugInfo()) ;
}
if ($resultat->numRows() == 0) {
return 'Pas de template avec ce numero.';
}
$ligne = $resultat->fetchRow(DB_FETCHMODE_ASSOC);
$this->sortie_xhtml .= '<h2>'.$ligne['it_nom_template'].'</h2>';
//-------------------------------------------------------------------------------------------------------------
// Gestion du formulaire
$GLOBALS['ins_url']->addQueryString('id_template', $ligne['it_id_template']);
$form = &new HTML_QuickForm('form_inscription_template', 'post', str_replace('&amp;', '&', $GLOBALS['ins_url']->getUrl()));
$form->addElement('text', 'it_nom_template', INS_NOM_MODELE, array ('size' => 40));
// Recherche des langues
$form->addElement('textarea', 'it_template', INS_CONTENU_MODELE, array('cols' => 80, 'rows' => 12));
require_once PAP_CHEMIN_API_PEAR.'I18Nv2/Language.php';
$lang = & new I18Nv2_Language('fr', 'iso-8859-1');
// Les langues utilisees dans le site sont gen_i18n_langue
$requete_langue = 'select * from gen_i18n_langue';
$resultat_langue = $GLOBALS ['ins_db']->query($requete_langue);
while ($ligne_langue = $resultat_langue->fetchRow(DB_FETCHMODE_OBJECT)) {
$langues[$ligne_langue->gil_id_langue] = $ligne_langue->gil_nom;
}
$form->addElement('html', '<tr><td>'.INS_LANGUE.' : '.$lang->getName($ligne_langue->it_i18n).'</td></tr>');
$form->addElement('hidden', 'id_template', $ligne['it_id_template']);
$form->addElement('submit', 'enregistrer_quitter', INS_ENREGISTRER_ET_QUITTER);
$form->addElement('button', 'afficheur_annuler', INS_ANNULER);
$form->setDefaults($ligne);
$this->sortie_xhtml .= $form->toHTML()."\n";
$this->sortie_xhtml .= '<hr /><br />';
}
}
return $this->sortie_xhtml;
}
 
}// Fin de la classe
 
// +------------------------------------------------------------------------------------------------------+
// | PIED du PROGRAMME |
// +------------------------------------------------------------------------------------------------------+
?>
/tags/v4.0-djer/client/bottin/annuaire_backoffice.php
New file
0,0 → 1,142
<?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.8 2007-06-25 09:59:03 alexandre_tb 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.8 $
// +------------------------------------------------------------------------------------------------------+
*/
 
// +------------------------------------------------------------------------------------------------------+
// | ENTETE du PROGRAMME |
// +------------------------------------------------------------------------------------------------------+
 
 
include_once 'configuration/bottin.config.inc.php';
 
include_once INS_CHEMIN_APPLI.'bibliotheque/annuaire_backoffice.fonct.php';
include_once INS_CHEMIN_APPLI.'bibliotheque/inscription.class.php';
include_once INS_CHEMIN_APPLI.'bibliotheque/inscription.fonct.php';
include_once INS_CHEMIN_APPLI.'bibliotheque/bottin.fonct.php';
 
$lang=INS_LANGUE_DEFAUT;
define ("ANN_MAIL_TOUS", 1) ;
define ("ANN_MAIL_TOUS_ENVOIE", 2) ;
 
// Action pour valider une demande d inscription
define ('ANN_ACTION_VALIDER_INSCRIPTION', 3);
 
// Action pour supprimer une demande d inscription
define ('ANN_ACTION_SUPPRIMER_DEMANDE_INSCRIPTION', 4);
 
// Action pour supprimer un inscrit
define ('ANN_ACTION_SUPPRIMER_INSCRIT', 5);
 
// TODO: Nom de la variable action, a modifier dans le programme
define ('ANN_VARIABLE_ACTION', 'action');
define ('INS_VARIABLE_ID_DEMANDEUR', 'id_demandeur');
define ('INS_VARIABLE_ID_INSCRIT', 'id_inscrit');
 
// Recherche parametres menu actif : ils ne sont pas present dans le contexte, quel dommage !
$requete_menu = 'SELECT gm_application_arguments '.
'FROM gen_menu '.
'WHERE gm_id_menu = '.$_GET['menu'];
$resultat_menu = $GLOBALS['_GEN_commun']['pear_db']->query($requete_menu);
$info_menu = $resultat_menu->fetchRow(DB_FETCHMODE_OBJECT);
$resultat_menu->free();
if (isset($info_menu->gm_application_arguments)) {
$arguments = explode(' ', $info_menu->gm_application_arguments);
for ($i = 0; $i < count($arguments); $i++) {
$attr = explode('=', $arguments[$i]);
if ($attr[0] != '') {
$info_application->$attr[0] = (isset($attr[1]) ? $attr[1] : '');
}
}
}
//cas de l'annuaire admin papyrus, on modifie certaines constantes
if (isset ($info_application->type_annuaire) && $info_application->type_annuaire==1) {
include_once INS_CHEMIN_APPLI.'configuration/annuaire_backoffice.config.inc.php';
}
// recuperation de la configuration
include_once INS_CHEMIN_APPLI.'bibliotheque/bottin.class.php';
$GLOBALS['ins_config'] = inscription::getConfig();
// Template du formulaire
$GLOBALS['ins_config']['ic_inscription_template'] = inscription::getTemplate(INS_TEMPLATE_FORMULAIRE,
$GLOBALS['ins_config']['ic_id_inscription']);
 
// +------------------------------------------------------------------------------------------------------+
// | CORPS du PROGRAMME |
// +------------------------------------------------------------------------------------------------------+
function afficherContenuCorps () {
$res = '';
if (!$GLOBALS['AUTH']->getAuth()) {
$res .= AUTH_formulaire_login() ;
} else {
if (isset($_REQUEST[INS_CHAMPS_ID])) {
include_once (INS_CHEMIN_APPLI.'bibliotheque/edition_fiche.php');
$GLOBALS['ins_url']->addQueryString (INS_CHAMPS_ID, $_REQUEST[INS_CHAMPS_ID]) ;
return putFrame() ;
}
// Les actions 1 => envoie d un mail a tous
// 2 => valider une demande d inscription
// 3 => supprimer une demande d inscription
// 5 => supprimer un inscrit
if (isset ($_GET[ANN_VARIABLE_ACTION])) {
switch ($_GET[ANN_VARIABLE_ACTION]) {
case ANN_MAIL_TOUS :
case ANN_MAIL_TOUS_ENVOIE :
include_once (INS_CHEMIN_APPLI.'bibliotheque/mail_tous.php') ;
return putFrame() ;
break;
case ANN_ACTION_VALIDER_INSCRIPTION : $res .= inscription::validerInscription();
break;
case ANN_ACTION_SUPPRIMER_DEMANDE_INSCRIPTION: $res .= inscription::supprimerDemandeInscription();
break;
case ANN_ACTION_SUPPRIMER_INSCRIT : $res .= inscription::supprimerInscription();
break;
}
}
if (isset($_REQUEST['ajouter'])) {
return ajouterInscrit() ;
}
$res .= "<div>".mkengine()."</div>\n" ;
// Liste des inscrits en attente de moderation
$res .= '<h1>'.INS_EN_ATTENTE_DE_MODERATION.'</h1>';
//$res .= print_r(inscription::getInscritEnAttenteModeration(), true);
$res .= inscription::getTableauEnAttente((inscription::getInscritEnAttenteModeration()));
}
return $res ;
}
 
?>
/tags/v4.0-djer/client/bottin/cartographie.admin.php
New file
0,0 → 1,185
<?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: cartographie.admin.php,v 1.6 2007-04-11 08:30:12 neiluj Exp $
/**
*
*@package bazar
//Auteur original :
*@author Florian Schmitt <florian@ecole-et-nature.org>
//Autres auteurs :
*@copyright Tela-Botanica 2000-2004
*@version $Revision: 1.6 $ $Date: 2007-04-11 08:30:12 $
// +------------------------------------------------------------------------------------------------------+
*/
// +------------------------------------------------------------------------------------------------------+
// | ENT?E du PROGRAMME |
// +------------------------------------------------------------------------------------------------------+
 
 
// +------------------------------------------------------------------------------------------------------+
// | CLASSE |
// +------------------------------------------------------------------------------------------------------+
class Cartographie_Admin {
var $objet_pear_auth;
var $objet_pear_db;
var $objet_pear_url;
var $sortie_xhtml;
/** Fonction redigerContenu() - Affiche le formulaire de r?action
*
*
* @return string Le HTML
*/
function afficherContenuCorps()
{
/** Inclusion du fichier de configuration de cette application.*/
require_once PAP_CHEMIN_RACINE.'client/bottin/configuration/bottin.config.inc.php';
require_once INS_CHEMIN_APPLI.'configuration/cartographie.config.inc.php';
require_once PAP_CHEMIN_API_PEAR.'HTML/QuickForm.php' ;
//-------------------------------------------------------------------------------------------------------------------
// Initialisation des attributs
$this->objet_pear_auth = $GLOBALS['_GEN_commun']['pear_auth'];
$this->objet_pear_db = $GLOBALS['ins_db'];
$this->objet_pear_url = $GLOBALS['_GEN_commun']['url'];
$this->sortie_xhtml = '<h1>'.INS_CONFIG_MENU.' '.$_GET['adme_menu_id'].'</h1><br />'."\n";
//-------------------------------------------------------------------------------------------------------------------
// Gestion des boutons de l'interface
if (isset($_POST['afficheur_annuler'])) {
return false;
} else if (isset($_POST['afficheur_enregistrer_quitter'])) {
// Sauvegarde paramêtres carto
//on vérifie l'existence de la configuration, pour savoir si l'on fait un INSERT ou un UPDATE
$requete = 'SELECT cc_menu_id FROM carto_config WHERE cc_menu_id='.$_GET['adme_menu_id'];
$resultat = $this->objet_pear_db->query($requete) ;
if (DB::isError($resultat)) {
die ("Echec de la requete<br />".$resultat->getMessage()."<br />".$resultat->getDebugInfo()) ;
}
if ($resultat->numRows()>0) {
$requete = 'UPDATE carto_config SET cc_titre_carto="'.$_POST['titre_carto'].'", cc_table1="'.$_POST['nom_table1'].'", cc_table2="'.$_POST['nom_table2'].
'", cc_pays="'.$_POST['nom_champs_pays'].'", cc_cp="'.$_POST['nom_champs_cp'].
'", cc_sql="'.$_POST['requete_sql'].'" WHERE cc_menu_id='.$_GET['adme_menu_id'];
} else {
$requete = 'INSERT INTO carto_config (cc_titre_carto, cc_menu_id, cc_table1, cc_table2, cc_pays, cc_cp, cc_sql)'.
' VALUES ( "'.$_POST['titre_carto'].'", '.$_GET['adme_menu_id'].', "'.$_POST['nom_table1'].'", "'.$_POST['nom_table2'].
'", "'.$_POST['nom_champs_pays'].'", "'.$_POST['nom_champs_cp'].'", "'.$_POST['requete_sql'].'")';
}
$resultat = $this->objet_pear_db->query($requete) ;
if (DB::isError($resultat)) {
die ("Echec de la requete<br />".$resultat->getMessage()."<br />".$resultat->getDebugInfo()) ;
}
return false;
}
//--------------------------------------------------------------------------------------------------------------
// Gestion des valeurs par defauts, en fonctions des donnees sauvees dans carto_config
$requete = 'SELECT * FROM carto_config WHERE cc_menu_id='.$_GET['adme_menu_id'];
$resultat = $this->objet_pear_db->query($requete) ;
if (DB::isError($resultat)) {
die ("Echec de la requete<br />".$resultat->getMessage()."<br />".$resultat->getDebugInfo()) ;
}
$valeurs_par_defaut = array();
if ($resultat->numRows()>0) {
while ($ligne = $resultat->fetchRow(DB_FETCHMODE_ASSOC)) {
//valeurs par defaut enregistrees dans la table
$valeurs_par_defaut['titre_carto']=$ligne['cc_titre_carto'];
$valeurs_par_defaut['nom_table1']=$ligne['cc_table1'];
$valeurs_par_defaut['nom_table2']=$ligne['cc_table2'];
$valeurs_par_defaut['nom_champs_pays']=$ligne['cc_pays'];
$valeurs_par_defaut['nom_champs_cp']=$ligne['cc_cp'];
$valeurs_par_defaut['requete_sql']=$ligne['cc_sql'];
}
} else {
//valeurs par defaut pour afficher une carto des structures
$valeurs_par_defaut['titre_carto']='';
$valeurs_par_defaut['nom_table1']=INS_ANNUAIRE;
$valeurs_par_defaut['nom_table2']=0;
$valeurs_par_defaut['nom_champs_pays']=INS_CHAMPS_PAYS;
$valeurs_par_defaut['nom_champs_cp']=INS_CHAMPS_CODE_POSTAL;
$valeurs_par_defaut['requete_sql']='a_structure=1';
}
//--------------------------------------------------------------------------------------------------------------
// Gestion du formulaire
$this->objet_pear_url->addQueryString('adme_site_id', $_GET['adme_site_id']);
$this->objet_pear_url->addQueryString('adme_menu_id', $_GET['adme_menu_id']);
$this->objet_pear_url->addQueryString('adme_action', 'administrer');
$form =& new HTML_QuickForm('form_param_carto', 'post', str_replace('&amp;', '&', $this->objet_pear_url->getUrl()));
$squelette =& $form->defaultRenderer();
$squelette->setFormTemplate("\n".'<form{attributes}>'."\n".'<table>'."\n".'{content}'."\n".'</table>'."\n".'</form>'."\n");
$squelette->setElementTemplate( '<tr>'."\n".
'<td style="padding:5px;text-align:right;">{label}'.
'<!-- BEGIN required --><span class="symbole_obligatoire">*</span><!-- END required -->'."\n".
'<!-- BEGIN error --><span class="erreur">{error}</span><!-- END error -->'."\n".
' : </td>'."\n".
'<td style="padding:5px;text-align:left;">{element}</td>'."\n".
'</tr>'."\n" );
$form->addElement('text', 'titre_carto', INS_TITRE_CARTO);
$requete = 'SHOW TABLES FROM '.$this->objet_pear_db->dsn['database'];
$resultat = $this->objet_pear_db->query($requete) ;
if (DB::isError($resultat)) {
die ("Echec de la requete<br />".$resultat->getMessage()."<br />".$resultat->getDebugInfo()) ;
}
$option_tables = array();
while ($ligne = $resultat->fetchRow(DB_FETCHMODE_ASSOC)) {
$option_tables[$ligne['Tables_in_'.$this->objet_pear_db->dsn['database']]] = $ligne['Tables_in_'.$this->objet_pear_db->dsn['database']];
}
$javascript= array('onchange' => 'javascript:this.form.submit();');
$form->addElement('select', 'nom_table1', INS_TABLE, $option_tables, $javascript);
if (isset($_POST['nom_table1'])) {
$table=$_POST['nom_table1'];
} else {
$table=$valeurs_par_defaut['nom_table1'];
}
$requete = 'SHOW COLUMNS FROM '.$table;
$resultat = $this->objet_pear_db->query($requete) ;
if (DB::isError($resultat)) {
die ("Echec de la requete<br />".$resultat->getMessage()."<br />".$resultat->getDebugInfo()) ;
}
$option_champs = array();
while ($ligne = $resultat->fetchRow(DB_FETCHMODE_ASSOC)) {
$option_champs[$ligne['Field']] = $ligne['Field'];
}
$form->addElement('select', 'nom_champs_pays', INS_NOM_CHAMPS_PAYS, $option_champs);
$form->addElement('select', 'nom_champs_cp', INS_NOM_CHAMPS_CP, $option_champs);
$option_tables[0] = INS_PAS_NECESSAIRE;
$form->addElement('select', 'nom_table2', INS_TABLE_SUPPLEMENTAIRE, $option_tables);
$form->addElement('text', 'requete_sql', INS_REQUETE_SQL_SUPPLEMENTAIRE);
$liste_bouton_debut = '<ul class="liste_bouton">'."\n";
$form->addElement('html', $liste_bouton_debut);
$form->addElement('submit', 'afficheur_enregistrer_quitter', INS_ENREGISTRER_ET_QUITTER);
$form->addElement('submit', 'afficheur_annuler', INS_ANNULER);
$liste_bouton_fin = '</ul>'."\n";
$form->addElement('html', $liste_bouton_fin);
$form->setDefaults($valeurs_par_defaut);
$this->sortie_xhtml .= $form->toHTML()."\n";
return $this->sortie_xhtml;
}
 
}// Fin de la classe
 
// +------------------------------------------------------------------------------------------------------+
// | PIED du PROGRAMME |
// +------------------------------------------------------------------------------------------------------+
?>
/tags/v4.0-djer/client/bottin/inscription.php
New file
0,0 → 1,475
<?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.34 2007-11-16 14:21:33 alexandre_tb Exp $
/**
* Inscription
*
* Un module d'inscription, en general ce code est specifique a
* un site web
*
*@package inscription
//Auteur original :
*@author Alexandre GRANIER <alexandre@tela-botanica.org>
//Autres auteurs :
*@author Florian SCHMITT <florian@ecole-et-nature.org>
*@copyright Tela-Botanica 2000-2007
*@version $Revision: 1.34 $ $Date: 2007-11-16 14:21:33 $
// +------------------------------------------------------------------------------------------------------+
*/
 
// +------------------------------------------------------------------------------------------------------+
// | ENTETE du PROGRAMME |
// +------------------------------------------------------------------------------------------------------+
include_once 'configuration/bottin.config.inc.php';
include_once INS_CHEMIN_APPLI.'bibliotheque/bottin.fonct.php';
include_once INS_CHEMIN_APPLI.'bibliotheque/inscription.fonct.php';
include_once INS_CHEMIN_APPLI.'bibliotheque/bottin.class.php';
// Inclusion d'une classe personnalise si elle existe
if (file_exists (INS_CHEMIN_APPLI.'bibliotheque/inscription.class.local.php')) {
include_once INS_CHEMIN_APPLI.'bibliotheque/inscription.class.local.php' ;
} else {
include_once INS_CHEMIN_APPLI.'bibliotheque/inscription.class.php';
}
 
// +------------------------------------------------------------------------------------------------------+
// | LISTE de FONCTIONS |
// +------------------------------------------------------------------------------------------------------+
 
if (!isset($_REQUEST['action'])) {
$_REQUEST['action']='';
}
 
 
if ( isset($_GET['voir_fiche']) or isset($_GET['voir_abonnement']) or isset($_GET['voir_actus']) or isset($_GET['voir_ressources']) or isset($_GET['voir_competences'])
or (isset($_REQUEST['action'])&&($_REQUEST['action']=='modifier_v'||$_REQUEST['action']=='modifier_v'))
or ($GLOBALS['AUTH']->getAuth() && ($_REQUEST['action']!='modifier')) ) {
//---------------le menu de l'appli-----------
function afficherContenuNavigation () {
$res =inscription_onglets();
return $res ;
}
}
 
function afficherContenuCorps() {
$res = '<h1>'.INS_TITRE_INSCRIPTION.'</h1>'."\n" ;
// Recuperation de la configuration
if (isset($_REQUEST['id_inscription'])) {
$GLOBALS ['ins_config'] = inscription::getConfig($_REQUEST['id_inscription']);
} else {
$GLOBALS ['ins_config'] = inscription::getConfig();
}
// Template du formulaire
$GLOBALS['ins_config']['ic_inscription_template'] = inscription::getTemplate(INS_TEMPLATE_FORMULAIRE,
$GLOBALS['ins_config']['ic_id_inscription']);
//
$template_accueil = inscription::getTemplate(INS_TEMPLATE_PAGE_ACCUEIL, $GLOBALS['ins_config']['ic_id_inscription']);
//cas de la deconnexion----------------------------------------------------------------------------------
if ($_REQUEST['action'] == 'deconnexion') {
$GLOBALS['AUTH']->logout() ;
$_POST['username'] = '' ;
$_POST['password'] = '' ;
if (defined (PAP_VERSION)) {
setcookie(session_name(), session_id(), time()-3600, '/');
// Destruction du cookie de permanence de l'identitification de Papyrus
setcookie(session_name().'-memo', '', time()-3600, '/');
}
if (strlen(trim ($template_accueil)) == 0) {
$_REQUEST['action'] = 'inscription';
} else return $res.inscription_AUTH_formulaire_login();
}
//cas de la desinscription-------------------------------------------------------------------------------
if ($_REQUEST['action'] == 'supprimer') {
$id_utilisateur = $GLOBALS['AUTH']->getAuthData(INS_CHAMPS_ID) ;
// 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_CHAMPS_NOM_WIKINI) ;
desinscription_interwikini_users($nom_wiki) ;
}
// Lettre d actualite
desinscription_lettre($GLOBALS['ins_config']['ic_mail_desinscription_news']);
$msg = '';
// Appel des actions desinscriptions des applications clientes
$d = dir(GEN_CHEMIN_CLIENT);
while (false !== ($repertoire = $d->read())) {
if ($repertoire != '.' || $repertoire != '..') {
if (file_exists(GEN_CHEMIN_CLIENT.$repertoire.GEN_SEP.$repertoire.'.desinscription.inc.php'))
include_once GEN_CHEMIN_CLIENT.$repertoire.GEN_SEP.$repertoire.'.desinscription.inc.php' ;
}
if ($msg != '') $res .= $msg;
}
$d->close();
$resultat = $GLOBALS['AUTH']->removeUser($GLOBALS['AUTH']->getUsername()) ;
if (PEAR::isError($resultat)) {
return ($resultat->getMessage().'<br />'.$resultat->getDebugInfo()) ;
}
// Deconnection
$GLOBALS['AUTH']->logout() ;
// Destruction du cookie de session de Papyrus : est ce utile?
if (defined (PAP_VERSION)) {
setcookie(session_name(), session_id(), time()-3600, '/');
// Destruction du cookie de permanence de l'identitification de Papyrus
setcookie(session_name().'-memo', '', time()-3600, '/');
}
return $res.inscription_AUTH_formulaire_login() ;
}
//cas de l'envoi de mot de passe par mail----------------------------------------------------------------
if ($_REQUEST['action'] == 'sendpasswd') {
return inscription_envoie_passe()."\n".inscription_formulaire_envoi_passe() ;
}
if (strlen(trim ($template_accueil))==0 && !isset($_GET['action']) && !isset($_POST['action']) && !$GLOBALS['AUTH']->getAuth()) {
$_REQUEST['action'] = 'inscription';
}
// Mise en place de $_REQUEST['id_inscription']
if (!isset($_REQUEST['id_inscription']) && $GLOBALS['ins_config']['ic_id_inscription'] != '') {
$_REQUEST['id_inscription'] = $GLOBALS['ins_config']['ic_id_inscription'];
}
//cas de la saisie ou la modification de l'inscription individuelle ou structure
if (($_REQUEST['action'] == 'modifier')or($_REQUEST['action'] == 'modifier_v')or($_REQUEST['action'] == 'inscription')or($_REQUEST['action'] == 'inscription_v')) {
$formulaire = new HTML_formulaireInscription('formulaire_inscription', 'post', preg_replace('/&amp;/', '&', $GLOBALS['ins_url']->getURL()), '_self', '', 0) ;
$formulaire->addElement('hidden', 'id_inscription', $_REQUEST['id_inscription']) ;
if ($_REQUEST['action'] == 'modifier') {
$formulaire->setDefaults(inscription_formulaire_defaults()) ;
}
$formulaire->construitFormulaire(preg_replace('/&amp;/', '&', $GLOBALS['ins_url']->getURL()));
if (isset($_REQUEST['id_inscription'])) {
if ($_REQUEST['id_inscription']==1) {
$formulaire->formulaireStructure() ;
}
}
 
//pour la modification d'une inscription, on charge les valeurs par defauts
if ($_REQUEST['action'] == 'modifier') {
$formulaire->addElement('hidden', 'action', 'modifier_v') ;
$formulaire->setDefaults(inscription_formulaire_defaults()) ;
}
if ($_REQUEST['action'] == 'inscription') {
if ($GLOBALS['AUTH']->getAuth()) {
} else {
$formulaire->addElement('hidden', 'action', 'inscription_v') ;
$formulaire->setDefaults(array('pays' => 'fr', 'visible' => 1,'lettre'=>1, 'a_lettre' =>1));
}
}
if ($_REQUEST['action'] == 'inscription_v') {
$formulaire->registerRule('doublonmail', 'callback', 'inscription_verif_doublonMail');
$formulaire->addRule('email', INS_MAIL_DOUBLE, 'doublonmail');
if (isset($_SESSION['inscription_termine'])) return $res . info();
if ($formulaire->validate()) {
if ($GLOBALS['ins_config']['ic_mail_valide_inscription']) {
$formulaire->process('inscription_demande', false) ;
return $res.INS_MESSAGE_INSCRIPTION;
} else {
if ($GLOBALS['ins_config']['ic_inscription_modere']) {
inscription::demandeInscriptionModere($formulaire->getSubmitValues());
return inscription::getTemplate(INS_TEMPLATE_MESSAGE_INSCRIPTION_MODEREE, $GLOBALS['ins_config']['ic_id_inscription']);
}
$formulaire->process('inscription_validee', false) ;
$id_utilisateur = $GLOBALS['ins_db']->getOne('SELECT MAX('.INS_CHAMPS_ID.') FROM '.INS_ANNUAIRE) ;
// Appel des actions des inscriptions des applications clientes
$d = dir(GEN_CHEMIN_CLIENT);
while (false !== ($repertoire = $d->read())) {
if ($repertoire != '.' && $repertoire != '..') {
if (file_exists(GEN_CHEMIN_CLIENT.$repertoire.GEN_SEP.$repertoire.'.inscription.inc.php'))
include_once GEN_CHEMIN_CLIENT.$repertoire.GEN_SEP.$repertoire.'.inscription.inc.php' ;
}
}
$d->close();
// envoi d un mail aux moderateurs et a l inscrit
envoie_mail();
header('Location: '.str_replace ('&amp;', '&', $GLOBALS['ins_url']->getURL()));
return $res.info($id_utilisateur);
}
} else {
// Si le formulaire n'est pas bon on remet l'action inscription_v
$formulaire->addElement('hidden', 'action', 'inscription_v') ;
}
}
if ($_REQUEST['action'] == 'modifier_v') {
// avant d effectuer la mise a jour, on recupere les anciennes valeurs de l annuaire
$requete = 'select * from '.INS_ANNUAIRE.' where '.INS_CHAMPS_ID.'="'.$GLOBALS['AUTH']->getAuthData(INS_CHAMPS_ID).'"';
$resultat = $GLOBALS['ins_db']->query($requete);
$GLOBALS['anciennes_valeurs_annuaire'] = $resultat->fetchRow (DB_FETCHMODE_ASSOC);
 
if ($formulaire->validate()) {
$formulaire->process('inscription_mise_a_jour', false) ;
} else {
return $formulaire->toHTML();
}
return $res.info();
}
return $res.$formulaire->toHTML() ;
}
//cas de la validation par mail d'une inscription--------------------------------------------------------
// On a besoin de la globale ins_config,
// or on ignore quel est l identifiant de l inscription
// on recupere les donnees serializees a partir de $_GET['id']
if (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)) {
return ("Echec de la requete : $requete<br />".$resultat->getMessage()) ;
}
if($resultat->numRows() == 0)
return INS_MESSAGE_EXPIRATION;
$ligne = $resultat->fetchRow(DB_FETCHMODE_OBJECT) ;
$donnees = unserialize (stripslashes($ligne->id_donnees)) ;
// dans les donnees serialisees, on recupere l identifiant de l inscription
// pour charger la globale ins_config
$GLOBALS['ins_config'] = inscription::getConfig($donnees['id_inscription']);
// Template du formulaire
$GLOBALS['ins_config']['ic_inscription_template'] = inscription::getTemplate(INS_TEMPLATE_FORMULAIRE,
$GLOBALS['ins_config']['ic_id_inscription']);
// si l inscription est modere on place la demande en attente
// et on envoie un mail au moderateur
if ($GLOBALS['ins_config']['ic_inscription_modere']) {
$requete_attente = 'insert into inscription_attente select * from inscription_demande where id_identifiant_session="'.
$_GET['id'].'"';
$resultat = $GLOBALS['ins_db']->query($requete_attente);
if (DB::isError ($resultat)) {
return ("Echec de la requete : $requete<br />".$resultat->getMessage());
}
$mails_moderateur = split ('/\n/', $GLOBALS['ins_config']['ic_mail_moderateur']);
foreach ($mails_moderateur as $mail) {
mail ($mail, INS_MODERATION_SUJET, INS_NOUVELLE_INSCRIPTION_A_MODERE) ;
}
} else {
$id_utilisateur = inscription_insertion($donnees) ;
$GLOBALS['AUTH']->username = $donnees['a_mail'] ;
$GLOBALS['AUTH']->password = $donnees['mot_de_passe'] ;
// On loggue l'utilisateur
$GLOBALS['AUTH']->login() ;
// inscription a la lettre d'information
if (isset ($donnees['lettre'])) {
inscription_lettre($GLOBALS['ins_config']['ic_mail_inscription_news']) ;
}
// Appel des actions des inscriptions des applications clientes
$d = dir(GEN_CHEMIN_CLIENT);
while (false !== ($repertoire = $d->read())) {
if (file_exists(GEN_CHEMIN_CLIENT.$repertoire.GEN_SEP.$repertoire.'.inscription.inc.php'))
include_once GEN_CHEMIN_CLIENT.$repertoire.GEN_SEP.$repertoire.'.inscription.inc.php' ;
}
$d->close();
envoie_mail() ;
}
// 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)) {
return ("Echec de la requete : $requete<br />".$resultat->getMessage()) ;
}
}
if ((!$GLOBALS['AUTH']->getAuth())&&($_REQUEST['action']!='inscription')&&($_REQUEST['action']!='inscription_v')) {
if (isset($_POST['username']) && $_POST['username'] != '') {
$res .= '<p class="erreur">'.INS_ERREUR_LOGIN.'</p><br />'."\n".inscription_formulaire_envoi_passe();
} else if ($_REQUEST['action'] == 'mdp_oubli') {
$res .= inscription_formulaire_envoi_passe();
} else {
$res .= inscription_AUTH_formulaire_login() ;
}
}
//cas d'une authentification reussie---------------------------------------------------------------------
if ($GLOBALS['AUTH']->getAuth() && ($_REQUEST['action']!='modifier')) {
// Il faut charger ins_config
if(empty($GLOBALS['ins_config']))
$GLOBALS['ins_config'] = inscription::getConfig($GLOBALS['AUTH']->getAuthData('a_ce_id_inscription'));
return info() ;
}
return $res ;
}
 
/* +--Fin du code ----------------------------------------------------------------------------------------+
*
* $Log: not supported by cvs2svn $
* Revision 1.33 2007-10-10 12:24:54 alexandre_tb
* gestion du retour arrière par un header location
* si le template ACCUEIL est vide, on envoie directement le formulaire
* d inscription
*
* Revision 1.32 2007-09-07 09:18:23 alexandre_tb
* ajout de controle par variable de session pour eviter une double inscription
*
* Revision 1.31 2007-09-06 08:39:08 alexandre_tb
* envoie de cookie pour desinscription different selon que l on est dans papyrus
* ou en stand-alone
*
* Revision 1.30 2007-08-28 15:13:25 alexandre_tb
* gestion du lien "mot de passe oublie"
*
* Revision 1.29 2007-08-27 12:34:32 alexandre_tb
* remplacement d un die en retour en erreur
*
* Revision 1.28 2007-06-26 09:32:32 neiluj
* debug inscription (warnings) et adaptation php5
*
* Revision 1.27 2007-06-25 09:59:03 alexandre_tb
* ajout de carte_google, mise en place des templates avec api/formulaire, configuration de multiples inscriptions, ajout de modele pour les mails
*
* Revision 1.26 2007-06-01 15:11:00 alexandre_tb
* correction de la verification de l email qui ne fonctionnait plus
*
* Revision 1.25 2007-06-01 13:37:56 alexandre_tb
* mise en place de la table inscription_configuration et de la moderation
*
* Revision 1.24 2007-05-25 14:31:10 alexandre_tb
* en cours
*
* Revision 1.23 2007/04/11 08:30:12 neiluj
* remise en état du CVS...
*
* Revision 1.20.2.1 2007/01/26 10:32:59 alexandre_tb
* suppression d un notice
*
* Revision 1.20 2006/12/01 13:23:17 florian
* integration annuaire backoffice
*
* Revision 1.19 2006/10/05 13:53:54 florian
* amélioration des fichiers sql
*
* Revision 1.18 2006/07/20 09:48:07 alexandre_tb
* réglages
*
* Revision 1.17 2006/07/06 10:33:30 alexandre_tb
* correction bug du à dernière mise à jour
*
* Revision 1.16 2006/07/04 09:38:31 alexandre_tb
* Ajout de la règle doublon email uniquement lors de création d'une entrée
*
* Revision 1.15 2006/06/01 10:00:35 alexandre_tb
* correction bug désinscription des appli cliente
*
* Revision 1.14 2006/04/10 09:48:16 alexandre_tb
* Correction de bug pour les inscriptions aux autres applications
*
* Revision 1.13 2006/04/04 12:23:05 florian
* modifs affichage fiches, généricité de la carto, modification totale de l'appli annuaire
*
* Revision 1.12 2006/03/15 11:05:45 alexandre_tb
* ajout de l'action caché inscription_v lors du ré-affichage du formulaire après erreur de saisie.
*
* Revision 1.11 2006/03/02 14:10:35 alexandre_tb
* correction du bug desinscription wikini
*
* Revision 1.10 2006/03/02 13:03:45 alexandre_tb
* bug de désinscription interwikini_users
*
* Revision 1.9 2006/02/28 14:08:27 alexandre_tb
* appel des inscriptions des autres appli, sous le format:
* client/appli/appli.inscription.php
*
* Revision 1.8 2006/02/14 10:21:08 alexandre_tb
* ajout d'un appel à un fichier de classe personnalisé
*
* Revision 1.7 2005/12/19 13:16:14 alexandre_tb
* correction d'un bug
*
* Revision 1.6 2005/11/18 16:04:15 florian
* corrections de bugs, optimisations, tests pour rendre inscription stable.
*
* Revision 1.5 2005/11/17 18:48:02 florian
* corrections bugs + amélioration de l'application d'inscription
*
* Revision 1.4 2005/10/25 14:02:21 alexandre_tb
* le formulaire affiche la france par défaut
*
* Revision 1.3 2005/09/29 16:07:51 alexandre_tb
* En cours de production.
*
* Revision 1.2 2005/09/27 13:59:24 alexandre_tb
* correction de bogue, généralisation du code etc.
*
* Revision 1.1 2005/09/22 14:02:49 ddelon
* nettoyage annuaire et php5
*
* Revision 1.4 2005/09/22 13:30:49 florian
* modifs pour compatibilité XHTML Strict + corrections de bugs (mais ya encore du boulot!!)
*
* 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 ----------------------------------------------------------------------------------------+
*/
?>
/tags/v4.0-djer/client/bottin/annuaire.php
New file
0,0 → 1,104
<?
/*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.7 2007-04-11 08:30:12 neiluj 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.7 $
// +------------------------------------------------------------------------------------------------------+
*/
 
// +------------------------------------------------------------------------------------------------------+
// | ENTETE du PROGRAMME |
// +------------------------------------------------------------------------------------------------------+
include_once 'configuration/bottin.config.inc.php';
include_once 'configuration/annuaire.config.inc.php';
include_once INS_CHEMIN_APPLI.'bibliotheque/bottin.fonct.php';
 
if (!isset($GLOBALS['lang'])) {
$GLOBALS['lang'] = INS_LANGUE_DEFAUT ;
}
include_once INS_CHEMIN_APPLI."langues/annuaire.langue.".$GLOBALS['lang'].".inc.php" ;
 
if ( isset($_GET['voir_fiche']) or isset($_GET['voir_abonnement']) or isset($_GET['voir_actus']) or isset($_GET['voir_ressources']) or isset($_GET['voir_competences']) ) {
//---------------le menu de l'appli-----------
function afficherContenuNavigation () {
$res =inscription_onglets();
return $res ;
}
}
 
/**
* Renvoie le code HTML de l'application
*
* @return string HTML
*/
function afficherContenuCorps () {
if ( isset($_GET['voir_fiche']) or isset($_GET['voir_abonnement']) or isset($_GET['voir_actus']) or isset($_GET['voir_ressources']) or isset($_GET['voir_competences']) ) {
$res = affiche_onglet_info();
} else {
$res = '<h1 class="annuaire_titre1">'.INS_ANNUAIRE_MEMBRES.'</h1>'."\n" ;
if (!$GLOBALS['AUTH']->getAuth()&&INS_NECESSITE_LOGIN) {
$res .= '<p class="zone_alert">'.INS_VOUS_DEVEZ_ETRE_INSCRIT.'</p>'."\n" ;
} else {
// S'il y a un mail a envoyé, on l'envoie
if (isset($_POST['select']) && is_array ($_POST['select'])) $res .= envoie_mail_depuis_annuaire() ;
//affichage du formulaire de recherche
$res .= Annuaire_recherche() ;
}
}
return $res;
}
 
/**------------------------------------------------------------------------------
* $Log: not supported by cvs2svn $
* Revision 1.5 2006/04/10 14:01:36 florian
* uniformisation de l'appli bottin: plus qu'un fichier de fonctions
*
* Revision 1.4 2006/04/04 12:23:05 florian
* modifs affichage fiches, généricité de la carto, modification totale de l'appli annuaire
*
* Revision 1.3 2005/10/03 09:38:42 alexandre_tb
* Lorsque non loggué, on renvoie un message et non un formulaire
*
* Revision 1.2 2005/09/29 16:07:51 alexandre_tb
* En cours de production.
*
* Revision 1.1 2005/09/22 14:02:49 ddelon
* nettoyage annuaire et php5
*
* Revision 1.4 2005/09/22 13:30:49 florian
* modifs pour compatibilité XHTML Strict + corrections de bugs (mais ya encore du boulot!!)
*
*
*-- End of source ------------------------------------------------------------*/
?>
/tags/v4.0-djer/client/bottin/carto_google.php
New file
0,0 → 1,103
<?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: carto_google.php,v 1.8 2007-11-16 14:21:33 alexandre_tb Exp $
/**
* Cartographie google du bottin
*
*@package bottin
//Auteur original :
*@author Alexandre Granier <alexandre@tela-botanica.org>
//Autres auteurs :
*@copyright Tela-Botanica 2000-2007
*@version $Revision: 1.8 $ $Date: 2007-11-16 14:21:33 $
// +------------------------------------------------------------------------------------------------------+
*/
 
// +------------------------------------------------------------------------------------------------------+
// | ENTETE du PROGRAMME |
// +------------------------------------------------------------------------------------------------------+
 
include_once 'configuration/bottin.config.inc.php';
include_once INS_CHEMIN_APPLI.'bibliotheque/bottin.fonct.php';
include_once INS_CHEMIN_APPLI.'bibliotheque/bottin.class.php';
// Inclusion d'une classe personnalise si elle existe
if (file_exists (INS_CHEMIN_APPLI.'bibliotheque/inscription.class.local.php')) {
include_once INS_CHEMIN_APPLI.'bibliotheque/inscription.class.local.php' ;
} else {
include_once INS_CHEMIN_APPLI.'bibliotheque/inscription.class.php';
}
 
$GLOBALS ['ins_config'] = inscription::getConfig($GLOBALS['type_inscription_carto']);
$GLOBALS ['ins_config']['ic_inscription_template'] = inscription::getTemplate(INS_TEMPLATE_FORMULAIRE,
$GLOBALS['ins_config']['ic_id_inscription']);
$GLOBALS['ins_config']['ic_google_key'] = 'http://maps.google.com/maps?file=api&amp;v=2&amp;key='.INS_GOOGLE_KEY;
GEN_stockerFichierScript('googleMapScript', $GLOBALS['ins_config']['ic_google_key']);
 
 
 
 
include_once INS_CHEMIN_SQUELETTE.INS_FICHIER_DONNEES_GOOGLE;
 
ob_start();
include INS_CHEMIN_SQUELETTE.INS_FICHIER_SCRIPT_GOOGLE;
$script = ob_get_contents();
ob_end_clean();
GEN_stockerCodeScript($script);
 
function afficherContenuCorps() {
// Appel du template
include_once INS_CHEMIN_APPLI.'bibliotheque/bottin.class.php';
$template = inscription::getTemplate(INS_TEMPLATE_CARTO_GOOGLE_ACCUEIL, 1);
GEN_AttributsBody('onload', 'load()');
$carte = '<div id="map" style="width: '.INS_GOOGLE_IMAGE_LARGEUR.'px; height: '.INS_GOOGLE_IMAGE_HAUTEUR.'px"></div>';
$res = str_replace ('{CARTE}', $carte, $template);
return $res;
}
 
/* +--Fin du code ----------------------------------------------------------------------------------------+
*
* $Log: not supported by cvs2svn $
* Revision 1.7 2007-10-12 10:04:52 alexandre_tb
* ajout des contantes INS_GOOGLE_IMAGE_LARGEUR et INS_GOOGLE_IMAGE_HAUTEUR
*
* Revision 1.6 2007-10-01 12:18:29 alexandre_tb
* separation du script en 2 fichiers donnees_googlemap.php et script_googlemap.tpl.js
*
* Revision 1.5 2007-09-18 08:38:54 alexandre_tb
* ajout de la globale $GLOBALS['type_inscription'] pour indiquer quelle inscription on cartographie
*
* Revision 1.4 2007-09-06 08:29:22 alexandre_tb
* utilisation de constantes pour centrer la carte
*
* Revision 1.3 2007-08-27 12:35:13 alexandre_tb
* mise en place d un icone personnalise
* et de l affichage de plusieurs donnees sur un meme point
*
* Revision 1.2 2007-06-25 09:59:03 alexandre_tb
* ajout de carte_google, mise en place des templates avec api/formulaire, configuration de multiples inscriptions, ajout de modele pour les mails
*
* Revision 1.1 2007-06-01 13:39:14 alexandre_tb
* version initiale
*
* +-- Fin du code ----------------------------------------------------------------------------------------+
*/
/tags/v4.0-djer/client/bottin/index.php
New file
0,0 → 1,3
<?php
header('Location:inscription.php');
?>
/tags/v4.0-djer/client/bottin/cartographie.php
New file
0,0 → 1,334
<?php
 
//vim: set expandtab tabstop=4 shiftwidth=4:
// +-----------------------------------------------------------------------------------------------+
// | PHP version 4.0 |
// +-----------------------------------------------------------------------------------------------+
// | Copyright (c) 1997, 1998, 1999, 2000, 2001 The PHP Group |
// +-----------------------------------------------------------------------------------------------+
// | This source file is subject to version 2.0 of the PHP license, |
// | that is bundled with this package in the file LICENSE, and is |
// | available at through the world-wide-web at |
// | http://www.php.net/license/2_02.txt. |
// | If you did not receive a copy of the PHP license and are unable to |
// | obtain it through the world-wide-web, please send a note to |
// | license@php.net so we can mail you a copy immediately. |
// +-----------------------------------------------------------------------------------------------+
/**
*
*Page permettant l'affichage des informations de cartographie des inscrits
*
*@package cartographie
//Auteur original :
*@author Alexandre GRANIER <alexandre@tela-botanica.org>
//Autres auteurs :
*@copyright Tela-Botanica 2000-2004
*@version 03 mai 2004
// +-----------------------------------------------------------------------------------------------+
//
// $Id: cartographie.php,v 1.9 2007-04-11 08:30:12 neiluj Exp $
// FICHIER : $RCSfile: cartographie.php,v $
// AUTEUR : $Author: neiluj $
// VERSION : $Revision: 1.9 $
// DATE : $Date: 2007-04-11 08:30:12 $
*/
include_once PAP_CHEMIN_RACINE.'/client/bottin/configuration/bottin.config.inc.php';
include_once INS_CHEMIN_APPLI.'configuration/cartographie.config.inc.php';
include_once INS_CHEMIN_APPLI.'bibliotheque/bottin.fonct.php';
include_once INS_CHEMIN_APPLI.'bibliotheque/lib.carto.php';
 
//================================================================================================
if ( isset($_GET['voir_fiche']) or isset($_GET['voir_abonnement']) or isset($_GET['voir_actus']) or isset($_GET['voir_ressources']) or isset($_GET['voir_competences']) ) {
//---------------le menu de l'appli-----------
function afficherContenuNavigation () {
$res =inscription_onglets();
return $res ;
}
}
 
//================================================================================================
function construit_hierarchie(&$info_zone, &$carto_config, $info_zone_hierarchie, &$monde) {
static $i=0;
$i++;
//on ajoute la carto en cours en tant que fils
$monde->ajouterFils($info_zone_hierarchie->czh_code_alpha, $info_zone_hierarchie->czh_identifiant_table_info_couleur,
$info_zone_hierarchie->czh_nom, $info_zone_hierarchie->czh_fichier_masque,
$info_zone_hierarchie->czh_fichier_image, '');
$monde->fils[$info_zone_hierarchie->czh_code_alpha]->definirCouleurs ('255', '255', '255','255', '250', '130','255', '204', '0','255', '153', '0') ;
//requete pour trouver les fils de la carte de depart voulue
$requete_zone_fils = 'SELECT * FROM carto_zone_hierarchie '.
'WHERE czh_id_zone_pere='.$info_zone_hierarchie->czh_id_zone;/*echo $requete_zone_fils;*/
$resultat_zone_fils = $GLOBALS['ins_db']->query($requete_zone_fils) ;
if (DB::isError($resultat_zone_fils )) {
echo ($resultat_zone_fils->getMessage().'<br />'.$resultat_zone_fils->getDebugInfo()).'<br />'.$requete_zone_fils ;
}
if ($resultat_zone_fils->numRows()!=0) {
while ($ligne_zone_fils = $resultat_zone_fils ->fetchRow(DB_FETCHMODE_OBJECT)) {
//requete pour obtenir toutes les infos (repartition par zones, nom des tables et champs pour les couleurs,.. ) pour la carte à afficher
$requete_01 = 'SELECT '.$ligne_zone_fils->czh_nom_champs_id_pere.',count('.$ligne_zone_fils->czh_nom_champs_id_pere.') AS nbr'.
' FROM '.$carto_config['cc_table1'].', '.$ligne_zone_fils->czh_nom_table_info_couleur;
if ($carto_config['cc_table2']!=0) $requete_01 .= ', '.$carto_config['cc_table2'];
$requete_01 .= ' WHERE '.$ligne_zone_fils->czh_champs_jointure_annuaire.' = '.$ligne_zone_fils->czh_nom_champs_id;
if ($carto_config['cc_sql']!='') $requete_01 .= ' AND ('.$carto_config['cc_sql'].')';
$requete_01 .= ' GROUP BY '.$ligne_zone_fils->czh_nom_champs_id_pere;
$resultat_01 = $GLOBALS['ins_db']->query($requete_01) ;
if (DB::isError($resultat_01)) {
echo ($resultat_01->getMessage().'<br />'.$resultat_01->getDebugInfo()).'<br />'.$requete_01 ;
}
$tableau_repartition=array();
while ($ligne_01 = $resultat_01->fetchRow(DB_FETCHMODE_OBJECT)) {
$id=$ligne_zone_fils->czh_nom_champs_id_pere;
$tableau_repartition[$ligne_01->$id] = $ligne_01->nbr;
}
$info_zone[$i]['nom_table_zone'] =$info_zone_hierarchie->czh_nom_table_info_couleur;
$info_zone[$i]['nom_chp_id_zone'] =$info_zone_hierarchie->czh_nom_champs_id;
$info_zone[$i]['nom_chp_nom_zone'] =$info_zone_hierarchie->czh_nom_champs_intitule;
$info_zone[$i]['nom_chp_rouge'] =$info_zone_hierarchie->czh_nom_champs_couleur_R;
$info_zone[$i]['nom_chp_vert'] =$info_zone_hierarchie->czh_nom_champs_couleur_V;
$info_zone[$i]['nom_chp_bleu'] =$info_zone_hierarchie->czh_nom_champs_couleur_B;
$info_zone[$i]['nom_chp_zone_sup'] =$info_zone_hierarchie->czh_nom_champs_id_pere;
$info_zone[$i]['tableau_valeurs_zone'] = $tableau_repartition;
if ($i == 1) {
$monde->_info_table_zg = $info_zone[1];
$monde->definirCouleurs('255', '255', '255','255', '250', '130','255', '204', '0','255', '153', '0') ;
construit_hierarchie($info_zone, $carto_config, $ligne_zone_fils, $monde);
} else {
$monde->_info_table_zg = $info_zone[$i];
construit_hierarchie($info_zone, $carto_config, $ligne_zone_fils, $monde->fils[$info_zone_hierarchie->czh_code_alpha]);
}
}
}
}
 
function afficherContenuCorps() {
global $image_x;
global $image_y;
global $historique_cartes;
global $mailer;
global $fin;
global $sendpwd;//utilisé dans liste_inscrit.php
global $select;//utilisé dans liste_inscrit.php
global $liste_zone_carte;
//=================================================================================================
//Gestion de la configuration
$requete = 'SELECT * FROM carto_config WHERE cc_menu_id='.$GLOBALS['_GEN_commun']['info_menu']->gm_id_menu;
$resultat = $GLOBALS['ins_db']->query($requete) ;
if (DB::isError($resultat)) {
die ("Echec de la requete<br />".$resultat->getMessage()."<br />".$resultat->getDebugInfo()) ;
}
if ($resultat->numRows()>0) {
$carto_config = $resultat->fetchRow(DB_FETCHMODE_ASSOC);
//on affiche les infos lorsqu'on regarde une fiche
if ( isset($_GET['voir_fiche']) or isset($_GET['voir_abonnement']) or isset($_GET['voir_actus']) or isset($_GET['voir_ressources']) or isset($_GET['voir_competences']) ) {
$res = affiche_onglet_info();
} else {
//requete pour afficher la carte de depart voulue dans la conf.
$requete_zone_hierarchie = 'SELECT * FROM carto_zone_hierarchie WHERE czh_id_zone='.$carto_config['cc_ce_premiere_carte'];
$resultat_zone_hierarchie = $GLOBALS['ins_db']->query($requete_zone_hierarchie) ;
if (DB::isError($resultat_zone_hierarchie )) {
echo ($resultat_zone_hierarchie->getMessage().'<br />'.$resultat_zone_hierarchie->getDebugInfo()) ;
}
$ligne_zone_hierarchie = $resultat_zone_hierarchie ->fetchRow(DB_FETCHMODE_OBJECT);
//initialisation de la variable 2 dimensions, contenant les infos specifiques a chaque echelle de territoire
$info_zone= array();
$monde = new Carto_Carte($ligne_zone_hierarchie->czh_code_alpha, '', $ligne_zone_hierarchie->czh_nom,
$ligne_zone_hierarchie->czh_fichier_masque, $ligne_zone_hierarchie->czh_fichier_image,
INS_CHEMIN_APPLI.'presentations/fonds/', '');
construit_hierarchie($info_zone, $carto_config, $ligne_zone_hierarchie, $monde);
echo '<pre>'.var_dump($monde).'</pre>';
//requete
// $requete_02 = 'SELECT CC_ID_Continent FROM carto_CONTINENT';
//
// $resultat_02 = $GLOBALS['ins_db']->query($requete_02) ;
// if (DB::isError($resultat_02)) {
// die ($resultat_02->getMessage().'<br />'.$resultat_02->getDebugInfo()) ;
// }
//
// while ($ligne_02 = $resultat_02->fetchRow(DB_FETCHMODE_OBJECT)) {
// $requete_03 = 'SELECT CP_ID_Pays, count(cp_id_pays) as nbr '.
// ' FROM '.$nom_table1.', carto_PAYS';
// if ($nom_table2!=0) $requete_03 .= ', '.$nom_table2;
// $requete_03 .= ' WHERE '.$nom_champs_pays.'= cp_id_pays';
// if ($requete_sql!='') $requete_03 .= ' AND ('.$requete_sql.')';
// $requete_03 .= ' AND cp_id_continent = "'.$ligne_02->CC_ID_Continent.'"'.
// ' GROUP BY cp_id_pays';
// $resultat_03 = $GLOBALS['ins_db']->query($requete_03) ;
// if (DB::isError($resultat_03)) {
// die ($resultat_03->getMessage().'<br />'.$resultat_03->getDebugInfo()) ;
// }
//
// $tableau_ad_pays = array();
// while ($ligne_03 = $resultat_03->fetchRow(DB_FETCHMODE_OBJECT)) {
// $tableau_ad_pays[$ligne_03->CP_ID_Pays] = $ligne_03->nbr;
// }
//
// $info_pays[$ligne_02->CC_ID_Continent]['nom_table_zone'] = 'carto_PAYS';
// $info_pays[$ligne_02->CC_ID_Continent]['nom_chp_id_zone'] = 'CP_ID_Pays';
// $info_pays[$ligne_02->CC_ID_Continent]['nom_chp_nom_zone'] = 'CP_Intitule_pays';
// $info_pays[$ligne_02->CC_ID_Continent]['nom_chp_rouge'] = 'CP_Couleur_R';
// $info_pays[$ligne_02->CC_ID_Continent]['nom_chp_vert'] = 'CP_Couleur_V';
// $info_pays[$ligne_02->CC_ID_Continent]['nom_chp_bleu'] = 'CP_Couleur_B';
// $info_pays[$ligne_02->CC_ID_Continent]['nom_chp_zone_sup'] = 'CP_ID_Continent';
// $info_pays[$ligne_02->CC_ID_Continent]['tableau_valeurs_zone'] = $tableau_ad_pays;
}
// //============================================================================================================
// //if (!isset($_POST['historique_cartes']) && INS_ECHELLE_DEPART!='france') {
// $requete_04 = 'SELECT CD_ID_Departement, count(cd_id_departement) as nbr'.
// ' FROM '.$nom_table1.', carto_DEPARTEMENT'.
// ' WHERE '.$nom_champs_pays.' = "fr"'.
// ' AND SUBSTRING('.$nom_champs_cp.' FROM 1 FOR 2) = cd_id_Departement'.
// ' GROUP BY cd_id_Departement';
// $resultat_04 = $GLOBALS['ins_db']->query ($requete_04) ;
// $tableau_ad_dpt_france = array();
// while ($ligne_04 = $resultat_04->fetchRow(DB_FETCHMODE_OBJECT)) {
// $tableau_ad_dpt_france[$ligne_04->CD_ID_Departement] = $ligne_04->nbr;
// }
// $info_dpt_france['nom_table_zone'] = 'carto_DEPARTEMENT';
// $info_dpt_france['nom_chp_id_zone'] = 'CD_ID_Departement';
// $info_dpt_france['nom_chp_nom_zone'] = 'CD_Intitule_departement';
// $info_dpt_france['nom_chp_rouge'] = 'CD_Couleur_R';
// $info_dpt_france['nom_chp_vert'] = 'CD_Couleur_V';
// $info_dpt_france['nom_chp_bleu'] = 'CD_Couleur_B';
// $info_dpt_france['nom_chp_zone_sup'] = 'CD_ID_Pays';
// $info_dpt_france['tableau_valeurs_zone'] = $tableau_ad_dpt_france;
// //}
//
//============================================================================================================
//============================================================================================================
// On cree tout d'abord l'arborescence
/*
$monde = new Carto_Carte('continent', '', 'Monde', 'monde_masque5c.png', 'monde5c.png',
INS_CHEMIN_APPLI.'presentations/fonds/', $info_zone[1]);
$monde->definirCouleurs('255', '255', '255','255', '250', '130','255', '204', '0','255', '153', '0') ;*/
if (isset($_POST['historique_cartes'])) {
$monde->historique_cartes = $_POST['historique_cartes'];
} else {
$monde->historique_cartes = INS_ECHELLE_DEPART;
}
$monde->image_x = $image_x;
$monde->image_y = $image_y;
$monde->liste_zone_carte = $liste_zone_carte;
$monde->url = $GLOBALS['ins_url']->getURL();
/*
foreach ($info_zone[2] as $cle => $valeur) {
$requete_05 =
"SELECT CDC_Titre_carte, CDC_ID_Carte, CDC_Carte_fond, CDC_Carte_masque, CDC_ID_Zone_geo_carte".
" FROM carto_DESCRIPTION_CARTE, carto_ACTION ".
" WHERE CA_ID_Zone_geo = '$cle'".
" AND CA_Type_zone = 1".
" AND CA_ID_Carte_destination = CDC_ID_Carte";
$resultat_05 = $GLOBALS['ins_db']->query ($requete_05) ;
if (DB::isError($resultat_05)) {
die ($resultat_05->getMessage().'<br />'.$resultat_05->getDebugInfo()) ;
}
$ligne_05 = $resultat_05->fetchRow(DB_FETCHMODE_OBJECT);
$monde->ajouterFils($ligne_05->CDC_ID_Carte, $ligne_05->CDC_ID_Zone_geo_carte, $ligne_05->CDC_Titre_carte,
$ligne_05->CDC_Carte_masque, $ligne_05->CDC_Carte_fond, $valeur);
$monde->fils[$ligne_05->CDC_ID_Carte]->definirCouleurs ('255', '255', '255','255', '250', '130','255', '204', '0','255', '153', '0') ;
}
*/
//$monde->fils['europe']->ajouterFils('france', 'fr', 'France' ,'france_masque.png', 'france.png', $info_zone[3]);
//$monde->fils['europe']->fils['france']->definirCouleurs ('255', '255', '255','255', '250', '130','255', '204', '0','255', '153', '0') ;
// Une fois l'arborescence créée on lance la methode donnerFormulaireImage() pour recuperer la carte
// (dans $img). S'il n'y a pas de carte a afficher donnerFormulaireImage() renvoi false. On peut alors recuperer
// le niveau ou on en est grace a $monde->historique (du type continent*namerique*ca).
$img = false;
if ($mailer == 1 || $fin == true) {
$objet_carte = $_SESSION['carte'] ;
$monde = unserialize($objet_carte);}
else {
$img = $monde->donnerFormulaireImage();
}
// Quoi qu'il arrive, on ouvre la balise formulaire
if ($carto_config['cc_titre_carto']!='') $res = '<h1>'.$carto_config['cc_titre_carto'].'</h1>'."\n";
else $res = '<h1>'.INS_CARTOGRAPHIE.'</h1>'."\n";
$res .= '<form name="formmail" action="'.$monde->url.'" method="post">'."\n";
if ((INS_AFFICHE_ECHELLE)and($img)) {
$historique_carte = new Carto_HistoriqueCarte ($monde, '&gt;', 'chemin_carto');
$res .= $historique_carte->afficherHistoriqueCarte()."\n" ;
}
if (!$img ) {
//include 'bibliotheque/cartographie.fonct.liste_inscrit.php';
$res .= carto_liste_fiches($monde, $carto_config['cc_table1'], $carto_config['cc_table2'], $carto_config['cc_pays'],$carto_config['cc_cp'], $carto_config['cc_sql']);
return $res;
} else {
$res .= $img;
$res .= '<p class="zone_info">'."\n";
$res .= '<strong>'.INS_CLIQUER_ACCEDER.'</strong><br />'."\n";
$res .= INS_COULEUR."\n".'</p>'."\n";
}
$res .= '</form>'."\n";
return $res;
//----------------------------------------------------------------------------------------------------------------------
// Cas ou la carto n'a pas encore ete configuree
} else {
return '<p class="zone_alert">'.INS_FAUT_CONFIGURER_CARTO.'</p>'."\n";
}
}
 
 
//-- Fin du code source ------------------------------------------------------------
/*
* $Log: not supported by cvs2svn $
* Revision 1.6 2006/12/01 13:23:17 florian
* integration annuaire backoffice
*
* Revision 1.5 2006/04/19 13:49:04 alexandre_tb
* correction de bug sur l'utilisation de l'id_menu de papyrus
*
* Revision 1.4 2006/04/10 14:01:36 florian
* uniformisation de l'appli bottin: plus qu'un fichier de fonctions
*
* Revision 1.3 2006/04/04 12:23:05 florian
* modifs affichage fiches, généricité de la carto, modification totale de l'appli annuaire
*
* Revision 1.2 2005/11/24 16:17:52 florian
* changement template inscription + modifs carto
*
* Revision 1.1 2005/09/22 14:02:49 ddelon
* nettoyage annuaire et php5
*
* Revision 1.2 2005/09/22 13:30:49 florian
* modifs pour compatibilité XHTML Strict + corrections de bugs (mais ya encore du boulot!!)
*
* Revision 1.1 2004/12/15 13:33:03 alex
* version initiale
*
* Revision 1.2 2004/06/18 08:48:03 alex
* améliorations diverses
*
* Revision 1.1 2004/06/09 13:56:47 alex
* corrections diverses
*
* Revision 1.9 2003/05/06 12:49:27 alex
* remplacement include par include_once
*
* Revision 1.8 2003/03/07 15:20:32 jpm
* Correction d'une erreur de texte.
*
* Revision 1.7 2003/02/28 08:43:33 jpm
* Gestion des nouvelles tables MySql carto.
*
* Revision 1.6 2003/02/21 13:50:19 jpm
* Mise à jour nouvel objet Carto_Carte.
*
* Revision 1.5 2003/02/17 14:33:52 jpm
* Modification pour être compatible avec la nouvelle classe carte.
*
*
*/
?>
/tags/v4.0-djer/client/bottin/langues/annuaire.langue.fr.inc.php
New file
0,0 → 1,67
<?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.5 2007-04-11 08:30:12 neiluj 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.5 $ $Date: 2007-04-11 08:30:12 $
// +------------------------------------------------------------------------------------------------------+
*/
/* +--Fin du code ----------------------------------------------------------------------------------------+
*
* $Log: not supported by cvs2svn $
* Revision 1.3 2006/04/04 12:23:05 florian
* modifs affichage fiches, généricité de la carto, modification totale de l'appli annuaire
*
* Revision 1.2 2005/10/03 09:37:56 alexandre_tb
* ajout d'un label
*
* Revision 1.1 2005/09/22 14:02:49 ddelon
* nettoyage annuaire et php5
*
* Revision 1.4 2005/09/22 13:30:49 florian
* modifs pour compatibilité XHTML Strict + corrections de bugs (mais ya encore du boulot!!)
*
* 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 ----------------------------------------------------------------------------------------+
*/
?>
/tags/v4.0-djer/client/bottin/langues/cartographie.langue.fr.inc.php
New file
0,0 → 1,55
<?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: cartographie.langue.fr.inc.php,v 1.1 2005-09-22 14:02:49 ddelon 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-09-22 14:02:49 $
// +------------------------------------------------------------------------------------------------------+
*/
 
 
 
/* +--Fin du code ----------------------------------------------------------------------------------------+
*
* $Log: not supported by cvs2svn $
* Revision 1.2 2005/09/22 13:30:49 florian
* modifs pour compatibilité XHTML Strict + corrections de bugs (mais ya encore du boulot!!)
*
* Revision 1.1 2004/12/15 13:31:21 alex
* version initiale
*
* Revision 1.1 2004/06/18 08:49:57 alex
* version initiale, pour vecam
*
*
* +-- Fin du code ----------------------------------------------------------------------------------------+
*/
?>
/tags/v4.0-djer/client/bottin/langues/ins_annuaire.langue.fr.inc.php
New file
0,0 → 1,212
<?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.3 2007-04-06 08:35:46 neiluj Exp $
/**
* Fichier de traduction en français de l'application ins_annuaire
*
*@package inscription
//Auteur original :
*@author Alexandre GRANIER <alexandre@tela-botanica.org>
//Autres auteurs :
*@author Aucun
*@copyright Tela-Botanica 2000-2004
*@version $Revision: 1.3 $ $Date: 2007-04-06 08:35:46 $
// +------------------------------------------------------------------------------------------------------+
*/
define ('INS_TITRE_INSCRIPTION', 'Inscription au réseau');
define ('INS_INSCRIPTION_PERSONNE','S\'inscrire en tant que personne');
define ('INS_INSCRIPTION_STRUCTURE', 'S\'inscrire en tant que 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_TELEPHONE', 'Téléphone');
define ('INS_FAX','Fax');
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 une adresse électronique.") ;
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", "Mot de passe perdu? Indiquez seulement votre adresse email et cliquez sur \"Valider\"") ;
define ('INS_SIGLE_STRUCTURE', 'Sigle de la structure <br />(s\'il n\'existe pas, mettre <br />le nom de la structure)');
define ('INS_VISIBLE', 'Je souhaite apparaitre sur la <br/>cartographie et sur l\'annuaire <br />du site');
define ('INS_SIGLE_REQUIS', 'Sigle de la structure requis!');
define ('INS_NOM_STRUCTURE', 'Nom de la structure');
define ('INS_MAIL_STRUCTURE', 'Adresse électronique');
define ('INS_SITE_STRUCTURE', 'Site Internet de la structure');
define ('INS_NUM_AGREMENT', 'Numéro d\'agrément FPC');
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", "<h3>L'inscription est libre et gratuite, elle vous permet de :</h3><ul>
<li> consulter l'annuaire des personnes inscrites au R&eacute;seau et pouvoir ainsi &eacute;changer des informations</li>
<li> acc&eacute;der &agrave;  certaines informations diffus&eacute;es sur le site</li>
<li> vous inscrire &agrave;  des projets d'éducation à l'environnement</li>
<li> rédiger des annonces d'actualité, d'évenements, de séjours et rencontres, de covoiturage ou de parutions</li>
<li> recevoir un bulletin &eacute;lectronique d'informations.</li></ul>") ;
 
//============= 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.") ;
 
// CARTO
define ("INS_DATE_INS", "Date d'inscription") ;
define ("INS_CHECK_UNCHECK", "Cocher les cases pour s&eacute;lectionner votre destinataire ou cocher / d&eacute;cocher tout") ;
define ("INS_ENVOYER_MAIL", "Envoyer un email") ;
define ("INS_SUJET", "Sujet") ;
define ("INS_MESSAGE", "Message") ;
define ("INS_ENVOYER", "Envoyer") ;
define ("INS_LABEL_PROJET", "en tant que membre du réseau Ecole et Nature");
define ("INS_COULEUR", "La couleur est proportionnelle au nombre d'inscrits.") ;
define ("INS_AVERTISSEMENT_TITRE", "Avertissement et d&eacute;ni de responsabilit&eacute;") ;
define ("INS_AVERTISSEMENT", "La représentation et l'utilisation des fronti&egrave;res, des noms g&eacute;ographiques et autres ".
" donn&eacute;es employ&eacute;s sur les cartes et utilis&eacute;s dans les listes,".
" les tableaux, les documents et les bases de donn&eacute;es de ce site ne sont pas garanties sans ".
"erreurs, de m&ecirc;me qu'elles n'engagent pas la responsabilit&eacute; des auteurs de ce site ni ".
"n'impliquent de reconnaissance officielle de leur part.") ;
define ("INS_MONDE", "Monde") ;
define ("INS_CLIQUER_ACCEDER", "Cliquer sur la carte pour zoomer ou acc&eacute;der aux informations&nbsp;&nbsp;") ;
define ('INS_VISUALISER_ZONE', 'Mettre en rouge la zone...');
define ("INS_MESSAGE_ENVOYE", "<br /><br />Votre message a &eacute;t&eacute; envoy&eacute;") ;
define ("INS_MESSAGE_ENVOYE_A", "Ce message a été envoyé à") ; // pas d'entités HTML, c'est pour un mail
define ("INS_AUCUN_INSCRIT", "aucun inscrit") ;
define ("INS_INSCRIT", "inscrit") ;
define ('INS_TEXTE_FIN_MAIL', "\n".'---------------------------------------------------------------------------'."\n".
'Ce message vous est envoyé par l\'intermédiaire des sites Internet'."\n".
'du réseau Ecole et Nature: Educ-Envir.org et Ecole-et-nature.org'."\n".
'auquel vous êtes inscrit. D\'autres inscrits peuvent avoir reçu ce message.'."\n".
'Ne répondez que si vous êtes concerné, ou si vous avez des informations'."\n".
'utiles à transmettre au demandeur.'."\n".
"----------------------------------------------------------------------------") ;
define ('INS_NO_DESTINATAIRE', '<br /><br />Veuillez cocher au moins un destinataire pour votre mail<br />');
define ('INS_VOUS_DEVEZ_ETRE_INSCRIT', 'Vous devez être inscrit pour pouvoir envoyer des messages électronique aux personnes ou structure de l\'annuaire.<br />Identifiez-vous ou inscrivez-vous sur la page <a href="http://test.educ-envir.org/papyrus.php?site=1&menu=29">Inscription</a> du site.');
define ('INS_SURVEILLANCE_ENVOI_MAIL', 'Surveillance envois de mails: ');
define ('INS_ENREGISTRER_ET_QUITTER', 'Enregistrer et quitter');
define ('INS_TABLE', 'Nom de la table dans la base SQL contenant des informations à cartographier');
define ('INS_TABLE_SUPPLEMENTAIRE', 'Nom de la table additionnelle contenant des informations à cartographier');
define ('INS_NOM_CHAMPS_PAYS', 'Nom du champs représentant le pays');
define ('INS_NOM_CHAMPS_CP', 'Nom du champs représentant le code postal');
define ('INS_REQUETE_SQL_SUPPLEMENTAIRE', 'Complément de requète SQL (conditions supplémentaires pour le WHERE)');
define ('INS_PAS_NECESSAIRE', 'Pas nécéssaire');
 
 
 
/* +--Fin du code ----------------------------------------------------------------------------------------+
*
* $Log: not supported by cvs2svn $
* Revision 1.1 2005/09/22 14:02:49 ddelon
* nettoyage annuaire et php5
*
* Revision 1.4 2005/09/22 13:30:49 florian
* modifs pour compatibilité XHTML Strict + corrections de bugs (mais ya encore du boulot!!)
*
* 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 ----------------------------------------------------------------------------------------+
*/
?>
/tags/v4.0-djer/client/bottin/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.3 2007-04-06 08:35:46 neiluj 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") ;
?>
/tags/v4.0-djer/client/bottin/langues/bottin.admin.langue_fr.php
New file
0,0 → 1,73
<?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: bottin.admin.langue_fr.php,v 1.4 2007-09-06 08:40:13 alexandre_tb Exp $
/**
* Fichier de traduction en français de l'application inscription.admin.php
*
*@package inscription
//Auteur original :
*@author Alexandre GRANIER <alexandre@tela-botanica.org>
//Autres auteurs :
*@author Aucun
*@copyright Tela-Botanica 2000-2007
*@version $Revision: 1.4 $
// +------------------------------------------------------------------------------------------------------+
*/
 
define ('INS_CONFIG_INSCRIPTION', 'Configuration de l\'inscription et de l\'annuaire') ;
define ('INS_FORMULAIRE_STRUCTURE', 'Proposer une inscription pour les structures');
define ('INS_URL_BAZAR', 'URL vers le bazar (optionnel)');
define ('INS_INSCRIPTION_MODERE_OUI_NON', 'Les inscriptions sont-elles mod&eacute;r&eacute;es ?');
define ('INS_MAILS_MODERATEURS', 'Mails des mod&eacute;rateurs (un par ligne)');
define ('INS_INSCRIPTION_VERIFICATION_EMAIL', 'Envoie d\'un email de confirmation pour valider l\'inscription');
define ('INS_MAILS_ADMIN', 'Liste de mails de personnes &agrave; avertir d\'une nouvelle inscription');
define ('INS_SUJET_MAIL_CONFIRMATION', 'Sujet de l\'email de confirmation, envoy&eacute; &agrave; celui qui s\'inscrit (moins de 255 caract&egrave;res)');
define ('INS_FROM_MAIL_CONFIRMATION', 'Le mail de l\'exp&eacute;diteur pour l\'ensemble des mails envoy&eacute;s par le site');
define ('INS_GENERE_NOM_WIKI', 'Le syst&egrave;me essaie de g&eacute;n&eacute;rer un nom wiki');
define ('INS_CHAMPS_WIKI', 'Proposer la saisie d\'un nom wiki') ;
define ('INS_REECRITURE_URL', 'Utiliser la r&eacute;&eacute;criture d\'URL');
define ('INS_PREFIXE_URL', 'Pr&eacute;fixe de l\'URL');
define ('INS_MAIL_INSCRIPTION_NEWS', 'L\'email de la liste d\'actualit&eacute;, s\'il y a');
define ('INS_TITRE_FORMULAIRE_INSCRIPTION', 'Titre du formulaire d\'inscription (en HTML)');
define ('INS_INSCRIPTION_TEMPLATE', 'Le mod&egrave;le de l\'inscription:<br />'.
'type***mon_du_champs_dans_base***label_en_fran&ccedil;ais***taille_en_caract&egrave;re'.
'***longueur_maximum(maxlength)***valeur_par_defaut***table_source(pour les listes)***col_identifiant(pour les listes)'.
'***champs_obligatoire(0 ou 1)***apparaitre_dans_le moteur_de_recherche(0 ou 1)');
define ('INS_NOM_MODELE', 'Nom du template');
define ('INS_CONTENU_MODELE', 'Mod&egrave;le');
define ('INS_LANGUE', 'Langue');
/* +--Fin du code ----------------------------------------------------------------------------------------+
*
* $Log: not supported by cvs2svn $
* Revision 1.3 2007-06-25 09:59:03 alexandre_tb
* ajout de carte_google, mise en place des templates avec api/formulaire, configuration de multiples inscriptions, ajout de modele pour les mails
*
* Revision 1.2 2007-06-01 13:40:17 alexandre_tb
* nouveaux labels
*
* Revision 1.1 2007-05-11 14:06:08 alexandre_tb
* version intiale
*
 
* +-- Fin du code ----------------------------------------------------------------------------------------+
*/
?>
/tags/v4.0-djer/client/bottin/langues/bottin.langue_fr.inc.php
New file
0,0 → 1,371
<?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: bottin.langue_fr.inc.php,v 1.22 2007-07-05 10:12:08 neiluj Exp $
/**
* Fichier de traduction en francais de l'application ins_annuaire
*
*@package inscription
//Auteur original :
*@author Alexandre GRANIER <alexandre@tela-botanica.org>
//Autres auteurs :
*@author Aucun
*@copyright Tela-Botanica 2000-2004
*@version $Revision: 1.22 $ $Date: 2007-07-05 10:12:08 $
// +------------------------------------------------------------------------------------------------------+
*/
 
if (file_exists (INS_CHEMIN_APPLI.'langues/bottin_langue_'.INS_LANGUE_DEFAUT.'.local.php')) {
include_once INS_CHEMIN_APPLI.'langues/bottin_langue_'.INS_LANGUE_DEFAUT.'.local.php' ;
}
define ('INS_TITRE_INSCRIPTION', 'Inscription au r&eacute;seau');
define ('INS_INSCRIPTION_PERSONNE','S\'inscrire en tant que personne');
define ('INS_INSCRIPTION_STRUCTURE', 'S\'inscrire en tant que 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') ; // Pas d'entite, car sert dans le corps d un mail
define ('INS_PRENOM_REQUIS', 'Veuillez indiquer votre pr&eacute;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 internet') ;
define ('INS_LETTRE', 'Je souhaite recevoir la lettre d\'actualit&eacute;') ;
define ('INS_MOT_DE_PASSE_CHANGE', 'Changement de mot de passe') ;
define ('INS_NOUVEAU_MOT_DE_PASSE_ENVOYE', 'Votre mot de passe a &eacute;t&eacute; chang&eacute;, consultez votre messagerie.') ;
define ('INS_MAIL_INCONNU_DANS_ANNUAIRE', 'L\'adresse mail saisie n\'est pas pr&eacute;sente dans notre annuaire, v&eacute;rifiez la saisie de cette adresse') ;
define ('INS_VOUS_RECEVEZ_LETTRE','Vous &ecirc;tes abonn&eacute;(e) &agrave; la cyberlettre');
define ('INS_VOUS_RECEVEZ_PAS_LETTRE','Vous n\'&ecirc;tes pas abonn&eacute;(e) &agrave; la cyberlettre');
define ('INS_VOUS_APPARAISSEZ','Vous apparaissez sur la cartographie et dans l\'annuaire du site');
define ('INS_VOUS_APPARAISSEZ_PAS','Vous n\'apparaissez par sur la cartographie, ni dans l\'annuaire du site');
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_TELEPHONE', 'T&eacute;l&eacute;phone');
define ('INS_TELEPHONE_STRUCTURE', 'T&eacute;l&eacute;phone de la structure');
define ('INS_FAX','Fax');
define ('INS_FAX_STRUCTURE','Fax de la structure');
define ('INS_COORD_CONTACT', 'Coordonn&eacute;es du contact');
define ('INS_NOM_CONTACT', 'Nom');
define ('INS_PRENOM_CONTACT', 'Prénom');
define ('INS_POSTE_CONTACT', 'Poste');
define ('INS_TEL_CONTACT', 'Téléphone');
define ('INS_LOGO_OU_IMAGE', 'Ins&eacute;rer une image ou un logo (.jpg, .png ou .gif, 150Ko max.)');
define ('INS_ANNULER', 'Annuler') ;
define ('INS_RETABLIR', 'R&eacute;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 une adresse &eacute;lectronique.') ;
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&eacute;seau') ;
define ('INS_MODIFIER_INSCRIPTION', 'Modifier votre inscription') ;
define ('INS_SUPPRIMER_INSCRIPTION', 'Supprimer votre inscription') ;
define ('INS_MESSAGE_BIENVENU', 'Vous &ecirc;tes inscrit') ;
define ('INS_FICHE_PERSONNELLE', 'Fiche personnelle') ;
define ('INS_FICHE_STRUCTURE','Fiche de la structure');
define ('INS_DECONNEXION', 'D&eacute;connexion') ;
define ('INS_INSCRIPTION', 'Inscription') ;
define ('INS_TEXTE_PERDU', 'Mot de passe perdu? Indiquez seulement votre adresse email et cliquez sur \'Valider\'') ;
define ('INS_SIGLE_DE_LA_STRUCTURE', 'Sigle de la structure');
define ('INS_SIGLE_STRUCTURE', 'Sigle de la structure <br />(s\'il n\'existe pas, mettre <br />le nom de la structure)');
define ('INS_VISIBLE', 'Je souhaite apparaitre sur la cartographie et sur l\'annuaire du site');
define ('INS_SIGLE_REQUIS', 'Sigle de la structure requis!');
define ('INS_NOM_STRUCTURE', 'Nom de la structure');
define ('INS_MAIL_STRUCTURE', 'Adresse &eacute;lectronique de la structure');
define ('INS_SITE_STRUCTURE', 'Site Internet de la structure');
define ('INS_NUM_AGREMENT', 'Num&eacute;ro d\'agr&eacute;ment FPC');
define ('INS_NOM_WIKI', 'Nom wiki') ;
define ('INS_NOM_WIKI_REQUIS', 'Nom wiki requis') ;
define ('INS_DEJA_INSCRIT', 'D&eacute;j&agrave;&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', 'Recevez un nouveau mot de passe par courriel') ; ;
define ('INS_ENVOIE_PASSE', 'Envoi du mot de passe par courriel') ;
define ('INS_LAIUS_INSCRIPTION', 'Pas encore inscrit, inscrivez-vous !') ;
define ('INS_LAIUS_INSCRIPTION_2', '<strong>L\'inscription est libre et gratuite</strong>, elle vous permet de :<br /><ul>
<li> consulter l\'annuaire des personnes inscrites au R&eacute;seau et pouvoir ainsi &eacute;changer des informations</li>
<li> acc&eacute;der &agrave;à certaines informations diffus&eacute;es sur le site</li>
<li> vous inscrire &agrave;à des projets</li>
<li> r&eacute;diger des annonces d\'actualit&eacute;, d\'&eacute;v&eacute;nements, de s&eacute;jours et rencontres</li>
<li> r&eacute;diger des fiches ressources</li>
<li> recevoir un bulletin &eacute;lectronique d\'informations.</li></ul>') ;
define ('INS_ERREUR_SAISIE', 'Erreur de saisie') ;
define ('INS_VEUILLEZ_CORRIGER', 'Veuillez corriger.') ;
define ('INS_CARTOGRAPHIE','Cartographie');
define ('INS_CONFIG_MENU','Configuration de la cartographie du menu');
define ('INS_TITRE_CARTO','Titre &agrave; afficher dans le site pour cette cartographie');
define ('INS_FAUT_CONFIGURER_CARTO','Vous ne pouvez pas acc&eacute;der &agrave; cette cartographie car elle n\'a pas encore &eacute;t&eacute; configur&eacute;e.');
 
//============= 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\n".'Ce mot de passe vous permet de modifier les informations '.
'vous concernant dans les sites du réseau Ecole et Nature:'."\n".
'http://www.educ-envir.org/'."\n".'http://www.ecole-et-nature.org/'."\n\n".
'Identifiez-vous sur l\'un de ces sites, puis vous pourrez changer votre mot de passe en cliquant sur "Modifier votre inscription".') ;
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 &agrave; '.
'nouveau en allant &agrave; l\'inscription. N\'h&eacute;sitez pas &agrave; 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'entites HTML
define ('INS_ENTETE_INSCRIPTION','Inscription sur le site');
define ('INS_MAIL_INSCRIPTION_1', 'Votre inscription a bien &eacute;t&eacute; prise en compte.\n'.
'Voici les informations que nous avons enregistr&eacute; :\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','Le temps imparti &agrave; votre inscription s\'est &eacute;coul&eacute;...<br />'.
'Merci de bien vouloir vous r&eacute;inscrire, en r&eacute;pondant rapidement au mail de confirmation.<br /><br />'.
'En vous remerciant de votre compr&eacute;hension, &agrave; tout de suite!');
define ('INS_MESSAGE_VALIDER_INSCRIPTION','Validation de votre inscription sur le réseau :'.'\n'.
'Merci de vous &ecirc;tre inscrit(e), soyez bienvenu(e)!'.'\n'.
'Veuillez cliquer sur le lien ci-dessous pour finaliser votre inscription:'.'\n');
define ('INS_MESSAGE_DEBUT_MAIL_INSCRIPTION', 'Bonjour,'."\n\n".
'Nous avons reçu une demande d\'inscription pour cette adresse mail.'."\n".
'Pour confirmer, cliquer sur le lien ci-dessous.'."\n\n" ) ;
define ('INS_MESSAGE_FIN_MAIL_INSCRIPTION', "\n\n".'L\'&eacute;quipe de Vivreurope ') ;
// Envoir d'un mail a la coordination
define ('INS_MAIL_COORD_SUJET', 'Un nouvel inscrit au r&eacute;seau ') ;
define ('INS_MAIL_COORD_CORPS', 'Une nouvelle inscription a &eacute;t&eacute; effectu&eacute;e sur le site.') ;
define ('INS_CHAMPS_REQUIS', 'Champs requis') ;
define ('INS_MODERATION_SUJET', 'Une personne souhaite s\'inscrire au site');
define ('INS_NOUVELLE_INSCRIPTION_A_MODERE', 'Bonjour' ."\n\n".
'Un utilisateur souhaite s\'inscrire, mod&eacute;rez son inscription');
 
 
define ('INS_MESSAGE_INSCRIPTION', 'Votre inscription a &eacute;t&eacute; prise en compte, relevez votre messagerie et cliquer sur le lien propos&eacute; pour terminer votre inscription.') ;
define ('INS_MESSAGE_EN_ATTENTE', 'Votre inscription a bien &eacute;t&eacute; prise en compte. Une demande a &eacute;t&eacute; envoy&eacute;' .
' &agrave; un mod&eacute;rateur.<br />' .
'Vous recevrez un email de confirmation lorsque le mod&eacute;rateur aura rendu effective votre inscription.');
define ('INS_EN_ATTENTE_DE_MODERATION', 'En attente de mod&eacute;ration');
// carto google
define ('INS_GOOGLE_MSG', '<br />Si le point correspond &agrave; votre adresse,<br />'.
' vous pouvez valider le formulaire en cliquant sur &laquo; valider &raquo; ci dessous.<br />'.
'Vous pouvez ajuster le marqueur pour le faire correspondre &agrave; votre adresse.');
// Configuration de l inscription
define ('INS_SUJET_MAIL_INSCRIPTION_PRISE_EN_COMPTE', 'Indiquer ici, le sujet du mail que l\'inscrit recevra apr&egrave;s que'.
' son inscription ai &eacute;t&eacute; mod&eacute;r&eacute;e par un administrateur');
define ('INS_CORPS_MAIL_INSCRIPTION_PRISE_EN_COMPTE', 'Le contenu du mail apr&egrave;s inscription mod&eacute;r&eacute;');
define ('INS_NOM_INSCRIPTION', 'Nom inscription');
define ('INS_INSCRIPTION_MODERE', 'L\'inscription est-elle mod&eacute;r&eacute;e ?');
// CARTO
define ('INS_DATE_INS', 'Date d\'inscription') ;
define ('INS_CHECK_UNCHECK', 'Cocher les cases pour s&eacute;lectionner votre destinataire ou cocher / d&eacute;cocher tout') ;
define ('INS_ENVOYER_MAIL', 'Envoyer un email') ;
define ('INS_SUJET', 'Sujet') ;
define ('INS_MESSAGE', 'Message') ;
define ('INS_ENVOYER', 'Envoyer') ;
define ('INS_LABEL_PROJET', 'en tant que membre du r&eacute;seau');
define ('INS_COULEUR', 'La couleur est proportionnelle au nombre de fiches.') ;
define ('INS_MONDE', 'Monde') ;
define ('INS_ECHELLE', 'Echelle : ') ;
define ('INS_CLIQUER_ACCEDER', 'Cliquer sur la carte pour zoomer ou acc&eacute;der aux informations&nbsp;&nbsp;') ;
define ('INS_VISUALISER_ZONE', 'Mettre en rouge la zone...');
define ('INS_MESSAGE_ENVOYE', '<br /><br />Votre message a &eacute;t&eacute; envoy&eacute;') ;
define ('INS_MESSAGE_ENVOYE_A', 'Ce message a été envoyé à') ; // pas d'entités HTML, c'est pour un mail
define ('INS_PIED_MESSAGE', '') ;
define ('INS_MAIL_ENVOYE', 'Le mail a &eacute;t&eacute; envoy&eacute; avec succ&egrave;s');
define ('INS_AUCUN_INSCRIT', 'aucun inscrit') ;
define ('INS_INSCRIT', 'inscrit') ;
define ('INS_TEXTE_FIN_MAIL', "\n".'---------------------------------------------------------------------------'."\n".
'Ce message vous est envoy&eacute; par l\'interm&eacute;diaire des sites Internet'."\n".
'du r&eacute;seau '."\n".
'auquel vous êtes inscrit. D\'autres inscrits peuvent avoir re&ccedil;u ce message.'."\n".
'Ne répondez que si vous etes concern&eacute;, ou si vous avez des informations'."\n".
'utiles &agrave; transmettre au demandeur.'."\n".
'----------------------------------------------------------------------------') ;
define ('INS_NO_DESTINATAIRE', '<br /><br />Veuillez cocher au moins un destinataire pour votre mail<br />');
define ('INS_VOUS_DEVEZ_ETRE_INSCRIT', 'Vous devez etre inscrit pour pouvoir acc&eagrave;der aux informations.<br />Identifiez-vous ou inscrivez-vous sur la page <a href="/Inscription">inscription</a> du site.');
define ('INS_SURVEILLANCE_ENVOI_MAIL', 'Surveillance envois de mails: ');
define ('INS_ENREGISTRER_ET_QUITTER', 'Enregistrer et quitter');
define ('INS_TABLE', 'Nom de la table dans la base SQL contenant des informations &agrave; cartographier');
define ('INS_TABLE_SUPPLEMENTAIRE', 'Nom de la table additionnelle contenant des informations &agrave; cartographier');
define ('INS_NOM_CHAMPS_PAYS', 'Nom du champs repr&eacute;sentant le pays');
define ('INS_NOM_CHAMPS_CP', 'Nom du champs repr&eacute;sentant le code postal');
define ('INS_REQUETE_SQL_SUPPLEMENTAIRE', 'Compl&eacute;ment de requete SQL (conditions suppl&eacute;mentaires pour le WHERE)');
define ('INS_PAS_NECESSAIRE', 'Pas n&eacute;c&eacute;ssaire');
define ('INS_ANNUAIRE_MEMBRES','Annuaire des inscrits au site');
define ('INS_RECHERCHE_ANNUAIRE_DES_INSCRITS','Rechercher dans l\'annuaire des inscrits');
define ('INS_DIX_DERNIERES_INSCRIPTIONS','Les dix derni&egrave;res inscriptions');
define ('INS_RECHERCHER','Rechercher');
define ('INS_PERSONNES_OU_STRUCTURES','des personnes ou des structures');
define ('INS_PERSONNES','uniquement des personnes');
define ('INS_STRUCTURES','uniquement des structures');
define ('INS_JE_RECHERCHE','Je recherche');
define ('INS_DEPARTEMENT_POUR_LA_FRANCE','D&eacute;partements pour le pays France');
define ('INS_TOUS_DEPARTEMENTS','tous les d&eacute;partements');
define ('INS_TOUS_PAYS','tous les pays');
define ('INS_NOM_ANNUAIRE','Nom (voire pr&eacute;nom) de la personne ou de la structure recherch&eacute;e');
define ('INS_ENTREES','entr&eacute;es trouv&eacute;es');
define ('INS_RESULTATS_RECHERCHE','Les r&eacute;sultats de la recherche');
define ('INS_PAS_DE_RESULTATS','Pas de r&eacute;sultats pour cette recherche, veuillez &eacute;largir vos crit&egrave;res de recherche.');
define ('INS_PAS_IDENTIFIE','Vous pouvez consulter la liste des inscrits, mais pas leur envoyer de message mail. Pour pouvoir les contacter par mail, il faudrait <a href="/Inscription">vous identifier ou vous inscrire au site</a>.');
define ('INS_CLIQUER_ELEMENT_LISTE','Cliquer sur un des &eacute;l&eacute;ments de la liste pour avoir ses informations d&eacute;taill&eacute;es.');
define ('INS_PRESENTATION', 'Pr&eacute;sentation');
define ('INS_ABONNEMENTS', 'Mes abonnements');
define ('INS_GESTION_DES_ABONNEMENTS', 'Gestion de mes abonnements');
define ('INS_ACTUALITES', 'Actualit&eacute;s');
define ('INS_ACTUALITES_DEPOSEES', 'Actualit&eacute;s d&eacute;pos&eacute;es');
define ('INS_RESSOURCES', 'Ressources');
define ('INS_RESSOURCES_ASSOCIEES','Ressources associ&eacute;es');
define ('INS_COMPETENCES', 'Comp&eacute;tences');
define ('INS_COMPETENCES_ASSOCIEES','Comp&eacute;tences associ&eacute;es');
define ('INS_RETOUR_A_LA_CARTE','Retour &agrave; la carte : ');
 
//annuaire backoffice
define ('INS_CONFIG_ANNUAIRE_BACKOFFICE','Configuration de la gestion de l\'annuaire');
define ('INS_TYPE_ANNUAIRE','Type d\'annuaire &agrave; configurer');
define ('INS_ANNUAIRE_BOTTIN','Annuaire du bottin');
define ('INS_ANNUAIRE_ADMIN_PAPYRUS','Annuaire des administrateurs Papyrus');
define ('AM_L_TITRE', 'Chercher un adh&eacute;rent') ;
define ("AM_L_RECHERCHER", "Rechercher") ;
define ("AM_L_PAYS", "Pays") ;
define ("AM_L_NOM", "Nom") ;
define ("AM_L_PRENOM", "Pr&eacute;nom") ;
define ("AM_L_VILLE", "Ville") ;
define ("AM_L_DEPARTEMENT", "D&eacute;partement") ;
define ("AM_L_MAIL", "Mail") ;
define ("AM_L_COTISANTS", "Cotisants") ;
define ("AM_L_GRP_RES", "Grouper les r&eacute;sultats") ;
define ("AM_L_TOUS", "Tous") ;
define ("AM_L_MAIL_SELECTION", "Envoyer un mail &agrave; la s&eacute;lection") ;
define ('INS_ACTION', 'Action');
define ('INS_SUPPRIMER', 'Supprimer');
define ('INS_PAS_D_INSCRIT_EN_ATTENTE', 'Pas d\'incrit en attente');
//define ('ANN_PAS_D_INSCRITS', 'Pas d\'inscrits comme né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") ;
//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.domaine.org) du réseau , ".
// "\nauquel vous êtes inscrit. ".
// "\nNe répondez pas à ce message." ) ;
//
//define ('ANN_LOGUEZ_VOUS', 'Vous devez être inscrit au réseau pour accéder à l\'annuaire');
//
 
/* +--Fin du code ----------------------------------------------------------------------------------------+
*
* $Log: not supported by cvs2svn $
* Revision 1.21 2007-06-25 09:59:03 alexandre_tb
* ajout de carte_google, mise en place des templates avec api/formulaire, configuration de multiples inscriptions, ajout de modele pour les mails
*
* Revision 1.20 2007-06-01 13:40:17 alexandre_tb
* nouveaux labels
*
* Revision 1.19 2007/04/11 08:30:12 neiluj
* remise en état du CVS...
*
* Revision 1.15 2006/12/01 13:23:16 florian
* integration annuaire backoffice
*
* Revision 1.14 2006/10/05 13:53:54 florian
* amélioration des fichiers sql
*
* Revision 1.13 2006/09/13 12:31:18 florian
* ménage: fichier de config Papyrus, fichiers temporaires
*
* Revision 1.12 2006/07/17 10:01:08 alexandre_tb
* correction du chemin vers le fichier de traduction local
*
* Revision 1.11 2006/07/04 09:36:16 alexandre_tb
* modification d'un label
*
* Revision 1.10 2006/04/11 08:39:19 alexandre_tb
* modification d'un label
*
* Revision 1.9 2006/04/10 14:01:36 florian
* uniformisation de l'appli bottin: plus qu'un fichier de fonctions
*
* Revision 1.8 2006/04/04 12:23:05 florian
* modifs affichage fiches, généricité de la carto, modification totale de l'appli annuaire
*
* Revision 1.7 2006/02/28 16:26:40 alexandre_tb
* changement d'une entité
*
* Revision 1.6 2006/02/28 14:07:23 alexandre_tb
* changement de la constante de langue
*
* Revision 1.5 2005/12/19 11:13:29 alexandre_tb
* Ajout de l'appel vers bottin_langue_fr.local.php
*
* Revision 1.4 2005/12/02 13:50:52 florian
* ajout gestion erreur javascript
*
* Revision 1.3 2005/11/24 16:17:52 florian
* changement template inscription + modifs carto
*
* Revision 1.2 2005/11/18 16:04:15 florian
* corrections de bugs, optimisations, tests pour rendre inscription stable.
*
* Revision 1.1 2005/11/17 18:48:02 florian
* corrections bugs + amélioration de l'application d'inscription
*
* Revision 1.3 2005/10/14 12:02:50 alexandre_tb
* Modification des labels pour les rendre plus générique
*
* Revision 1.2 2005/09/29 13:56:48 alexandre_tb
* En cours de production. Reste à gérer les news letters et d'autres choses.
*
* Revision 1.1 2005/09/28 13:19:08 alexandre_tb
* version initiale
*
* +-- Fin du code ----------------------------------------------------------------------------------------+
*/
?>
/tags/v4.0-djer/client/bottin/presentations/inscription.css
New file
0,0 → 1,148
/*
 
+----------------------------------------------------------------------------+
| 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> |
+----------------------------------------------------------------------------+
 
*/
 
.symbole_obligatoire {color:red;}
 
#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;
}
/tags/v4.0-djer/client/bottin/presentations/fonds/monde_masque5c.png
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/tags/v4.0-djer/client/bottin/presentations/fonds/monde_masque5c.png
New file
Property changes:
Added: svn:mime-type
+application/octet-stream
\ No newline at end of property
/tags/v4.0-djer/client/bottin/presentations/fonds/samerique_masque.png
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/tags/v4.0-djer/client/bottin/presentations/fonds/samerique_masque.png
New file
Property changes:
Added: svn:mime-type
+application/octet-stream
\ No newline at end of property
/tags/v4.0-djer/client/bottin/presentations/fonds/afrique_masque.png
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/tags/v4.0-djer/client/bottin/presentations/fonds/afrique_masque.png
New file
Property changes:
Added: svn:mime-type
+application/octet-stream
\ No newline at end of property
/tags/v4.0-djer/client/bottin/presentations/fonds/moyenorient.png
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/tags/v4.0-djer/client/bottin/presentations/fonds/moyenorient.png
New file
Property changes:
Added: svn:mime-type
+application/octet-stream
\ No newline at end of property
/tags/v4.0-djer/client/bottin/presentations/fonds/france_masque.png
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/tags/v4.0-djer/client/bottin/presentations/fonds/france_masque.png
New file
Property changes:
Added: svn:mime-type
+application/octet-stream
\ No newline at end of property
/tags/v4.0-djer/client/bottin/presentations/fonds/europe_masque.png
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/tags/v4.0-djer/client/bottin/presentations/fonds/europe_masque.png
New file
Property changes:
Added: svn:mime-type
+application/octet-stream
\ No newline at end of property
/tags/v4.0-djer/client/bottin/presentations/fonds/oceanie_masque.png
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/tags/v4.0-djer/client/bottin/presentations/fonds/oceanie_masque.png
New file
Property changes:
Added: svn:mime-type
+application/octet-stream
\ No newline at end of property
/tags/v4.0-djer/client/bottin/presentations/fonds/asie.png
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/tags/v4.0-djer/client/bottin/presentations/fonds/asie.png
New file
Property changes:
Added: svn:mime-type
+application/octet-stream
\ No newline at end of property
/tags/v4.0-djer/client/bottin/presentations/fonds/moyenorient_masque.png
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/tags/v4.0-djer/client/bottin/presentations/fonds/moyenorient_masque.png
New file
Property changes:
Added: svn:mime-type
+application/octet-stream
\ No newline at end of property
/tags/v4.0-djer/client/bottin/presentations/fonds/namerique.png
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/tags/v4.0-djer/client/bottin/presentations/fonds/namerique.png
New file
Property changes:
Added: svn:mime-type
+application/octet-stream
\ No newline at end of property
/tags/v4.0-djer/client/bottin/presentations/fonds/monde5c.png
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/tags/v4.0-djer/client/bottin/presentations/fonds/monde5c.png
New file
Property changes:
Added: svn:mime-type
+application/octet-stream
\ No newline at end of property
/tags/v4.0-djer/client/bottin/presentations/fonds/samerique.png
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/tags/v4.0-djer/client/bottin/presentations/fonds/samerique.png
New file
Property changes:
Added: svn:mime-type
+application/octet-stream
\ No newline at end of property
/tags/v4.0-djer/client/bottin/presentations/fonds/afrique.png
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/tags/v4.0-djer/client/bottin/presentations/fonds/afrique.png
New file
Property changes:
Added: svn:mime-type
+application/octet-stream
\ No newline at end of property
/tags/v4.0-djer/client/bottin/presentations/fonds/asie_masque.png
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/tags/v4.0-djer/client/bottin/presentations/fonds/asie_masque.png
New file
Property changes:
Added: svn:mime-type
+application/octet-stream
\ No newline at end of property
/tags/v4.0-djer/client/bottin/presentations/fonds/france.png
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/tags/v4.0-djer/client/bottin/presentations/fonds/france.png
New file
Property changes:
Added: svn:mime-type
+application/octet-stream
\ No newline at end of property
/tags/v4.0-djer/client/bottin/presentations/fonds/europe.png
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/tags/v4.0-djer/client/bottin/presentations/fonds/europe.png
New file
Property changes:
Added: svn:mime-type
+application/octet-stream
\ No newline at end of property
/tags/v4.0-djer/client/bottin/presentations/fonds/namerique_masque.png
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/tags/v4.0-djer/client/bottin/presentations/fonds/namerique_masque.png
New file
Property changes:
Added: svn:mime-type
+application/octet-stream
\ No newline at end of property
/tags/v4.0-djer/client/bottin/presentations/fonds/oceanie.png
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/tags/v4.0-djer/client/bottin/presentations/fonds/oceanie.png
New file
Property changes:
Added: svn:mime-type
+application/octet-stream
\ No newline at end of property
/tags/v4.0-djer/client/bottin/presentations/signature_numerique.png
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/tags/v4.0-djer/client/bottin/presentations/signature_numerique.png
New file
Property changes:
Added: svn:mime-type
+application/octet-stream
\ No newline at end of property
/tags/v4.0-djer/client/bottin/presentations/cartographie.css
New file
0,0 → 1,101
/*
 
+----------------------------------------------------------------------------+
| cartographie.css |
+----------------------------------------------------------------------------+
| Copyright (c) 2004 Tela Botanica |
+----------------------------------------------------------------------------+
| Feuille de style specifique a l'application cartographie de Tela Botanica |
+----------------------------------------------------------------------------+
| Auteur : Tamara LE BOURG <tamara@tela-botanica.org> |
+----------------------------------------------------------------------------+
 
*/
 
#carto {
text-align:left;
}
 
#table_carto {
border: 1px solid #E8AE3B;
border-collapse: collapse;
width:100%;
}
 
.avertissement_carto {
font-size:10px;
font-family:Verdana, Sans-serif;
margin: 10px 77px 0 0;
text-align:justify;
}
 
a.chemin_carto {
text-decoration:none;
font-weight:bold;
}
 
th {
border: 1px 0px 1px 0px solid #E8AE3B;
background-color: #FFCD9B;
color: #775522;
padding: 2px;
}
 
ul.liste_carto {
margin: 0px;
}
 
li.liste_carto {
list-style-type: none;
margin: 0px;
}
 
.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_carto {
font-family: Arial, Verdana, Helvetica, sans-serif;
margin: 3px 0;
font-size: 130%;
margin-top: 1em;
}
 
.titre2_carto {
font-family: Arial, Verdana, Helvetica, sans-serif;
margin: 3px 0;
font-size: 110%;
margin-top: 1em;
}
 
.carto_erreur {
color: #CC6633;
font-weight: bold;
text-decoration: blink;
}
/tags/v4.0-djer/client/bottin/presentations/logos/vide.txt
--- squelettes/script_googlemap.tpl.js (revision 0)
+++ squelettes/script_googlemap.tpl.js (revision 1985)
@@ -0,0 +1,56 @@
+// Variables globales
+var map = null;
+var lat = document.getElementById("latitude");
+var lon = document.getElementById("longitude");
+// Pour gerer la taille
+var winW = 630, winH = 560;
+var deltaH = 50;
+var deltaW = 30;
+ function setWinHW() {
+if (window.innerHeight) {
+ winW = window.innerWidth - deltaW;
+ winH = window.innerHeight - deltaH;
+ } else {
+ winW = document.documentElement.offsetWidth - 20 - deltaW;
+ winH = document.documentElement.offsetHeight - 20 - deltaH ;
+ }
+
+var me = document.getElementById("map");
+if (me != null) {
+ me.style.width= '' + winW + 'px';
+me.style.height= '' + winH + 'px';
+ }
+}
+
+window.onresize = function () {
+setWinHW();
+if (map) map.checkResize();
+}
+
+function createMarker(point, chaine, icon) {
+ var marker = new GMarker(point, icon);
+ GEvent.addListener(marker, "click", function() {
+ marker.openInfoWindowHtml(chaine);
+ });
+ return marker;
+}
+function load() {
+ if (GBrowserIsCompatible()) {
+ setWinHW();
+ map = new GMap2(document.getElementById("map"));
+ var geoXml = new GGeoXml("<?='http://.kml';?>");
+
+ map.addControl(new GSmallMapControl());
+ map.addControl(new GMapTypeControl());
+ map.addControl(new GScaleControl());
+ map.enableContinuousZoom();
+ map.enableScrollWheelZoom();
+
+ // On centre la carte
+ center = new GLatLng(<?=INS_GOOGLE_CENTRE_LAT;?>, <?=INS_GOOGLE_CENTRE_LON;?>);
+ map.setCenter(center, <?=INS_GOOGLE_ALTITUDE;?>);
+ map.setMapType(<?=INS_GOOGLE_TYPE_DE_VUE;?>);
+ <?=$script_marker;?>
+ map.addOverlay(geoXml);
+ }
+}
\ No newline at end of file
/tags/v4.0-djer/client/bottin/squelettes/donnees_googlemap.php
New file
0,0 → 1,49
<?php
$requete = 'select * from annuaire where a_est_structure=1';
$resultat = $GLOBALS['ins_db']->query ($requete);
 
if (DB::isError ($resultat)) {
echo $resultat->getMessage().'<br />'.$resultat->getDebugInfo();
}
 
$donnees = array();
$script_marker = '';
if ($resultat->numRows() != 0) {
$script_marker = '';
while ($ligne = $resultat->fetchRow(DB_FETCHMODE_ASSOC)) {
if ($ligne['a_latitude'] == 0 && $ligne['a_longitude'] == 0) continue;
$cle = $ligne['a_latitude'].'-'.$ligne['a_longitude'];
$donnees[$cle][] = $ligne;
}
foreach ($donnees as $valeur) {
// cas un : une seule entree pour le point de coordonnees
$script_icon = 'var icon = new GIcon();
icon.image = "'.INS_CHEMIN_APPLI.'presentation/marker.png";
icon.shadow = "http://www.google.com/mapfiles/shadow50.png";
icon.iconSize = new GSize(20, 34);
icon.shadowSize = new GSize(37, 34);
icon.iconAnchor = new GPoint(6, 34);
icon.infoWindowAnchor = new GPoint(5, 1);';
if (count ($valeur) == 1) {
$chaine = $valeur[0];
$script_marker .= $script_icon;
$script_marker .= "\t".'point = new GLatLng('.$chaine['a_latitude'].','.$chaine['a_longitude'].');'."\n"
."\t".'map.addOverlay(createMarker(point, \''.
preg_replace ('/\n/', '', str_replace ("\r\n", '',
str_replace ("'", "\'", info($chaine['a_id'], 'info')))).'\', icon));'."\n";
} else { // Cas 2 plusieurs entrees
$tableau_id = array();
$script_marker .= "\t".'point = new GLatLng('.$val['a_latitude'].','.$val['a_longitude'].');'."\n"
."\t".'map.addOverlay(createMarker(point, \'';
foreach ($valeur as $val) {
$script_marker .= preg_replace ('/\n/', '', str_replace ("\r\n", '',
str_replace ("'", "\'", info($val['a_id'], 'info'))));
}
$script_marker .= '\', icon));'."\n";
}
}
} else {
$script_marker = '';
}
 
?>
/tags/v4.0-djer/client/bottin/squelettes/annuaire_backoffice_moteur_recherche.tpl.html
New file
0,0 → 1,39
<form action="<?=$url;?>" method="post">
<table summary="recherche">
<tr>
<td><?=AM_L_RECHERCHER; ?></td><td><input type="text" size="15" value="<?=$recherche;?>" name="recherche" /></td>
<td><?=AM_L_PAYS; ?></td>
<td>
<select name="pays">
<option value="tous">Tous les pays</option>
<?php foreach ($tableau_pays as $codeIso => $labelPays) : ?>
<option value="<?=$codeIso;?>"
<?php if (!empty($pays)) : ?>
<?php if ($pays == $codeIso) : ?> selected <? endif; ?>
<?php endif ; ?>
><?=$labelPays;?></option>
<?php endforeach; ?>
</select>
</td>
</tr>
<tr>
<td><?=AM_L_DEPARTEMENT;?></td>
<td>
<select name="dept">
<option value="tous">tous</option>
<?php foreach ($tableau_dpt as $num_dpt => $label_dpt) : ?>
<option value="<?=$num_dpt;?>"
<?php if (!empty($dpt)) : ?>
<?php if ($dpt == $num_dpt) : ?> selected <? endif ; ?>
<?php endif ; ?>
><?=$num_dpt ;?> - <?=$label_dpt;?>
</option>
<?php endforeach ; ?>
</select>
</td>
<td><?= AM_L_GRP_RES; ?></td><td><?=$pager_select_box;?>
</td>
</tr>
<tr><td colspan="4"><input type="submit" value="<?=AM_L_RECHERCHER; ?>" name ="bouton" /></td></tr>
</table>
</form>
/tags/v4.0-djer/client/bottin/lettre_actu.php
New file
0,0 → 1,90
<?php
// +------------------------------------------------------------------------------------------------------+
// | 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: lettre_actu.php,v 1.1 2007-09-06 08:39:41 alexandre_tb Exp $
/**
* Envoi d un lettre d actualite
*
* Ce fichier peut etre appele par un cron, et utilise le fichier de conf du bottin
* La lettre est une page externe en HTML ou texte simple appele via une URL
*
* En tant qu application hors papyrus, il faut indiquer les parametres de connexion
* a la base de donnee dans bottin.config.inc.php
*@package bottin
//Auteur original :
*@author Alexandre GRANIER <alexandre@tela-botanica.org>
//Autres auteurs :
*@author David Delon <david.delon@clapas.net>
*@copyright Tela-Botanica 2000-2007
*@version $Revision: 1.1 $ $Date: 2007-09-06 08:39:41 $
// +------------------------------------------------------------------------------------------------------+
*/
 
// +------------------------------------------------------------------------------------------------------+
// | ENTETE du PROGRAMME |
// +------------------------------------------------------------------------------------------------------+
 
include_once 'configuration/bottin.config.inc.php';
include_once 'Mail.php' ;
include_once 'Mail/mime.php' ;
 
// +------------------------------------------------------------------------------------------------------+
// | CORPS du PROGRAMME |
// +------------------------------------------------------------------------------------------------------+
 
// On recupere la ou les differentes configurations d inscription
echo 'Bottin : envoi de la lettre d\'actualité'."\n";
$requete = 'select * from inscription_configuration';
$resultat = $GLOBALS['ins_db']->query($requete);
if (DB::isError($resultat)) echo $resultat->getMessage();
 
 
$mail = & Mail::factory ('mail') ;
 
while ($ligne = $resultat->fetchRow(DB_FETCHMODE_OBJECT)) {
if ($ligne->ic_mail_news_url != '' && $ligne->ic_mail_news != '') {
$lettre_info_html = file_get_contents($ligne->ic_mail_news_url);
$crlf="\n";
$headers ['From'] = $ligne->ic_mail_news_from ;
$headers ['Subject'] = $ligne->ic_mail_news_sujet ;
$headers ['Reply-To'] = $ligne->ic_mail_news_reply_to ;
$mime = new Mail_mime($crlf);
 
$mime->setHTMLBody($lettre_info_html);
$body = $mime->get();
$headers = $mime->headers($headers);
$retour = $mail -> send ($ligne->ic_mail_news, $headers, $body) ;
echo 'Envoi d\'un mail à : '.$ligne->ic_mail_news."\n";
if (PEAR::isError ($retour)) {
echo 'erreur d\'envoi' ;
}
}
}
 
/* +--Fin du code ----------------------------------------------------------------------------------------+
*
* $Log: not supported by cvs2svn $
 
* +-- Fin du code ----------------------------------------------------------------------------------------+
*/
 
?>