/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 ----------------------------------------------------------------------------------------+ |
*/ |
?> |
/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('&', '&', $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/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 à 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 : </td><td><input size=\"91\" name=\"objet\" type=\"text\"></td></tr>\n" ; |
$res .= '<tr><td>Corps : </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ê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éviation :</td>\n"; |
$res .="<td><input class=\"insInputForm\" type=\"text\" name=\"abreviation\" size=\"5\" value=\"$abreviation\"> "; |
$res .=" Au maximum 5 caractères, de préfé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é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é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é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 .= " "; |
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évrier","mars","avril","mai","juin","juillet","septembre","octobre","novembre","décembre") ; |
function parcourrirAnnu($event) { |
global $baseURL, $lettre, $menuProjet ; |
$outputText = "" ; |
$outputText .= "<tr><td> </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&menuProjet=$menuProjet&action=$event&lettre="; |
$outputText .= chr($i) ; |
$outputText .= "\">"; |
$outputText .= chr($i) ; |
$outputText .= "</a></td>\n"; |
} |
$outputText .= "<td> <a href=\"$baseURL&menuProjet=$menuProjet&action=$event&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ête sur annuaire_tela..."); |
if (mysql_num_rows($result) != 0) { |
// pour chaque nom, on inscrit les infos |
$outputText .= "<tr><td> </td></tr>\n"; |
$outputText .= "<tr class=\"insTitle1\"><td>Liste des inscrits à la lettre : $lettre</td></tr>\n"; |
$outputText .= "<tr><td><table width=\"100%\">"; |
$outputText .= "<tr class=\"insTitle1\"><td>Nom</td>"; |
$outputText .= "<td>Pré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> </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é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é :</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 "; |
$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ê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ête dans gen_voiraussi, au cours de la recherche |
du chemin des repertoire") ; |
$row = mysql_fetch_object($result) ; |
if ($row->PERE != NULL) { |
$path .= " <b>></b><a href=\"$baseURL&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"> *</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ées"; |
if ($nbr_total <= 0) $ret .= "<B>Erreur</B> lors du comptage des structures ($nbr_total trouvé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é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().'&sort='.INS_CHAMPS_NOM.'">Identité</a>', |
'<a href="'.$GLOBALS['ins_url']->getURL().'&sort='.INS_CHAMPS_MAIL.'">Adresse mail</a>', |
'<a href="'.$GLOBALS['ins_url']->getURL().'&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().'&'.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().'&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 ('&', '&', $GLOBALS['ins_url']->getURL()), '', '') ; |
$formulaire->construitFormulaire(str_replace ('&', '&', $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('&', '&', $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]. |
' '.$donnees_membres[$i][INS_CHAMPS_PRENOM].'</strong>'."\n". |
' '.$donnees_membres[$i][INS_CHAMPS_CODE_POSTAL]. |
' '.$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 .= ' <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.' : <input style="border:1px solid #000;width:450px;" type="text" name="titre_mail"><br />'."\n". |
INS_MESSAGE.' : <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."&historique_cartes=$chemin\"> > ".$tabnom[$key]."</a>"; |
} else if ($key == (count($tabonglet)-1)) { |
$res .= "<a class=\"chemin_carto\"> > $pays</a>"; |
} else { |
$chemin .= '*'.$value; |
$res .= "<a class=\"chemin_carto\" href=\"".$monde->url."&historique_cartes=$chemin\"> > ".$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 .= ' <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 ('&', '&', $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().'&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().'&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.'&action=8&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 == ' ')) { |
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 ('&', '&', $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().'&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 == ' ')) { |
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/tmp/carto/vide.txt |
---|
--- bibliotheque/annuaire.fonct.php (revision 0) |
+++ bibliotheque/annuaire.fonct.php (revision 1985) |
@@ -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('&', '&', $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]. |
+ ' '.$donnees_membres[$i][INS_CHAMPS_PRENOM].'</strong>'."\n". |
+ ' '.$donnees_membres[$i][INS_CHAMPS_CODE_POSTAL]. |
+ ' '.$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 .= ' <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.' : <input style="border:1px solid #000;width:450px;" type="text" name="titre_mail"><br />'."\n". |
+ INS_MESSAGE.' : <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 ----------------------------------------------------------------------------------------+ |
+*/ |
+?> |
\ No newline at end of file |
/tags/v4.0-djer/client/bottin/bibliotheque/inscription.fonct.wiki.php |
---|
New file |
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/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=' '; |
$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"> *</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/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 = '>', $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.'&historique_cartes='.$chemin.'"> '.$this->caractere_separation.' '.$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/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."&historique_cartes=$chemin\"> > ".$tabnom[$key]."</a>"; |
} else if ($key == (count($tabonglet)-1)) { |
$res .= "<a class=\"chemin_carto\"> > $pays</a>"; |
} else { |
$chemin .= '*'.$value; |
$res .= "<a class=\"chemin_carto\" href=\"".$monde->url."&historique_cartes=$chemin\"> > ".$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."&historique_cartes=$chemin\"> > ".$tabnom[$key]."</a>"; |
} |
else if ($key==(count($tabonglet)-1)) { |
$res.="<a class=\"chemin_carto\"> > $nom</a>"; |
} |
else { |
$chemin.='*'.$value; |
$res.= "<a class=\"chemin_carto\" href=\"".$monde->url."&historique_cartes=$chemin\"> > ".$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 .= " <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].' '.$ligne[INS_CHAMPS_PRENOM].' '. |
$ligne[INS_CHAMPS_CODE_POSTAL].' '.$ligne[INS_CHAMPS_VILLE].' '. |
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/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/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/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érent : </h1>'."\n" ; |
$formulaire = new HTML_formulaireInscription('formulaire_inscription', 'post', |
preg_replace('/&/', '&', $GLOBALS['ins_url']->getURL()), '_self', '', 0) ; |
$formulaire->addElement('hidden', 'id_inscription', $GLOBALS['ins_config']['ic_id_inscription']) ; |
$formulaire->construitFormulaire(preg_replace('/&/', '&', $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&field=$field_\">" ; |
$res .= $value ? $value : "(vide)"; |
$res .= "</a>\n" ; |
} |
if ($field == $field_) { |
$res = '<form action="'.$url.'&'.INS_CHAMPS_ID.'='.$_REQUEST[INS_CHAMPS_ID].'&action=up&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('êtes-vous sûr de vouloir supprimer cet adhé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."&historique_cartes=$chemin\"> > ".$tabnom[$key]."</a>"; |
} |
else if ($key == (count($tabonglet)-1)) { |
$res .= "<a class=\"chemin_carto\"> > $pays</a>"; |
} |
else { |
$chemin .= '*'.$value; |
$res .= "<a class=\"chemin_carto\" href=\"".$monde->url."&historique_cartes=$chemin\"> > ".$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."&historique_cartes=$chemin\"> > ".$tabnom[$key]."</a>"; |
} |
else if ($key==(count($tabonglet)-1)) { |
$res.="<a class=\"chemin_carto\"> > $nom</a>"; |
} |
else { |
$chemin.='*'.$value; |
$res.= "<a class=\"chemin_carto\" href=\"".$monde->url."&historique_cartes=$chemin\"> > ".$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/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('&', '&', $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('&', '&', $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('&', '&', $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('/&/', '&', $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('/&/', '&', $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 ('&', '&', $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&v=2&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, '>', '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/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érées ?'); |
define ('INS_MAILS_MODERATEURS', 'Mails des modé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 à avertir d\'une nouvelle inscription'); |
define ('INS_SUJET_MAIL_CONFIRMATION', 'Sujet de l\'email de confirmation, envoyé à celui qui s\'inscrit (moins de 255 caractères)'); |
define ('INS_FROM_MAIL_CONFIRMATION', 'Le mail de l\'expéditeur pour l\'ensemble des mails envoyés par le site'); |
define ('INS_GENERE_NOM_WIKI', 'Le système essaie de générer un nom wiki'); |
define ('INS_CHAMPS_WIKI', 'Proposer la saisie d\'un nom wiki') ; |
define ('INS_REECRITURE_URL', 'Utiliser la réécriture d\'URL'); |
define ('INS_PREFIXE_URL', 'Préfixe de l\'URL'); |
define ('INS_MAIL_INSCRIPTION_NEWS', 'L\'email de la liste d\'actualité, s\'il y a'); |
define ('INS_TITRE_FORMULAIRE_INSCRIPTION', 'Titre du formulaire d\'inscription (en HTML)'); |
define ('INS_INSCRIPTION_TEMPLATE', 'Le modèle de l\'inscription:<br />'. |
'type***mon_du_champs_dans_base***label_en_français***taille_en_caractè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è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é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énom') ; // Pas d'entite, car sert dans le corps d un mail |
define ('INS_PRENOM_REQUIS', 'Veuillez indiquer votre prénom.') ; |
define ('INS_PAYS', 'Pays') ; |
define ('INS_LANGUES_PARLES', 'Langues parlés') ; |
define ('INS_EMAIL', 'Adresse mail') ; |
define ('INS_MOT_DE_PASSE', 'Mot de passe') ; |
define ('INS_REPETE_MOT_DE_PASSE', 'Répéter le mot de passe') ; |
define ('INS_ADRESSE_1', 'Adresse') ; |
define ('INS_ADRESSE_2', 'Adresse (suite)') ; |
define ('INS_REGION', 'Ré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é') ; |
define ('INS_MOT_DE_PASSE_CHANGE', 'Changement de mot de passe') ; |
define ('INS_NOUVEAU_MOT_DE_PASSE_ENVOYE', 'Votre mot de passe a été changé, consultez votre messagerie.') ; |
define ('INS_MAIL_INCONNU_DANS_ANNUAIRE', 'L\'adresse mail saisie n\'est pas présente dans notre annuaire, vérifiez la saisie de cette adresse') ; |
define ('INS_VOUS_RECEVEZ_LETTRE','Vous êtes abonné(e) à la cyberlettre'); |
define ('INS_VOUS_RECEVEZ_PAS_LETTRE','Vous n\'êtes pas abonné(e) à 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 êtes adhérents de personnes morales (associations, institutions, entreprise... )') ; |
define ('INS_ORGANISME', 'Organisme') ; |
define ('INS_FONCTION', 'Fonction') ; |
define ('INS_TELEPHONE', 'Téléphone'); |
define ('INS_TELEPHONE_STRUCTURE', 'Téléphone de la structure'); |
define ('INS_FAX','Fax'); |
define ('INS_FAX_STRUCTURE','Fax de la structure'); |
define ('INS_COORD_CONTACT', 'Coordonné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érer une image ou un logo (.jpg, .png ou .gif, 150Ko max.)'); |
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é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éjà utilisé 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 êtes inscrit') ; |
define ('INS_FICHE_PERSONNELLE', 'Fiche personnelle') ; |
define ('INS_FICHE_STRUCTURE','Fiche de la structure'); |
define ('INS_DECONNEXION', 'Dé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 électronique de la structure'); |
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_NOM_WIKI_REQUIS', 'Nom wiki requis') ; |
define ('INS_DEJA_INSCRIT', 'Déjàà inscrit, identifiez-vous pour accéder àà votre fiche personnelle :') ; |
define ('INS_PAS_INSCRIT', 'Pas encore inscrit, enregistrez-vous!'); |
define ('INS_ERREUR_LOGIN', 'Utilisateur inconnu ou mot de passe erronné') ; |
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éseau et pouvoir ainsi échanger des informations</li> |
<li> accéder àà certaines informations diffusées sur le site</li> |
<li> vous inscrire àà des projets</li> |
<li> rédiger des annonces d\'actualité, d\'événements, de séjours et rencontres</li> |
<li> rédiger des fiches ressources</li> |
<li> recevoir un bulletin é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 à afficher dans le site pour cette cartographie'); |
define ('INS_FAUT_CONFIGURER_CARTO','Vous ne pouvez pas accéder à cette cartographie car elle n\'a pas encore été configuré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 été '. |
'envoyé à 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ésitez pas à changer ce mot de passe '. |
'pour en mettre un plus simple, plus facile à 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 é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','Le temps imparti à votre inscription s\'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, à tout de suite!'); |
define ('INS_MESSAGE_VALIDER_INSCRIPTION','Validation de votre inscription sur le réseau :'.'\n'. |
'Merci de vous ê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\'équipe de Vivreurope ') ; |
// Envoir d'un mail a 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_MODERATION_SUJET', 'Une personne souhaite s\'inscrire au site'); |
define ('INS_NOUVELLE_INSCRIPTION_A_MODERE', 'Bonjour' ."\n\n". |
'Un utilisateur souhaite s\'inscrire, modérez son inscription'); |
define ('INS_MESSAGE_INSCRIPTION', 'Votre inscription a été prise en compte, relevez votre messagerie et cliquer sur le lien proposé pour terminer votre inscription.') ; |
define ('INS_MESSAGE_EN_ATTENTE', 'Votre inscription a bien été prise en compte. Une demande a été envoyé' . |
' à un modérateur.<br />' . |
'Vous recevrez un email de confirmation lorsque le modérateur aura rendu effective votre inscription.'); |
define ('INS_EN_ATTENTE_DE_MODERATION', 'En attente de modération'); |
// carto google |
define ('INS_GOOGLE_MSG', '<br />Si le point correspond à votre adresse,<br />'. |
' vous pouvez valider le formulaire en cliquant sur « valider » ci dessous.<br />'. |
'Vous pouvez ajuster le marqueur pour le faire correspondre à 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ès que'. |
' son inscription ai été modérée par un administrateur'); |
define ('INS_CORPS_MAIL_INSCRIPTION_PRISE_EN_COMPTE', 'Le contenu du mail après inscription modéré'); |
define ('INS_NOM_INSCRIPTION', 'Nom inscription'); |
define ('INS_INSCRIPTION_MODERE', 'L\'inscription est-elle modérée ?'); |
// CARTO |
define ('INS_DATE_INS', 'Date d\'inscription') ; |
define ('INS_CHECK_UNCHECK', 'Cocher les cases pour sélectionner votre destinataire ou cocher / dé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'); |
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éder aux informations ') ; |
define ('INS_VISUALISER_ZONE', 'Mettre en rouge la zone...'); |
define ('INS_MESSAGE_ENVOYE', '<br /><br />Votre message a été envoyé') ; |
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 été envoyé avec succès'); |
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 '."\n". |
'auquel vous êtes inscrit. D\'autres inscrits peuvent avoir reçu ce message.'."\n". |
'Ne répondez que si vous etes 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 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 à 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 requete SQL (conditions supplémentaires pour le WHERE)'); |
define ('INS_PAS_NECESSAIRE', 'Pas nécé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è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épartements pour le pays France'); |
define ('INS_TOUS_DEPARTEMENTS','tous les départements'); |
define ('INS_TOUS_PAYS','tous les pays'); |
define ('INS_NOM_ANNUAIRE','Nom (voire prénom) de la personne ou de la structure recherchée'); |
define ('INS_ENTREES','entrées trouvées'); |
define ('INS_RESULTATS_RECHERCHE','Les résultats de la recherche'); |
define ('INS_PAS_DE_RESULTATS','Pas de résultats pour cette recherche, veuillez élargir vos critè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 éléments de la liste pour avoir ses informations détaillées.'); |
define ('INS_PRESENTATION', 'Présentation'); |
define ('INS_ABONNEMENTS', 'Mes abonnements'); |
define ('INS_GESTION_DES_ABONNEMENTS', 'Gestion de mes abonnements'); |
define ('INS_ACTUALITES', 'Actualités'); |
define ('INS_ACTUALITES_DEPOSEES', 'Actualités déposées'); |
define ('INS_RESSOURCES', 'Ressources'); |
define ('INS_RESSOURCES_ASSOCIEES','Ressources associées'); |
define ('INS_COMPETENCES', 'Compétences'); |
define ('INS_COMPETENCES_ASSOCIEES','Compétences associées'); |
define ('INS_RETOUR_A_LA_CARTE','Retour à la carte : '); |
//annuaire backoffice |
define ('INS_CONFIG_ANNUAIRE_BACKOFFICE','Configuration de la gestion de l\'annuaire'); |
define ('INS_TYPE_ANNUAIRE','Type d\'annuaire à configurer'); |
define ('INS_ANNUAIRE_BOTTIN','Annuaire du bottin'); |
define ('INS_ANNUAIRE_ADMIN_PAPYRUS','Annuaire des administrateurs Papyrus'); |
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") ; |
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és :") ; |
//define ("ANN_EMAIL", "Courriel :") ; |
//define ("ANN_MOT_DE_PASSE", "Mot de passe :") ; |
//define ("ANN_REPETE_MOT_DE_PASSE", "Répéter le mot de passe :") ; |
//define ("ANN_RETABLIR", "Ràtablir") ; |
//define ("ANN_VALIDER", "Valider") ; |
//define ("ANN_MESSAGE_BIENVENU", "Vous ê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 à la lettre") ; |
//define ("ANN_TITRE", 'Annuaire du réseau') ; |
//define ("ANN_CHECK_UNCHECK", "Cocher les cases pour sélectionner votre destinataire ou cocher / dé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/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énom") ; |
define ("INS_PRENOM_REQUIS", "Veuillez indiquer votre prénom.") ; |
define ("INS_PAYS", "Pays") ; |
define ("INS_LANGUES_PARLES", "Langues parlés") ; |
define ("INS_EMAIL", "Adresse mail") ; |
define ("INS_MOT_DE_PASSE", "Mot de passe") ; |
define ("INS_REPETE_MOT_DE_PASSE", "Répéter le mot de passe") ; |
define ("INS_ADRESSE_1", "Adresse") ; |
define ("INS_ADRESSE_2", "Adresse (suite)") ; |
define ("INS_REGION", "Ré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 êtes adhé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é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éjà utilisé 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 êtes inscrit aux sites Educ-Envir.org et Ecole-et-Nature.org") ; |
define ("INS_FICHE_PERSONNELLE", "Fiche personnelle") ; |
define ("INS_DECONNEXION", 'Dé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éjà inscrit, identifiez-vous pour accéder à votre fiche personnelle :") ; |
define ('INS_PAS_INSCRIT', 'Pas encore inscrit, enregistrez-vous!'); |
define ("INS_ERREUR_LOGIN", "Utilisateur inconnu ou mot de passe erronné") ; |
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é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éseau et pouvoir ainsi échanger des informations</li> |
<li> accéder à certaines informations diffusées sur le site</li> |
<li> vous inscrire à 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 é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 été ". |
"envoyé à 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ésitez pas à changer ce mot de passe ". |
"pour en mettre un plus simple, plus facile à 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électionner votre destinataire ou cocher / dé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éni de responsabilité") ; |
define ("INS_AVERTISSEMENT", "La représentation et l'utilisation des frontières, des noms géographiques et autres ". |
" données employés sur les cartes et utilisés dans les listes,". |
" les tableaux, les documents et les bases de données de ce site ne sont pas garanties sans ". |
"erreurs, de même qu'elles n'engagent pas la responsabilité 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éder aux informations ") ; |
define ('INS_VISUALISER_ZONE', 'Mettre en rouge la zone...'); |
define ("INS_MESSAGE_ENVOYE", "<br /><br />Votre message a été envoyé") ; |
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/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 |
---|
--- presentations/inscription.css (revision 0) |
+++ presentations/inscription.css (revision 1985) |
@@ -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; |
+} |
\ No newline at end of file |
/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/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/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/squelettes/script_googlemap.tpl.js |
---|
New file |
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); |
} |
} |
/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 = ''; |
} |
?> |