Subversion Repositories Sites.tela-botanica.org

Compare Revisions

No changes between revisions

Ignore whitespace Rev 803 → Rev 802

/trunk/client/inscription/configuration/ins_config.inc.php
New file
0,0 → 1,155
<?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 |
// +------------------------------------------------------------------------------------------------------+
/**
* Fichier de configuration de l'inscription
*
* A éditer de façon spécifique à chaque déploiement
*
*@package inscription
//Auteur original :
*@author Alexandre GRANIER <alexandre@tela-botanica.org>
//Autres auteurs :
*@author Jean-Pascal MILCENT <jpm@tela-botanica.org>
*@copyright Tela-Botanica 2000-2004
*@version $Id: ins_config.inc.php,v 1.3 2005/05/13 13:49:15 alex Exp $
// +------------------------------------------------------------------------------------------------------+
*/
 
 
/**
//=========================DEFINITION DE VARIABLES =================================
* Définition des variables globales
//==================================================================================
*/
$GLOBALS['AUTH'] =& $GLOBALS['_GEN_commun']['pear_auth'] ;
 
/**
//==================================== LES URLS ==================================
* Constantes liées à l'utilisation des url
//==================================================================================
*/
$GLOBALS['ins_url'] =& $GLOBALS['_GEN_commun']['url'] ;
$GLOBALS['ins_db'] =& $GLOBALS['_GEN_commun']['pear_db'] ;
define('INS_CHEMIN_FICHIER', 'client/inscription/') ;
define('URL_LISTE_ACTU', 'http://vpopmail.tela-botanica.org/');
 
/**
//==================================== CONSTANTES ==================================
* Constantes des noms de tables et de champs dans l'annuaire
//==================================================================================
*/
define ('INS_ANNUAIRE', 'annuaire_tela');
define ('INS_CHAMPS_ID', 'U_ID');// Nom du champs nom
define ('INS_CHAMPS_MAIL', 'U_MAIL');// Nom du champs mail
define ('INS_CHAMPS_LOGIN', 'at_nom_wiki');
define ('INS_CHAMPS_NOM', 'U_NAME');
define ('INS_CHAMPS_PRENOM', 'U_SURNAME');
define ('INS_CHAMPS_PASSE', 'U_PASSWD');
define ('INS_CHAMPS_PAYS', 'U_COUNTRY');
define ('INS_CHAMPS_CODE_POSTAL', 'U_ZIP_CODE');
define ('INS_CHAMPS_VILLE', 'U_CITY');
define ('INS_CHAMPS_ADRESSE_1', 'U_ADDR1');
define ('INS_CHAMPS_ADRESSE_2', 'U_ADDR2');
define ('INS_CHAMPS_REGION', 'U_STATE');
define ('INS_CHAMPS_SITE_WEB', 'U_WEB');
define ('INS_CHAMPS_TELEPHONE', 'U_PHONE');
define ('INS_CHAMPS_FAX', 'U_FAX');
define ('INS_CHAMPS_STRUCTURE', 'U_TITLE');
define ('INS_CHAMPS_DATE', 'U_DATE');
define ('INS_CHAMPS_LETTRE', 'U_LETTRE');// Le champs qui indique si l'usager est inscrit à la lettre d'inscription
define ('INS_CHAMPS_DPT', 'U_FRENCH_DPT');
define ('PROJET_DPT', 'carto_DEPARTEMENT');// Nom de la table département
define ('INS_TABLE_PAYS', 'carto_PAYS');// Nom de la table pays
define ('INS_CHAMPS_ID_PAYS', 'CP_ID_Pays');
define ('INS_CHAMPS_LABEL_PAYS', 'CP_Intitule_pays');
define ('INS_CHAMPS_PAYS_LG', 'CP_Langue_intitule');// Langue de l'intitule du pays
 
/**
//==================================== PARAMETRAGE =================================
* Pour régler certaines fonctionnalité de l'application
//==================================================================================
*/
// Indique le type de cryptage du mot de passe à appliquer (doit être identique à PEAR_AUTH)
define ('INS_MDP_CRYPTYPE', 'md5');// Choix : md5 seulement
 
define ('INS_MAIL_ADMIN_APRES_INSCRIPTION', 'Accueil Tela Botanica <accueil@tela-botanica.org>');
define ('INS_MAIL_ADMIN_APRES_INSCRIPTION_SUJET', '[Tela Botanica] Inscription');
 
define ('INS_UTILISE_LISTE', true);// Mettre à false si pas de liste d'actu
define ('INS_MAIL_INSCRIPTION_LISTE', 'actu-subscribe@tela-botanica.org');
define ('INS_MAIL_DESINSCRIPTION_LISTE', 'actu-unsubscribe@tela-botanica.org');
 
// Liste des personne recevant le mail après inscription
$GLOBALS['mail_admin'] = array ('Accueil <accueil@tela-botanica.org>',
'Daniel MATHIEU <dmathieu@tela-botanica.org>',
'Jean-Pascal MILCENT <jpm@tela-botanica.org>');
 
define ('INS_UTILISE_SPIP', 1);
if (INS_UTILISE_SPIP) {
define ('INS_BDD_SPIP', 'tela_prod_spip_actu');
}
 
/**
//==================================== 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&action=ajouter&id=$1 [L]
* Cela sert à racourcir l'URL de confirmation d'inscription
//==================================================================================
*/
define ('INS_UTILISE_REECRITURE_URL', 1);// mettre à 1 si on souhaite utiliser la réécriture
if (INS_UTILISE_REECRITURE_URL) {
define ('INS_URL_PREFIXE', '_ins_');// Indique le préfixe de l'url http://www.mondomaine.org/prefix____
}
 
define ('INS_UTILISE_STAT', true);
define ('INS_TABLE_STATISTIQUE', 'ins_STATS') ;
define ('INS_STATS_CHAMPS_DATE', 'IS_DATE') ;
define ('INS_STATS_CHAMPS_ACTION', 'IS_ACTION') ;
 
/* +--Fin du code ----------------------------------------------------------------------------------------+
*
* $Log: ins_config.inc.php,v $
* Revision 1.3 2005/05/13 13:49:15 alex
* ajout de la réécriture d'url et des statistiques
*
* Revision 1.2 2005/03/21 16:50:31 alex
* mille et une corrction
*
* Revision 1.1 2005/03/04 10:39:41 tam
* installation
*
* Revision 1.1 2004/07/06 15:42:17 alex
* en cours
*
* Revision 1.4 2004/07/06 15:31:33 alex
* en cours
*
* Revision 1.3 2004/06/30 10:00:53 alex
* ajout de champs pour gérer les pays
*
* Revision 1.2 2004/06/18 09:20:54 alex
* version initiale
*
*
* +-- Fin du code ----------------------------------------------------------------------------------------+
*/
?>
Property changes:
Added: svn:executable
+*
\ No newline at end of property
/trunk/client/inscription/inscription.php
New file
0,0 → 1,302
<?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 |
// +------------------------------------------------------------------------------------------------------+
/**
* Inscription
*
* Un module d'inscription, en général ce code est spécifique à un site web.
*
*@package inscription
//Auteur original :
*@author Alexandre GRANIER <alexandre@tela-botanica.org>
//Autres auteurs :
*@author Jean-Pascal MILCENT <jpm@tela-botanica.org>
*@copyright Tela-Botanica 2000-2004
*@version $Id: inscription.php,v 1.3 2005/03/21 16:50:21 alex Exp $
// +------------------------------------------------------------------------------------------------------+
*/
 
// +------------------------------------------------------------------------------------------------------+
// | ENTETE du PROGRAMME |
// +------------------------------------------------------------------------------------------------------+
include_once PAP_CHEMIN_API_PEAR.'Mail.php' ;
require_once PAP_CHEMIN_API_PEAR.'HTML/QuickForm.php' ;
require_once PAP_CHEMIN_API_PEAR.'HTML/QuickForm/checkbox.php' ;
require_once PAP_CHEMIN_API_PEAR.'HTML/QuickForm/password.php' ;
/** Constante "dynamique" stockant la langue demandée par l'utilisateur pour l'application.*/
define('INS_LANGUE', substr($GLOBALS['_GEN_commun']['i18n'], 0, 2));
$fichier_lg = 'client/inscription/langues/ins_langue_'.INS_LANGUE.'.inc.php';
if (file_exists($fichier_lg)) {
include_once $fichier_lg;
include_once 'client/inscription/langues/ins_langue_'.INS_LANGUE.'.inc.php';
} else {
include_once 'client/inscription/langues/ins_langue_fr.inc.php' ;
}
include_once 'client/inscription/configuration/ins_config.inc.php';
include_once 'client/inscription/bibliotheque/inscription.fonct.php';
include_once 'client/inscription/bibliotheque/ins_spip.fonct.php';
include_once INS_CHEMIN_FICHIER.'bibliotheque/inscription.class.php';
 
// Ajout d'une feuille de style externe
GEN_stockerStyleExterne ('inscription', 'client/inscription/inscription.css') ;
 
// +------------------------------------------------------------------------------------------------------+
// | LISTE de FONCTIONS |
// +------------------------------------------------------------------------------------------------------+
 
function afficherContenuTete() {
$retour = '<h1 class="titre1_inscription">Inscription au Réseau Tela Botanica</h1>';
return ;
}
 
// ================ Note =======================
// La variable action sert à définir ce qui est demandé (inscription, modification d'inscription, suppression ...
// Elle est appelé avec $_REQUEST car elle peut aussi bien venir d'un formulaire que d'un lien.
// ==============================================
 
 
/**
*
* @global AUTH Un pointeur vers un objet PEAR::Auth
* @global ins_url Un pointeur vers un objet PEAR::Net_URL
* @return string Le contenu de l'application inscription
*/
function afficherContenuCorps() {
 
// Operation de maintenance sur la table inscription_demande
// On supprime les vieilles demandes qui ont expire
$requete_maintenance = 'delete from inscription_demande where id_date < DATE_SUB(NOW(), interval 1 week)';
$resultat_maintenance = $GLOBALS['ins_db']->query ($requete_maintenance);
if (DB::isError($resultat_maintenance)) {
return ('Echec de la requete : '.$requete_maintenance.'<br />'.$resultat_maintenance->getMessage());
}
$url = preg_replace ('/&amp;/', '&', $GLOBALS['ins_url']->getURL()) ;
// Attibution de l'action par défaut à effectuer.
if (!isset ($_REQUEST['action'])) {
$_REQUEST['action'] = 'inscription';
}
$res = '' ;
$est_loggue = true ;
// ... tentative de déconnection
if (isset ($_GET['logout']) && $_GET['logout'] == 1) {
$GLOBALS['AUTH']->logout() ;
$_POST['username'] = '' ;
$_POST['password'] = '' ;
//return AUTH_formulaire_login() ;
}
// ...supprimer l'inscription
if (isset ($_POST['supprimer'])) {
$mail_utilisateur = $GLOBALS['AUTH']->getUsername();
$id_utilisateur = $GLOBALS['AUTH']->getAuthData(INS_CHAMPS_ID) ;
$bool_inscription_lettre = $GLOBALS['AUTH']->getAuthData(INS_CHAMPS_LETTRE);
$resultat = $GLOBALS['AUTH']->removeUser($mail_utilisateur) ;
 
if (PEAR::isError($resultat)) {
return ($resultat->getMessage().'<br />'.$resultat->getDebugInfo()) ;
}
 
// Suppression dans SPIP
if (INS_UTILISE_SPIP) {
desinscription_spip($id_utilisateur) ;
}
 
// Désinscription de la lettre d'info
if (INS_UTILISE_LISTE) {
if ($bool_inscription_lettre == 1) {
$supp_abo = file_get_contents(URL_LISTE_ACTU.'suppression_abonne.php?domaine=tela-botanica.org&liste=actu&mail='.$mail_utilisateur) ;
}
}
// Appel des actions desinscriptions des applications clientes
$msg = '';
$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();
// Deconnexion
$GLOBALS['AUTH']->logout() ;
// Ajout d'une ligne dans les statistiques
if (INS_UTILISE_STAT) {
$requete = 'INSERT INTO '.INS_TABLE_STATISTIQUE.' SET '.INS_STATS_CHAMPS_DATE.'=NOW(), '.INS_STATS_CHAMPS_ACTION.'="del"' ;
$resultat = $GLOBALS['ins_db']->query ($requete) ;
if (DB::isError ($resultat)) {
die ('Echec de la requete : '.$requete.'<br />'.$resultat->getMessage()) ;
}
}
//return AUTH_formulaire_login() ;
}
 
// ... envoie de mot de passe
if ($_REQUEST['action'] == 'sendpasswd') {
envoie_passe();
}
// ...oublie de mot de passe
if (preg_match('/^(?:mdp_oubli|sendpasswd)$/', $_REQUEST['action'])) {
return message_erreur(false);
}
// ...inscription dans la base si l'utilisateur clique sur le lien du courriel de confirmation envoyé par l'appli
if (isset($_GET['action']) && $_GET['action'] == 'ajouter' && isset($_GET['id']) && !$GLOBALS['AUTH']->getAuth()) {
$requete = 'SELECT id_donnees '.
'FROM inscription_demande '.
'WHERE id_identifiant_session = "'.$_GET['id'].'" ';
$resultat = $GLOBALS['ins_db']->query($requete);
if (DB::isError ($resultat)) {
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));
//trigger_error(print_r($donnees, true), E_USER_WARNING);
 
// Ajout des données dans la base
insertion($donnees);
// On loggue l'utilisateur
$GLOBALS['AUTH']->username = $donnees['email'];
$GLOBALS['AUTH']->password = $donnees['mot_de_passe'];
$GLOBALS['AUTH']->login();
// Inscription à la lettre d'information
/*if (INS_UTILISE_LISTE) {
if (isset($donnees['lettre']) && 1 == $donnees['lettre']) {
inscription_lettre(INS_MAIL_INSCRIPTION_LISTE) ;
}
}*/
// On supprime la demande d'inscription
$requete = 'DELETE FROM inscription_demande WHERE id_identifiant_session="'.$_GET['id'].'"' ;
$resultat = $GLOBALS['ins_db']->query ($requete) ;
if (DB::isError ($resultat)) {
die ("Echec de la requete : $requete<br />".$resultat->getMessage()) ;
}
// On envoi les mails d'information sur la nouvelle inscription.
envoie_mail();
}
 
// ... affichage d'une erreur en cas de pb
if (!$GLOBALS['AUTH']->getAuth() && $_REQUEST['action'] != 'inscription' && $_REQUEST['action'] != 'inscription_v') {
if (isset($_POST['username']) && $_POST['username'] != '') {
$res .= message_erreur();
}
}
 
// ... la personne est identifiée nous affichons ses informations
if ($GLOBALS['AUTH']->getAuth () && !isset($_POST['modifier']) && $_REQUEST['action'] != 'modifier_v') {
return info().bouton($url);
}
// ...tentative d'inscription ou Inscription structure
if (preg_match('/^(?:inscription|inscription_v|modifier_v)$/', $_REQUEST['action']) || isset($_POST['modifier'])) {
$action = preg_replace ("/&amp;/", "&", $GLOBALS['ins_url']->getURL()) ;
$formulaire = new HTML_formulaireInscription('formulaire_inscription', 'post', $action) ;
// Construction de la liste des pays
$liste_pays = new ListeDePays($GLOBALS['ins_db']) ;
 
if (isset($_POST['structure'])) {
$formulaire->formulaireStructure() ;
}
 
if (!isset($_POST['modifier'])) {
$GLOBALS['ins_url']->addQueryString('action', 'mdp_oubli');
$url_oubli = preg_replace ('/&amp;/', '&', $GLOBALS['ins_url']->getURL()) ;
$GLOBALS['ins_url']->removeQueryString('action');
$res .= '<h1 class="titre1_inscription">'.INS_ACCUEIL_INSCRIPTION.'</h1>';
$res .= '<h2 class="titre2_inscription">'.INS_LAIUS_INSCRIPTION.'</h2>'."\n" ;
$res .= '<p>'.INS_LAIUS_INSCRIPTION_2.'</p>'."\n" ;
$res .= '<p>'.INS_TEXTE_PERDU.' <a href="'.$url_oubli.'">'.INS_MDP_PERDU_OUBLI.'</a></p>'."\n" ;
} else {
$formulaire->mode_ajout = false;
$res .= '<h1 class="titre1_inscription">'.INS_ACCUEIL_INSCRIPTION.'</h1>';
}
 
$formulaire->construitFormulaire($action, $liste_pays->getListePays('fr')) ;
if (isset($_POST['modifier'])) {
$formulaire->addElement ('hidden', 'action', 'modifier_v') ;
$formulaire->setDefaults(formulaire_defaults()) ;
if (INS_UTILISE_LISTE) {
if ($GLOBALS['AUTH']->getAuthData(INS_CHAMPS_LETTRE) == 1) {
$lettre = & $formulaire->getElement('lettre') ;
$lettre->setChecked(true) ;
}
}
} else if ($_REQUEST['action'] == 'inscription') {
$formulaire->addElement ('hidden', 'action', 'inscription_v') ;
$formulaire->setDefaults (array ('pays' => 'fr', 'asso' => 3, 'activite' => 3, 'niveau' => 4, 'lettre' => 1)) ;
if (INS_UTILISE_LISTE) {
$lettre = & $formulaire->getElement('lettre') ;
$lettre->setChecked(true) ;
}
} else if ($_REQUEST['action'] == 'inscription_v') {
if ($formulaire->validate()) {
$formulaire->process('demande_inscription', false) ;
return message_inscription() ;
}
} else if ($_REQUEST['action'] == 'modifier_v') {
$ancien_mail = $GLOBALS['AUTH']->getUsername() ;
if ($formulaire->validate()) {
$formulaire->process('mise_a_jour', false) ;
}
$nouveau_mail = $GLOBALS['AUTH']->getUsername() ;
// on parcourt tout le dossier des applications clientes et on appelle la modification de chacune
$d = dir(GEN_CHEMIN_CLIENT);
while (false !== ($repertoire = $d->read())) {
if ($repertoire != '.' || $repertoire != '..') {
if (file_exists(GEN_CHEMIN_CLIENT.$repertoire.GEN_SEP.$repertoire.'.modification.inc.php'))
include_once GEN_CHEMIN_CLIENT.$repertoire.GEN_SEP.$repertoire.'.modification.inc.php' ;
}
}
$d->close();
return info($GLOBALS['AUTH']->getAuthData(INS_CHAMPS_ID)).bouton($url);
}
return $res.$formulaire->toHTML() ;
}
return $res ;
}
 
function afficherContenuPied () {
$sortie = '<p id="ins_pied_page">'.INS_PIED_INFO.
'<a href="mailto:'.INS_PIED_MAIL.'">'.INS_PIED_MAIL.'</a>.'.
'</p>';
return $sortie;
}
?>
Property changes:
Added: svn:executable
+*
\ No newline at end of property
/trunk/client/inscription/inscription.css
New file
0,0 → 1,57
/* Feuille de style inscription*/
 
/* Pied de page */
#ins_pied_page {
color:#A9A9A9;
font-size:10px;
padding-top:10px;
text-align:center;}
 
/* Presentation de la fiche des inscrits */
dt {
float:left;
width:10em;
text-align:right;
font-weight:bold;
padding-right : 10px;}
.inscription_titre2 {
clear:both;
color:#996F18;;}
 
/* Presentation du formulaire d'inscription */
#formulaire_inscription fieldset {
border: 0;
margin: 0;
margin-top:10px;
padding: 0;}
#formulaire_inscription legend {
line-height:1.3em;
margin:8px 0 4px 0;
font-size:15px;
color: #996F18;
font-weight:bold;}
#formulaire_inscription ul {
list-style:none;
margin:0;
padding:0;}
#formulaire_inscription li {
font-weight:bold;
margin:5px 0px;
clear:both;}
.symbole_obligatoire {
color:#F00;
font-size:14pt;}
.liste_inscription .inscription_label {
float:left;
width:10em;
text-align:right;
padding-right:10px;}
.liste_inscription select {
margin-top:5px;}
.groupe_formulaire .inscription_label1 {
float:left;
width:10em;
text-align:right;
padding-right:10px;}
.inscription_label2 {
margin-left:10px;}
Property changes:
Added: svn:executable
+*
\ No newline at end of property
/trunk/client/inscription/wikini_cookie.php
New file
0,0 → 1,69
<?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: wikini_cookie.php,v 1.1 2004/07/06 15:42:28 alex Exp $
/**
* Envoie de cookie pour wikini à partir d'une inscription
*
* Envoie de cookie pour wikini à partir d'une inscription
*
*@package inscription
//Auteur original :
*@author Alexandre Granier <alexandre@tela-botanica.org>
//Autres auteurs :
*@author Aucun
*@copyright Tela-Botanica 2000-2004
*@version $Revision: 1.1 $ $Date: 2004/07/06 15:42:28 $
// +------------------------------------------------------------------------------------------------------+
*/
 
// Wikini envoie 3 cookies
// name avec pour valeur le nom wiki de l'utilisateur
// password avec pour valeur le mot de passe crypté de l'utilisateur
// remember la durée du cookie
 
// On fait la même chose
 
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, "/") ;
}
 
?>
Property changes:
Added: svn:executable
+*
\ No newline at end of property
/trunk/client/inscription/spip_cookie.php
New file
0,0 → 1,86
<?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: spip_cookie.php,v 1.1 2004/07/06 15:42:28 alex Exp $
/**
* Envoie de cookie pour SPIP à partir d'une inscription
*
* Envoie de cookie pour SPIP à partir d'une inscription
*
*@package inscription
//Auteur original :
*@author Alexandre Granier <alexandre@tela-botanica.org>
//Autres auteurs :
*@author Aucun
*@copyright Tela-Botanica 2000-2004
*@version $Revision: 1.1 $ $Date: 2004/07/06 15:42:28 $
// +------------------------------------------------------------------------------------------------------+
*/
 
 
// Ce fichier doit être placé à la racine de SPIP
// Il doit être appellé dans chaque squelette
// après l'ouverture d'une session, si on ouvre une session
 
// Il faut récupérer une valeur userid, c'est à dire
// loggué l'utilisateur par exemple avec PEAR
 
if ($userid != 0) {
 
 
setcookie("spip_admin", "@$login", time()+3600*24*30, "/vecam/") ;
 
include ("ecrire/inc_version.php3");
 
include_ecrire ("inc_meta.php3");
include_ecrire ("inc_session.php3");
$query = "SELECT * FROM spip_auteurs WHERE id_auteur=$userid";
$result = mysql_query($query);
$GLOBALS['auteur_session'] = mysql_fetch_array($result) ;
$GLOBALS['auteur_session']['statut'] = "1comite" ;
$GLOBALS['auteur_session']['lang'] = "en" ;
 
if (!$HTTP_COOKIE_VARS["spip_session"]) {
$id_session = $userid."_".(md5 (uniqid (rand ())));
setcookie("spip_session", $id_session, time()+3600*24*30, "/vecam/") ;
 
} else {
$id_session = preg_replace("/[0-9]+_/", $userid."_", $HTTP_COOKIE_VARS["spip_session"]) ;
setcookie("spip_session", $id_session, time()+3600*24*30, "/vecam/") ;
}
 
ajouter_session($GLOBALS['auteur_session'], $id_session) ;
 
}
 
 
 
 
 
 
 
 
 
 
 
 
?>
Property changes:
Added: svn:executable
+*
\ No newline at end of property
/trunk/client/inscription/bibliotheque/ins_wiki.fonct.php
New file
0,0 → 1,101
<?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_wiki.fonct.php,v 1.1 2004/07/06 15:42:17 alex Exp $
/**
* Fonctions wikini
*
* Ce fichier propose 3 fonctions pour intervenir sur la table interwikini_users.
*
*@package inscription
*@subpackage fonctions_wikini
//Auteur original :
*@author Alexandre Granier <alexandre@tela-botanica.org>
//Autres auteurs :
*@author Aucun
*@copyright Tela-Botanica 2000-2004
*@version $Revision: 1.1 $ $Date: 2004/07/06 15:42:17 $
// +------------------------------------------------------------------------------------------------------+
*/
 
// +------------------------------------------------------------------------------------------------------+
// | ENTETE du PROGRAMME |
// +------------------------------------------------------------------------------------------------------+
 
// +------------------------------------------------------------------------------------------------------+
// | LISTE de FONCTIONS |
// +------------------------------------------------------------------------------------------------------+
 
 
function inscription_interwikini_users($nom, $valeur) {
$requete = "insert into ".INS_BDD_WIKINI.".interwikini_users set name=\"".$nom.
"\", password=\"".md5($valeur['mot_de_passe'])."\", email=\"".$valeur['email']."\"" ;
$resultat = $GLOBALS['ins_db']->query ($requete) ;
if (DB::isError($resultat)) {
return ("Echec de la requete dans interwikini_users<br />".$resultat->getMessage()) ;
}
}
 
function mod_inscription_interwikini_users($nomwiki, $valeur) {
$requete = "update ".INS_BDD_WIKINI.".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)) {
echo ("Echec de la requete dans interwikini_users<br />".$resultat->getMessage()) ;
}
}
 
function desinscription_interwikini_users($nomwiki) {
$requete = "delete from ".INS_BDD_WIKINI.".interwikini_users where name=\"$nomwiki\"" ;
$resultat = $GLOBALS['ins_db']->query ($requete) ;
if (DB::isError($resultat)) {
echo ("Echec de la requete dans interwikini_users<br />".$resultat->getMessage()) ;
}
}
 
function verif_doublonNomWiki($nom_wiki) {
$requete = "select name from ".INS_BDD_WIKINI.".interwikini_users where name = \"$nom_wiki\"" ;
$resultat = $GLOBALS['ins_db']->query ($requete) ;
if (DB::isError ($resultat)) {
echo ($resultat->getMessage().'<br />'.$resultat->getDebugInfo()) ;
}
if ($resultat->numRows() == 0) return true ;
return false ;
}
 
 
/* +--Fin du code ----------------------------------------------------------------------------------------+
*
* $Log: ins_wiki.fonct.php,v $
* 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 ----------------------------------------------------------------------------------------+
*/
 
 
 
 
?>
Property changes:
Added: svn:executable
+*
\ No newline at end of property
/trunk/client/inscription/bibliotheque/inscription.class.php
New file
0,0 → 1,336
<?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 |
// +------------------------------------------------------------------------------------------------------+
/**
* Fonctions du module inscription
*
* Fonctions du module inscription
*
*@package inscription
//Auteur original :
*@author Alexandre Granier <alexandre@tela-botanica.org>
//Autres auteurs :
*@author Jean-Pascal MILCENT <jpm@tela-botanica.org>
*@copyright Tela-Botanica 2000-2004
*@version $Id: inscription.class.php,v 1.3 2005/05/13 13:48:38 alex Exp $
// +------------------------------------------------------------------------------------------------------+
*/
 
// +------------------------------------------------------------------------------------------------------+
// | ENTETE du PROGRAMME |
// +------------------------------------------------------------------------------------------------------+
 
 
// +------------------------------------------------------------------------------------------------------+
// | LISTE de FONCTIONS |
// +------------------------------------------------------------------------------------------------------+
 
class HTML_formulaireInscription extends HTML_Quickform {
var $mode_ajout = true;
/**
* Constructeur
*
* @param string formName Le nom du formulaire
* @param string method Méthode post ou get
* @param string action L'action du formulaire.
* @param int target La cible.
* @param Array attributes Les attributs HTML en plus.
* @param bool trackSubmit ??
* @return void
* @access public
*/
function HTML_forumlaireInscription ( $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, $liste_pays) {
$squelette =& $this->defaultRenderer();
$squelette->setFormTemplate("\n".'<form{attributes}>'."\n".'{content}'."\n".'</form>'."\n");
$modele_element_debut = '<li class="groupe_formulaire">'."\n".'<span class="inscription_label1">{label}<!-- BEGIN required --><span class="symbole_obligatoire">*</span><!-- END required --></span>'.
"\n".'{element}'."\n".''."\n".
'<!-- BEGIN error --><span class="erreur">{error}</span><!-- END error -->'."\n".
''."\n" ;
$modele_element_fin = "\n".'<span class="inscription_label2">{label}<!-- BEGIN required --><span class="symbole_obligatoire">*</span><!-- END required --></span>'.
"\n".'{element}'."\n".''."\n".
'<!-- BEGIN error --><span class="erreur">{error}</span><!-- END error -->'."\n".
'</li>'."\n" ;
$squelette->setElementTemplate( '<li class="liste_inscription">'."\n".'<span class="inscription_label">{label}<!-- BEGIN required --><span class="symbole_obligatoire">*</span><!-- END required --></span>'.
"\n".'{element}'."\n".''."\n".
'<!-- BEGIN error --><span class="erreur">{error}</span><!-- END error -->'."\n".
'</li>'."\n");
//$squelette->setElementTemplate(, ) ;
// Les modèles pour les champs qui se tienne 2 par ligne
foreach (array('mot_de_passe', 'nom', 'cp') as $valeur) $squelette->setElementTemplate( $modele_element_debut, $valeur);
foreach (array('password_repete', 'prenom', 'ville') as $valeur) $squelette->setElementTemplate( $modele_element_fin, $valeur);
$squelette->setElementTemplate( '<ul><li class="groupe_bouton">{element}', 'annuler');
$squelette->setElementTemplate( '{element}</li></ul>', 'valider');
$squelette->setRequiredNoteTemplate("\n".'<p>'."\n".'<span class="symbole_obligatoire">*</span> {requiredNote}'."\n".'</p>'."\n");
$fieldset_debut = '<fieldset>'."\n".
'<legend>'.(($this->mode_ajout) ? INS_AJOUT_MEMBRE : INS_MODIF_MEMBRE).'</legend>'."\n".
'<ul>'."\n";
$this->addElement('html', $fieldset_debut);
$this->addElement ('text', 'email', INS_EMAIL) ;
$this->addRule ('email', INS_EMAIL_REQUIS, 'required','', 'client') ;
$this->addRule ('email', INS_MAIL_INCORRECT, 'email', '', 'client') ;
$this->registerRule('doublon', 'callback', 'verif_doublonMail') ;
$this->addRule ('email', INS_MAIL_DOUBLE, 'doublon', true) ;
$this->addElement('password', 'mot_de_passe', INS_MOT_DE_PASSE);
$this->addElement('password', 'password_repete', INS_REPETE_MOT_DE_PASSE);
$this->addRule ('mot_de_passe', INS_MOT_DE_PASSE_REQUIS, 'required', '', 'client') ;
$this->addRule ('password_repete', INS_MOT_DE_PASSE_REQUIS, 'required', '', 'client') ;
$this->addElement('text', 'nom', INS_NOM);
$this->addElement('text', 'prenom', INS_PRENOM);
$this->addRule ('nom', INS_NOM_REQUIS, 'required', '', 'client') ;
$this->addRule ('prenom', INS_PRENOM_REQUIS, 'required', '', 'client') ;
$this->addElement ('text', 'adresse_1', INS_ADRESSE_1) ;
$this->addElement ('text', 'adresse_2', INS_ADRESSE_2) ;
$this->addElement ('text', 'region', INS_REGION) ;
$this->addElement('text', 'cp', INS_CODE_POSTAL) ;
$this->addElement('text', 'ville', INS_VILLE) ;
$this->addRule ('cp', INS_CODE_POSTAL_REQUIS, 'required', '', 'client') ;
$this->addRule ('ville', INS_VILLE_REQUIS, 'required', '', 'client') ;
// L'élément pays est construit à partir de la table des pays
$s =& $this->createElement('select','pays',INS_PAYS);
$s->loadArray($liste_pays,'fr');
$this->addElement($s);
if (INS_UTILISE_LISTE) {
$element_lettre = &new HTML_QuickForm_checkbox ('lettre', '', INS_LETTRE) ;
$this->addElement($element_lettre) ;
}
$this->addElement ('text', 'site', INS_SITE_INTERNET) ;
$fieldset_fin = '</ul>'."\n".
'</fieldset>'."\n";
$this->addElement('html', $fieldset_fin);
$fieldset_debut = '<fieldset>'."\n".
'<legend>'.INS_ADHERENT.'</legend>'."\n".
'<ul>'."\n";
$this->addElement('html', $fieldset_debut);
$this->addElement ('text', 'organisme', INS_ORGANISME) ;
$this->addElement ('text', 'fonction', INS_FONCTION) ;
$fieldset_fin = '</ul>'."\n".
'</fieldset>'."\n";
$this->addElement('html', $fieldset_fin);
$fieldset_debut = '<fieldset>'."\n".
'<legend>'.INS_ETES_BOTANISTE.'</legend>'."\n".
'<ul>'."\n";
$this->addElement('html', $fieldset_debut);
// requete pour trouver les niveaux en botanique
$requete = 'SELECT * FROM annuaire_LABEL_NIV';
$resultat = $GLOBALS['ins_db']->query ($requete) ;
if (DB::isError($resultat)) {
die ("Echec de la requete<br />".$resultat->getMessage()."<br />".$resultat->getDebugInfo()) ;
}
while ($ligne = $resultat->fetchRow(DB_FETCHMODE_OBJECT)) {
$this->addElement ('radio', 'niveau', '', $ligne->LABEL_NIV, $ligne->ID_LABEL_NIV) ;
}
$fieldset_fin = '</ul>'."\n".
'</fieldset>'."\n";
$this->addElement('html', $fieldset_fin);
// L'activité professionnelle
$fieldset_debut = '<fieldset>'."\n".
'<legend>'.INS_ACTIVITE_PROFESSIONNELLE.'</legend>'."\n".
'<ul>'."\n";
$this->addElement('html', $fieldset_debut);
// Requete pour trouver les niveaux en botanique
$requete = 'SELECT * FROM annuaire_LABEL_ACT';
$resultat = $GLOBALS['ins_db']->query ($requete) ;
if (DB::isError($resultat)) {
die ("Echec de la requete<br />".$resultat->getMessage()."<br />".$resultat->getDebugInfo()) ;
}
while ($ligne = $resultat->fetchRow(DB_FETCHMODE_OBJECT)) {
$this->addElement ('radio', 'activite', '', $ligne->LABEL_ACT, $ligne->ID_LABEL_ACT) ;
}
$fieldset_fin = '</ul>'."\n".
'</fieldset>'."\n";
$this->addElement('html', $fieldset_fin);
// L'activité professionnelle
$fieldset_debut = '<fieldset>'."\n".
'<legend>'.INS_MEMBRE_ASSO.'</legend>'."\n".
'<ul>'."\n";
$this->addElement('html', $fieldset_debut);
// Requete pour trouver les niveaux en botanique
$requete = 'SELECT * FROM annuaire_LABEL_ASS';
$resultat = $GLOBALS['ins_db']->query ($requete) ;
if (DB::isError($resultat)) {
die ("Echec de la requete<br />".$resultat->getMessage()."<br />".$resultat->getDebugInfo()) ;
}
while ($ligne = $resultat->fetchRow(DB_FETCHMODE_OBJECT)) {
$this->addElement ('radio', 'asso', '', $ligne->LABEL_ASS, $ligne->ID_LABEL_ASS) ;
}
$fieldset_fin = '</ul>'."\n".
'</fieldset>'."\n";
$this->addElement('html', $fieldset_fin);
// Les spécialité
$fieldset_debut = '<fieldset>'."\n".
'<legend>'.INS_SPECIALISTE.'</legend>'."\n".
'<ul>'."\n";
$this->addElement('html', $fieldset_debut);
$this->addElement ('textarea', 'specialite', '', array ('cols' => 50, 'rows' => 4)) ;
$fieldset_fin = '</ul>'."\n".
'</fieldset>'."\n";
$this->addElement('html', $fieldset_fin);
// Les spécialité géographiques
$fieldset_debut = '<fieldset>'."\n".
'<legend>'.INS_SPE_ZONE.'</legend>'."\n".
'<ul>'."\n";
$this->addElement('html', $fieldset_debut);
$this->addElement ('textarea', 'specialite_geo', '', array ('cols' => 50, 'rows' => 4)) ;
$fieldset_fin = '</ul>'."\n".
'</fieldset>'."\n";
$this->addElement('html', $fieldset_fin);
if (!$this->mode_ajout) {
$this->addElement ('link', 'annuler', '', preg_replace ('/&amp;/', '&', $GLOBALS['ins_url']->getURL()), INS_ANNULER) ;
}
$this->addElement ('submit', 'valider', INS_VALIDER) ;
$this->setRequiredNote(INS_NOTE_REQUIS) ;
}
/** Modifie le formulaire pour l'adapter au cas des structures
*
*
* @return void
* @access public
*/
function formulaireStructure() {
$this->removeElement('email', false) ;
$mail = & HTML_QuickForm::createElement ('text', 'email', INS_MAIL_STRUCTURE) ;
$this->insertElementBefore ($mail, 'mot_de_passe') ;
$nom_structure = & HTML_QuickForm::createElement ('text', 'nom', INS_NOM_STRUCTURE) ;
$this->insertElementBefore ($nom_structure, 'email') ;
$this->removeElement ('site', false) ;
$site_structure = & HTML_QuickForm::createElement ('text', 'site', INS_SITE_STRUCTURE) ;
$this->insertElementBefore ($site_structure, 'pays') ;
$this->addElement ('hidden', 'est_structure', 1) ;
$sigle_structure = & HTML_QuickForm::createElement ('text', 'sigle_structure', INS_SIGLE_STRUCTURE) ;
$this->insertElementBefore ($sigle_structure, 'nom') ;
$this->addRule ('sigle_structure', INS_SIGLE_REQUIS, 'required', '', 'client') ;
}
/**
*
*
* @return string
* @access public
*/
function toHTML( ) {
$res = HTML_QuickForm::toHTML() ;
return $res ;
} // end of member function toHTML
}
 
class ListeDePays extends PEAR{
 
var $_db ;
/** Constructeur
* Vérifie l'existance de la table gen_pays_traduction
*
* @param DB Un objet PEAR::DB
* @return
*/
function ListeDePays (&$objetDB) {
$this->_db = $objetDB ;
$requete = 'SHOW TABLES';
$resultat = $objetDB->query($requete) ;
if (DB::isError ($resultat)) {
die ("Echec de la requete : $requete<br />".$resultat->getMessage()) ;
}
while ($ligne = $resultat->fetchRow()) {
if ($ligne[0] == INS_TABLE_PAYS) {
return ;
}
}
return $this->raiseError('La table '.INS_TABLE_PAYS.' n\'est pas présente dans la base de donnée !') ;
}
/** Renvoie la liste des pays traduite
*
* @param string une chaine de type i18n ou une chaine code iso langue (fr_FR ou fr ou FR)
* @return un tableau contenant en clé, le code iso du pays, en majuscule et en valeur le nom du pays traduit
*/
function getListePays ($i18n) {
if (strlen($i18n) == 2) {
$i18n = strtolower($i18n).'-'.strtoupper($i18n) ;
}
$requete = 'SELECT '.INS_CHAMPS_ID_PAYS.', '.INS_CHAMPS_LABEL_PAYS.' '.
'FROM '.INS_TABLE_PAYS.' '.
'WHERE '.INS_CHAMPS_PAYS_LG.' = "fr" '.
'ORDER BY '.INS_CHAMPS_LABEL_PAYS.' ';
$resultat = $this->_db->query($requete);
if (DB::isError($resultat)) {
die ("Echec de la requete : $requete<br />".$resultat->getMessage()) ;
}
if ($resultat->numRows() == 0) {
return $this->raiseError('Le code fourni ne correspond à aucun pays ou n\'est pas dans la table!') ;
}
$retour = array() ;
while ($ligne = $resultat->fetchRow(DB_FETCHMODE_ASSOC)) {
$retour[$ligne[INS_CHAMPS_ID_PAYS]] = $ligne[INS_CHAMPS_LABEL_PAYS];
}
return $retour;
}
}
 
 
 
/* +--Fin du code ----------------------------------------------------------------------------------------+
* Revision 1.1 2004/06/18 09:20:47 alex
* version initiale
*
*
* +-- Fin du code ----------------------------------------------------------------------------------------+
*/
 
?>
/trunk/client/inscription/bibliotheque/inscription.fonct.php
New file
0,0 → 1,761
<?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 |
// +------------------------------------------------------------------------------------------------------+
/**
* Fonctions du module inscription
*
* Fonctions du module inscription
*
*@package inscription
//Auteur original :
*@author Alexandre Granier <alexandre@tela-botanica.org>
//Autres auteurs :
*@author Jean-Pascal MILCENT <jpm@tela-botanica.org>
*@copyright Tela-Botanica 2000-2004
*@version $Id: inscription.fonct.php,v 1.2 2005/03/21 16:50:27 alex Exp $
// +------------------------------------------------------------------------------------------------------+
*/
 
// +------------------------------------------------------------------------------------------------------+
// | ENTETE du PROGRAMME |
// +------------------------------------------------------------------------------------------------------+
 
 
 
// +------------------------------------------------------------------------------------------------------+
// | 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);
$corps = INS_MESSAGE_DEBUT_MAIL_INSCRIPTION;
if (INS_UTILISE_REECRITURE_URL) {
$corps .= 'http://'.$GLOBALS['ins_url']->host.'/'.INS_URL_PREFIXE.$chaine;
} else {
$corps .= str_replace('&amp;', '&', $GLOBALS['ins_url']->getURL());
}
$corps .= INS_MESSAGE_FIN_MAIL_INSCRIPTION;
if (!mail($GLOBALS['email'], 'Inscription', $corps, 'From: '.INS_MAIL_ADMIN_APRES_INSCRIPTION)) {
trigger_error("Le courriel n'a pas été envoyé à : {$GLOBALS['email']}", E_USER_WANRNING);
}
}
 
function AUTH_formulaire_login ($msg = '') {
$res = '';
//--------------------------------------------------------------------------
// Les urls
$url_deja_inscrit = preg_replace ('/&amp;/', '&', $GLOBALS['ins_url']->getURL()) ;
$GLOBALS['ins_url']->addQueryString('action', 'inscription');
$url_inscription = preg_replace ('/&amp;/', '&', $GLOBALS['ins_url']->getURL()) ;
$GLOBALS['ins_url']->removeQueryString('action');
//--------------------------------------------------------------------------
// Le formulaire
$form = new HTML_QuickForm ('inscription', 'post', $url_inscription);
$form->addElement ('submit', 'Inscription', INS_INSCRIPTION) ;
$res = '<h1 class="titre1_inscription">'.INS_ACCUEIL_INSCRIPTION.'</h1>';
$res .= $msg ;
$res .= '<h2 class="titre2_inscription">'.INS_LAIUS_INSCRIPTION.'</h2>'."\n" ;
$res .= '<p>'.INS_LAIUS_INSCRIPTION_2.'</p>'."\n" ;
$res .= $form->toHTML() ;
$res .= '<h2 class="titre2_inscription">'.INS_DEJA_INSCRIT.'</h2>' ;
$form = new HTML_QuickForm ('inscription', 'post', $url_deja_inscrit) ;
$form->addElement ('text', 'username', INS_EMAIL) ;
$form->addElement ('password', 'password', INS_MOT_DE_PASSE) ;
$form->addElement('submit', 'valider', INS_VALIDER);
$res .= $form->toHTML() ;
$res .= '<p>'.INS_TEXTE_PERDU.'</p>'."\n" ;
return $res;
}
 
/** message_erreur () - Renvoie le code HTML d'un message d'erreur
*
* Cette page est appelée avec le paramêtre action=mdp_oubli passé dans l'url.
* Elle peut aussi être appelé en cas d'erreur de loggin.
* @return string HTML
*/
function message_erreur ($erreur = true) {
$res = '';
 
// Les urls
$url_deja_inscrit = preg_replace ('/&amp;/', '&', $GLOBALS['ins_url']->getURL()) ;
$GLOBALS['ins_url']->addQueryString('action', 'sendpasswd');
$url_envoi_mdp = preg_replace ('/&amp;/', '&', $GLOBALS['ins_url']->getURL()) ;
$GLOBALS['ins_url']->removeQueryString('action');
 
// La page
$res .= '<h1 class="titre1_inscription">'.INS_MDP_PERDU_TITRE.'</h1>' ;
if ($erreur) {
$res .= '<p class="attention">'.INS_ERREUR_LOGIN.'</p>'."\n" ;
}
$res .= '<div class="information">'."\n";
$res .= '<p>'.INS_SI_PASSE_PERDU.'</p>'."\n";
$res .= '<p>'.INS_INDIQUE_ADRESSE.'</p>'."\n";
$res .= '<p>'."\n";
$res .= '<form action="'.$url_envoi_mdp.'" method="post">'."\n";
$res .= '<label for="nom_d_utilisateur">'.INS_EMAIL.'</label>';
$valeur = (isset($_POST['username'])) ? $_POST['username'] : '';
$res .= '<input type="text" id="nom_d_utilisateur" name="nom_d_utilisateur" value="'.$valeur.'" size="32" /></li></ul>'."\n";
$res .= '<input type="submit" value="'.INS_ENVOIE_PASSE.'" />'."\n";
$res .= '</form>'."\n";
$res .= '</p>';
$res .= '</div>';
$res .= '<hr/>';
// On remet le formulaire d'inscription mais un peu réduit
$res .= '<h2 class="titre2_inscription">'.INS_MDP_PERDU_TITRE_RETENTER.'</h2>' ;
$form = new HTML_QuickForm ('inscription', 'post', $url_deja_inscrit) ;
$form->addElement('text', 'username', INS_EMAIL) ;
$form->addElement('password', 'password', INS_MOT_DE_PASSE) ;
$form->addElement('submit', 'valider', INS_VALIDER);
 
// Retour du html
$res .= $form->toHTML() ;
return $res;
}
 
function insertion($valeur) {
// =========== Insertion dans l'annuaire ===================
 
$autres_valeurs = info_annuaire($valeur);
$autres_valeurs[INS_CHAMPS_DATE] = date('Y-m-d');
$autres_valeurs[INS_CHAMPS_MAIL] = $valeur['email'];
switch (INS_MDP_CRYPTYPE) {
case 'md5' :
$autres_valeurs[INS_CHAMPS_PASSE] = md5($valeur['mot_de_passe']);
break;
default :
trigger_error('Type d\'encodage du mot de passe inconnu!', E_USER_ERROR);
}
// Utilisation de AUTH pour ajouter la personne
//$resultat = $GLOBALS['AUTH']->addUser($valeur['email'], $valeur['mot_de_passe'], $autres_valeurs) ;
$champs = '';
$vals = '';
foreach($autres_valeurs as $champ => $val) {
if ($val != '') {
$champs .= $champ.', ';
$vals .= '"'.str_replace('"', '\"', $val).'", ';
}
}
$champs = trim($champs, ', ');
$vals = trim($vals, ', ');
$requete = 'INSERT INTO '.INS_ANNUAIRE.' '.
' ('.$champs.') '.
'VALUES ('.$vals.') ';
$resultat = $GLOBALS['ins_db']->query($requete) ;
if (DB::isError($resultat)) {
die ($resultat->getMessage().$resultat->getDebugInfo()) ;
}
 
// Récupération de l'identifiant de l'inscription
$requete = 'SELECT '.INS_CHAMPS_ID.' '.
'FROM '.INS_ANNUAIRE.' '.
'WHERE '.INS_CHAMPS_MAIL.' = "'.$valeur['email'].'"' ;
$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) ;
$id = $ligne[INS_CHAMPS_ID] ;
 
// ================ Insertion dans SPIP =========================================
if (INS_UTILISE_SPIP) inscription_spip($id, $valeur) ;
 
// Insertion dans les statistiques
if (INS_UTILISE_STAT) {
$requete = 'INSERT INTO '.INS_TABLE_STATISTIQUE.' SET '.INS_STATS_CHAMPS_DATE.' = NOW(), '.INS_STATS_CHAMPS_ACTION.' = "add" ';
$resultat = $GLOBALS['ins_db']->query($requete) ;
if (DB::isError ($resultat)) {
die ('Echec de la requete : '.$requete.'<br />'.$resultat->getMessage()) ;
}
}
// si la case pour recevoir la lettre d'actualité est cochée
if(isset($valeur['lettre']))
{
$ajout_abo = file_get_contents(URL_LISTE_ACTU.'ajout_abonne.php?domaine=tela-botanica.org&liste=actu&mail='.$valeur['email']) ;
}
}
 
/**
* Effectue une mise à jour dans la base de donnée
*
* @global AUTH un objet PEAR:Auth
* @global ins_db un objet PEAR::DB
* @return
*/
function mise_a_jour($valeur) {
// ===================Changement de mail ===================
if($GLOBALS['AUTH']->getUsername() != $valeur['email'])
{
// dans tous les cas on désinscrit la personne de la lettre d'actualité
$supp_abo = file_get_contents(URL_LISTE_ACTU.'suppression_abonne.php?domaine=tela-botanica.org&liste=actu&mail='.$GLOBALS['AUTH']->getUsername()) ;
// si la case pour recevoir la lettre d'actualité est cochée
if(isset($valeur['lettre']))
{
$ajout_abo = file_get_contents(URL_LISTE_ACTU.'ajout_abonne.php?domaine=tela-botanica.org&liste=actu&mail='.$valeur['email']) ;
}
// si le mail n'a pas changé
} else {
// si la case pour recevoir la lettre d'actualité est cochée
if(isset($valeur['lettre'])) {
// on abonne la personne
$ajout_abo = file_get_contents(URL_LISTE_ACTU.'ajout_abonne.php?domaine=tela-botanica.org&liste=actu&mail='.$valeur['email']) ;
}
else {
// sinon on désinscrit la personne de la lettre d'actualité
$supp_abo = file_get_contents(URL_LISTE_ACTU.'suppression_abonne.php?domaine=tela-botanica.org&liste=actu&mail='.$valeur['email']) ;
}
}
// ====================Mise à jour dans l'annuaire ====================
$requete = 'UPDATE '.INS_ANNUAIRE.' '.
'SET '.requete_annuaire($valeur).' '.
'WHERE '.INS_CHAMPS_ID.' = "'.$GLOBALS['AUTH']->getAuthData(INS_CHAMPS_ID).'"';
$resultat = $GLOBALS['ins_db']->query($requete) ;
if (DB::isError($resultat)) {
return ($resultat->getMessage().$resultat->getDebugInfo()) ;
}
else
{
if($GLOBALS['AUTH']->getUsername() != $valeur['email']) {
$GLOBALS['AUTH']->setAuth($valeur['email']) ;
}
}
if (isset($valeur['lettre'])) {
// On appelle cette fonction pour mettre à jour
$GLOBALS['AUTH']->setAuthData(INS_CHAMPS_LETTRE, $valeur['lettre'], true);
}
// la valeur de session (récupéré par getAuthData()
unset($resultat);
// ========================= Mise à jour dans SPIP ================================
if (INS_UTILISE_SPIP) mod_inscription_spip($GLOBALS['AUTH']->getAuthData(INS_CHAMPS_ID)) ;
}
 
/** 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) {
if (!isset($valeur['lettre'])) {
$valeur['lettre'] = 0;
}
if (preg_match ('/([0-9][0-9])[0-9][0-9][0-9]/', $valeur['cp'], $match)) {
$valeur['dpt'] = $match[1];
if (preg_match ('/(97[0-9])[0-9][0-9]/', $valeur['cp'], $match2)) {
$valeur['dpt'] = $match2[1];
}
}
foreach($valeur as $champ => $val) {
$valeur[$champ] = str_replace('"', '\"', $val);
}
$req = INS_CHAMPS_NOM.'="'.$valeur['nom'].'",'.
INS_CHAMPS_PRENOM.'="'.$valeur['prenom'].'",'.
INS_CHAMPS_MAIL.'="'.$valeur['email'].'",'.
INS_CHAMPS_PASSE.'="'.md5 ($valeur['mot_de_passe']).'",'.
INS_CHAMPS_PAYS.'="'.$valeur['pays'].'", '.
INS_CHAMPS_CODE_POSTAL.'="'.$valeur['cp'].'", '.
INS_CHAMPS_VILLE.'="'.$valeur['ville'].'", '.
INS_CHAMPS_ADRESSE_1.'="'.$valeur['adresse_1'].'", '.
INS_CHAMPS_ADRESSE_2.'="'.$valeur['adresse_2'].'", '.
INS_CHAMPS_REGION.'="'.$valeur['region'].'", '.
INS_CHAMPS_STRUCTURE.'="'.$valeur['organisme'].'", '.
INS_CHAMPS_SITE_WEB.'="'.$valeur['site'].'", '.
INS_CHAMPS_LETTRE.'="'.$valeur['lettre'].'", '.
'U_FONCTION="'.$valeur['fonction'].'", '.
'U_NIV="'.$valeur['niveau'].'", '.
'U_ACT="'.$valeur['activite'].'", '.
'U_ASS="'.$valeur['asso'].'", '.
'U_SPE="'.$valeur['specialite'].'", '.
'U_GEO="'.$valeur['specialite_geo'].'" ';
if (isset($valeur['dpt'])) {
$req .= ','.INS_CHAMPS_DPT.' = "'.$valeur['dpt'].'"' ;
}
return $req ;
}
 
/**
* renvoie un tableau avec en clé les champs de la base et en valeur les valeurs saisies dans le formulaire
*
* @return array renvoie un tableau avec en clé les champs de la base et en valeur les valeurs saisies dans le formulaire
*/
function info_annuaire($valeur) {
// Petit code pour recupere le num de dpt a partir du cp pour les français
if (preg_match('/^(?:fr|mc)$/', $valeur['pays'])) {
if (preg_match('/(\d{2})\d{3}/', $valeur['cp'], $match)) {
$valeur['dpt'] = $match[1];
if (preg_match('/((?:97|98)\d)\d{2}/', $valeur['cp'], $match2)) {
$valeur['dpt'] = $match2[1];
}
}
}
$tableau = array (
INS_CHAMPS_ID => nextId(INS_ANNUAIRE, INS_CHAMPS_ID, $GLOBALS['ins_db']),
INS_CHAMPS_NOM => addslashes($valeur['nom']),
INS_CHAMPS_PRENOM => addslashes($valeur['prenom']),
INS_CHAMPS_PAYS => $valeur['pays'],
INS_CHAMPS_CODE_POSTAL => $valeur['cp'],
INS_CHAMPS_DPT => $valeur['dpt'],
INS_CHAMPS_VILLE => addslashes($valeur['ville']),
INS_CHAMPS_ADRESSE_1 => addslashes($valeur['adresse_1']),
INS_CHAMPS_ADRESSE_2 => addslashes($valeur['adresse_2']),
INS_CHAMPS_REGION => addslashes($valeur['region']),
INS_CHAMPS_SITE_WEB => $valeur['site'],
'U_FONCTION' => addslashes($valeur['fonction']),
'U_NIV' => $valeur['niveau'],
'U_ACT' => $valeur['activite'],
'U_ASS' => $valeur['asso'],
'U_SPE' => addslashes($valeur['specialite']),
'U_GEO' => addslashes($valeur['specialite_geo'])
);
if (INS_UTILISE_LISTE){
$tableau[INS_CHAMPS_LETTRE] = $valeur['lettre'];
}
return $tableau ;
}
 
/** formulaire_defaults () - Renvoie un tableau avec les valeurs par défaut du formulaire d'inscription
*
* @return array Valeurs par défaut du formulaire d'inscription
*/
function formulaire_defaults () {
$requete = 'SELECT '.INS_ANNUAIRE.'.* '.
'FROM '.INS_ANNUAIRE.' '.
'WHERE '.INS_ANNUAIRE.'.'.INS_CHAMPS_ID.'= "'.$GLOBALS['AUTH']->getAuthData (INS_CHAMPS_ID).'"' ;
$resultat = $GLOBALS['ins_db']->query ($requete) ;
if (DB::isError($resultat)) {
die ($resultat->getMessage().'<br />'.$resultat->getDebugInfo()) ;
}
$ligne = $resultat->fetchRow(DB_FETCHMODE_ASSOC) ;
$valeurs_par_defaut = array() ;
$valeurs_par_defaut['email'] = $ligne[INS_CHAMPS_MAIL];
$valeurs_par_defaut['nom'] = $ligne[INS_CHAMPS_NOM];
$valeurs_par_defaut['prenom'] = $ligne[INS_CHAMPS_PRENOM] ;
$valeurs_par_defaut['pays'] = $ligne[INS_CHAMPS_PAYS] ;
$valeurs_par_defaut['nomwiki'] = $ligne[INS_CHAMPS_LOGIN] ;
$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['region'] = $ligne[INS_CHAMPS_REGION] ;
$valeurs_par_defaut['structure'] = $ligne[INS_CHAMPS_STRUCTURE] ;
$valeurs_par_defaut['site'] = $ligne['U_WEB'] ;
$valeurs_par_defaut['organisme'] = $ligne['U_TITLE'] ;
$valeurs_par_defaut['fonction'] = $ligne['U_FONCTION'] ;
$valeurs_par_defaut['niveau'] = $ligne['U_NIV'] ;
$valeurs_par_defaut['activite'] = $ligne['U_ACT'] ;
$valeurs_par_defaut['asso'] = $ligne['U_ASS'] ;
$valeurs_par_defaut['specialite'] = $ligne['U_SPE'] ;
$valeurs_par_defaut['specialite_geo'] = $ligne['U_GEO'] ;
if (INS_UTILISE_LISTE){
$valeurs_par_defaut['lettre'] = $ligne[INS_CHAMPS_LETTRE] ;
}
return $valeurs_par_defaut ;
}
 
function info() {
$requete = 'SELECT * from '.INS_ANNUAIRE.', '.INS_TABLE_PAYS.', annuaire_LABEL_ACT, annuaire_LABEL_NIV, annuaire_LABEL_ASS '.
'WHERE '.INS_ANNUAIRE.'.'.INS_CHAMPS_ID.'="'.$GLOBALS['AUTH']->getAuthData(INS_CHAMPS_ID).'" '.
'AND '.INS_CHAMPS_PAYS.'='.INS_CHAMPS_ID_PAYS.' '.
'AND U_ACT=ID_LABEL_ACT '.
'AND U_NIV=ID_LABEL_NIV '.
'AND U_ASS=ID_LABEL_ASS ';
$resultat = $GLOBALS['ins_db'] -> query ($requete) ;
if (DB::isError ($resultat)) {
die ($resultat->getMessage().'<br />'.$resultat->getDebugInfo()) ;
}
 
$ligne = $resultat->fetchRow (DB_FETCHMODE_ASSOC) ;
$res = '<h1 class="inscription_titre1">'.INS_MESSAGE_BIENVENU."</h1>\n" ;
$res .= "<h2 class=\"inscription_titre2\">".INS_FICHE_PERSONNELLE."</h2>\n" ;
$res .= '<dl>' ;
$res .= ligne_inscription (INS_EMAIL, $ligne[INS_CHAMPS_MAIL]) ;
$res .= ligne_inscription (INS_NOM, $ligne[INS_CHAMPS_NOM]) ;
$res .= ligne_inscription (INS_PRENOM, $ligne[INS_CHAMPS_PRENOM]) ;
$res .= ligne_inscription (INS_ADRESSE_1, $ligne[INS_CHAMPS_ADRESSE_1]) ;
$res .= ligne_inscription (INS_ADRESSE_2, $ligne[INS_CHAMPS_ADRESSE_2]) ;
$res .= ligne_inscription (INS_REGION, $ligne[INS_CHAMPS_REGION]) ;
$res .= ligne_inscription (INS_CODE_POSTAL, $ligne[INS_CHAMPS_CODE_POSTAL]) ;
$res .= ligne_inscription (INS_VILLE, $ligne[INS_CHAMPS_VILLE]) ;
$res .= ligne_inscription (INS_PAYS, $ligne[INS_CHAMPS_LABEL_PAYS]) ;
$res .= ligne_inscription (INS_SITE_INTERNET, $ligne[INS_CHAMPS_SITE_WEB]) ;
if($ligne[INS_CHAMPS_LETTRE]) {
$res .= ligne_inscription (INS_LETTRE_INSCRIT, INS_LETTRE_INSCRIT_OUI) ;
}
else {
$res .= ligne_inscription (INS_LETTRE_INSCRIT, INS_LETTRE_INSCRIT_NON) ;
}
$res .= '</dl>' ;
//$res .= "<div>".INS_NOM_WIKI." : ".$ligne[INS_CHAMPS_LOGIN]."</div>\n" ;
$res .= '<h2 class="inscription_titre2">'.INS_ADHERENT.'</h2>' ;
$res .= '<dl>' ;
$res .= ligne_inscription (INS_ORGANISME, $ligne['U_TITLE']) ;
$res .= ligne_inscription (INS_FONCTION, $ligne['U_FONCTION']) ;
$res .= '</dl>' ;
$res .= '<h2 class="inscription_titre2">'.INS_ETES_BOTANISTE.'</h2>' ;
$res .= '<div>'.$ligne['LABEL_NIV'].'</div>'."\n" ;
$res .= '<h2 class="inscription_titre2">'.INS_ACTIVITE_PROFESSIONNELLE.'</h2>' ;
$res .= '<div>'.$ligne['LABEL_ACT'].'</div>'."\n" ;
$res .= '<h2 class="inscription_titre2">'.INS_MEMBRE_ASSO.'</h2>' ;
$res .= '<div>'.$ligne['LABEL_ASS'].'</div>'."\n" ;
$res .= '<h2 class="inscription_titre2">'.INS_SPECIALISTE.'</h2>' ;
$res .= '<div>'.$ligne['U_SPE'].'</div>'."\n" ;
$res .= '<h2 class="inscription_titre2">'.INS_SPE_ZONE.'</h2>' ;
$res .= '<div>'.$ligne['U_GEO'].'</div>'."\n" ;
return $res ;
}
 
/**
*
*
* @return
*/
function ligne_inscription ($label, $valeur)
{
if ($valeur == '') {
$valeur = '&nbsp;' ;
}
return '<dt>'.$label.'</dt><dd>'.$valeur.'</dd>' ;
}
 
function bouton($url)
{
$boutons = new HTML_QuickForm('inscription', 'post', $url) ; ;
//confirmation() ;
$buttons[] = &HTML_QuickForm::createElement('submit', 'modifier', INS_MODIFIER_INSCRIPTION);
$buttons[] = &HTML_QuickForm::createElement('submit', 'supprimer', INS_SUPPRIMER_INSCRIPTION,
array ('onclick' => "javascript:return confirm('".INS_SUPPRIMER_INSCRIPTION." ?');"));
$boutons->addGroup($buttons, null, null, '&nbsp;');
$boutons->addElement('hidden', 'id_utilisateur', $GLOBALS['AUTH']->getAuthData (INS_CHAMPS_ID));
return $boutons->toHTML();
}
 
/**
* Renvoie un lien pour se déconnex=cter
*
* @return string
*/
function deconnexion ($url)
{
// Un champs logout
return '<div><a href="'.$url.'&amp;logout=1">'.INS_DECONNEXION.'</a></div>';
}
 
function verif_doublonMail($mail)
{
if (isset ($GLOBALS['AUTH']) && $GLOBALS['AUTH']->getAuthData(INS_CHAMPS_ID) != '') {
$requete_mail = "select ".INS_CHAMPS_MAIL." from ".INS_ANNUAIRE." where ".INS_CHAMPS_ID."=".$GLOBALS['AUTH']->getAuthData(INS_CHAMPS_ID) ;
$resultat_mail = $GLOBALS['ins_db']->query($requete_mail) ;
if (DB::isError ($resultat_mail)) {
die ("Echec de la requete : $requete_mail<br />".$resultat_mail->getMessage()) ;
}
$ligne_mail = $resultat_mail->fetchRow(DB_FETCHMODE_ASSOC) ;
if ($mail == $ligne_mail[INS_CHAMPS_MAIL]) {
return true ;
}
}
$requete = "select ".INS_CHAMPS_MAIL." from ".INS_ANNUAIRE." where ".INS_CHAMPS_MAIL."= \"$mail\"" ;
$resultat = $GLOBALS['ins_db']->query ($requete) ;
if (DB::isError ($resultat)) {
die ($resultat->getMessage().'<br />'.$resultat->getDebugInfo()) ;
}
if ($resultat->numRows() == 0) {
return true ;
}
return false ;
}
 
function envoie_passe()
{
$headers['From'] = INS_MAIL_ADMIN_APRES_INSCRIPTION ;
$headers['Subject'] = INS_NOUVEAU_MOT_DE_PASSE;
 
$nouveau_passe = create_new_random(6) ;
 
$body = INS_NOUVEAU_MOT_DE_PASSE_2.$nouveau_passe ;
$body .= INS_NOUVEAU_MOT_DE_PASSE_LAIUS ;
 
// modification du mot de passe dans la base
$requete = "update ".INS_ANNUAIRE." set ".INS_CHAMPS_PASSE."=MD5(\"$nouveau_passe\") where ".INS_CHAMPS_MAIL."=\"".$_POST['nom_d_utilisateur']."\"" ;
 
$resultat = $GLOBALS['ins_db']->query($requete) ;
if (DB::isError($resultat)) {
die ("Echec de la requete<br />".$resultat->getMessage()."<br />".$resultat->getDebugInfo()) ;
}
// On teste si l'email est présent dans la base
if ($GLOBALS['ins_db']->affectedRows() == 0) {
return '<div class="erreur">Il n\'y a pas d\'inscrit avec cet email</div>'."\n" ;
}
 
// création du mail
if (!mail ($_POST['nom_d_utilisateur'], $headers['Subject'], $body)) {
return 'erreur lors de l\'envoie de mail' ;
}
 
return "<div class=\"titre1_inscription\">".INS_MOT_DE_PASSE_ENVOYE_1." ".$_POST['nom_d_utilisateur']."</div>\n".
"<div><br>".INS_MOT_DE_PASSE_ENVOYE_2."</div>\n";
}
 
/**
*
* @global ins_db Un pointeur vers un objet PEAR::DB connecté
* @return
*/
function envoie_mail()
{
$requete = 'SELECT *, '.INS_CHAMPS_LABEL_PAYS.' '.
'FROM '.INS_ANNUAIRE.','.INS_TABLE_PAYS.', annuaire_LABEL_ACT, annuaire_LABEL_NIV, annuaire_LABEL_ASS '.
'WHERE '.INS_CHAMPS_MAIL.' = "'.$GLOBALS['AUTH']->getUsername().'" '.
'AND '.INS_CHAMPS_ID_PAYS.'='.INS_CHAMPS_PAYS.' '.
'AND U_ACT=ID_LABEL_ACT '.
'AND U_NIV=ID_LABEL_NIV '.
'AND U_ASS=ID_LABEL_ASS ';
$resultat = $GLOBALS['ins_db']->query($requete);
if (DB::isError ($resultat)) {
die ("Echec de la requete : $requete<br />".$resultat->getMessage());
}
$ligne = $resultat->fetchRow(DB_FETCHMODE_ASSOC);
$body = INS_MAIL_COORD_CORPS."\n" ;
$body .= "------------------------------------------\n";
$body .= INS_EMAIL.unhtmlentities($ligne[INS_CHAMPS_MAIL])." \n" ;
$body .= INS_NOM.unhtmlentities($ligne[INS_CHAMPS_NOM])." \n" ;
$body .= unhtmlentities(INS_PRENOM).unhtmlentities($ligne[INS_CHAMPS_PRENOM])." \n" ;
$body .= INS_PAYS.unhtmlentities($ligne[INS_CHAMPS_LABEL_PAYS])." \n" ;
$body .= INS_ADRESSE_1.unhtmlentities($ligne[INS_CHAMPS_ADRESSE_1])." \n" ;
$body .= INS_ADRESSE_2.unhtmlentities($ligne[INS_CHAMPS_ADRESSE_2])." \n" ;
$body .= unhtmlentities(INS_REGION).unhtmlentities($ligne[INS_CHAMPS_REGION])." \n" ;
$body .= INS_CODE_POSTAL.unhtmlentities($ligne[INS_CHAMPS_CODE_POSTAL])." \n" ;
$body .= INS_VILLE.unhtmlentities($ligne[INS_CHAMPS_VILLE])." \n" ;
$body .= INS_SITE_INTERNET.unhtmlentities($ligne[INS_CHAMPS_SITE_WEB])." \n" ;
$body .= INS_ORGANISME.unhtmlentities($ligne['U_TITLE'])." \n" ;
$body .= INS_FONCTION.unhtmlentities($ligne['U_FONCTION'])." \n" ;
$body .= unhtmlentities(INS_ETES_BOTANISTE).unhtmlentities($ligne['LABEL_NIV'])." \n" ;
$body .= unhtmlentities(INS_ACTIVITE_PROFESSIONNELLE).unhtmlentities($ligne['LABEL_ACT'])." \n" ;
$body .= unhtmlentities(INS_MEMBRE_ASSO).unhtmlentities($ligne['LABEL_ASS'])." \n" ;
$body .= unhtmlentities(INS_SPECIALISTE).unhtmlentities($ligne['U_SPE'])." \n" ;
$body .= unhtmlentities(INS_SPE_ZONE).unhtmlentities($ligne['U_GEO'])." \n" ;
$body .= "-------------------------------------------\n" ;
 
// Envoi du mail aux administrateur du site
if ($ligne[INS_CHAMPS_MAIL] != '') {
$headers ['From'] = INS_MAIL_ADMIN_APRES_INSCRIPTION;
$headers ['Reply-To'] = INS_MAIL_ADMIN_APRES_INSCRIPTION;
$headers ['Subject'] = INS_MAIL_COORD_SUJET;
$mail =& Mail::factory('mail') ;
$mail->send($ligne[INS_CHAMPS_MAIL], $headers, $body) ;
// Pour les admins
$body .= INS_MESSAGE_APPLI."\n" ;
foreach ($GLOBALS['mail_admin'] as $administrateur) {
$envoi = $mail->send($administrateur, $headers, $body) ;
if (PEAR::isError($envoi)) {
trigger_error($envoi->getMessage(), E_USER_WARNING);
}
}
}
return true ;
}
 
/**
*
*
* @return
*/
 
function message_inscription () {
return INS_MESSAGE_INSCRIPTION;
}
 
/**
* Inscrit un adhérent à la lettre d'actualité par l'envoie d'un email subscribe / unsubscribe
* à la liste
*
* @global AUTH Un objet PEAR::Auth
* @return boolean true en cas de succès
*/
function inscription_lettre ($action) {
$mail =& Mail::factory('smtp');
$email = $GLOBALS['AUTH']->getUsername();
$headers ['Return-Path'] = $email;
$headers ['From'] = '<'.$email.'>';
$headers ['Subject'] = $action;
$headers ['Reply-To'] = $email;
$mail->send($action, $headers, '');
if (PEAR::isError($mail)) {
echo '<p class="erreur">Le mail n\'est pas parti...</p>';
return false;
}
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 ($nom, $prenom) {
// 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 = $nom.$prenom ;
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 ;
}
 
/**
*
*
* @return
*/
function trim_non_ascii ($nom) {
$premiere_lettre = true ;
for ($i = 0; $i < strlen ($nom); $i++) {
if (!preg_match ('/[a-zA-Z0-9]/', $nom[$i])) {
// str_replace ($nom[$i], '_', $nom, 1) ;
}
// 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 = trim ($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);
}
 
/* ***********************************
create_new_random($n,$type) permet de générer un nombre de caractères aléatoires.
 
ENTREE :
- $n : créer un 'mot' de $n caractères
- $type : permet de définir la liste des caractères disponibles
 
SORTIE : chaine de $n caractères pris dans une liste $type
*********************************** */
function create_new_random($n,$type="")
{
$str = "";
 
switch ($type){
//liste des caractères possibles en virant ceux qui se ressemblent (ijl1oO0)
// case "":
// {
// }
// break;
default:{
$chaine = "abcdefghkmnpqrstuvwxyzABCDEFGHKLMNPQRSTUVWXYZ23456789";
}
break;
}
srand((double)microtime()*1000000);
for($i = 0; $i < $n; $i++){
$str .= $chaine[rand()%strlen($chaine)];
}
return "$str";
}
 
//==============================================================================
/** function nextId () Renvoie le prochain identifiant numérique libre d'une table
*
* On passe en paramètre le nom de la table et l'identifiant de la base selon PEAR DB
*
* @param mixed handler de connexion
* @param string Nom de la table
* return interger l'identifiant
*/
 
function nextId ($table, $colonne_identifiant, $db)
{
$requete = "select MAX($colonne_identifiant) as maxi from $table" ;
$resultat = $db->query($requete) ;
if (DB::isError($resultat)) {
die (__FILE__ . __LINE__ . $resultat->getMessage() . $requete);
return $db->raiseError($resultat) ;
}
if ($resultat->numRows() > 1) {
return $db->raiseError("<br/>La table $table a un identifiant non unique<br/>") ;
}
$ligne = $resultat->fetchRow(DB_FETCHMODE_OBJECT) ;
return $ligne->maxi + 1 ;
}
?>
Property changes:
Added: svn:executable
+*
\ No newline at end of property
/trunk/client/inscription/bibliotheque/ins_spip.fonct.php
New file
0,0 → 1,104
<?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_spip.fonct.php,v 1.1 2005/03/04 10:39:30 tam Exp $
/**
* Fonctions wikini
*
* Ce fichier propose 3 fonctions pour intervenir sur la table interwikini_users.
*
*@package inscription
*@subpackage fonctions_wikini
//Auteur original :
*@author Alexandre Granier <alexandre@tela-botanica.org>
//Autres auteurs :
*@author Aucun
*@copyright Tela-Botanica 2000-2004
*@version $Revision: 1.1 $ $Date: 2005/03/04 10:39:30 $
// +------------------------------------------------------------------------------------------------------+
*/
 
// +------------------------------------------------------------------------------------------------------+
// | ENTETE du PROGRAMME |
// +------------------------------------------------------------------------------------------------------+
 
// +------------------------------------------------------------------------------------------------------+
// | LISTE de FONCTIONS |
// +------------------------------------------------------------------------------------------------------+
 
function inscription_spip($id, $valeurs)
{
// Requete pour inscrire dans SPIP
$requete = "insert into ".INS_BDD_SPIP.".spip_auteurs set id_auteur=$id, nom=\"".$valeurs['prenom']." ".$valeurs['nom'].
"\",email=\"".$valeurs['email']."\",login=\"".$valeurs['email'].
"\", pass=\"".md5($valeurs['mot_de_passe'])."\", statut=\"1comite\", lang=\"".
strtolower($valeurs['pays'])."\"" ;
$GLOBALS['ins_db']->query($requete) ;
 
}
 
function mod_inscription_spip($id)
{
global $HTTP_POST_VARS ;
//BIEN METTRE alea_actuel, htpass ET alea_futur À ""
$requete = "update ".INS_BDD_SPIP.".spip_auteurs set nom=\"".$HTTP_POST_VARS['prenom']." ".$HTTP_POST_VARS['nom'].
"\",email=\"".$HTTP_POST_VARS['email']."\",login=\"".$HTTP_POST_VARS['email'].
"\", pass=\"".md5($HTTP_POST_VARS['mot_de_passe'])."\", htpass=\"\", alea_actuel=\"\", alea_futur=\"\", lang=\"en\" where id_auteur=$id" ;
//echo $requete;
$GLOBALS['ins_db']->query($requete) ;
}
 
function desinscription_spip($id_utilisateur)
{
//BIEN METTRE alea_actuel, htpass ET alea_futur À ""
$requete = 'DELETE FROM '.INS_BDD_SPIP.'.spip_auteurs WHERE id_auteur='.$id_utilisateur ;
//echo $requete;
$resultat = $GLOBALS['ins_db']->query ($requete) ;
if (DB::isError ($resultat)) {
return "Echec de la requete : $requete<br />".$resultat->getMessage() ;
}
}
 
 
 
/* +--Fin du code ----------------------------------------------------------------------------------------+
*
* $Log: ins_spip.fonct.php,v $
* Revision 1.1 2005/03/04 10:39:30 tam
* installation
*
* 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 ----------------------------------------------------------------------------------------+
*/
 
 
 
 
?>
Property changes:
Added: svn:executable
+*
\ No newline at end of property
/trunk/client/inscription/langues/ins_langue_en.inc.php
New file
0,0 → 1,114
<?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_langue_en.inc.php,v 1.1 2004/07/06 15:42:17 alex Exp $
/**
* Fichier de traduction en anglais de l'application inscription
*
* Fichier de traduction en anglais de l'application inscription
*
*@package inscription
//Auteur original :
*@author Alexandre GRANIER <alexandre@tela-botanica.org>
//Autres auteurs :
*@author Aucun
*@copyright Tela-Botanica 2000-2004
*@version $Revision: 1.1 $ $Date: 2004/07/06 15:42:17 $
// +------------------------------------------------------------------------------------------------------+
*/
 
define ("INS_NOM", "Name :") ;
define ("INS_PRENOM", "First name") ;
define ("INS_PAYS", "Country:") ;
define ("INS_LANGUES_PARLES", "Languages spoken :") ;
define ("INS_EMAIL", "E-mail :") ;
define ("INS_MOT_DE_PASSE", "Password:") ;
define ("INS_REPETE_MOT_DE_PASSE", "Repeat the password :") ;
define ("INS_ANNULER", "Cancel") ;
define ("INS_RETABLIR", "Restore") ;
define ("INS_VALIDER", "Validate") ;
define ("INS_MOTS_DE_PASSE_DIFFERENTS", "The two passwords are different !") ;
define ("INS_EMAIL_REQUIS", "You must enter your e-mail.") ;
define ("INS_MOT_DE_PASSE_REQUIS", "You must enter your password.") ;
 
define ("INS_MAIL_INCORRECT", "E-mail addresses must be in the following format, user@domain.ext") ;
define ("INS_MAIL_DOUBLE", "This e-mail has already been used") ;
define ("INS_NOTE_REQUIS", "Indicate the required fields") ;
define ("INS_MODIFIER_INSCRIPTION", "Modify your registration") ;
define ("INS_SUPPRIMER_INSCRIPTION", "Cancel your registration") ;
define ("INS_MESSAGE_BIENVENU", "You are registered to i-twinning ") ;
define ("INS_FICHE_PERSONNELLE", "Personal form") ;
define ("INS_DECONNEXION", "Logout") ;
define ("INS_INSCRIPTION", "Registration") ;
define ("INS_TEXTE_PERDU", "If you forgot your password, enter your e-mail address in the Login ".
"field below and click on Validate") ;
define ("INS_NOM_WIKI", "Wiki name") ;
define ("INS_MAUVAIS_NOM_WIKI", "The wiki name is not valid (ex : NameFirstname)") ;
define ("INS_DEJA_INSCRIT", "If you are already registered :") ;
define ("INS_ERREUR_LOGIN", "Unknown user or invalid password") ;
define ("INS_SI_PASSE_PERDU", "If you forgot your password") ;
define ("INS_INDIQUE_ADRESSE", "Enter your e-mail address in the field below.<br>\n".
"A new password will be sent to you ") ;
define ("INS_ENVOIE_PASSE", "Password e-mailing") ;
define ("INS_LAIUS_INSCRIPTION", "Click here for registration") ;
 
//============= L'envoie du mot de passe perdu par mail =============================
define ("INS_NOUVEAU_MOT_DE_PASSE", "Your new i-twinning password") ;
define ("INS_NOUVEAU_MOT_DE_PASSE_2", "Your new password : ") ;
define ("INS_NOUVEAU_MOT_DE_PASSE_LAIUS", "\n\n This password allows you to modify your personnal informations\n".
"in the i-t website\n.".
"http://www.vecam.org/i-j/\n\n") ;
define ("INS_MOT_DE_PASSE_ENVOYE_1", "Your new password has been sent to the address ") ;
define ("INS_MOT_DE_PASSE_ENVOYE_2", "Check your mail, remember your password and register again. Don't ".
"hesitate to change this password and replace it by an easier one.") ;
//============= L'envoie d'un mail de confirmation ===================================
// Ne pas utiliser d'entités HTML
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.vecam.org/i-j/\n".
"rubrique Inscription.\n\n".
"L'équipe I-Jumelage.") ;
 
// Envoir d'un mail à la coordination
define ("INS_MAIL_COORD_SUJET", "A new registration on the I-Twinning") ;
define ("INS_MAIL_COORD_CORPS", "A new registration on the I-Twinning") ;
/* +--Fin du code ----------------------------------------------------------------------------------------+
*
* $Log: ins_langue_en.inc.php,v $
* Revision 1.1 2004/07/06 15:42:17 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 ----------------------------------------------------------------------------------------+
*/
?>
 
Property changes:
Added: svn:executable
+*
\ No newline at end of property
/trunk/client/inscription/langues/ins_langue_es.inc.php
New file
0,0 → 1,110
<?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_langue_es.inc.php,v 1.1 2004/07/06 15:42:17 alex Exp $
/**
* Fichier de traduction en français de l'application inscription
*
* Fichier de traduction en français de l'application inscription
*
*@package inscription
//Auteur original :
*@author Alexandre GRANIER <alexandre@tela-botanica.org>
//Autres auteurs :
*@author Aucun
*@copyright Tela-Botanica 2000-2004
*@version $Revision: 1.1 $ $Date: 2004/07/06 15:42:17 $
// +------------------------------------------------------------------------------------------------------+
*/
 
define ("INS_NOM", "Apellido") ;
define ("INS_PRENOM", "Nombre") ;
define ("INS_PAYS", "Pais") ;
define ("INS_LANGUES_PARLES", "Idiomas hablados") ;
define ("INS_EMAIL", "Correo electronico") ;
define ("INS_MOT_DE_PASSE", "Contraseña") ;
define ("INS_REPETE_MOT_DE_PASSE", "Repetir la contraseña") ;
define ("INS_ANNULER", "Cancelar") ;
define ("INS_RETABLIR", "Restablecer") ;
define ("INS_VALIDER", "Ingresar") ;
define ("INS_MOTS_DE_PASSE_DIFFERENTS", "Las contraseñas son diferentes!") ;
define ("INS_EMAIL_REQUIS", "Debe ingresar un correo electronico") ;
define ("INS_MOT_DE_PASSE_REQUIS", "Debe ingresar una contraseña.") ;
define ("INS_MAIL_INCORRECT", "El correo electronico debe tener una forma correcta, utilizador@domaine.ext") ;
define ("INS_MAIL_DOUBLE", "Este correo electronico ya es utilizado por otra persona") ;
define ("INS_NOTE_REQUIS", "Indicar los espacios requeridos") ;
define ("INS_MODIFIER_INSCRIPTION", "Modificar su inscripccion") ;
define ("INS_SUPPRIMER_INSCRIPTION", "Cancelar su inscripcion") ;
define ("INS_MESSAGE_BIENVENU", "Esta inscrito en I-Enlace") ;
define ("INS_FICHE_PERSONNELLE", "Ficha personal") ;
define ("INS_DECONNEXION", "Desconectar") ;
define ("INS_INSCRIPTION", "Inscripcion") ;
define ("INS_TEXTE_PERDU", "Si ha perdido su contraseña, indique su correo electronico en el espaciologin y haga clic en Ingresar") ;
define ("INS_NOM_WIKI", "Nombre wiki") ;
define ("INS_MAUVAIS_NOM_WIKI", "El nombre wiki no es valido (ex: NomPrenom)") ;
define ("INS_DEJA_INSCRIT", "Si ya esta inscrito") ;
define ("INS_ERREUR_LOGIN", "Utilizador desconocido o contraseña incorrecta") ;
define ("INS_SI_PASSE_PERDU", "Si ha perdido su contraseña ") ;
define ("INS_INDIQUE_ADRESSE", "indique su correo electronico en el espacio que sigue. Una nueva contraseñale sera enviada.") ;
define ("INS_LAIUS_INSCRIPTION", "Si no est&agrave; inscrito, haga clic en inscripci&oacute;n") ;
define ("INS_ENVOIE_PASSE", "Envio de la contraseña por correo electronico") ;
 
//=================== Envio de la contraseña perdida por correo electronico========================
 
define ("INS_NOUVEAU_MOT_DE_PASSE", "Su nueva contraseña I-Enlaces") ;
define ("INS_NOUVEAU_MOT_DE_PASSE_2", "Su nueva contraseña:") ;
define ("INS_NOUVEAU_MOT_DE_PASSE_LAIUS", "Esta contraseña le permite modificar las informaciones que le conciernen enel sitio de I-Enlace.Su nueva contraseña es enviada a la direccion") ;
define ("INS_MOT_DE_PASSE_ENVOYE_1", "Rebice su correo electronico, anote su nueva contraseña e idenfiquedirigiendose de nuevo a la inscripcion.No dude en cambiar esta contraseña para poner una mas simple y mas facil aretener. ") ;
 
//============= L'envoie d'un mail de confirmation ===================================
// Ne pas utiliser d'entités HTML
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.vecam.org/i-j/\n".
"rubrique Inscription.\n\n".
"L'équipe I-Jumelage.") ;
// Envoir d'un mail à la coordination
define ("INS_MAIL_COORD_SUJET", "Un nouvel inscrit à I-Twinning") ;
define ("INS_MAIL_COORD_CORPS", "Un nouvel inscrit à I-Twinning") ;
/* +--Fin du code ----------------------------------------------------------------------------------------+
*
* $Log: ins_langue_es.inc.php,v $
* Revision 1.1 2004/07/06 15:42:17 alex
* en cours
*
* Revision 1.4 2004/06/30 10:00:59 alex
* traduction
*
* 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 ----------------------------------------------------------------------------------------+
*/
?>
Property changes:
Added: svn:executable
+*
\ No newline at end of property
/trunk/client/inscription/langues/ins_langue_fr.inc.php
New file
0,0 → 1,149
<?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_langue_fr.inc.php,v 1.3 2005/03/21 16:50:45 alex Exp $
/**
* Fichier de traduction en français de l'application inscription
*
* Fichier de traduction en français de l'application inscription
*
*@package inscription
//Auteur original :
*@author Alexandre GRANIER <alexandre@tela-botanica.org>
//Autres auteurs :
*@author Aucun
*@copyright Tela-Botanica 2000-2004
*@version $Revision: 1.3 $ $Date: 2005/03/21 16:50:45 $
// +------------------------------------------------------------------------------------------------------+
*/
 
define ("INS_AJOUT_MEMBRE", "Remplissez le formulaire ci-dessous pour vous inscrire") ;
define ('INS_MODIF_MEMBRE', 'Modification de vos informations');
define ("INS_NOM", "Nom : ") ;
define ("INS_NOM_REQUIS", "Indiquez votre nom.") ;
define ("INS_PRENOM", "Pr&eacute;nom : ") ;
define ("INS_PRENOM_REQUIS", "Veuillez indiquer votre prénom.") ;
define ("INS_PAYS", "Pays : ") ;
define ("INS_LANGUES_PARLES", "Langues parl&eacute;s") ;
define ("INS_EMAIL", "Adresse mail : ") ;
define ("INS_MOT_DE_PASSE", "Mot de passe :") ;
define ("INS_REPETE_MOT_DE_PASSE", "R&eacute;p&eacute;ter le mot de passe : ") ;
define ("INS_ADRESSE_1", "Adresse : ") ;
define ("INS_ADRESSE_2", "Adresse (suite) : ") ;
define ("INS_REGION", "R&eacute;gion / province : ") ;
define ("INS_CODE_POSTAL", "Code postal : ") ;
define ("INS_CODE_POSTAL_REQUIS", "Indiquez votre code postal.") ;
define ("INS_VILLE", "Ville : ") ;
define ("INS_VILLE_REQUIS", "Indiquez votre ville.") ;
define ("INS_SITE_INTERNET", "Site web personnel : ") ;
define ("INS_LETTRE", "Je souhaite recevoir la lettre d'actualités de Tela Botanica") ;
define ("INS_LETTRE_INSCRIT", "Inscrit &agrave; la lettre d'actualit&eacute;s : ") ;
define ("INS_LETTRE_INSCRIT_OUI", "oui") ;
define ("INS_LETTRE_INSCRIT_NON", "non") ;
define ("INS_ADHERENT", "Vous &ecirc;tes adh&eacute;rents de personnes morales (associations, institutions, entreprise... ) : ") ;
define ("INS_ORGANISME", "Organisme : ") ;
define ("INS_FONCTION", "Fonction : ") ;
define ("INS_ETES_BOTANISTE", "Vous &ecirc;tes botaniste : ") ;
define ("INS_ACTIVITE_PROFESSIONNELLE", "Votre activit&eacute; professionnelle (ou celle que vous aviez) : ") ;
define ("INS_MEMBRE_ASSO", "Vous &ecirc;tes membre d'une association botanique, naturaliste, ou autre... : ") ;
define ("INS_SPECIALISTE", "Vous &ecirc;tes sp&eacute;cialiste d'une discipline ou d'un groupe de plantes particulier, lequel : ") ;
define ("INS_SPE_ZONE", "Vous &egrave;tes sp&eacute;cialiste d'une zone g&eacute;ographique, laquelle : ") ;
define ("INS_ANNULER", "Annuler") ;
define ("INS_RETABLIR", "Rétablir") ;
define ("INS_VALIDER", "Valider") ;
define ("INS_MOTS_DE_PASSE_DIFFERENTS", "Les mots de passe sont diff&eacute;rents !") ;
define ("INS_EMAIL_REQUIS", "Vous devez saisir un email.") ;
define ("INS_MOT_DE_PASSE_REQUIS", "Vous devez saisir un mot de passe.") ;
define ("INS_MAIL_INCORRECT", "L'email doit avoir une forme correcte, utilisateur@domaine.ext") ;
define ("INS_MAIL_DOUBLE", "Cet email est d&eacute;j&agrave utilis&eacute; par quelqu'un d'autre") ;
define ("INS_NOTE_REQUIS", "Indique les champs requis") ;
define ("INS_ACCUEIL_INSCRIPTION", "Inscription au réseau Tela Botanica") ;
define ("INS_MODIFIER_INSCRIPTION", "Modifier votre inscription") ;
define ("INS_SUPPRIMER_INSCRIPTION", "Supprimer votre inscription") ;
define ("INS_MESSAGE_BIENVENU", "Vous &ecirc;tes inscrit &agrave; Tela Botanica") ;
define ('INS_MESSAGE_EXPIRATION', 'Votre demande a expiré, veuillez ressaisir le formulaire d\'inscription.') ;
define ("INS_FICHE_PERSONNELLE", "Fiche personnelle") ;
define ("INS_DECONNEXION", 'D&eacute;connexion') ;
define ("INS_INSCRIPTION", 'Inscription') ;
define ("INS_MDP_PERDU_TITRE", "Perte ou oubli de mot de passe");
define ("INS_MDP_PERDU_TITRE_RETENTER", "Vous pouvez aussi essayer à nouveau de vous identifier...");
 
define ("INS_TEXTE_PERDU", "Si vous avez perdu votre mot de passe, veuillez cliquer sur le lien suivant :") ;
define('INS_MDP_PERDU_OUBLI', 'perte de mot de passe');
define ("INS_DEJA_INSCRIT", "D&eacute;j&agrave;  inscrit, identifiez-vous pour acc&eacute;der &agrave;  votre fiche personnelle :") ;
define ("INS_ERREUR_LOGIN", "Utilisateur inconnu ou mot de passe erronn&eacute;") ;
define ("INS_SI_PASSE_PERDU", "Si vous avez perdu votre mot de passe") ;
define ("INS_INDIQUE_ADRESSE", "Indiquez dans le champs ci-dessous l'adresse email que vous avez utilisé pour vous inscrire au site.<br>\n".
"Un nouveau mot de passe vous sera envoyé.") ;
define ("INS_ENVOIE_PASSE", "Envoi du mot de passe par mail") ;
define ("INS_LAIUS_INSCRIPTION", "L'inscription est libre et gratuite !") ;
define ("INS_LAIUS_INSCRIPTION_2", "Elle vous permet de :</p>
<ul>
<li>consulter l'annuaire des personnes inscrites et pouvoir ainsi échanger des informations, </li>
<li>accéder à certaines informations diffusées sur le site, </li>
<li>recevoir une lettre électronique d'informations.</li>
</ul>
<p><strong>L'inscription à l'annuaire du site de Tela Botanica implique que vous soyez d'accord pour que votre nom, prénom, ville,
code postal et pays apparaissent en clair dans l'annuaire du site Internet de Tela Botanica, les autres informations restent confidentielles (courriel, adresse).</strong></p>
<p>En application des articles 39 et suivants de la loi du 6 janvier 1978 modifiée, vous bénéficiez d'un droit d'accès
et de rectification aux informations qui vous concernent.</p>
<p>Par la suite, il vous sera possible de modifier voire annuler votre inscription.<br />");
define ('INS_PIED_INFO', 'Si vous constatez des problèmes en utilisant cette application, veuillez contacter : ') ;
define ('INS_PIED_MAIL', 'webmestre@tela-botanica.org') ;
 
//============= L'envoie du mot de passe perdu par mail =============================
define ("INS_NOUVEAU_MOT_DE_PASSE", "Votre nouveau mot de passe Tela Botanica") ;
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 le site de Tela Botanica.\n".
"http://www.tela-botanica.org/\n\n") ;
define ("INS_MOT_DE_PASSE_ENVOYE_1", "Votre nouveau mot de passe a &eacute;t&eacute; ".
"envoy&eacute; &agrave; l'adresse") ;
define ("INS_MOT_DE_PASSE_ENVOYE_2", "Relevez votre messagerie, notez votre nouveau mot de passe et identifiez vous à ".
"nouveau en allant à l'inscription. N'h&eacute;sitez pas à changer ce mot de passe ".
"pour en mettre un plus simple, tr&egrave;s facile &agrave; retenir." );
//============= L'envoie d'un mail de confirmation ===================================
// Ne pas utiliser d'entités HTML
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.tela-botanica.org\n".
"rubrique Inscription.\n\n".
"L'équipe de Tela Botanica.") ;
 
// Envoir d'un mail à la coordination
define ("INS_MAIL_COORD_SUJET", "Un nouvel inscrit à Tela Botanica") ;
define ("INS_MAIL_COORD_CORPS", "Un nouvel inscrit à Tela Botanica") ;
define ('INS_MESSAGE_APPLI', 'Application INSCRIPTION');
define ("INS_MESSAGE_INSCRIPTION",
'<h1 class="titre1_inscription">Inscription au réseau Tela Botanica</h1>'."\n".
'<p class="information">Votre inscription a bien été prise en compte.</p>'."\n".
"<h2>Pour terminer votre inscription :</h2>\n".
"<p>Un message de confirmation vous a été envoyé à l'adresse e-mail que vous avez fournie. <br />\n".
"Ce message devrait arriver immédiatement mais cela peut prendre plusieurs dizaines de minutes. <br />\n".
"Lorsque vous l'aurez reçu, veuillez lire ce courriel et en suivre les instructions pour activer complètement votre inscription.</p>\n".
"<p>Ce courriel peut quelque fois être considéré comme du spam par votre lecteur de courriel. <br />\n".
"Veuillez vérifier votre anti-spam en cas de problème.</p>\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 Tela Botanica') ;
?>
Property changes:
Added: svn:executable
+*
\ No newline at end of property
/trunk/client/annuaire/bibliotheque/Words/lang.fr.php
New file
0,0 → 1,434
<?php
/* vim: set expandtab tabstop=4 shiftwidth=4: */
// +----------------------------------------------------------------------+
// | PHP version 4 |
// +----------------------------------------------------------------------+
// | Copyright (c) 1997-2003 The PHP Group |
// +----------------------------------------------------------------------+
// | This source file is subject to version 3.0 of the PHP license, |
// | that is bundled with this package in the file LICENSE, and is |
// | available through the world-wide-web at |
// | http://www.php.net/license/3_0.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. |
// +----------------------------------------------------------------------+
// | Authors: Kouber Saparev <kouber@php.net> |
// +----------------------------------------------------------------------+
//
// $Id: lang.fr.php,v 1.4 2004/10/22 18:22:52 kouber Exp $
 
/**
* Class for translating numbers into French.
*
* @author Kouber Saparev <kouber@php.net>
* @package Numbers_Words
*/
class Numbers_Words_fr extends Numbers_Words
{
 
// {{{ properties
 
/**
* Locale name.
* @var string
* @access public
*/
var $locale = 'fr';
 
/**
* Language name in English.
* @var string
* @access public
*/
var $lang = 'French';
 
/**
* Native language name.
* @var string
* @access public
*/
var $lang_native = 'Français';
 
/**
* The words for some numbers.
* @var string
* @access private
*/
var $_misc_numbers = array(
10=>'dix', // 10
'onze', // 11
'douze', // 12
'treize', // 13
'quatorze', // 14
'quinze', // 15
'seize', // 16
20=>'vingt', // 20
30=>'trente', // 30
40=>'quarante', // 40
50=>'cinquante',// 50
60=>'soixante', // 60
100=>'cent' // 100
);
 
 
/**
* The words for digits (except zero).
* @var string
* @access private
*/
var $_digits = array(1=>"un", "deux", "trois", "quatre", "cinq", "six", "sept", "huit", "neuf");
 
/**
* The word for zero.
* @var string
* @access private
*/
var $_zero = 'zéro';
 
/**
* The word for infinity.
* @var string
* @access private
*/
var $_infinity = 'infini';
 
/**
* The word for the "and" language construct.
* @var string
* @access private
*/
var $_and = 'et';
/**
* The word separator.
* @var string
* @access private
*/
var $_sep = ' ';
 
/**
* The dash liaison.
* @var string
* @access private
*/
var $_dash = '-';
 
/**
* The word for the minus sign.
* @var string
* @access private
*/
var $_minus = 'moins'; // minus sign
 
/**
* The plural suffix (except for hundred).
* @var string
* @access private
*/
var $_plural = 's'; // plural suffix
 
/**
* The suffixes for exponents (singular).
* @var array
* @access private
*/
var $_exponent = array(
0 => '',
3 => 'mille',
6 => 'million',
9 => 'milliard',
12 => 'trillion',
15 => 'quadrillion',
18 => 'quintillion',
21 => 'sextillion',
24 => 'septillion',
27 => 'octillion',
30 => 'nonillion',
33 => 'decillion',
36 => 'undecillion',
39 => 'duodecillion',
42 => 'tredecillion',
45 => 'quattuordecillion',
48 => 'quindecillion',
51 => 'sexdecillion',
54 => 'septendecillion',
57 => 'octodecillion',
60 => 'novemdecillion',
63 => 'vigintillion',
66 => 'unvigintillion',
69 => 'duovigintillion',
72 => 'trevigintillion',
75 => 'quattuorvigintillion',
78 => 'quinvigintillion',
81 => 'sexvigintillion',
84 => 'septenvigintillion',
87 => 'octovigintillion',
90 => 'novemvigintillion',
93 => 'trigintillion',
96 => 'untrigintillion',
99 => 'duotrigintillion',
102 => 'trestrigintillion',
105 => 'quattuortrigintillion',
108 => 'quintrigintillion',
111 => 'sextrigintillion',
114 => 'septentrigintillion',
117 => 'octotrigintillion',
120 => 'novemtrigintillion',
123 => 'quadragintillion',
126 => 'unquadragintillion',
129 => 'duoquadragintillion',
132 => 'trequadragintillion',
135 => 'quattuorquadragintillion',
138 => 'quinquadragintillion',
141 => 'sexquadragintillion',
144 => 'septenquadragintillion',
147 => 'octoquadragintillion',
150 => 'novemquadragintillion',
153 => 'quinquagintillion',
156 => 'unquinquagintillion',
159 => 'duoquinquagintillion',
162 => 'trequinquagintillion',
165 => 'quattuorquinquagintillion',
168 => 'quinquinquagintillion',
171 => 'sexquinquagintillion',
174 => 'septenquinquagintillion',
177 => 'octoquinquagintillion',
180 => 'novemquinquagintillion',
183 => 'sexagintillion',
186 => 'unsexagintillion',
189 => 'duosexagintillion',
192 => 'tresexagintillion',
195 => 'quattuorsexagintillion',
198 => 'quinsexagintillion',
201 => 'sexsexagintillion',
204 => 'septensexagintillion',
207 => 'octosexagintillion',
210 => 'novemsexagintillion',
213 => 'septuagintillion',
216 => 'unseptuagintillion',
219 => 'duoseptuagintillion',
222 => 'treseptuagintillion',
225 => 'quattuorseptuagintillion',
228 => 'quinseptuagintillion',
231 => 'sexseptuagintillion',
234 => 'septenseptuagintillion',
237 => 'octoseptuagintillion',
240 => 'novemseptuagintillion',
243 => 'octogintillion',
246 => 'unoctogintillion',
249 => 'duooctogintillion',
252 => 'treoctogintillion',
255 => 'quattuoroctogintillion',
258 => 'quinoctogintillion',
261 => 'sexoctogintillion',
264 => 'septoctogintillion',
267 => 'octooctogintillion',
270 => 'novemoctogintillion',
273 => 'nonagintillion',
276 => 'unnonagintillion',
279 => 'duononagintillion',
282 => 'trenonagintillion',
285 => 'quattuornonagintillion',
288 => 'quinnonagintillion',
291 => 'sexnonagintillion',
294 => 'septennonagintillion',
297 => 'octononagintillion',
300 => 'novemnonagintillion',
303 => 'centillion'
);
// }}}
 
// {{{ _splitNumber()
 
/**
* Split a number to groups of three-digit numbers.
*
* @param mixed $num An integer or its string representation
* that need to be split
*
* @return array Groups of three-digit numbers.
*
* @access private
* @author Kouber Saparev <kouber@php.net>
* @since PHP 4.2.3
*/
 
function _splitNumber($num)
{
if (is_string($num)) {
$ret = array();
$strlen = strlen($num);
$first = substr($num, 0, $strlen%3);
preg_match_all('/\d{3}/', substr($num, $strlen%3, $strlen), $m);
$ret =& $m[0];
if ($first) array_unshift($ret, $first);
return $ret;
}
else
return explode(' ', number_format($num, 0, '', ' ')); // a faster version for integers
}
// }}}
 
// {{{ _showDigitsGroup()
 
/**
* Converts a three-digit number to its word representation
* in French language.
*
* @param integer $num An integer between 1 and 999 inclusive.
*
* @param boolean $last A flag, that determines if it is the last group of digits -
* this is used to accord the plural suffix of the "hundreds".
* Example: 200 = "deux cents", but 200000 = "deux cent mille".
*
*
* @return string The words for the given number.
*
* @access private
* @author Kouber Saparev <kouber@php.net>
*/
function _showDigitsGroup($num, $last = false)
{
$ret = '';
// extract the value of each digit from the three-digit number
$e = $num%10; // ones
$d = ($num-$e)%100/10; // tens
$s = ($num-$d*10-$e)%1000/100; // hundreds
// process the "hundreds" digit.
if ($s) {
if ($s>1) {
$ret .= $this->_digits[$s].$this->_sep.$this->_misc_numbers[100];
if ($last && !$e && !$d) {
$ret .= $this->_plural;
}
} else {
$ret .= $this->_misc_numbers[100];
}
$ret .= $this->_sep;
}
 
// process the "tens" digit, and optionally the "ones" digit.
if ($d) {
// in the case of 1, the "ones" digit also must be processed
if ($d==1) {
if ($e<=6) {
$ret .= $this->_misc_numbers[10+$e];
} else {
$ret .= $this->_misc_numbers[10].'-'.$this->_digits[$e];
}
$e = 0;
} elseif ($d>5) {
if ($d<8) {
$ret .= $this->_misc_numbers[60];
$resto = $d*10+$e-60;
if ($e==1) {
$ret .= $this->_sep.$this->_and.$this->_sep;
}
elseif ($resto) {
$ret .= $this->_dash;
}
if ($resto) {
$ret .= $this->_showDigitsGroup($resto);
}
$e = 0;
} else {
$ret .= $this->_digits[4].$this->_dash.$this->_misc_numbers[20];
$resto = $d*10+$e-80;
if ($resto) {
$ret .= $this->_dash;
$ret .= $this->_showDigitsGroup($resto);
$e = 0;
} else {
$ret .= $this->_plural;
}
}
} else {
$ret .= $this->_misc_numbers[$d*10];
}
}
 
// process the "ones" digit
if ($e) {
if ($d) {
if ($e==1) {
$ret .= $this->_sep.$this->_and.$this->_sep;
} else {
$ret .= $this->_dash;
}
}
$ret .= $this->_digits[$e];
}
 
// strip excessive separators
$ret = rtrim($ret, $this->_sep);
 
return $ret;
}
// }}}
 
// {{{ toWords()
 
/**
* Converts a number to its word representation
* in French language.
*
* @param integer $num An integer (or its string representation) between 9.99*-10^302
* and 9.99*10^302 (999 centillions) that need to be converted to words
*
* @return string The corresponding word representation
*
* @access public
* @author Kouber Saparev <kouber@php.net>
*/
function toWords($num = 0)
{
$ret = '';
 
// check if $num is a valid non-zero number
if (!$num || preg_match('/^-?0+$/', $num) || !preg_match('/^-?\d+$/', $num)) return $this->_zero;
 
// add a minus sign
if (substr($num, 0, 1) == '-') {
$ret = $this->_minus . $this->_sep;
$num = substr($num, 1);
}
 
// if the absolute value is greater than 9.99*10^302, return infinity
if (strlen($num)>306) {
return $ret . $this->_infinity;
}
 
// strip excessive zero signs
$num = ltrim($num, '0');
 
// split $num to groups of three-digit numbers
$num_groups = $this->_splitNumber($num);
 
$sizeof_numgroups = count($num_groups);
 
foreach ($num_groups as $i=>$number) {
// what is the corresponding exponent for the current group
$pow = $sizeof_numgroups-$i;
 
// skip processment for empty groups
if ($number!='000') {
if ($number!=1 || $pow!=2) {
$ret .= $this->_showDigitsGroup($number, $i+1==$sizeof_numgroups).$this->_sep;
}
$ret .= $this->_exponent[($pow-1)*3];
if ($pow>2 && $number>1) {
$ret .= $this->_plural;
}
$ret .= $this->_sep;
}
}
 
return rtrim($ret, $this->_sep);
}
// }}}
}
?>
/trunk/client/annuaire/bibliotheque/annuaire.fonct.php
New file
0,0 → 1,324
<?php
/*vim: set expandtab tabstop=4 shiftwidth=4: */
// +------------------------------------------------------------------------------------------------------+
// | PHP version 4.1 |
// +------------------------------------------------------------------------------------------------------+
// | Copyright (C) 2004 Tela Botanica (accueil@tela-botanica.org) |
// +------------------------------------------------------------------------------------------------------+
// | This library is free software; you can redistribute it and/or |
// | modify it under the terms of the GNU Lesser General Public |
// | License as published by the Free Software Foundation; either |
// | version 2.1 of the License, or (at your option) any later version. |
// | |
// | This library is distributed in the hope that it will be useful, |
// | but WITHOUT ANY WARRANTY; without even the implied warranty of |
// | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU |
// | Lesser General Public License for more details. |
// | |
// | You should have received a copy of the GNU Lesser General Public |
// | License along with this library; if not, write to the Free Software |
// | Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA |
// +------------------------------------------------------------------------------------------------------+
// CVS : $Id: annuaire.fonct.php,v 1.1 2005/03/24 08:46:07 alex Exp $
/**
* Fonctions du module annuaire
*
* Fonctions du module annuaire
*
*@package annuaire
//Auteur original :
*@author Alexandre Granier <alexandre@tela-botanica.org>
//Autres auteurs :
*@author Aucun
*@copyright Tela-Botanica 2000-2004
*@version $Revision: 1.1 $
// +------------------------------------------------------------------------------------------------------+
*/
 
// +------------------------------------------------------------------------------------------------------+
// | ENTETE du PROGRAMME |
// +------------------------------------------------------------------------------------------------------+
 
 
 
// +------------------------------------------------------------------------------------------------------+
// | LISTE de FONCTIONS |
// +------------------------------------------------------------------------------------------------------+
 
function AUTH_formulaire_login() {
$res = '';
$url = preg_replace ('/&amp;/', '&', $GLOBALS['ann_url']->getURL()) ;
 
$res .= '<p>'.ANN_IDENTIFICATION_PRESENTATION_XHTML.'</p>'."\n" ;
$form = new HTML_QuickForm ('inscription', 'post', $url) ;
$form->addElement ('text', 'username', ANN_EMAIL) ;
$form->addElement ('password', 'password', ANN_MOT_DE_PASSE) ;
$form->addElement('submit', 'valider', ANN_VALIDER);
$res .= $form->toHTML() ;
 
return $res;
}
 
/** function parcourrirAnnu () Affiche l'annuaire à partir d'une lettre
*
*
*
* @return string HTML
*/
function parcourrirAnnu() {
 
$res = '<p id="annuaire_alphabet">';
 
// Alphabet pour la rechercher par lettre du nom des inscrits
for ($i = 65 ; $i <91 ; $i++) {
$GLOBALS['ann_url']->addQueryString('lettre', chr($i));
$url_lettre = $GLOBALS['ann_url']->getURL();
$GLOBALS['ann_url']->removeQueryString('lettre');
$res .= '<a href="'.$url_lettre.'">'.chr($i).'</a>&nbsp;'."\n";
}
if (ANN_TOUS_BOOL) {
$GLOBALS['ann_url']->addQueryString('lettre', 'tous');
$url_lettre = $GLOBALS['ann_url']->getURL();
$GLOBALS['ann_url']->removeQueryString('lettre');
$res .= '<a href="'.$url_lettre.'">'.'Tous'.'</a>'."\n";
}
$res .= '</p>'."\n";
 
// Si aucune lettre n'est sélectionnée, attribution de la lettre par défaut
if (empty($_REQUEST['lettre'])) {
$_REQUEST['lettre'] = ANN_LETTRE_DEFAUT;
}
// Une lettre est disponible...
$requete = 'SELECT '.ANN_ANNUAIRE.'.*, '.ANN_TABLE_PAYS.'.* '.
'FROM '.ANN_ANNUAIRE.','.ANN_TABLE_PAYS.' '.
'WHERE '.ANN_CHAMPS_PAYS.' = '.ANN_GC_ID.' ';
if ($_REQUEST['lettre'] != 'tous') {
$requete .= ' AND '.ANN_CHAMPS_NOM.' LIKE "'.$_REQUEST['lettre'].'%" ' ;
}
$requete .= 'ORDER BY '.ANN_CHAMPS_NOM;
$res .= listes_inscrit($requete, $GLOBALS['ann_url']->getURL(), '', $GLOBALS['ann_db'], $niveau = 'pays').
carto_texte_cocher().
carto_formulaire();
 
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, $url, $argument, &$db, $niveau = 'pays') {
$resultat = $GLOBALS['ann_db']->query($requete);
(DB::isError($resultat)) ? die($resultat->getMessage().'<br />'.$resultat->getDebugInfo()) : '';
if ($resultat->numRows() > 0) {
$res = '<form action="'.$url.'?mailer=1&amp;lettre='.$_REQUEST['lettre'].'" method="post" name="formmail">'."\n";
$res .= '<div id="annuaire" class="conteneur_table">
<table id="table_inscrit" class="table_cadre">
<colgroup>
<col />
<col />
<col />
<col />
<col />
<col />
<col />
</colgroup>
<thead class="entete_fixe">
<tr>
<th>&nbsp;</th>
<th>'.ANN_NOM.'</th>
<th>'.ANN_PRENOM.'</th>
<th>'.ANN_DATE_INS.'</th>
<th>'.ANN_CP.'</th>
<th>'.ANN_VILLE.'</th>
<th>'.ANN_PAYS.'</th>
</tr>
</thead>
<tbody class="contenu_deroulant">';
$indic = 0;
$i = 1;
while ($ligne = $resultat->fetchRow(DB_FETCHMODE_ASSOC)) {
if ($indic == 0) {
$res .= '<tr class="ligne_impaire">'."\n";
$indic = 1;
} else {
$res .= '<tr class="ligne_paire">'."\n";
$indic = 0;
}
$res.= '<td><input type="checkbox" name="select[]" value="'.$ligne[ANN_CHAMPS_MAIL].'" /></td>'."\n".
'<td>'.strtoupper($ligne[ANN_CHAMPS_NOM]).'&nbsp;</td>'."\n".
'<td>'.str_replace(' - ', '-', ucwords(strtolower(str_replace('-', ' - ', $ligne[ANN_CHAMPS_PRENOM])))).'&nbsp;</td>'."\n".
'<td>'.date('d m Y', strtotime($ligne[ANN_CHAMPS_DATE_INS])).'&nbsp;</td>'."\n".
'<td>'.$ligne[ANN_CHAMPS_CODE_POSTAL].'&nbsp;</td>'."\n".
'<td>'.strtoupper($ligne[ANN_CHAMPS_VILLE]).'&nbsp;</td>'."\n".
'<td>'.str_replace(' - ', '-', ucwords(strtolower(str_replace('-', ' - ', ($ligne[ANN_GC_NOM]))))).'&nbsp;</td>'."\n";
$res .= '</tr>'."\n";
}
$res .= '</tbody></table></div>'."\n";
} else {
$res = '<p class="information">'.'Aucun inscrit n\'a de nom commençant par '.$_REQUEST['lettre'].'</p>'."\n";
}
return $res;
}
 
function carto_formulaire() {
$res = '<div id="redaction">'."\n";
$res .= '<div id="redaction_tete"></div>'."\n";
$res .= '<h2 class="chapo">'.ANN_ENVOYER_MAIL.'</h2>'."\n";
$res .= '<table>'."\n".
'<tr><td class="texte">'.ANN_SUJET.' :</td>'."\n".
'<td><input class="forml" type="text" name="titre_mail" size="60" value="'.$_POST['titre_mail'].'"/></td>'."\n".
'</tr><tr><td class="texte" valign="top">'.ANN_MESSAGE.'&nbsp;:&nbsp;</td>'."\n".
'<td><textarea class="forml" name="corps" rows="5" cols="60">'.$_POST['corps'].'</textarea></td>'."\n".
'</tr><tr><td></td><td align="center">';
$res .='<input class="spip_bouton" type="submit" value="'.ANN_ENVOYER.'" />';
$res .= '</td>'."\n";
$res .= '</tr>'."\n";
$res .= '</table>'."\n";
$res .= '</form>'."\n";
$res .= '<div id="redaction_pied"/></div>'."\n";
$res .= '</div>'."\n";
$res .= '<p class="attention surveillance">'.ANN_SURVEILLANCE.'</p>' ;
$res .= '<p class="information message_a_tous">'.sprintf(ANN_MESSAGE_A_TOUS, '<a href="'.ANN_URL_ACTUALITE.'">'.ANN_ACTUALITE.'</a>').'</p>' ;
return $res ;
}
 
/** function carto_texte_cocher ()
*
*
* @return string HTML
*/
function carto_texte_cocher() {
$res .= '<div class="texte">'.ANN_CHECK_UNCHECK."\n";
$res .= '&nbsp;<input type="checkbox" name="selecttotal" onclick="javascript:setCheckboxes(\'formmail\');"/>'."\n";
$res .= '</div>';
return $res;
}
 
/** envoie_mail()
*
*
* @return envoie l'email
*/
function envoie_mail($selection, $titre_mail, $corps) {
$requete = 'SELECT '.ANN_CHAMPS_MAIL.' '.
'FROM '.ANN_ANNUAIRE.' '.
'WHERE '.ANN_CHAMPS_ID.' = "'.$GLOBALS['AUTH']->getAuthData(ANN_CHAMPS_ID).'" ';
$resultat = $GLOBALS['ann_db']->query($requete);
if (DB::isError($resultat)) {
die($resultat->getMessage().'<br />'.$resultat->getDebugInfo());
}
$ligne = $resultat->fetchRow(DB_FETCHMODE_ASSOC);
 
$liste = '';
$entete = '' ;
foreach ($selection as $key => $value) {
$liste .= $value."," ;
}
$precorps = $ligne[ANN_CHAMPS_MAIL]." ".ANN_EXPEDITEUR_ORIGINAL." \n" ;
$precorps .= ANN_LISTE_DESTINATAIRES." : ".$liste." \n" ;
$precorps .= ANN_TITRE_MAIL.' : '.$titre_mail." \n" ;
$precorps .= "\n------".ANN_CONTENU_MESSAGE."------\n";
$corps = $precorps.$corps ;
$corps .= "\n\n".ANN_PIED_MESSAGE."\n";
$corps .= "\n----------------------------------------------------------------------------";
$corps .= "\n".ANN_MESSAGE_APPLI."\n" ;
//$corps .= "\n".ANN_MESSAGE_ENVOYE_A." :\n $liste" ;
// Envoie du message au modérateur
if(!mail(MAIL_MODERATION,ANN_TITRE_MAIL_MODERATION,$corps, $entete))
{
trigger_error("Le courriel n'a pas été envoyé à : $courriel", E_USER_WARNING);
}
/*foreach ($GLOBALS['mail_admin'] as $courriel) {
if (!mail($courriel, $titre_mail, $corps, $entete)) {
trigger_error("Le courriel n'a pas été envoyé à : $courriel", E_USER_WANRNING);
}
}*/
 
return '<div class="information">'.ANN_MAIL_ATTENTE_MODERATION.'</div>' ;
}
 
/** translittererVersIso88591()
*
* Convertit les caractères CP1252 (= ANSI) non présent dans l'ISO-8859-1 par un équivalant ressemblant.
*
* @return envoie l'email
*/
function translittererCp1252VersIso88591($str, $translit = true) {
$cp1252_entite_map = array(
'\x80' => '&#8364;', /* EURO SIGN */
'\x82' => '&#8218;', /* SINGLE LOW-9 QUOTATION MARK */
'\x83' => '&#402;', /* LATIN SMALL LETTER F WITH HOOK */
'\x84' => '&#8222;', /* DOUBLE LOW-9 QUOTATION MARK */
'\x85' => '&#8230;', /* HORIZONTAL ELLIPSIS */
'\x86' => '&#8224;', /* DAGGER */
'\x87' => '&#8225;', /* DOUBLE DAGGER */
'\x88' => '&#710;', /* MODIFIER LETTER CIRCUMFLEX ACCENT */
'\x89' => '&#8240;', /* PER MILLE SIGN */
'\x8a' => '&#352;', /* LATIN CAPITAL LETTER S WITH CARON */
'\x8b' => '&#8249;', /* SINGLE LEFT-POINTING ANGLE QUOTATION */
'\x8c' => '&#338;', /* LATIN CAPITAL LIGATURE OE */
'\x8e' => '&#381;', /* LATIN CAPITAL LETTER Z WITH CARON */
'\x91' => '&#8216;', /* LEFT SINGLE QUOTATION MARK */
'\x92' => '&#8217;', /* RIGHT SINGLE QUOTATION MARK */
'\x93' => '&#8220;', /* LEFT DOUBLE QUOTATION MARK */
'\x94' => '&#8221;', /* RIGHT DOUBLE QUOTATION MARK */
'\x95' => '&#8226;', /* BULLET */
'\x96' => '&#8211;', /* EN DASH */
'\x97' => '&#8212;', /* EM DASH */
'\x98' => '&#732;', /* SMALL TILDE */
'\x99' => '&#8482;', /* TRADE MARK SIGN */
'\x9a' => '&#353;', /* LATIN SMALL LETTER S WITH CARON */
'\x9b' => '&#8250;', /* SINGLE RIGHT-POINTING ANGLE QUOTATION*/
'\x9c' => '&#339;', /* LATIN SMALL LIGATURE OE */
'\x9e' => '&#382;', /* LATIN SMALL LETTER Z WITH CARON */
'\x9f' => '&#376;' /* LATIN CAPITAL LETTER Y WITH DIAERESIS*/
);
$translit_map = array(
'&#8364;' => 'Euro', /* EURO SIGN */
'&#8218;' => ',', /* SINGLE LOW-9 QUOTATION MARK */
'&#402;' => 'f', /* LATIN SMALL LETTER F WITH HOOK */
'&#8222;' => ',,', /* DOUBLE LOW-9 QUOTATION MARK */
'&#8230;' => '...', /* HORIZONTAL ELLIPSIS */
'&#8224;' => '+', /* DAGGER */
'&#8225;' => '++', /* DOUBLE DAGGER */
'&#710;' => '^', /* MODIFIER LETTER CIRCUMFLEX ACCENT */
'&#8240;' => '0/00', /* PER MILLE SIGN */
'&#352;' => 'S', /* LATIN CAPITAL LETTER S WITH CARON */
'&#8249;' => '<', /* SINGLE LEFT-POINTING ANGLE QUOTATION */
'&#338;' => 'OE', /* LATIN CAPITAL LIGATURE OE */
'&#381;' => 'Z', /* LATIN CAPITAL LETTER Z WITH CARON */
'&#8216;' => "'", /* LEFT SINGLE QUOTATION MARK */
'&#8217;' => "'", /* RIGHT SINGLE QUOTATION MARK */
'&#8220;' => '"', /* LEFT DOUBLE QUOTATION MARK */
'&#8221;' => '"', /* RIGHT DOUBLE QUOTATION MARK */
'&#8226;' => '*', /* BULLET */
'&#8211;' => '-', /* EN DASH */
'&#8212;' => '--', /* EM DASH */
'&#732;' => '~', /* SMALL TILDE */
'&#8482;' => '(TM)', /* TRADE MARK SIGN */
'&#353;' => 's', /* LATIN SMALL LETTER S WITH CARON */
'&#8250;' => '>', /* SINGLE RIGHT-POINTING ANGLE QUOTATION*/
'&#339;' => 'oe', /* LATIN SMALL LIGATURE OE */
'&#382;' => 'z', /* LATIN SMALL LETTER Z WITH CARON */
'&#376;' => 'Y' /* LATIN CAPITAL LETTER Y WITH DIAERESIS*/
);
$str = strtr($str, $cp1252_entite_map);
if ($translit) {
$str = strtr($str, $translit_map);
}
return $str;
}
?>
/trunk/client/annuaire/bibliotheque/Words.php
New file
0,0 → 1,188
<?php
/* vim: set expandtab tabstop=4 softtabstop=4 shiftwidth=4: */
//
// +----------------------------------------------------------------------+
// | PHP version 4 |
// +----------------------------------------------------------------------+
// | Copyright (c) 1997-2006 The PHP Group |
// +----------------------------------------------------------------------+
// | This source file is subject to version 3.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/3_0.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. |
// +----------------------------------------------------------------------+
// | Authors: Piotr Klaban <makler@man.torun.pl> |
// +----------------------------------------------------------------------+
//
// $Id: Words.php,v 1.4 2006/06/13 11:29:35 makler Exp $
//
 
/**
* The Numbers_Words class provides method to convert arabic numerals to
* words (also with currency name).
*
* @author Piotr Klaban <makler@man.torun.pl>
* @package Numbers_Words
*/
 
// {{{ Numbers_Words
 
/**
* The Numbers_Words class provides method to convert arabic numerals to words.
*
* @access public
* @author Piotr Klaban <makler@man.torun.pl>
* @since PHP 4.2.3
* @package Numbers_Words
*/
class Numbers_Words
{
// {{{ toWords()
 
/**
* Converts a number to its word representation
*
* @param integer $num An integer between -infinity and infinity inclusive :)
* that should be converted to a words representation
*
* @param string $locale Language name abbreviation. Optional. Defaults to en_US.
*
* @return string The corresponding word representation
*
* @access public
* @author Piotr Klaban <makler@man.torun.pl>
* @since PHP 4.2.3
*/
function toWords($num, $locale = 'en_US') {
 
include_once("Words/lang.${locale}.php");
 
$classname = "Numbers_Words_${locale}";
 
if (!class_exists($classname)) {
return Numbers_Words::raiseError("Unable to include the Numbers/Words/lang.${locale}.php file");
}
 
$methods = get_class_methods($classname);
 
if (!in_array('toWords', $methods) && !in_array('towords', $methods)) {
return Numbers_Words::raiseError("Unable to find toWords method in '$classname' class");
}
 
@$obj =& new $classname;
 
return trim($obj->toWords($num));
}
// }}}
// {{{ toCurrency()
/**
* Converts a currency value to word representation (1.02 => one dollar two cents)
* If the number has not any fraction part, the "cents" number is omitted.
*
* @param float $num A float/integer/string number representing currency value
*
* @param string $locale Language name abbreviation. Optional. Defaults to en_US.
*
* @param string $int_curr International currency symbol
* as defined by the ISO 4217 standard (three characters).
* E.g. 'EUR', 'USD', 'PLN'. Optional.
* Defaults to $def_currency defined in the language class.
*
* @return string The corresponding word representation
*
* @access public
* @author Piotr Klaban <makler@man.torun.pl>
* @since PHP 4.2.3
*/
function toCurrency($num, $locale = 'en_US', $int_curr = '') {
$ret = $num;
 
@include_once("Numbers/Words/lang.${locale}.php");
 
$classname = "Numbers_Words_${locale}";
 
if (!class_exists($classname)) {
return Numbers_Words::raiseError("Unable to include the Numbers/Words/lang.${locale}.php file");
}
 
$methods = get_class_methods($classname);
 
if (!in_array('toCurrencyWords', $methods) && !in_array('tocurrencywords', $methods)) {
return Numbers_Words::raiseError("Unable to find toCurrencyWords method in '$classname' class");
}
 
@$obj =& new $classname;
 
if (strpos($num, '.') === false)
{
$ret = trim($obj->toCurrencyWords($int_curr, $num));
} else {
$currency = explode('.', $num, 2);
/* add leading zero */
if (strlen($currency[1]) == 1) {
$currency[1] .= '0';
}
$ret = trim($obj->toCurrencyWords($int_curr, $currency[0], $currency[1]));
}
return $ret;
}
// }}}
// {{{ getLocales()
/**
* Lists available locales for Numbers_Words
*
* @param string $int_curr International currency symbol
* @param mixed string/array of strings $locale
* Optional searched language name abbreviation.
* Default: all available locales.
*
* @return array The available locales (optionaly only the requested ones)
* @author Piotr Klaban <makler@man.torun.pl>
* @author Bertrand Gugger, bertrand at toggg dot com
*
* @access public
* @static
*/
function getLocales($locale = null) {
$ret = array();
if (isset($locale) && is_string($locale)) {
$locale = array($locale);
}
$dname = dirname(__FILE__) . DIRECTORY_SEPARATOR . 'Words' . DIRECTORY_SEPARATOR;
$dh=opendir($dname);
if ($dh) {
while ($fname = readdir($dh)) {
if (preg_match('#^lang\.([a-z_]+)\.php$#i', $fname, $matches)) {
if (is_file($dname . $fname) && is_readable($dname . $fname) &&
(!isset($locale) || in_array($matches[1], $locale))) {
$ret[] = $matches[1];
}
}
}
closedir($dh);
sort($ret);
}
return $ret;
}
// }}}
// {{{ raiseError()
/**
* Trigger a PEAR error
*
* To improve performances, the PEAR.php file is included dynamically.
*
* @param string error message
*/
function raiseError($msg)
{
include_once('PEAR.php');
return PEAR::raiseError($msg);
}
// }}}
}
 
// }}}
?>
/trunk/client/annuaire/signature_Mathez.png
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/trunk/client/annuaire/signature_Mathez.png
New file
Property changes:
Added: svn:mime-type
+application/octet-stream
\ No newline at end of property
/trunk/client/annuaire/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.1.1 2005/01/03 17:27:49 alex Exp $
 
 
// Inclusion des fichiers nécessaire à une connection
include_once ("../../papyrus/configuration/pap_config.inc.php") ;
include_once 'DB.php' ;
 
$db = DB::connect (PAP_DSN) ;
 
include_once "../../api/fpdf/fpdf.php";
 
$envoie = 1 ;
 
include_once "recu_pdf_corps.php" ;
 
 
// buffer est une propriété de la classe FPDF qui contient les données au format PDF.
// habituellement on ne l'utilise pas, on appelle $pdf->Output() qui envoie les
// entete HTTP du document généré
 
$pdf->Output() ;
 
?>
/trunk/client/annuaire/langues/ann_langue_es.inc.php
New file
0,0 → 1,77
<?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: ann_langue_es.inc.php,v 1.1.1.1 2005/01/03 17:27:49 alex 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.1.1 $ $Date: 2005/01/03 17:27:49 $
// +------------------------------------------------------------------------------------------------------+
*/
 
define ("ANN_NOM", "pellido") ;
define ("ANN_PRENOM", "Nombre") ;
define ("ANN_PAYS", "Pais") ;
define ("ANN_LANGUES_PARLES", "Idiomas hablados") ;
define ("ANN_EMAIL", "Correo electronico") ;
define ("ANN_MOT_DE_PASSE", "Contraseña") ;
define ("ANN_REPETE_MOT_DE_PASSE", "Repetir la contraseñas") ;
define ("ANN_RETABLIR", "Restablecer") ;
define ("ANN_VALIDER", "Ingresar") ;
define ("ANN_MOTS_DE_PASSE_DIFFERENTS", "Las contraseñas son diferentes!") ;
define ("ANN_EMAIL_REQUIS", "Debe ingresar un correo electronico") ;
define ("ANN_MOT_DE_PASSE_REQUIS", "Debe ingresar una contraseña.") ;
define ("ANN_MAIL_INCORRECT", "El correo electronico debe tener una forma correcta, utilisador@domaine.ext") ;
define ("ANN_NOTE_REQUIS", "Indique los espacios requeridos") ;
define ("ANN_MODIFIER_INSCRIPTION", "Modificar su inscripcion") ;
define ("ANN_SUPPRIMER_INSCRIPTION", "Cancelar su inscripcion") ;
define ("ANN_MESSAGE_BIENVENU", "Esta inscrito en I-Enlace") ;
define ("ANN_CLIQUEZ_LETTRE", "Haga clic en una letra para ver los miembros.") ;
define ("ANN_LISTE_INSCRIT_LETTRE", "Lista de los inscritos en la carta") ;
define ("ANN_TITRE", "Guia de I-Enlace") ;
define ("ANN_TEXTE_PERDU", "Si ha perdido su contraseña, indique su correo electronico en el espaciologin y haga clic en Ingresar") ;
define ("ANN_CHECK_UNCHECK", "Marcar en la casilla para seleccionar su destinatario o marcar/quitar todo") ;
define ("ANN_ENVOYER_MAIL", "Enviar un correo electronico") ;
define ("ANN_SUJET", "Objet") ;
define ("ANN_MESSAGE", "Mensaje") ;
define ("ANN_ENVOYER", "Enviar") ;
define ("ANN_CLIC_CONFIRMATION", "Haga clic en OK para confirmar") ;
define ("ANN_PAS_D_INSCRIT", "Ninguninscrito") ;
//======================== labels pour les mails===========================
define ("ANN_VERIF_MAIL_COCHE", "Marque al menos un destinatario para su correo electronico") ;
define ("ANN_VERIF_TITRE", "Su mensaje debe tener un titulo y un cuerpo") ;
 
define ("ANN_PIED_MESSAGE", "\n---------------------------------------------------------------------------".
"\nCe message vous est envoyé par l'intermédiaire du site Internet".
"\n(http://www.vecam.org) de VECAM, ".
"\nauquel vous êtes inscrit.".
"\nD'autres inscrits au réseau peuvent avoir reçu ce message.".
"\nNe répondez que si vous êtes concerné, ou si vous avez des".
"\ninformations utiles à transmettre au demandeur." ) ;
?>
/trunk/client/annuaire/langues/ann_langue_fr.inc.php
New file
0,0 → 1,133
<?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 |
// +------------------------------------------------------------------------------------------------------+
/**
* 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 Jean-Pascal MILCENT <jpm@tela-botanica.org>
*@copyright Tela-Botanica 2000-2004
*@version $Id$
// +------------------------------------------------------------------------------------------------------+
*/
 
define ('ANN_NOM', 'Nom') ;
define ('ANN_PRENOM', 'Pr&eacute;nom') ;
define ('ANN_CP', 'Code Postal') ;
define ('ANN_PAYS', 'Pays') ;
define ('ANN_LANGUES_PARLES', 'Langues parl&eacute;s :') ;
define ('ANN_EMAIL', 'E-mail :') ;
define ('ANN_MOT_DE_PASSE', 'Mot de passe :') ;
define ('ANN_REPETE_MOT_DE_PASSE', 'R&eacute;p&eacute;ter le mot de passe :') ;
define ('ANN_RETABLIR', 'Rétablir') ;
define ('ANN_VALIDER', 'Valider') ;
define ('ANN_MOTS_DE_PASSE_DIFFERENTS', 'Les mots de passe sont diff&eacute;rents !') ;
define ('ANN_EMAIL_REQUIS', 'Vous devez saisir un email.') ;
define ('ANN_MOT_DE_PASSE_REQUIS', 'Vous devez saisir un mot de passe.') ;
define ('ANN_MAIL_INCORRECT', 'L\'email doit avoir une forme correcte, utilisateur@domaine.ext') ;
define ('ANN_NOTE_REQUIS', 'Indique les champs requis') ;
define ('ANN_MODIFIER_INSCRIPTION', 'Modifier votre inscription') ;
define ('ANN_SUPPRIMER_INSCRIPTION', 'Supprimer votre inscription') ;
define ('ANN_MESSAGE_BIENVENU', 'Vous &ecirc;tes inscrit &agrave; I-Jumelage') ;
define ('ANN_CLIQUEZ_LETTRE', 'Cliquez sur une lettre pour voir les inscrits.') ;
define ('ANN_LISTE_INSCRIT_LETTRE', 'Liste des inscrits &agrave; la lettre') ;
define ('ANN_TITRE', 'Annuaire du réseau') ;
define ('ANN_IDENTIFICATION_PRESENTATION_XHTML',
'<h2>S\'identifier et s\'inscrire</h2>
<p>Afin de pouvoir consulter l\'annuaire, il est indispensable de s\'inscrire.<br />
L\'inscription est libre et gratuite !<br />
Elle vous permet de :</p>
<ul>
<li>consulter l\'annuaire des personnes inscrites et pouvoir ainsi échanger des informations ;</li>
<li>accéder à certaines informations diffusées sur le site ;</li>
<li>recevoir une lettre électronique d\'informations.</li>
<li>saisir des fiches pour nous informer ;</li>
</ul>
<p>Par la suite, il vous sera possible de modifier voire annuler votre inscription.<br />
Seuls vos prénom, nom, ville, commune et pays apparaîtrons dans l\'annuaire, les autres informations restent confidentielles (e-mail, adresse). </p>
<p>En application des articles 39 et suivants de la loi du 6 janvier 1978 modifiée, vous bénéficiez d\'un droit d\'accès
et de rectification aux informations qui vous concernent.</p>
<p><strong>L\'inscription à l\'annuaire du site de Tela Botanica implique que vous soyez d\'accord pour que votre nom, prénom, ville,
code postal et pays apparaissent en clair dans le site Internet de Tela Botanica</strong>.</p>
 
<p>Si vous avez perdu votre mot de passe, veuillez cliquez sur le lien suivant : <a href="http://www.tela-botanica.org/page:inscription?action=mdp_oubli">perte de mot de passe</a></p>
<p>Déjà inscrit, identifiez-vous pour accéder à votre fiche personnelle :</p>');
define ('ANN_TEXTE_PERDU', 'Si vous avez perdu votre mot de passe, indiquer '.
'votre adresse email dans le champs login ci-dessus et cliquez sur "Valider"') ;
define ('ANN_CHECK_UNCHECK', 'Cocher les cases pour s&eacute;lectionner votre destinataire ou cocher / d&eacute;cocher tout') ;
define ('ANN_ENVOYER_MAIL', 'Envoyer un email') ;
define ('ANN_MESSAGE_A_TOUS', 'Si votre message concerne une actualit&eacute; botanique (expo, sortie, stage, nouvel ouvrage, emploi,...) vous pouvez le diffuser &agrave; l\'ensemble des membres du r&eacute;seau : voir la page <a href="http://www.tela-botanica.org/actu/article220.html">comment proposer des informations</a>.');
define ('ANN_ACTUALITE', 'les actualités de Tela Botanica');
define ('ANN_SURVEILLANCE', '<strong>Avertissement :</strong> la messagerie ci-dessous est destinée à vous permettre d\'échanger ' .
'des messages entre inscrit au site de Tela Botanica, sans dévoiler les adresses email des inscrits. Afin de respecter la ' .
'tranquillité de chacun, il est strictement interdit d\'utiliser cette messagerie interne pour faire des relances périodiques ' .
'd\'informations ou des annonces publicitaires et commerciales. Une surveillance du contenu des mails échangés est effectuée ' .
'par Tela Botanica. Merci de votre compréhension.') ;
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_MAIL_ENVOYER', 'Votre mail a été envoyé') ;
define ('ANN_DATE_INS', 'Date d\'inscription') ;
define ('ANN_VILLE', 'Ville') ;
define ('ANN_PIED_INFO', 'Si vous constatez des problèmes en utilisant cette application, veuillez contacter : ') ;
define ('ANN_PIED_MAIL', 'webmestre@tela-botanica.org') ;
define ('ANN_TITRE_MAIL_MODERATION', 'Un nouveau message aux adhérents est en attente de modération') ;
define ('ANN_EXPEDITEUR_ORIGINAL', 'vous a envoyé un message par l\'intermédiaire du site Internet (http://www.tela-botanica.org) du Réseau Tela Botanica auquel vous êtes inscrit. D\'autres inscrits peuvent avoir reçu ce message. Ne répondez que si vous êtes concerné, ou si vous avez des informations utiles à transmettre au demandeur.') ;
define ('ANN_LISTE_DESTINATAIRES','aux destinataires suivants') ;
define ('ANN_CONTENU_MESSAGE','Contenu du message') ;
define ('ANN_TITRE_MAIL','Sujet du message') ;
 
// ========================= 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_MESSAGE_APPLI', 'Application ANNUAIRE');
define ('ANN_MESSAGE_ENVOYE_A', 'Ce message a été envoyé à ');
define ('ANN_MAIL_ATTENTE_MODERATION','Ce message a été envoyé au modérateur, il sera envoyé aux destinataires dès sa validation') ;
define ("ANN_PIED_MESSAGE", "\n---------------------------------------------------------------------------".
"\nCe message vous est envoyé par l'intermédiaire du site Internet".
"\n(http://www.tela-botanica.org) de Tela Botanica, ".
"\nauquel vous êtes inscrit.".
"\nD'autres inscrits au réseau peuvent avoir reçu ce message.".
"\nNe répondez que si vous êtes concerné, ou si vous avez des".
"\ninformations utiles à transmettre au demandeur." ) ;
 
 
// ============================ Label de lannuaire Back ===========================
define ('AM_L_TITRE', 'Chercher un adhérent') ;
define ('AM_L_RECHERCHER', 'Rechercher') ;
define ('AM_L_PAYS', 'Pays') ;
define ('AM_L_NOM', 'Nom') ;
define ('AM_L_PRENOM', 'Prénom') ;
define ('AM_L_VILLE', 'Ville') ;
define ('AM_L_DEPARTEMENT', 'Département') ;
define ('AM_L_MAIL', 'Mail') ;
define ('AM_L_COTISANTS', 'Cotisants') ;
define ('AM_L_GRP_RES', 'Grouper les résultats') ;
define ('AM_L_TOUS', 'Tous') ;
define ('AM_L_MAIL_SELECTION', 'Envoyer un mail à la sélection') ;
?>
/trunk/client/annuaire/langues/ann_langue_en.inc.php
New file
0,0 → 1,99
<?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: ann_langue_en.inc.php,v 1.1.1.1 2005/01/03 17:27:49 alex 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.1.1 $ $Date: 2005/01/03 17:27:49 $
// +------------------------------------------------------------------------------------------------------+
*/
 
define ("ANN_NOM", "Name :") ;
define ("ANN_PRENOM", "First name") ;
define ("ANN_CP", "Zip Code") ;
define ("ANN_PAYS", "Country") ;
define ("ANN_LANGUES_PARLES", "Languages spoken :") ;
define ("ANN_EMAIL", "E-mail :") ;
define ("ANN_MOT_DE_PASSE", "Password:") ;
define ("ANN_REPETE_MOT_DE_PASSE", "Repeat the password :") ;
define ("ANN_RETABLIR", "Restore") ;
define ("ANN_VALIDER", "Validate") ;
define ("ANN_MOTS_DE_PASSE_DIFFERENTS", "The two passwords are different !") ;
define ("ANN_EMAIL_REQUIS", "You must enter your e-mail.") ;
define ("ANN_MOT_DE_PASSE_REQUIS", "You must enter your password.") ;
 
define ("ANN_MAIL_INCORRECT", "E-mail addresses must be in the following format, user@domain.ext") ;
define ("ANN_NOTE_REQUIS", "Indicate the required fields") ;
define ("ANN_MODIFIER_INSCRIPTION", "Modify your registration") ;
define ("ANN_SUPPRIMER_INSCRIPTION", "Cancel your registration") ;
define ("ANN_MESSAGE_BIENVENU", "You are registered at i-twinning ") ;
 
define ("ANN_CLIQUEZ_LETTRE", "Click on a letter to see the members ") ;
define ("ANN_LISTE_INSCRIT_LETTRE", "List of the newsletter's subscribers") ;
define ("ANN_TITRE", "I-twinning repertory") ;
define ("ANN_TEXTE_PERDU", "If you forgot your password, enter your e-mail address in the Login ".
"field below and click on \Validate\ ") ;
define ("ANN_CHECK_UNCHECK", "Tick the boxes to select your recipient or tick / untick all") ;
define ("ANN_ENVOYER_MAIL", "Send an e-mail") ;
define ("ANN_SUJET", "Subject") ;
define ("ANN_MESSAGE", "Message") ;
define ("ANN_ENVOYER", "Send") ;
define ("ANN_CLIC_CONFIRMATION", "Click on OK to confirm") ;
define ("ANN_PAS_D_INSCRIT", "No registered members") ;
 
// ========================= Labels pour les mails =============================
 
define ("ANN_VERIF_MAIL_COCHE", "Please tick at least one recipient for your mail.") ;
define ("ANN_VERIF_TITRE", "Your message must be composed of a title <i>et</i> and a content") ;
 
define ("ANN_PIED_MESSAGE", "\n---------------------------------------------------------------------------".
"\nThis message has been sent by".
"\n(http://www.vecam.org) VECAM, ".
"\nwhere you are currently registered.".
"\nOther members may also have received this message.") ;
/* +--Fin du code ----------------------------------------------------------------------------------------+
*
* $Log: ann_langue_en.inc.php,v $
* 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/30 08:50:01 alex
* traduction
*
* Revision 1.1 2004/06/18 08:45:45 alex
* version initiale
*
*
* +-- Fin du code ----------------------------------------------------------------------------------------+
*/
?>
/trunk/client/annuaire/langues/ann_langue_pt.inc.php
New file
0,0 → 1,101
<?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: ann_langue_pt.inc.php,v 1.1.1.1 2005/01/03 17:27:49 alex 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.1.1 $ $Date: 2005/01/03 17:27:49 $
// +------------------------------------------------------------------------------------------------------+
*/
 
define ("ANN_NOM", "Name :") ;
define ("ANN_PRENOM", "First name") ;
define ("ANN_PAYS", "Country:") ;
define ("ANN_LANGUES_PARLES", "Languages spoken :") ;
define ("ANN_EMAIL", "E-mail :") ;
define ("ANN_MOT_DE_PASSE", "Password:") ;
define ("ANN_REPETE_MOT_DE_PASSE", "Repeat the password :") ;
define ("ANN_RETABLIR", "Restore") ;
define ("ANN_VALIDER", "Validate") ;
define ("ANN_MOTS_DE_PASSE_DIFFERENTS", "The two passwords are different !") ;
define ("ANN_EMAIL_REQUIS", "You must enter your e-mail.") ;
define ("ANN_MOT_DE_PASSE_REQUIS", "You must enter your password.") ;
 
define ("ANN_MAIL_INCORRECT", "E-mail addresses must be in the following format, user@domain.ext") ;
define ("ANN_NOTE_REQUIS", "Indicate the required fields") ;
define ("ANN_MODIFIER_INSCRIPTION", "Modify your registration") ;
define ("ANN_SUPPRIMER_INSCRIPTION", "Cancel your registration") ;
define ("ANN_MESSAGE_BIENVENU", "You are registered at i-twinning ") ;
 
define ("ANN_CLIQUEZ_LETTRE", "Click on a letter to see the members ") ;
define ("ANN_LISTE_INSCRIT_LETTRE", "List of the newsletter's subscribers") ;
define ("ANN_TITRE", "I-twinning repertory") ;
define ("ANN_TEXTE_PERDU", "If you forgot your password, enter your e-mail address in the Login ".
"field below and click on \Validate\ ") ;
define ("ANN_CHECK_UNCHECK", "Tick the boxes to select your recipient or tick / untick all") ;
define ("ANN_ENVOYER_MAIL", "Send an e-mail") ;
define ("ANN_SUJET", "Subject") ;
define ("ANN_MESSAGE", "Message") ;
define ("ANN_ENVOYER", "Send") ;
define ("ANN_CLIC_CONFIRMATION", "Click on OK to confirm") ;
define ("ANN_PAS_D_INSCRIT", "No registered members") ;
 
// ========================= Labels pour les mails =============================
 
define ("ANN_VERIF_MAIL_COCHE", "Please tick at least one recipient for your mail.") ;
define ("ANN_VERIF_TITRE", "Your message must be composed of a title <i>et</i> and a content") ;
 
define ("ANN_PIED_MESSAGE", "\n---------------------------------------------------------------------------".
"\nThis message has been sent by".
"\n(http://www.vecam.org) VECAM, ".
"\nwhere you are currently registered.".
"\nOther members may also have received this message.") ;
/* +--Fin du code ----------------------------------------------------------------------------------------+
*
* $Log: ann_langue_pt.inc.php,v $
* 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/09/14 11:54:49 alex
* version initiale
*
* Revision 1.1 2004/06/30 08:50:01 alex
* traduction
*
* Revision 1.1 2004/06/18 08:45:45 alex
* version initiale
*
*
* +-- Fin du code ----------------------------------------------------------------------------------------+
*/
?>
/trunk/client/annuaire/admin_annu.php
New file
0,0 → 1,576
<?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: admin_annu.php,v 1.1 2005/03/24 08:47:31 alex Exp $
 
 
define ("URL_RECU", $GLOBALS['ann_url']->protocol. '://'.$GLOBALS['ann_url']->host."/client/annuaire/voir_recu_pdf.php") ;
 
include_once ("HTML/Table.php") ;
include_once 'api/formulaire/FORM_formulaire.class.php' ;
 
// admin_annu est une application cliente de gsite elle commence donc
// dans une fonction putFrame()
 
 
function putFrame()
{
global $u_id, $cotisation_id ;
global $action ;
 
if (empty($action)) $action = false ;
 
$url = $GLOBALS['ann_url']->getURL() ;
 
// mise à jour si il y lieu
 
if ($action == "up") {
$res .= upSQL() ;
}
 
// Requete de pour récupérer toutes les infos d'un usager
 
$query = "select annuaire_tela.*,annuaire_LABEL_ACT.*,annuaire_LABEL_ASS.*,gen_COUNTRY.GC_NAME" ;
$query .= ", annuaire_LABEL_NIV.*" ;
$query .= " from annuaire_tela,gen_COUNTRY,gen_FRENCH_DPT," ;
$query .= " annuaire_LABEL_ACT,annuaire_LABEL_ASS, annuaire_LABEL_NIV" ;
$query .= " where U_ID=$u_id" ;
//$query .= " and annuaire_tela.U_FRENCH_DPT=gen_FRENCH_DPT.GFD_ID" ;
$query .= " and annuaire_tela.U_COUNTRY=gen_COUNTRY.GC_ID" ;
$query .= " and annuaire_tela.U_ACT=annuaire_LABEL_ACT.ID_LABEL_ACT" ;
$query .= " and annuaire_tela.U_ASS=annuaire_LABEL_ASS.ID_LABEL_ASS" ;
$query .= " and annuaire_tela.U_NIV=annuaire_LABEL_NIV.ID_LABEL_NIV" ;
 
$resultat = $GLOBALS['ann_db']->query($query) ;
if (DB::isError($resultat)) {
return $resultat->getMessage().'<br />'.$resultat->getDebugInfo().'<br />'.$query ;
}
$row = $resultat->fetchRow(DB_FETCHMODE_OBJECT) ;
 
$lettre = 'non' ;
if($row->U_LETTRE == 1) {
$lettre = 'oui' ;
}
 
$res = "<h1>Edition d'un adh&eacute;rent : $row->U_NAME $row->U_SURNAME</h1>\n" ;
$res .= "<div>".form("Nom : ", "U_NAME", $row->U_NAME)."</div>\n" ;
$res .= "<div>".form("Pr&eacute;nom : ", "U_SURNAME", $row->U_SURNAME)."</div>\n" ;
$res .= "<div>".form("Adresse mail : ", "U_MAIL", $row->U_MAIL)."</div>\n" ;
$res .= "<div>".form("Date d'inscription : ", "U_DATE", $row->U_DATE)."</div>\n" ;
$res .= "<div>".form("Adresse 1 : ", "U_ADDR1", $row->U_ADDR1)."</div>\n" ;
$res .= "<div>".form("Adresse 2 : ", "U_ADDR2", $row->U_ADDR2)."</div>\n" ;
$res .= "<div>".form("Région : ", "U_STATE", $row->U_STATE)."</div>\n" ;
$res .= "<div>".form("Code postal : ", "U_ZIP_CODE", $row->U_ZIP_CODE)."</div>\n" ;
$res .= "<div>".form("Ville : ", "U_CITY", $row->U_CITY)."</div>\n" ;
$res .= "<div>".form("Pays : ", "U_COUNTRY", $row->U_COUNTRY)."</div>\n" ;
$res .= "<div>".form("Site web personnel : ", "U_WEB", $row->U_WEB)."</div>\n" ;
$res .= "<div>".form("Inscrit à la lettre d'actualit&eacute;s : ", "U_LETTRE", $lettre)."</div>\n" ;
$res .= "<div>".form("Organisme : ", "U_TITLE", $row->U_TITLE)."</div>\n" ;
$res .= "<div>".form("Fonction : ", "U_FONCTION", $row->U_FONCTION)."</div>\n" ;
$res .= "<div>".form("Niveau en botanique : ", "LABEL_NIV", $row->LABEL_NIV)."</div>\n" ;
$res .= "<div>".form("Activit&eacute; : ", "LABEL_ACT", $row->LABEL_ACT)."</div>\n" ;
$res .= "<div>".form("Secteur associatif : ", "LABEL_ASS", $row->LABEL_ASS)."</div>\n" ;
$res .= "<div>".form("Sp&eacute;cialit&eacute; : ", "U_SPE", $row->U_SPE)."</div>\n" ;
$res .= "<div>".form("Sp&eacute;cialit&eacute; g&eacute;ographique : ", "U_GEO", $row->U_GEO)."</div>\n" ;
 
if (isset($cotisation_id) && $cotisation_id != "") {
$db = & $GLOBALS['ann_db'];
include_once ANN_CHEMIN_APPLI."recu_pdf_corps.php" ;
// buffer est une propriété de la classe FPDF qui contient les données au format PDF.
// habituellement on ne l'utilise pas, on appelle $pdf->Output() qui envoie les
// entete HTTP du document généré
 
$pdf->Close() ;
$buf = $pdf->buffer;
 
// Inclusion des bibliothèques PEAR
 
include_once ('Mail.php');
include_once ('Mail/mime.php');
 
$file = 'Recu_Fiscal_Tela_Botanica.pdf';
$crlf = "\r\n";
$hdrs = array(
'From' => 'accueil@tela-botanica.org',
'Subject' => 'Reçu pour don à Tela Botanica'
);
 
$mime = new Mail_mime($crlf);
$text = "Bonjour !\n\n".
"Le Réseau Tela Botanica vous remercie du soutien financier que vous lui avez apporté. Votre contribution permettra au réseau :\n\n".
"- de continuer à encourager et accompagner des projets botaniques,\n".
"- de maintenir et d'améliorer nos services Internet dédiés à la botanique.\n\n".
"Vous trouverez en pièce jointe à ce message un document PDF contenant le reçu fiscal à imprimer".
" et à joindre à votre déclaration d'impôts. Si vous n'arrivez pas à imprimer ce document, veuillez".
" nous le signaler en répondant à ce mail et en indiquant votre nom et votre adresse postale. Nous vous".
" ferons parvenir le reçu imprimé à cette adresse.\n\n".
"Rappel : Votre contribution financière ne constitue pas une adhésion à l'Association Tela Botanica mais ".
"bien un soutien aux actions menées par le Réseau Tela Botanica.\n\n".
"Si ce n'est déjà fait, n'oubliez pas de vous inscrire au Réseau sur le site Internet, à l'adresse : ".
"http://www.tela-botanica.org (menu « Inscription», onglet « Inscription»), afin que vous puissiez :\n\n".
"- consulter l'annuaire des personnes inscrites au Réseau ;\n- localiser les membres du Réseau dans tous".
" les pays;\n- accédez à certaines données diffusées sur le site ;\n- vous inscrire à des projets ".
"botaniques ;\n- être informé personnellement des actualités du Réseau.\n\n".
"Bien cordialement,\n\n".
"Tela Botanica\nLe Réseau des Botanistes Francophones\n163, rue A. Broussonnet\n34090 Montpellier\n".
"Tél. : 04-67-52-41-22\naccueil@tela-botanica.org\nhttp://www.tela-botanica.org\n" ;
$mime->setTXTBody($text);
 
// On attache le document PDF grace à $buf, et en indiquant son type MIME
$mime->addAttachment($buf, 'application/pdf', $file, false, 'base64') ;
 
$body = $mime->get();
$hdrs = $mime->headers($hdrs);
 
$mail =& Mail::factory('mail');
$mail->send($ligne->U_MAIL, $hdrs, $body);
 
// On insere le numéro du reçu dans la table annuaire_COTISATION
@mysql_query("update annuaire_COTISATION set IC_RECU=$num_recu, IC_DATE_ENVOIE_RECU=NOW() where IC_ID=$cotisation_id") ;
 
// On incrémente le compteur de mail de 1
if (!$deja_envoye) {
$num_recu++ ;
mysql_query("update COMPTEUR_COTISATION set COMPTEUR=$num_recu ") ;
}
$res .= "<div>Le reçu a été envoyé</div>\n" ;
}
$res .= cotisation($u_id) ;
$res .= suppression($u_id) ;
return $res ;
}
 
 
// form construit soit un formulaire de type <input type="text" ...> et
// de nom $field_ et place un $label devant
// soit construit un lien vers un formulaire à partir du champs $field_
 
 
function form($label, $field_, $value)
{
global $u_id, $GS_GLOBAL, $field ;
 
$url = $GLOBALS['ann_url']->getURL() ;
 
if ($field != $field_) {
$res = "<b>$label</b>" ;
$res .= "<a href=\"$url&amp;field=$field_\">" ;
if ($field_ == 'LABEL_NIV' || $field_ == 'LABEL_ACT' || $field_== 'LABEL_ASS') {
$res .= $value ? $value : "(vide)";
} else if ($field_ == "U_COT") {
if ($value == 0) {
$res .= "non" ;
} else {
$res .= "oui" ;
}
} else {
$res .= $value ? $value : "(vide)";
}
$res .= "</a>\n" ;
}
if ($field == $field_) {
$res = "\n<form action=\"$url&amp;u_id=$u_id&amp;action=up&amp;field_=$field_\" method=\"post\">" ;
$res .= "<b>$label</b>\n" ;
switch ($field_) {
case "U_COUNTRY" :
$select_country = new form($GS_GLOBAL['link']) ;
$res .= ereg_replace("gen_COUNTRY", "U_COUNTRY", $select_country->selectFromTable("gen_COUNTRY", $value, "GC_ID", "GC_NAME")) ;
unset($select_country) ;
break ;
 
case "LABEL_NIV" :
$res .= getFormInsInfo($field_, $value) ;
break ;
 
case "LABEL_ASS" :
$res .= getFormInsInfo($field_, $value) ;
break ;
 
case "LABEL_ACT" :
$res .= getFormInsInfo($field_, $value) ;
break ;
 
case "LABEL_STATUT" :
$res .= getFormInsInfo($field_, $value) ;
break ;
 
case "U_COT" :
$res .= "<select class=\"insInputForm\" name=\"II_COT\">\n" ;
if ($value == 0) {
$check0 = " selected" ;
$check1 = "" ;
} else {
$check1 = " selected" ;
$check0 = "" ;
}
$res .= "<option value=\"0\"$check0>non</option>\n" ;
$res .= "<option value=\"1\"$check1>oui</option>\n" ;
$res .= "</select>\n" ;
break ;
 
default :
$res .= "<input type=\"text\" size=\"40\" name=\"$field_\" value=\"$value\">\n" ;
}
$res .= "<input type=\"submit\" value=\"valider\" class=\"texte_tb\">\n" ;
$res .= "</form>" ;
}
return $res ;
}
 
 
// upSQL met à jour la table annuaire_tela
 
function upSQL()
{
global $field_ ;
global $u_id ;
global $HTTP_POST_VARS ;
switch ($field_) {
case "LABEL_NIV" : $field_ = "U_NIV" ;
$id_field = "ID_LABEL_NIV";
break ;
case "LABEL_ACT" : $field_ = "U_ACT" ;
$id_field = "ID_LABEL_ACT";
break ;
case "LABEL_ASS" : $field_ = "U_ACT" ;
$id_field = "ID_LABEL_ASS";
break ;
default :$id_field = $field_ ;
}
 
// Recherche de l'ancien mail
$req_am = "select U_MAIL from annuaire_tela where U_ID = $u_id" ;
$res_am = mysql_query ($req_am);
if(!$res_am) {
$res .= "<br>Echec de la requete dans la table annuaire, l'identifiant de personnes est invalide : ".$u_id."<br />" ;
}
$ligne_am = mysql_fetch_object ($res_am) ;
$ancien_mail = $ligne_am->U_MAIL ;
 
$query = "update annuaire_tela set $field_=\"".$HTTP_POST_VARS[$id_field]."\" where U_ID = $u_id" ;
$res_update = mysql_query($query);
 
if(!$res_update) {
$res .= "<br>Echec de la requete de mise à jour de la table annuaire <br> du paramètre U_ID <br />
ancienne valeur : ".$u_id." nouvelle valeur : ".$HTTP_POST_VARS[$id_field]." <br />" ;
}
 
// Traitement du département
if ($field_ == "U_ZIP_CODE") {
if (preg_match("/^97|98[0-9]*/", $HTTP_POST_VARS['U_ZIP_CODE'])) {
$n_dpt = substr($HTTP_POST_VARS['U_ZIP_CODE'], 0, 3) ;
} else {
$n_dpt = substr($HTTP_POST_VARS['U_ZIP_CODE'], 0, 2) ;
}
mysql_query ("update annuaire_tela set U_FRENCH_DPT='$n_dpt' where U_ID='$u_id'") ;
}
 
// Traitement de l'adresse mail
 
 
if ($field_ == "U_MAIL") {
$requete = "update ins_STATS set IS_MAIL=\"".$HTTP_POST_VARS['U_MAIL']."\" where IS_MAIL=\"$ancien_mail\"" ;
mysql_query ($requete) ;
}
 
return "";
}
 
function getFormInsInfo($field, $value)
{
 
$query = "select * from annuaire_$field" ;
$id_field = "ID_$field" ;
$result = mysql_query($query) or die ("Echec de la requete sur ID_$field<br>".mysql_error()) ;
 
$res = "<select name=\"$id_field\" class=\"insInputForm\">\n" ;
$i = 0 ;
while ($row = mysql_fetch_object($result)) {
 
$res .= "<option value=\"".$row->$id_field."\"" ;
if ($value == $row->$field) $res .= " selected";
$res .= ">" ;
$res .= $row->$field ;
$res .= "</option>\n" ;
$i++ ;
}
$res .= "</select>\n" ;
return $res ;
}
 
// Fonction pour gérer les cotisations d'un inscrit, en
// fonction de son id ($u_id)
 
function cotisation($u_id)
{
global $action, $IC_MONTANT, $IC_DATE, $id_cot, $IC_MC_ID ;
 
$res = '' ;
// un peu de javascript pour la confirmation en cas de destruction
 
$outputText = "function confirmLink(theLink, theSqlQuery)
{
var is_confirmed = confirm(theSqlQuery);
return is_confirmed;
} " ;
 
// fonction gsite pour inclure la fonction Javascript
// au code html
 
GEN_stockerCodeScript($outputText) ;
 
$url = $GLOBALS['ann_url']->getURL() ;
 
// Ce qui suit sont le traitement des 3 actions ajouter, modifier, supprimer
// qui agissent sur la table annuaire_COTISATION
 
// l'action 'cu' consiste en l'insertion d'une ligne dans la table annuaire_COTISATION
 
if ($action == "cu") {
$date = preg_replace("/([0-9]+)-([0-9]+)-([0-9]+)/", "\\3\\2\\1", $IC_DATE) ;
$query = 'insert into annuaire_COTISATION values ("", '.$IC_MC_ID.', '.$u_id.', '.$date.',"'.$IC_MONTANT.'", 0, "0000-00-00")' ;
$resultat = $GLOBALS['ann_db']->query ($query) ;
if (DB::isError($resultat)) {
echo $resultat->getMessage().'<br />'.$resultat->getDebugInfo().'<br />'.$query ;
}
$GLOBALS['ann_db']->query("update annuaire_tela set U_COT=1 where U_ID=$u_id") ;
}
 
// l'action 'mu' permet de mettre à jour une ligne dans annuaire_COTISATION
 
if ($action == "mu") {
$date = preg_replace("/([0-9]+)-([0-9]+)-([0-9]+)/", "\\3-\\2-\\1", $IC_DATE) ;
$query = 'update annuaire_COTISATION set IC_DATE="'.$date.'", IC_MONTANT="'.$IC_MONTANT.'",
IC_MC_ID='.$IC_MC_ID.' where IC_ID='.$id_cot ;
$GLOBALS['ann_db']->query ($query) ;
if (DB::isError($resultat)) {
echo $resultat->getMessage().'<br />'.$resultat->getDebugInfo().'<br />'.$query ;
}
}
 
// l'action 'rm' retire une ligne de la table annuaire_COTISATION
 
if ($action == "rm") {
$query = "delete from annuaire_COTISATION where IC_ID=$id_cot" ;
$GLOBALS['ann_db']->query ($query) ;
if (DB::isError($resultat)) {
echo $resultat->getMessage().'<br />'.$resultat->getDebugInfo().'<br />'.$query ;
}
$GLOBALS['ann_db']->query("update annuaire_tela set U_COT=0 where U_ID=$u_id") ;
}
 
// Quoi qu'il arrive, on récupère les informations concernant
// les cotisations d'un inscrit et on les affiche sous forme de
// table HTML
 
$query = "select * from annuaire_COTISATION, MODE_COTISATION where IC_ANNU_ID=$u_id
and IC_MC_ID=MC_ID ORDER BY IC_DATE" ;
$result = $GLOBALS['ann_db']->query($query) ;
if (DB::isError($result)) {
return $result->getMessage().'<br />'.$result->getDebugInfo().'<br />'.$query;
}
$res = "<h1>Etat des cotisations : </h1>" ;
 
// formatage de la date
$date = date("d-m-Y") ;
 
 
// l'action 'sc' correspond à l'édition d'une ligne de la table
// annuaire_COTISATION. Si elle est présente on affiche un formulaire
// de modification
 
if ($action == "sc") {
 
$res .= "<div><form action=\"$url&action=cu\" method=\"post\"><b>Date : </b>" ;
$res .= "<input type=\"text\" size=\"9\" class=\"insInputForm\" name=\"IC_DATE\" value=\"";
$res .= $date ;
$res .= "\">\n" ;
$res .= "<b>Montant : </b><input type=\"text\" class=\"insInputForm\" size=\"5\" name=\"IC_MONTANT\" value=\"30\"> &euro;\n" ;
$res .= mode_paiement(0) ;
$res .= "<input type=\"submit\" value=\"Valider\" class=\"texte_tb\">\n" ;
$res .= "<input type=\"button\" value=\"Annuler\" class=\"texte_tb\" onclick=\"javascript:window.location.href='$url';\"></form>\n" ;
$res .= "</div>\n" ;
 
// si l'action 'sc' n'est pas active on affiche toutes les lignes
// de cotisation de l'inscrit
 
} else {
if ($result->numRows() != 0) {
$res .= "<div>" ;
$table = new HTML_Table(array("class" => "table_cadre")) ;
$table->addRow(array("Date", "Montant", "Mode", "modifier", "supprimer", "Voir le reçu", "Envoyer le reçu",
"Date d'envoie du reçu"),'', 'TH') ;
 
while ($row = $result->fetchRow(DB_FETCHMODE_OBJECT)) {
// Le reçu a t il été envoyé ?
if ($row->IC_RECU != 0) {
$message_envoye = $row->IC_DATE_ENVOIE_RECU ; ;
} else {
$message_envoye = "Reçu non envoyé";
}
if ($action != "mc" || $id_cot != $row->IC_ID) {
$table->addRow(array ($row->IC_DATE, $row->IC_MONTANT." <b>&euro;</b>", $row->MC_LABEL,
"<a href=\"$url&amp;action=mc&amp;id_cot=$row->IC_ID\">modifier</a>",
"<a href=\"$url&amp;action=rm&amp;id_cot=$row->IC_ID\"".
" onclick=\"javascript:return confirmLink(this, '&ecirc;tes-vous".
" s&ucirc;r de vouloir supprimer cette entr&eacute;e');\">supprimer</a>",
"<a href=\"".URL_RECU."?cotisation_id=$row->IC_ID\">Voir le reçu</a>",
"<a href=\"$url&cotisation_id=$row->IC_ID&action=er\">Envoyer le reçu</a>",
$message_envoye)) ;
} else {
// Recherche du mode de paiement
 
$table->addRow(array("<form action=\"$url&amp;action=mu&amp;id_cot=$row->IC_ID\" method=\"post\">\n".
"<input type=\"text\" size=\"9\" class=\"insInputForm\" name=\"IC_DATE\" value=\"".date ("j-m-Y", $row->IC_DATE)."\">",
"<input type=\"text\" size=\"5\" class=\"insInputForm\" name=\"IC_MONTANT\" value=\"$row->IC_MONTANT\"><b>&euro;</b>",
mode_paiement($row->IC_MC_ID),
"<input type=\"submit\" class=\"texte_tb\" value=\"valider\">".
"<input type=\"button\" value=\"Annuler\" class=\"texte_tb\" onclick=\"javascript:window.location.href='$url';\"></form>",
"&nbsp;")) ;
}
}
$table->altRowAttributes(1, array("class" => "ligne_paire"), array("class" => "ligne_impaire")) ;
$res .= $table->toHTML()."</div>\n" ;
unset($table) ;
} else {
$res .= "<div>non cotisant</div>\n" ;
}
$res .= "<div><input type=\"button\" class=\"texte_tb\" " ;
$res .= "value=\"Saisir une cotisation\" onclick=\"javascript:window.location.href='$url&action=sc';\"></div>\n" ;
}
 
return $res ;
}
 
function suppression($u_id) {
global $GS_GLOBAL, $action ;
 
// un peu de javascript pour la confirmation en cas de destruction
 
$outputText = "function confirmLink(theLink, theSqlQuery)
{
var is_confirmed = confirm(theSqlQuery);
return is_confirmed;
} " ;
 
// fonction gsite pour inclure la fonction Javascript
// au code html
 
GEN_stockerCodeScript($outputText) ;
 
$url = $GLOBALS['ann_url']->getURL() ;
 
$res = "<div>Supprimer l'inscription</div>\n" ;
$res .="<div><form action=\"$url&action=suppr_adh\" method=\"post\">\n" ;
$res .= "<input type=\"submit\" class=\"texte_tb\" value=\"Supprimer\" " ;
$res .= "onclick=\"javascript:return confirmLink(this, '&ecirc;tes-vous s&ucirc;r de vouloir supprimer cet adh&eacute;rent');\">\n" ;
$res .= "</form></div>\n" ;
 
if ($action=="suppr_adh") {
$requete_utilisateur = "select U_MAIL from annuaire_tela where U_ID=".$u_id ;
$resultat_utilisateur = mysql_query($requete_utilisateur);
 
if(!$resultat_utilisateur) {
$res .= "<br>Echec de la requete dans la table annuaire utilisateurs, l'identifiant de personne est invalide : ".$u_id."<br />" ;
}
$utilisateur = mysql_fetch_object($resultat_utilisateur) ;
$mail = $utilisateur->U_MAIL ;
mysql_free_result($resultat_utilisateur) ;
 
// vérifications
// 1. annu_ADMIN
$requete_annuaire_admin = "select ".ANNUAIRE_ADMIN_ID." from ".ANNUAIRE_ADMIN." where ".ANNUAIRE_ADMIN_ID."=".$u_id ;
$r_annu_ADMIN = mysql_query($requete_annuaire_admin);
 
if(!$r_annu_ADMIN) {
$res .= "<br>Echec de la requete dans la table annuaire administrateurs, l'identifiant de personne est invalide : ".$u_id
."<br /> Requete : ".$requete_annuaire_admin ;
}
 
if (mysql_num_rows($r_annu_ADMIN) != 0) {
$res .= "Une référence dans annu_ADMIN" ;
}
 
// 2.
// suppression
$query_supp = "delete from annuaire_tela where U_ID=".$u_id ;
$res_supp = mysql_query($query_supp);
if(!$res_supp) {
$res .= "<br>Echec de la suppression dans la table annuaire utilisateurs, l'identifiant de personne est invalide : ".$u_id
."<br /> Requete : ".$query_supp ;
}
 
// Suppression dans SPIP
if (INS_UTILISE_SPIP) {
desinscription_spip($u_id) ;
}
 
// Désinscription de la lettre d'info
if (INS_UTILISE_LISTE) {
if ($utilisateur->U_LETTRE == 1) {
$supp_abo = file_get_contents(URL_LISTE_ACTU.'suppression_abonne.php?domaine=tela-botanica.org&liste=actu&mail='.$mail) ;
}
}
// Appel des actions desinscriptions des applications clientes
$msg = '';
 
$id_utilisateur = $u_id;
 
$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;
}
}
return $res ;
}
 
/** function mode_paiement () Produit un champs select avec le mode de paiement
*
*
* @param integer mode de paiement par defaut
* @return string HTML
*/
function mode_paiement ($defaut) {
$res = '<select name="IC_MC_ID" >'."\n" ;
$req_mode = "select * from MODE_COTISATION" ;
$res_mode = $GLOBALS['ann_db']->query($req_mode) ;
while ($ligne_mode = $res_mode->fetchROW(DB_FETCHMODE_OBJECT)) {
$res .= '<option value="'.$ligne_mode->MC_ID.'"' ;
if ($ligne_mode ->MC_ID == $defaut) $res .= " selected" ;
$res .= ">$ligne_mode->MC_LABEL</option>\n" ;
}
$res .= "</select>\n" ;
return $res ;
}
 
function desinscription_spip($id_utilisateur)
{
//BIEN METTRE alea_actuel, htpass ET alea_futur À ""
$requete = 'DELETE FROM '.INS_BDD_SPIP.'.spip_auteurs WHERE id_auteur='.$id_utilisateur ;
//echo $requete;
$resultat = $GLOBALS['ins_db']->query ($requete) ;
if (DB::isError ($resultat)) {
return "Echec de la requete : $requete<br />".$resultat->getMessage() ;
}
}
 
?>
/trunk/client/annuaire/signature_Daniel.png
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/trunk/client/annuaire/signature_Daniel.png
New file
Property changes:
Added: svn:mime-type
+application/octet-stream
\ No newline at end of property
/trunk/client/annuaire/annuaire_moteur_fonction.php
New file
0,0 → 1,430
<?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_moteur_fonction.php,v 1.1 2005/03/24 08:47:31 alex Exp $
 
include_once PAP_CHEMIN_API_PEAR.'HTML/QuickForm.php';
include_once PAP_CHEMIN_API_PEAR.'HTML/QuickForm/select.php';
 
/** function mkengine ()
*
*
*
* @return
*/
function mkengine()
{
global $label_bbota;
global $nbr_total;
global $bouton, $HTTP_POST_VARS ;
$mes_vars = array ("recherche", "nom", "ville", "mail" ,"dept", "prenom", "cotisant", "pays", "sort", "T_REPONSE", "lettre","statut") ;
// Deux cas , soit on a cliqué sur rechercher, soit on a cliqué sur un lien
foreach ($mes_vars as $key=>$value) {
if (!$bouton) { // on a cliqué sur un lien
if (empty($HTTP_POST_VARS[$value])) {
}
} else {
// Si on clique sur le bouton rechercher
if (empty ($HTTP_POST_VARS[$value])) {
$$value = "" ;
} else {
$$value = $HTTP_POST_VARS[$value] ;
}
}
}
// Comptage du nombre total de données dans la table (hors CACHER = 1)
$query = "select count(*) as CPT from ".ANN_ANNUAIRE;
$result = $GLOBALS['ann_db']->query($query) ;
if (DB::isError($result)) {
return $result->getMessage().'<br />'.$result->getDebugInfo();
}
 
if ($result->numRows() == 1) {
$tmp_nb = $result->fetchRow(DB_FETCHMODE_OBJECT);
$nbr_total = $tmp_nb->CPT;
if ($nbr_total > 0) $chaine = "parmi $nbr_total données";
else die("<B>Erreur</B> lors du comptage des structures ($nbr_total trouvées) : $query");
} else die("<B>Erreur</B> lors du comptage des structures : $query");
 
$result->free();
// fin comptage
 
$ret = '<h1>'.AM_L_TITRE.'</h1>'."\n";
$ret .= '<h2>'.AM_L_TITRE.' '.$chaine.'</h2>'."\n";
// construction du moteur de str
$formulaire = new HTML_QuickForm('formulaire_recherche', 'post', str_replace('&amp;', '&', $GLOBALS['ann_url']->getURL()));
$squelette =& $formulaire->defaultRenderer();
$squelette->setFormTemplate("\n".'<div id="annuaire_zone_recherche"><table id="annuaire_recherche"><form{attributes}>'."\n".'{content}'."\n".'</form></table></div>'."\n");
$squelette->setElementTemplate( '<tr>'."\n".
'<td class="champ">{label}</td>'."\n".
'<td class="valeur">{element}'.
'<!-- BEGIN required --><span class="symbole_obligatoire">'.ADME_LG_FORM_SYMBOLE_CHP_OBLIGATOIRE.'</span><!-- END required -->'.
'<!-- BEGIN error --><span class="erreur">{error}</span><!-- END error -->'.
'</td>'."\n".
'</tr>'."\n");
$formulaire->addElement('text', 'recherche', AM_L_RECHERCHER);
$requete = 'select GC_ID, GC_NAME from gen_COUNTRY where GC_LOCALE="fr"';
$pays = &$GLOBALS['ann_db']->getAssoc ($requete);
$pays = array_merge (array('tous' => 'Tous les pays'), $pays);
if (DB::isError($pays)) {
return $pays->getMessage().'<br />'.$pays->getDebugInfo();
}
 
$select = new HTML_QuickForm_select ('pays', AM_L_PAYS, $pays, array ('class' => 'projet_asso')) ;
$formulaire->addElement($select) ;
$formulaire->addElement('text', 'nom', AM_L_NOM);
$formulaire->addElement('text', 'prenom', AM_L_PRENOM);
$formulaire->addElement('text', 'ville', AM_L_VILLE);
$departement['tous'] = 'Tous';
$resultat = & $GLOBALS['ann_db']->query('select GFD_ID, CONCAT(GFD_ID,\' - \',GFD_NAME) as GFD_NAME from gen_FRENCH_DPT');
while ($ligne = $resultat->fetchRow(DB_FETCHMODE_OBJECT)) $departement[$ligne->GFD_ID] = $ligne->GFD_NAME;
$select_dpt = new HTML_QuickForm_select ('departement', AM_L_DEPARTEMENT, $departement, array ('class' => 'projet_asso')) ;
$formulaire->addElement($select_dpt);
$formulaire->addElement('text', 'mail', AM_L_MAIL);
$cotisant = array (1 => 'Tous', 2 => 'Cotisants', 3 => 'Non cotisants');
$select_cotisant = new HTML_QuickForm_select ('cotisant', AM_L_COTISANTS, $cotisant, array ('class' => 'projet_asso')) ;
$formulaire->addElement($select_cotisant);
$requete = 'select distinct(YEAR(IC_DATE)) as annees from annuaire_COTISATION';
$resultat_annee_cotisation = &$GLOBALS['ann_db']->query ($requete);
if (DB::isError($resultat_annee_cotisation)) {
return $resultat_annee_cotisation->getMessage().'<br />'.$resultat_annee_cotisation->getDebugInfo();
}
$tableau_annee_cotisation['Toutes'] = 'Toutes';
while ($ligne_annee_cotisation = $resultat_annee_cotisation->fetchRow(DB_FETCHMODE_OBJECT)) {
$tableau_annee_cotisation[$ligne_annee_cotisation->annees] = $ligne_annee_cotisation->annees;
}
$select_annee = new HTML_QuickForm_select ('annee_cotisation', 'Année', $tableau_annee_cotisation, array ('class' => 'projet_asso')) ;
$formulaire->addElement($select_annee);
$grp = array(20 => 20, 50 => 50, 100 => 100) ;
$select_grp = new HTML_QuickForm_select ('T_REPONSE', 'Résultat par', $grp, array ('class' => 'projet_asso')) ;
$formulaire->addElement($select_grp);
$formulaire->addElement('submit', 'bouton', AM_L_RECHERCHER);
foreach ($mes_vars as $key=>$value) {
if (isset($_POST[$value])) {
$default[$value] = $_POST[$value] ;
}
}
$formulaire->setDefaults($_POST);
 
$ret .= '<br />'.$formulaire->toHTML();
return $ret;
}
 
function mkquery()
{
// définition des variables globales
global $lettre ;
global $bouton ;
// Requete sur l'annuaire pour extraire le nom, prénom, ville, nom du département (jointure),
// l'état de la cotisation (jointure)
// le tableau suivant contient tous les champs de la table annuaire_tela sur lesquels on peut effectuer une recherche
$fields_annu = array('departement' => 'U_FRENCH_DPT', "pays" => ANN_CHAMPS_PAYS ) ;
 
$mes_vars = array ("recherche", "nom", "ville", "mail" ,"departement",
"prenom", "cotisant", "pays", "sort", "T_REPONSE",
"lettre","statut", "annee_cotisation") ;
 
foreach ($mes_vars as $key=>$value) {
if (!$bouton) {
} else {
$lettre = "" ;
if (empty ($_REQUEST[$value])) {
$$value = "" ;
} else {
$$value = $_REQUEST[$value] ;
}
}
}
$queries = 'select '.ANN_CHAMPS_ID.','.ANN_CHAMPS_NOM.', '.ANN_CHAMPS_PRENOM.', '.
ANN_CHAMPS_PAYS.','.ANN_CHAMPS_MAIL.', '.ANN_CHAMPS_VILLE ;
$queries .= ", ".ANN_TABLE_PAYS.".GC_NAME ";
$queries .= "from ";
$queries .= ANN_TABLE_PAYS.','.ANN_ANNUAIRE ;
 
// Construction en fonction des champs saisies
// juste le champs "rechercher", on regarde partout
$queries .= " where 1 " ;
if ($lettre == "") {
if ($_REQUEST['recherche'] != '') {
$queries .= ' and ('.ANN_CHAMPS_NOM.' like "%'.$_REQUEST['recherche'].'%"' ; // le premier
foreach($fields_annu as $key=>$value) {
if ($key == "nom") continue ;
$queries .= ($key == "pays" ?
$pays == "tous" ? ")" :
") and $value = '$pays'" : " or $value like '%$recherche%'") ; // les autres
}
//$queries .= ' and ' ;
} else {
 
// si un ou plusieurs autres champs ont été indiqué, on les rajoute ici
 
$or_flag = false ;
foreach($fields_annu as $key=>$valeur) {
if ($key != "") {
if ($key == "pays" && ($$key != 'tous' && $$key != '')) {
if ($$key != "tous") $queries .= " and $valeur like \"%".$$key."%\"" ;
} else {
if ($key == "departement") {
if (isset ($_REQUEST[$key]) && $_REQUEST[$key] != "tous") {
$queries .= ' and U_FRENCH_DPT="'.$_REQUEST[$key].'"' ;
if ($fields_annu["pays"] != "fr") $queries .= ' and '.ANN_CHAMPS_PAYS.'="fr"' ;
}
} else {
if ($$key != '' && $key != 'pays') {
$queries .= ' and '.$valeur.' like "%'.$$key.'%"' ;
}
}
}
$or_flag = true ;
}
}
// ici le cas ou rien n'a été saisie du tout, on affiche tout
if (!$or_flag) {
$queries .= ANN_CHAMPS_NOM.' like "%")' ;
}
}
} else {
if ($lettre == "tous") $lettre = "" ;
$queries .= 'and '.ANN_CHAMPS_NOM.' like "'.$lettre.'%" ' ;
}
$queries .= "" ;
// jointure entre annuaire et table des pays annuaire_tela et gen_COUNTRY
$queries .= " and ".ANN_ANNUAIRE.".".ANN_CHAMPS_PAYS."=".ANN_TABLE_PAYS.".GC_ID" ;
if (isset($nom) && $nom != "") $queries .= " and ".ANN_CHAMPS_NOM." like \"%$nom%\"" ;
if (isset($prenom) && $prenom != "") $queries .= " and ".ANN_CHAMPS_PRENOM." like \"%$prenom%\"" ;
if (isset($ville) && $ville != "") $queries .= " and ".ANN_CHAMPS_VILLE." like \"%$ville%\"" ;
if (isset($mail) && $mail != "") $queries .= " and ".ANN_CHAMPS_MAIL." like \"%$mail%\"" ;
if (isset($_REQUEST['sort']) && $_REQUEST['sort'] != '') $queries .= ' order by '.$_REQUEST['sort'] ;
// traitement de l etat de cotisation
if (isset($cotisant) && $cotisant != 1) {
$queries .= ' and U_ID IN (select IC_ANNU_ID from annuaire_COTISATION where ';
if (isset($annee_cotisation) && $annee_cotisation != 0) {
$queries .= ' year(IC_DATE)='.$annee_cotisation ;
} else {
$queries .= 'year(IC_DATE)='.date('Y') ;
}
$queries .= ')';
}
return $queries;
}
function mkresu() {
$requete = mkquery() ;
// Requete sans le limit pour le nombre de resultat
$resultat_nbr = $GLOBALS['ann_db']->query($requete) ;
if (DB::isError($resultat_nbr)) {
return $resultat_nbr->getMessage().'<br />'.$resultat_nbr->getDebugInfo().'<br />'.$requete ;
}
$nbr_final = $resultat_nbr->numRows() ;
$resultat_nbr->free();
$_SESSION['requete_mail_tous'] = $requete ;
if (!isset($_REQUEST['T_REPONSE'])) $_REQUEST['T_REPONSE'] = 20 ;
$debut = $_REQUEST['pageID'] * $_REQUEST['T_REPONSE'];
$requete .= ' limit '.$debut.','.$_REQUEST['T_REPONSE'];
// Requetes avec les résultats affichés
 
$resultat = $GLOBALS['ann_db']->query($requete) ;
if (DB::isError($resultat)) {
return $resultat->getMessage().'<br />'.$resultat->getDebugInfo().'<br />'.$requete ;
}
$variables_a_supprimer = array ('username', 'password', 'connexion');
foreach ($variables_a_supprimer as $var) if (isset($_POST[$var])) unset ($_POST[$var]) ;
$variables = array_merge ($_POST, $_GET);
foreach ($variables as $key => $var) if ($variables[$key] != '') $GLOBALS['ann_url']->addQueryString($key, $variables[$key]);
$ret = "<table id=\"recherche_alphabetique\"><tr>" ;
for ($i = 65 ; $i <91 ; $i++) {
$ret .= "\t<td><a href=\"".$GLOBALS['ann_url']->getURL()."&lettre=";
$ret .= chr($i)."\">";
$ret .= chr($i) ;
$ret .= "</a></td>\n";
}
$GLOBALS['ann_url']->addQueryString('lettre', 'tous');
$ret .= '<td>&nbsp;&nbsp;<a href="'.$GLOBALS['ann_url']->getURL().'">'.AM_L_TOUS."</a></td>\n" ;
$ret .= "<tr></table>\n" ;
include_once 'api/pear/Pager/Pager.php';
$params = array(
'mode' => 'Jumping',
'perPage' => $_REQUEST['T_REPONSE'],
'delta' => 12,
'httpMethod' => 'GET',
'extraVars' => array_merge($_POST, $_GET),
'altNext' => 'Suivant',
'altPrev' => 'Précédent',
'nextImg' => 'Suivant',
'prevImg' => 'Précedent',
'totalItems' => $nbr_final
);
$pager = & Pager::factory($params);
$data = $pager->getPageData();
$links = $pager->getLinks();
$range = $pager->getOffsetByPageId();
$ret .= '<h2>'.$range[0].' - '.$range[1].' parmi '.$nbr_final.'</h2>';
$ret .= '<div class="bazar_numero">'.$pager->links.'</div>'."\n";
include_once 'api/pear/HTML/Table.php';
$table = new HTML_Table(array("class" => "table_cadre"));
$table->addRow(array("<a href=\"".$GLOBALS['ann_url']->getURL()."&amp;sort=".ANN_CHAMPS_NOM."\">Identit&eacute;</a>",
"<a href=\"".$GLOBALS['ann_url']->getURL()."&amp;sort=".ANN_CHAMPS_MAIL."\">Adresse mail</a>",
"<a href=\"".$GLOBALS['ann_url']->getURL()."&amp;sort=".ANN_CHAMPS_VILLE."\">".AM_L_VILLE, "Pays ou Dpt (fr)",
"<a href=\"".$GLOBALS['ann_url']->getURL()."&amp;sort=U_COT\">Cotisant en ".date(Y)),'', 'TH') ;
while ($valeur = $resultat->fetchRow(DB_FETCHMODE_ASSOC)) {
$ligne_tableau = array();
$montant = 0;
// Le nom de l inscrit avec un lien dessus pour voir les details
$GLOBALS['ann_url']->addQueryString('u_id', $valeur[ANN_CHAMPS_ID]);
array_push ($ligne_tableau, '<a href="'.$GLOBALS['ann_url']->getURL().'">'.$valeur[ANN_CHAMPS_NOM].' '.$valeur[ANN_CHAMPS_PRENOM].'</a>');
// l email
array_push ($ligne_tableau, '<a href="mailto:'.$valeur[ANN_CHAMPS_MAIL].'">'.$valeur[ANN_CHAMPS_MAIL].'</a>');
// La ville
array_push ($ligne_tableau, $valeur[ANN_CHAMPS_VILLE]);
// Le pays ou le departement si francais
if ($valeur['U_COUNTRY'] != 'fr') {
array_push ($ligne_tableau, $valeur['GC_NAME']) ;
} else {
$req_dpt = 'select GFD_NAME from '.ANN_TABLE_DEPARTEMENT.','.ANN_ANNUAIRE.
' where '.ANN_ANNUAIRE.'.'.ANN_CHAMPS_ID.'='.$valeur[ANN_CHAMPS_ID] ;
$req_dpt .= " and ".ANN_ANNUAIRE.".U_FRENCH_DPT=".ANN_TABLE_DEPARTEMENT.".GFD_ID" ;
$resultat_dpt = $GLOBALS['ann_db']->query($req_dpt) ;
if (DB::isError($resultat_dpt)) {
return $resultat_dpt->getMessage().'<br />'.$resultat_dpt->getDebugInfo().'<br />'.$req_dpt ;
}
$ligne_dpt = $resultat_dpt->fetchRow(DB_FETCHMODE_OBJECT) ;
array_push ($ligne_tableau, $ligne_dpt->GFD_NAME) ;
}
// Si cotisant
if ($valeur->IC_MONTANT != NULL) $montant = $valeur->IC_MONTANT.' &euro;';
array_push ($ligne_tableau, $montant);
$table->addRow($ligne_tableau);
}
$table->altRowAttributes(1, array("class" => "ligne_paire"), array("class" => "ligne_impaire"), true);
$ret .= $table->toHTML();
$GLOBALS['ann_url']->removeQueryString('u_id');
$ret .= '<div class="bazar_numero">'.$pager->links.'</div>'."\n";
$GLOBALS['ann_url']->addQueryString(ANN_VARIABLE_ACTION, ANN_ACTION_MAIL_TOUS);
$ret .= "<div id=\"envoyer_selection\"><a href=\"".$GLOBALS['ann_url']->getURL()."\">".AM_L_MAIL_SELECTION."</a></div>\n" ;
$ret .= '<pre id="debogage">'.$requete.'</pre>';
return $ret;
}
 
function resume_cotisation() {
$res = '<h1>Etat des cotisations</h1>'."\n";
$requete = 'select distinct(YEAR(IC_DATE)) as annees from annuaire_COTISATION';
$tableau_annee_cotisation = &$GLOBALS['ann_db']->getCol ($requete);
if (DB::isError($tableau_annee_cotisation)) {
return $tableau_annee_cotisation->getMessage().'<br />'.$tableau_annee_cotisation->getDebugInfo();
}
$requete = 'select MC_ID,MC_LABEL from MODE_COTISATION order by MC_ID' ;
$tableau_mode_cotisation = & $GLOBALS['ann_db']->getAssoc($requete);
if (DB::isError($tableau_annee_cotisation)) {
return $tableau_mode_cotisation->getMessage().'<br />'.$tableau_mode_cotisation->getDebugInfo();
}
// Initialisation de la table
include_once 'api/pear/HTML/Table.php';
$table = new HTML_Table(array('class' => 'table_cadre'));
$table->addRow(array_merge (array('Année'), $tableau_mode_cotisation,
array('Total', 'Nb cotisant', 'Nb inscrit', 'Ratio')), '', 'TH');
foreach ($tableau_annee_cotisation as $annee) {
// recherche du nombre d adherent de l annee
$requete_nb_cotisant = 'select count(*) as nbr from annuaire_tela where U_DATE < "'.$annee.'-12-31" union'.
' select count(*) as nbr from annuaire_COTISATION where year(IC_DATE)='.$annee;
// La requete union renvoie une colonne appele nbr avec 2 lignes le nbre inscrit a tela et le nbre de cotisant
// pour une année donnee
$resultat = $GLOBALS['ann_db']->query($requete_nb_cotisant);
if (DB::isError($resultat)) {
return $resultat->getMessage().'<br />'.$rseultat->getDebugInfo();
}
$nb_inscrit_annee = $resultat->fetchRow(DB_FETCHMODE_OBJECT);
$nb_cotisant_annee = $resultat->fetchRow(DB_FETCHMODE_OBJECT);
$ratio = $nb_cotisant_annee->nbr / $nb_inscrit_annee->nbr * 100;
$ligne_table = array();
// On insere une premiere colone pour les annees
array_push ($ligne_table, $annee);
$somme_annee = 0;
foreach ($tableau_mode_cotisation as $mode_id => $mode_label) {
$requete = 'select sum(IC_MONTANT) as montant from annuaire_COTISATION where IC_MC_ID='.$mode_id.
' and year(IC_DATE)='.$annee;
$montant = $GLOBALS['ann_db']->getOne($requete);
if (DB::isError($montant)) {
return $montant->getMessage().'<br />'.$montant->getDebugInfo();
}
array_push ($ligne_table, $montant);
$somme_annee += $montant;
}
array_push ($ligne_table, $somme_annee, $nb_cotisant_annee->nbr, $nb_inscrit_annee->nbr,substr((string)$ratio, 0, 5).' %');
$table->addRow($ligne_table);
}
$res .= $table->toHTML();
return $res;
}
/* +--Fin du code ----------------------------------------------------------------------------------------+
*
* $Log:$
* * +-- Fin du code ----------------------------------------------------------------------------------------+
*/
 
?>
/trunk/client/annuaire/mail_tous.php
New file
0,0 → 1,104
<?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.php,v 1.3 2005/01/06 15:44:33 alex 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.3 $
// +------------------------------------------------------------------------------------------------------+
*/
 
// +------------------------------------------------------------------------------------------------------+
// | ENTETE du PROGRAMME |
// +------------------------------------------------------------------------------------------------------+
 
function putFrame() {
// configuration
global $objet, $corps, $annuaire_LABEL_STATUT, $SERVER_ADMIN ;
global $action ;
$url = $GLOBALS['ann_url']->getURL() ;
$annu_table = "annuaire_tela" ;
$champs_mail = "U_MAIL" ;
 
// Entete
$corps_debut = "RESEAU TELA BOTANICA - Le ".date("j/m/Y").
"\n\nBonjour,\n"."\n\nCordialement,\n-------------------\nTela Botanica le réseau des botanistes francophones\naccueil@tela-botanica.org\nhttp://www.tela-botanica.org\n";
 
$res = "<h1>Envoi d'un mail &agrave; tous les membres</h1>\n" ;
if ($_GET['action'] == ANN_MAIL_TOUS_ENVOIE) $res .= envoie_mail_selection() ;
$GLOBALS['ann_url']->addQueryString('action', ANN_MAIL_TOUS_ENVOIE);
// formulaire
$res .= '<div><form action="'.$GLOBALS['ann_url']->getURL()."\" method=\"post\"><table>\n" ;
$res .= "<tr><td class=\"insLabel\">" ;
$res .= "Objet&nbsp;:&nbsp;</td><td><input size=\"91\" name=\"objet\" type=\"text\" class=\"insInputForm\"></td></tr>\n" ;
$res .= "<tr><td class=\"insLabel\">Corps&nbsp;:&nbsp;</td><td><textarea name=\"corps\" cols=\"90\" rows=\"30\" class=\"insInputForm\">$corps_debut</textarea></td></tr>\n" ;
$res .= "<tr><td></td><td><input type=\"submit\" class=\"texte_tb\" value=\"envoyer\"" ;
$res .= " onclick=\"javascript:return confirm('Etes-vous sur de vouloir envoyer ce message !!');\"" ;
$res .= "></td></tr>\n" ;
$res .= "</table></form></div>\n" ;
$res .= $_SESSION['requete_mail_tous'];
 
return $res ;
}
 
include_once ("Mail.php");
 
// envoie le mail à tous
function envoie_mail_selection()
{
global $objet, $corps, $annuaire_LABEL_STATUT, $SERVER_ADMIN, $GS_GLOBAL ;
$annuaire = "annuaire_tela" ;
$champs_mail = "U_MAIL" ;
$headers['From'] = "accueil@tela-botanica.org" ;
$headers['Subject'] = stripslashes($objet) ;
 
$corps = stripslashes($corps) ;
$requete = $_SESSION['requete_mail_tous'] ;
unset ($_SESSION['requete_mail_tous']) ;
 
$resultat = mysql_query($requete) or die ("echec") ;
while ($ligne = mysql_fetch_object($resultat)) {
if (!mail($ligne->U_MAIL, $headers['Subject'], $corps, "From: ".$headers['From'])) {
return "<tr><td>Une erreur s'est produite:<br>".$mail_object->getMessage()."</td></tr>\n" ;
}
}
return "<div>Le mail est parti !</div>\n";
 
}
?>
/trunk/client/annuaire/annuaire_moteur.php
New file
0,0 → 1,120
<?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_moteur.php,v 1.2 2005/03/24 08:24:39 alex 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.2 $
// +------------------------------------------------------------------------------------------------------+
*/
 
// +------------------------------------------------------------------------------------------------------+
// | ENTETE du PROGRAMME |
// +------------------------------------------------------------------------------------------------------+
 
include_once 'client/annuaire/configuration/ann_config.inc.php' ;
 
include_once (ANN_CHEMIN_APPLI."annuaire_moteur_fonction.php");
include_once (ANN_CHEMIN_LIBRAIRIE."annuaire.fonct.php") ;
 
if (isset($lang)) {
include_once ANN_CHEMIN_APPLI."/langues/ann_langue_$lang.inc.php" ;
} else {
include_once ANN_CHEMIN_APPLI.'/langues/ann_langue_fr.inc.php' ;
}
 
define ("ANN_MAIL_TOUS", 1) ;
define ("ANN_MAIL_TOUS_ENVOIE", 2) ;
define ('ANN_ACTION_VOIR_ADHERENT', 'voir_adherent');
define ('ANN_ACTION_VOIR_COTISATION', 'voir_cotisation');
define ('ANN_VARIABLE_ACTION', 'action');
define ('ANN_ACTION_MAIL_TOUS', 'mail_tous');
define ('ANN_ACTION_SUPPRIMER_ADHERENT', 'suppr_adh');
 
// Action pour les cotisations
define ('ANN_ACTION_SAISIR_COTISATION', 'sc');
define ('ANN_ACTION_VALIDER_COTISATION', 'cu');
define ('ANN_ACTION_MODIFIER_COTISATION', 'mu');
define ('ANN_ACTION_SUPPRIMER_COTISATION', 'rm');
define ('ANN_ACTION_ENVOYER_RECU', 'er');
 
 
function afficherContenuNavigation () {
$res .= '<ul class="onglets">';
$GLOBALS['ann_url']->addQueryString(ANN_VARIABLE_ACTION, ANN_ACTION_VOIR_ADHERENT);
$res .= '<li class="'.cma(ANN_ACTION_VOIR_ADHERENT).'"><a href="'.$GLOBALS['ann_url']->getURL().'">Adh&eacute;rents</a></li>';
$GLOBALS['ann_url']->addQueryString(ANN_VARIABLE_ACTION, ANN_ACTION_VOIR_COTISATION);
$res .= '<li class="'.cma(ANN_ACTION_VOIR_COTISATION).'"><a href="'.$GLOBALS['ann_url']->getURL().'">Cotisations</a></li>';
$res .= '</ul>';
$GLOBALS['ann_url']->removeQueryString (ANN_VARIABLE_ACTION) ;
return $res ;
}
 
function afficherContenuCorps () {
global $statut ;
if (!isset($_REQUEST[ANN_VARIABLE_ACTION])) $_REQUEST[ANN_VARIABLE_ACTION] = ANN_ACTION_VOIR_ADHERENT;
if (!$GLOBALS['AUTH']->getAuth()) {
$res = AUTH_formulaire_login() ;
} else {
switch ($_REQUEST[ANN_VARIABLE_ACTION]) {
case ANN_ACTION_SAISIR_COTISATION:
case ANN_ACTION_MODIFIER_COTISATION:
case ANN_ACTION_SUPPRIMER_COTISATION:
case ANN_ACTION_VALIDER_COTISATION:
case ANN_ACTION_ENVOYER_RECU:
if (isset($_GET['u_id'])) {
include_once (ANN_CHEMIN_APPLI.'admin_annu.php');
$GLOBALS['ann_url']->addQueryString ('u_id', $_GET['u_id']) ;
return putFrame() ;
}
case ANN_ACTION_VOIR_COTISATION:
$res .= '<div>'.resume_cotisation().'</div>'."\n";
break;
case ANN_ACTION_MAIL_TOUS:
case ANN_MAIL_TOUS_ENVOIE:
include_once (ANN_CHEMIN_APPLI.'mail_tous.php') ;
return putFrame() ;
default:
if (isset ($_GET['u_id'])) {
include_once (ANN_CHEMIN_APPLI.'admin_annu.php');
$GLOBALS['ann_url']->addQueryString ('u_id', $_GET['u_id']) ;
return putFrame() ;
}
return mkengine().mkresu();
}
}
return $res ;
}
 
function cma ($var) {
$class = $_REQUEST[ANN_VARIABLE_ACTION] == $var ? 'menu_actif' : 'menu_inactif' ;
return $class ;
}
?>
/trunk/client/annuaire/recu_pdf_corps.php
New file
0,0 → 1,171
<?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.1.1 2005/01/03 17:27:49 alex 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";
@include_once "bibliotheque/Words.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, 'Articles 200, 238 bis et 885-0 du code général des impôts (CGI)', 0, 1, "C") ;
 
$pdf->Cell(0, 10, 'REÇU A CONSERVER ET A JOINDRE A VOTRE DECLARATION DE REVENUS 2009', 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 en numéraire, à titre de don, la somme de :', 0, 1, "L") ;
 
$wordsConverter = new Numbers_Words() ;
$montantLettres = $wordsConverter->toWords($ligne->IC_MONTANT,'fr') ;
 
$pdf->SetFont('Arial', 'B', 11) ;
$pdf->Cell(0,10, "*** $ligne->IC_MONTANT euros ***", 0, 1, "C") ;
$pdf->Ln() ;
$pdf->Cell(0,10, "*** ($montantLettres euros) ***", 0, 1, "C") ;
 
$pdf->SetFont('Arial', '', 10) ;
 
$pdf->Ln() ;
$pdf->Cell(100,10, "Date du paiement : ".date("d/m/Y",strtotime($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_Mathez.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, 'Joël Mathez, Trésorier', 0, 1, "L") ;
$pdf->Ln(5) ;
 
$pdf->SetFontSize(10) ;
$pdf->Cell(0, 7, '66 % de votre don à Tela Botanica est déductible de vos impôts dans la limite de 20 % de votre revenu imposable.', 1, 1, "C") ;
 
 
?>
/trunk/client/annuaire/images/redaction_milieu.png
Cannot display: file marked as a binary type.
svn:mime-type = image/png
/trunk/client/annuaire/images/redaction_milieu.png
New file
Property changes:
Added: svn:mime-type
+image/png
\ No newline at end of property
/trunk/client/annuaire/images/redaction_pied.png
Cannot display: file marked as a binary type.
svn:mime-type = image/png
/trunk/client/annuaire/images/redaction_pied.png
New file
Property changes:
Added: svn:mime-type
+image/png
\ No newline at end of property
/trunk/client/annuaire/images/redaction_tete.png
Cannot display: file marked as a binary type.
svn:mime-type = image/png
/trunk/client/annuaire/images/redaction_tete.png
New file
Property changes:
Added: svn:mime-type
+image/png
\ No newline at end of property
/trunk/client/annuaire/configuration/ann_config.inc.php
New file
0,0 → 1,121
<?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 |
// +------------------------------------------------------------------------------------------------------+
/**
* 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 Jean-Pascal MILCENT <jpm@tela-botanica.org>
*@copyright Tela-Botanica 2000-2004
*@version $Id: ann_config.inc.php,v 1.2 2005/03/08 09:43:34 alex Exp $
// +------------------------------------------------------------------------------------------------------+
*/
 
// Paramêtres indiquant que l'on est en français pourpermettre la mise en majuscule des caractères accentués
setlocale(LC_CTYPE, 'fr_FR');
 
/**
//=========================DEFINITION DE VARIABLES =================================
* Définition des variables globales
//==================================================================================
*/
$GLOBALS['AUTH'] =& $GLOBALS['_GEN_commun']['pear_auth'] ;
$GLOBALS['ann_db'] =& $GLOBALS['_GEN_commun']['pear_db'] ;
$GLOBALS['ins_db'] =& $GLOBALS['_GEN_commun']['pear_db'] ;
 
/**
//==================================== LES URLS ==================================
* Constantes liées à l'utilisation des url
//==================================================================================
*/
$GLOBALS['ann_url'] =& $GLOBALS['_GEN_commun']['url'];//l'url de base de l'application, un objet Net_URL
// Créer cet objet par $GLOBALS['ins_url'] = new Net_URL('http://....') ;
define('ANN_URL_ACTUALITE', 'http://www.tela-botanica.org/actu/article220.html') ;
/** Variable définissant la lettre par défaut du parcour alphabétique.*/
define('ANN_LETTRE_DEFAUT', 'A') ;// une lettre de l'aphabet ou "tous"
/** Variable définissant si oui ou non on affiche l'entrée "tous" dans le parcour alphabétique.*/
define('ANN_TOUS_BOOL', false) ;// true ou false
/**
//==================================== LES CHEMINS =================================
* Constantes définissant les chemins d'accé au différents fichiers inclus dans les
* applications.
//==================================================================================
*/
define('ANN_CHEMIN_APPLI','client/annuaire/');//le chemin vers l'application courrante
define('ANN_CHEMIN_LIBRAIRIE', ANN_CHEMIN_APPLI.'bibliotheque/');//le chemin de la librairie de fichier php
/**
//==================================== CONSTANTES ==================================
* Constantes des noms de tables et de champs dans l'annuaire
//==================================================================================
*/
define ("ANN_ANNUAIRE", "annuaire_tela");
define ("ANN_CHAMPS_NOM", "U_NAME"); // Nom du champs nom
define ("ANN_CHAMPS_MAIL", "U_MAIL"); // Nom du champs mail
define ("ANN_CHAMPS_PRENOM", "U_SURNAME"); // Nom du champs prénom
define ("ANN_CHAMPS_ID", "U_ID"); // Nom du champs id
define ("ANN_CHAMPS_DATE_INS", "U_DATE");
define ("ANN_CHAMPS_CODE_POSTAL", "U_ZIP_CODE");
define ("ANN_CHAMPS_VILLE", "U_CITY");
define ("ANN_CHAMPS_PAYS", "U_COUNTRY");
 
define ("ANN_TABLE_PAYS", "gen_COUNTRY");
define ("ANN_GC_ID", "GC_ID");
define ("ANN_GC_NOM", "GC_NAME");
 
define ("ANN_TABLE_DEPARTEMENT", "gen_FRENCH_DPT") ;
 
define ('MAIL_MODERATION','moderation@tela-botanica.org') ;
 
/**
//==================================== CONSTANTES ==================================
* Constantes des applications extérieures
//==================================================================================
*/
define ('INS_UTILISE_LISTE', true);
define ('INS_MAIL_INSCRIPTION_LISTE', 'actu-subscribe@tela-botanica.org');
define ('INS_MAIL_DESINSCRIPTION_LISTE', 'actu-unsubscribe@tela-botanica.org');
 
define ('INS_UTILISE_SPIP', 1);
if (INS_UTILISE_SPIP) {
define ('INS_BDD_SPIP', 'tela_prod_spip_actu');
}
 
define ('ANNUAIRE_ADMIN', 'gen_annuaire');
define ('ANNUAIRE_ADMIN_ID', 'ga_id_administrateur');
 
define(INS_CHAMPS_ID, 'U_ID');
define(INS_CHAMPS_MAIL, 'U_MAIL');
define(INS_ANNUAIRE, 'annuaire_tela');
define(INS_CHAMPS_NOM, 'U_NAME');
define(INS_CHAMPS_PRENOM, 'U_SURNAME');
 
 
/** Tableau global contenant les mails des administrateurs. */
// Liste des personne recevant le mail après envoie de courriel par l'annuaire
$GLOBALS['mail_admin'] = array ('Accueil <accueil@tela-botanica.org>',
'Daniel MATHIEU <dmathieu@tela-botanica.org>',
'Jean-Pascal MILCENT <jpm@tela-botanica.org>',
'Élise MOUYSSET <elise@tela-botanica.org>');
?>
/trunk/client/annuaire/annuaire.php
New file
0,0 → 1,113
<?
// +------------------------------------------------------------------------------------------------------+
// | 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 |
// +------------------------------------------------------------------------------------------------------+
/**
* programme principal du module annuaire
*
* programme principal du module annuaire
*
*@package annuaire
//Auteur original :
*@author Alexandre Granier <alexandre@tela-botanica.org>
//Autres auteurs :
*@author Jean-Pascal MILCENT <jpm@tela-botanica.org>
*@copyright Tela-Botanica 2000-2007
*@version $Id: annuaire.php,v 1.4 2005/03/24 08:24:39 alex Exp $
// +------------------------------------------------------------------------------------------------------+
*/
 
// +------------------------------------------------------------------------------------------------------+
// | ENTETE du PROGRAMME |
// +------------------------------------------------------------------------------------------------------+
 
include_once 'client/annuaire/configuration/ann_config.inc.php' ;
include_once ANN_CHEMIN_LIBRAIRIE.'annuaire.fonct.php' ;
/** Constante "dynamique" stockant la langue demandée par l'utilisateur pour l'application.*/
define('INS_LANGUE', substr($GLOBALS['_GEN_commun']['i18n'], 0, 2));
$fichier_lg = ANN_CHEMIN_APPLI.'/langues/ann_langue_'.INS_LANGUE.'.inc.php';
if (file_exists($fichier_lg)) {
include_once $fichier_lg;
} else {
include_once ANN_CHEMIN_APPLI.'/langues/ann_langue_fr.inc.php' ;
}
include_once PAP_CHEMIN_API_PEAR.'HTML/QuickForm.php' ;
 
// Ajout d'une feuille de style externe
GEN_stockerStyleExterne ('inscription', 'client/annuaire/annuaire.css') ;
 
/**
* Renvoie le code HTML de l'application
*
* @return string HTML
*/
function afficherContenuCorps () {
$res = '<h1 class="annuaire_titre1">'.ANN_TITRE.'</h1>'."\n";
if (!$GLOBALS['AUTH']->getAuth()) {
$res .= AUTH_formulaire_login();
} else {
// Le code javascript des cases à cocher
$java =
"function setCheckboxes(the_form)
{
var do_check=document.forms[the_form].elements['selecttotal'].checked;
var elts = document.forms[the_form].elements['select[]'];
var elts_cnt = (typeof(elts.length) != 'undefined')
? elts.length
: 0;
if (elts_cnt) {
for (var i = 0; i < elts_cnt; i++) {
elts[i].checked = do_check;
} // Fin for
} else {
elts.checked = do_check;
} // Fin if... else
return true;
} // Fin de la fonction 'setCheckboxes()'";
GEN_stockerCodeScript($java) ;
 
$res .= '<h2 class="annuaire_titre2">'.ANN_CLIQUEZ_LETTRE.'</h2>'."\n";
 
// Nettoyage des variables du POST
$cles = array('corps', 'titre_mail');
foreach ($cles as $cle) {
if (isset($_POST[$cle]) && !empty($_POST[$cle])) {
$_POST[$cle] = translittererCp1252VersIso88591(stripslashes($_POST[$cle]));
}
}
 
// S'il y a un mail a envoyé, on l'envoie
if (isset($_POST['select']) && is_array($_POST['select'])) {
if (isset($_POST['corps']) && isset($_POST['titre_mail'])) {
$res .= envoie_mail($_POST['select'], $_POST['titre_mail'], $_POST['corps']) ;
}
}
 
$res .= parcourrirAnnu() ;
}
return $res;
}
 
function afficherContenuPied () {
$sortie = '<p id="annuaire_pied_page">'.ANN_PIED_INFO.
'<a href="mailto:'.ANN_PIED_MAIL.'">'.ANN_PIED_MAIL.'</a>.'.
'</p>';
return $sortie;
}
?>
/trunk/client/annuaire/annuaire.css
New file
0,0 → 1,44
/* Pied de page */
#annuaire_pied_page {
color:#A9A9A9;
font-size:10px;
padding-top:10px;
text-align:center;}
 
/* Parcourir l'alphabet */
#annuaire_alphabet{
font-size:15px;}
 
/* Tableau des inscrits */
#annuaire {
border:1px solid;}
#annuaire table{
width:100%;
margin:0;
border:none;}
#annuaire tbody{
vertical-align:top;
min-height:1em;
height:200px;
overflow: auto;}
#annuaire td{
border:none;}
#annuaire tr{
height:1em;}
#redaction {
background:#D4D4D4 url(images/redaction_milieu.png) repeat-y scroll 0%;
color:#454545;
width:900px;}
#redaction .text, #redaction .forml {
width:800px;}
#redaction table,#redaction h2 {
margin:5px;}
#redaction_tete {
background:#D4D4D4 url(images/redaction_tete.png) no-repeat scroll 0%;
color:#FFFFFF;
height:15px;}
#redaction_pied {
background:#D4D4D4 url(images/redaction_pied.png) no-repeat scroll 0%;
color:#FFFFFF;
height:15px;}
/trunk/client/annuaire/logotb.png
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/trunk/client/annuaire/logotb.png
New file
Property changes:
Added: svn:mime-type
+application/octet-stream
\ No newline at end of property
/trunk/client/cartographie/documentation/bdd.sql
New file
0,0 → 1,871
-- phpMyAdmin SQL Dump
-- version 2.11.6
-- http://www.phpmyadmin.net
--
-- Serveur: localhost
-- Généré le : Mar 08 Juillet 2008 à 14:08
-- Version du serveur: 5.0.45
-- Version de PHP: 5.2.6
 
SET SQL_MODE="NO_AUTO_VALUE_ON_ZERO";
 
 
/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
/*!40101 SET NAMES utf8 */;
 
--
-- Base de données: `tela_prod_v4`
--
 
-- --------------------------------------------------------
 
--
-- Structure de la table `carto_ACTION`
--
 
CREATE TABLE IF NOT EXISTS `carto_ACTION` (
`CA_ID_Projet_Carto` int(11) NOT NULL default '0',
`CA_ID_Carte` varchar(32) NOT NULL default '',
`CA_ID_Zone_geo` varchar(255) NOT NULL default '',
`CA_Type_zone` int(11) NOT NULL default '0',
`CA_Action` varchar(10) NOT NULL default '',
`CA_ID_Carte_destination` varchar(32) NOT NULL default '',
PRIMARY KEY (`CA_ID_Projet_Carto`,`CA_ID_Carte`,`CA_ID_Zone_geo`,`CA_Type_zone`,`CA_ID_Carte_destination`,`CA_Action`),
KEY `CA_PROJECT` (`CA_ID_Carte`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
 
--
-- Contenu de la table `carto_ACTION`
--
 
INSERT INTO `carto_ACTION` (`CA_ID_Projet_Carto`, `CA_ID_Carte`, `CA_ID_Zone_geo`, `CA_Type_zone`, `CA_Action`, `CA_ID_Carte_destination`) VALUES
(1, 'afrique', '0', 2, 'Recharger', ''),
(1, 'afrique', 'ao', 2, 'Stop', ''),
(1, 'afrique', 'bf', 2, 'Stop', ''),
(1, 'afrique', 'bi', 2, 'Stop', ''),
(1, 'afrique', 'bj', 2, 'Stop', ''),
(1, 'afrique', 'bw', 2, 'Stop', ''),
(1, 'afrique', 'cd', 2, 'Stop', ''),
(1, 'afrique', 'cf', 2, 'Stop', ''),
(1, 'afrique', 'cg', 2, 'Stop', ''),
(1, 'afrique', 'ci', 2, 'Stop', ''),
(1, 'afrique', 'cm', 2, 'Stop', ''),
(1, 'afrique', 'cv', 2, 'Stop', ''),
(1, 'afrique', 'dj', 2, 'Stop', ''),
(1, 'afrique', 'dz', 2, 'Stop', ''),
(1, 'afrique', 'eg', 2, 'Stop', ''),
(1, 'afrique', 'er', 2, 'Stop', ''),
(1, 'afrique', 'et', 2, 'Stop', ''),
(1, 'afrique', 'ga', 2, 'Stop', ''),
(1, 'afrique', 'gh', 2, 'Stop', ''),
(1, 'afrique', 'gm', 2, 'Stop', ''),
(1, 'afrique', 'gn', 2, 'Stop', ''),
(1, 'afrique', 'gq', 2, 'Stop', ''),
(1, 'afrique', 'gw', 2, 'Stop', ''),
(1, 'afrique', 'ke', 2, 'Stop', ''),
(1, 'afrique', 'km', 2, 'Stop', ''),
(1, 'afrique', 'lr', 2, 'Stop', ''),
(1, 'afrique', 'ls', 2, 'Stop', ''),
(1, 'afrique', 'ly', 2, 'Stop', ''),
(1, 'afrique', 'ma', 2, 'Stop', ''),
(1, 'afrique', 'mg', 2, 'Stop', ''),
(1, 'afrique', 'ml', 2, 'Stop', ''),
(1, 'afrique', 'mr', 2, 'Stop', ''),
(1, 'afrique', 'mu', 2, 'Stop', ''),
(1, 'afrique', 'mw', 2, 'Stop', ''),
(1, 'afrique', 'mz', 2, 'Stop', ''),
(1, 'afrique', 'na', 2, 'Stop', ''),
(1, 'afrique', 'ne', 2, 'Stop', ''),
(1, 'afrique', 'ng', 2, 'Stop', ''),
(1, 'afrique', 'rw', 2, 'Stop', ''),
(1, 'afrique', 'sc', 2, 'Stop', ''),
(1, 'afrique', 'sd', 2, 'Stop', ''),
(1, 'afrique', 'sl', 2, 'Stop', ''),
(1, 'afrique', 'sn', 2, 'Stop', ''),
(1, 'afrique', 'so', 2, 'Stop', ''),
(1, 'afrique', 'st', 2, 'Stop', ''),
(1, 'afrique', 'sz', 2, 'Stop', ''),
(1, 'afrique', 'td', 2, 'Stop', ''),
(1, 'afrique', 'tg', 2, 'Stop', ''),
(1, 'afrique', 'tn', 2, 'Stop', ''),
(1, 'afrique', 'tz', 2, 'Stop', ''),
(1, 'afrique', 'ug', 2, 'Stop', ''),
(1, 'afrique', 'za', 2, 'Stop', ''),
(1, 'afrique', 'zm', 2, 'Stop', ''),
(1, 'afrique', 'zw', 2, 'Stop', ''),
(1, 'asie', '0', 2, 'Recharger', ''),
(1, 'asie', 'bd', 2, 'Stop', ''),
(1, 'asie', 'bn', 2, 'Stop', ''),
(1, 'asie', 'bt', 2, 'Stop', ''),
(1, 'asie', 'cn', 2, 'Stop', ''),
(1, 'asie', 'id', 2, 'Stop', ''),
(1, 'asie', 'in', 2, 'Stop', ''),
(1, 'asie', 'jp', 2, 'Stop', ''),
(1, 'asie', 'kh', 2, 'Stop', ''),
(1, 'asie', 'kp', 2, 'Stop', ''),
(1, 'asie', 'kr', 2, 'Stop', ''),
(1, 'asie', 'kz', 2, 'Stop', ''),
(1, 'asie', 'la', 2, 'Stop', ''),
(1, 'asie', 'lk', 2, 'Stop', ''),
(1, 'asie', 'mm', 2, 'Stop', ''),
(1, 'asie', 'mn', 2, 'Stop', ''),
(1, 'asie', 'mv', 2, 'Stop', ''),
(1, 'asie', 'my', 2, 'Stop', ''),
(1, 'asie', 'np', 2, 'Stop', ''),
(1, 'asie', 'ph', 2, 'Stop', ''),
(1, 'asie', 'rua', 2, 'Stop', ''),
(1, 'asie', 'sg', 2, 'Stop', ''),
(1, 'asie', 'th', 2, 'Stop', ''),
(1, 'asie', 'tw', 2, 'Stop', ''),
(1, 'asie', 'vn', 2, 'Stop', ''),
(1, 'continent', '0', 1, 'Recharger', ''),
(1, 'continent', '1', 1, 'Aller_a', 'afrique'),
(1, 'continent', '2', 1, 'Aller_a', 'namerique'),
(1, 'continent', '3', 1, 'Aller_a', 'asie'),
(1, 'continent', '4', 1, 'Aller_a', 'europe'),
(1, 'continent', '5', 1, 'Aller_a', 'oceanie'),
(1, 'continent', '6', 1, 'Aller_a', 'samerique'),
(1, 'continent', '7', 1, 'Aller_a', 'moyenorient'),
(1, 'europe', '0', 2, 'Recharger', ''),
(1, 'europe', 'al', 2, 'Stop', ''),
(1, 'europe', 'an', 2, 'Stop', ''),
(1, 'europe', 'at', 2, 'Stop', ''),
(1, 'europe', 'ba', 2, 'Stop', ''),
(1, 'europe', 'be', 2, 'Stop', ''),
(1, 'europe', 'bg', 2, 'Stop', ''),
(1, 'europe', 'by', 2, 'Stop', ''),
(1, 'europe', 'ch', 2, 'Stop', ''),
(1, 'europe', 'cy', 2, 'Stop', ''),
(1, 'europe', 'cz', 2, 'Stop', ''),
(1, 'europe', 'de', 2, 'Stop', ''),
(1, 'europe', 'dk', 2, 'Stop', ''),
(1, 'europe', 'ee', 2, 'Stop', ''),
(1, 'europe', 'es', 2, 'Stop', ''),
(1, 'europe', 'fi', 2, 'Stop', ''),
(1, 'europe', 'fr', 2, 'Aller_a', 'france'),
(1, 'europe', 'gr', 2, 'Stop', ''),
(1, 'europe', 'hr', 2, 'Stop', ''),
(1, 'europe', 'hu', 2, 'Stop', ''),
(1, 'europe', 'ie', 2, 'Stop', ''),
(1, 'europe', 'is', 2, 'Stop', ''),
(1, 'europe', 'it', 2, 'Stop', ''),
(1, 'europe', 'li', 2, 'Stop', ''),
(1, 'europe', 'lt', 2, 'Stop', ''),
(1, 'europe', 'lu', 2, 'Stop', ''),
(1, 'europe', 'lv', 2, 'Stop', ''),
(1, 'europe', 'mc', 2, 'Stop', ''),
(1, 'europe', 'md', 2, 'Stop', ''),
(1, 'europe', 'mk', 2, 'Stop', ''),
(1, 'europe', 'mt', 2, 'Stop', ''),
(1, 'europe', 'nl', 2, 'Stop', ''),
(1, 'europe', 'no', 2, 'Stop', ''),
(1, 'europe', 'pl', 2, 'Stop', ''),
(1, 'europe', 'pt', 2, 'Stop', ''),
(1, 'europe', 'ro', 2, 'Stop', ''),
(1, 'europe', 'ru', 2, 'Stop', ''),
(1, 'europe', 'se', 2, 'Stop', ''),
(1, 'europe', 'si', 2, 'Stop', ''),
(1, 'europe', 'sk', 2, 'Stop', ''),
(1, 'europe', 'sm', 2, 'Stop', ''),
(1, 'europe', 'ua', 2, 'Stop', ''),
(1, 'europe', 'uk', 2, 'Stop', ''),
(1, 'europe', 'yu', 2, 'Stop', ''),
(1, 'france', '1', 4, 'Stop', ''),
(1, 'france', '10', 4, 'Stop', ''),
(1, 'france', '11', 4, 'Stop', ''),
(1, 'france', '12', 4, 'Stop', ''),
(1, 'france', '13', 4, 'Stop', ''),
(1, 'france', '14', 4, 'Stop', ''),
(1, 'france', '15', 4, 'Stop', ''),
(1, 'france', '16', 4, 'Stop', ''),
(1, 'france', '17', 4, 'Stop', ''),
(1, 'france', '18', 4, 'Stop', ''),
(1, 'france', '19', 4, 'Stop', ''),
(1, 'france', '2', 4, 'Stop', ''),
(1, 'france', '20', 4, 'Stop', ''),
(1, 'france', '21', 4, 'Stop', ''),
(1, 'france', '22', 4, 'Stop', ''),
(1, 'france', '23', 4, 'Stop', ''),
(1, 'france', '24', 4, 'Stop', ''),
(1, 'france', '25', 4, 'Stop', ''),
(1, 'france', '26', 4, 'Stop', ''),
(1, 'france', '27', 4, 'Stop', ''),
(1, 'france', '28', 4, 'Stop', ''),
(1, 'france', '29', 4, 'Stop', ''),
(1, 'france', '3', 4, 'Stop', ''),
(1, 'france', '30', 4, 'Stop', ''),
(1, 'france', '31', 4, 'Stop', ''),
(1, 'france', '32', 4, 'Stop', ''),
(1, 'france', '33', 4, 'Stop', ''),
(1, 'france', '34', 4, 'Stop', ''),
(1, 'france', '35', 4, 'Stop', ''),
(1, 'france', '36', 4, 'Stop', ''),
(1, 'france', '37', 4, 'Stop', ''),
(1, 'france', '38', 4, 'Stop', ''),
(1, 'france', '39', 4, 'Stop', ''),
(1, 'france', '4', 4, 'Stop', ''),
(1, 'france', '40', 4, 'Stop', ''),
(1, 'france', '41', 4, 'Stop', ''),
(1, 'france', '42', 4, 'Stop', ''),
(1, 'france', '43', 4, 'Stop', ''),
(1, 'france', '44', 4, 'Stop', ''),
(1, 'france', '45', 4, 'Stop', ''),
(1, 'france', '46', 4, 'Stop', ''),
(1, 'france', '47', 4, 'Stop', ''),
(1, 'france', '48', 4, 'Stop', ''),
(1, 'france', '49', 4, 'Stop', ''),
(1, 'france', '5', 4, 'Stop', ''),
(1, 'france', '50', 4, 'Stop', ''),
(1, 'france', '51', 4, 'Stop', ''),
(1, 'france', '52', 4, 'Stop', ''),
(1, 'france', '53', 4, 'Stop', ''),
(1, 'france', '54', 4, 'Stop', ''),
(1, 'france', '55', 4, 'Stop', ''),
(1, 'france', '56', 4, 'Stop', ''),
(1, 'france', '57', 4, 'Stop', ''),
(1, 'france', '58', 4, 'Stop', ''),
(1, 'france', '59', 4, 'Stop', ''),
(1, 'france', '6', 4, 'Stop', ''),
(1, 'france', '60', 4, 'Stop', ''),
(1, 'france', '61', 4, 'Stop', ''),
(1, 'france', '62', 4, 'Stop', ''),
(1, 'france', '63', 4, 'Stop', ''),
(1, 'france', '64', 4, 'Stop', ''),
(1, 'france', '65', 4, 'Stop', ''),
(1, 'france', '66', 4, 'Stop', ''),
(1, 'france', '67', 4, 'Stop', ''),
(1, 'france', '68', 4, 'Stop', ''),
(1, 'france', '69', 4, 'Stop', ''),
(1, 'france', '7', 4, 'Stop', ''),
(1, 'france', '70', 4, 'Stop', ''),
(1, 'france', '71', 4, 'Stop', ''),
(1, 'france', '72', 4, 'Stop', ''),
(1, 'france', '73', 4, 'Stop', ''),
(1, 'france', '74', 4, 'Stop', ''),
(1, 'france', '75', 4, 'Stop', ''),
(1, 'france', '76', 4, 'Stop', ''),
(1, 'france', '77', 4, 'Stop', ''),
(1, 'france', '78', 4, 'Stop', ''),
(1, 'france', '79', 4, 'Stop', ''),
(1, 'france', '8', 4, 'Stop', ''),
(1, 'france', '80', 4, 'Stop', ''),
(1, 'france', '81', 4, 'Stop', ''),
(1, 'france', '82', 4, 'Stop', ''),
(1, 'france', '83', 4, 'Stop', ''),
(1, 'france', '84', 4, 'Stop', ''),
(1, 'france', '85', 4, 'Stop', ''),
(1, 'france', '86', 4, 'Stop', ''),
(1, 'france', '87', 4, 'Stop', ''),
(1, 'france', '88', 4, 'Stop', ''),
(1, 'france', '89', 4, 'Stop', ''),
(1, 'france', '9', 4, 'Stop', ''),
(1, 'france', '90', 4, 'Stop', ''),
(1, 'france', '91', 4, 'Stop', ''),
(1, 'france', '92', 4, 'Stop', ''),
(1, 'france', '93', 4, 'Stop', ''),
(1, 'france', '94', 4, 'Stop', ''),
(1, 'france', '95', 4, 'Stop', ''),
(1, 'france', '971', 4, 'Stop', ''),
(1, 'france', '972', 4, 'Stop', ''),
(1, 'france', '973', 4, 'Stop', ''),
(1, 'france', '974', 4, 'Stop', ''),
(1, 'france', '975', 4, 'Stop', ''),
(1, 'france', '976', 4, 'Stop', ''),
(1, 'france', '980', 4, 'Stop', ''),
(1, 'france', '986', 4, 'Stop', ''),
(1, 'france', '987', 4, 'Stop', ''),
(1, 'france', '988', 4, 'Stop', ''),
(1, 'france', '99', 4, 'Recharger', ''),
(1, 'moyenorient', '0', 2, 'Recharger', ''),
(1, 'moyenorient', 'ae', 2, 'Stop', ''),
(1, 'moyenorient', 'af', 2, 'Stop', ''),
(1, 'moyenorient', 'am', 2, 'Stop', ''),
(1, 'moyenorient', 'az', 2, 'Stop', ''),
(1, 'moyenorient', 'bh', 2, 'Stop', ''),
(1, 'moyenorient', 'ge', 2, 'Stop', ''),
(1, 'moyenorient', 'il', 2, 'Stop', ''),
(1, 'moyenorient', 'iq', 2, 'Stop', ''),
(1, 'moyenorient', 'ir', 2, 'Stop', ''),
(1, 'moyenorient', 'jo', 2, 'Stop', ''),
(1, 'moyenorient', 'kg', 2, 'Stop', ''),
(1, 'moyenorient', 'kw', 2, 'Stop', ''),
(1, 'moyenorient', 'lb', 2, 'Stop', ''),
(1, 'moyenorient', 'om', 2, 'Stop', ''),
(1, 'moyenorient', 'pk', 2, 'Stop', ''),
(1, 'moyenorient', 'ps', 2, 'Stop', ''),
(1, 'moyenorient', 'qa', 2, 'Stop', ''),
(1, 'moyenorient', 'sa', 2, 'Stop', ''),
(1, 'moyenorient', 'sy', 2, 'Stop', ''),
(1, 'moyenorient', 'tj', 2, 'Stop', ''),
(1, 'moyenorient', 'tm', 2, 'Stop', ''),
(1, 'moyenorient', 'tr', 2, 'Stop', ''),
(1, 'moyenorient', 'uz', 2, 'Stop', ''),
(1, 'moyenorient', 'ye', 2, 'Stop', ''),
(1, 'namerique', '0', 2, 'Recharger', ''),
(1, 'namerique', 'ag', 2, 'Stop', ''),
(1, 'namerique', 'bb', 2, 'Stop', ''),
(1, 'namerique', 'bs', 2, 'Stop', ''),
(1, 'namerique', 'bz', 2, 'Stop', ''),
(1, 'namerique', 'ca', 2, 'Stop', ''),
(1, 'namerique', 'cr', 2, 'Stop', ''),
(1, 'namerique', 'cu', 2, 'Stop', ''),
(1, 'namerique', 'dm', 2, 'Stop', ''),
(1, 'namerique', 'gd', 2, 'Stop', ''),
(1, 'namerique', 'gl', 2, 'Stop', ''),
(1, 'namerique', 'gt', 2, 'Stop', ''),
(1, 'namerique', 'hn', 2, 'Stop', ''),
(1, 'namerique', 'ht', 2, 'Stop', ''),
(1, 'namerique', 'jm', 2, 'Stop', ''),
(1, 'namerique', 'lc', 2, 'Stop', ''),
(1, 'namerique', 'mx', 2, 'Stop', ''),
(1, 'namerique', 'ni', 2, 'Stop', ''),
(1, 'namerique', 'pa', 2, 'Stop', ''),
(1, 'namerique', 'sv', 2, 'Stop', ''),
(1, 'namerique', 'tt', 2, 'Stop', ''),
(1, 'namerique', 'us', 2, 'Stop', ''),
(1, 'namerique', 'vc', 2, 'Stop', ''),
(1, 'oceanie', '0', 2, 'Recharger', ''),
(1, 'oceanie', 'au', 2, 'Stop', ''),
(1, 'oceanie', 'fj', 2, 'Stop', ''),
(1, 'oceanie', 'fm', 2, 'Stop', ''),
(1, 'oceanie', 'ki', 2, 'Stop', ''),
(1, 'oceanie', 'mh', 2, 'Stop', ''),
(1, 'oceanie', 'nr', 2, 'Stop', ''),
(1, 'oceanie', 'nz', 2, 'Stop', ''),
(1, 'oceanie', 'pg', 2, 'Stop', ''),
(1, 'oceanie', 'pw', 2, 'Stop', ''),
(1, 'oceanie', 'sb', 2, 'Stop', ''),
(1, 'oceanie', 'to', 2, 'Stop', ''),
(1, 'oceanie', 'tv', 2, 'Stop', ''),
(1, 'oceanie', 'vu', 2, 'Stop', ''),
(1, 'oceanie', 'ws', 2, 'Stop', ''),
(1, 'samerique', '0', 2, 'Recharger', ''),
(1, 'samerique', 'ar', 2, 'Stop', ''),
(1, 'samerique', 'bo', 2, 'Stop', ''),
(1, 'samerique', 'br', 2, 'Stop', ''),
(1, 'samerique', 'cl', 2, 'Stop', ''),
(1, 'samerique', 'co', 2, 'Stop', ''),
(1, 'samerique', 'ec', 2, 'Stop', ''),
(1, 'samerique', 'gy', 2, 'Stop', ''),
(1, 'samerique', 'pe', 2, 'Stop', ''),
(1, 'samerique', 'py', 2, 'Stop', ''),
(1, 'samerique', 'sr', 2, 'Stop', ''),
(1, 'samerique', 'uy', 2, 'Stop', ''),
(1, 'samerique', 've', 2, 'Stop', '');
 
-- --------------------------------------------------------
 
--
-- Structure de la table `carto_communes`
--
 
CREATE TABLE IF NOT EXISTS `carto_communes` (
`cc_code_insee` int(10) unsigned NOT NULL default '0',
`cc_code_couleur_rouge` tinyint(3) unsigned NOT NULL default '0',
`cc_code_couleur_vert` tinyint(3) unsigned NOT NULL default '0',
`cc_code_couleur_bleu` tinyint(3) unsigned NOT NULL default '0',
PRIMARY KEY (`cc_code_insee`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COMMENT='Corrspondance code couleur code insee';
 
--
-- Contenu de la table `carto_communes`
--
 
 
-- --------------------------------------------------------
 
--
-- Structure de la table `carto_CONTINENT`
--
 
CREATE TABLE IF NOT EXISTS `carto_CONTINENT` (
`CC_ID_Continent` tinyint(4) unsigned NOT NULL default '0',
`CC_Intitule_continent` varchar(100) NOT NULL default '',
`CC_Couleur_R` tinyint(4) unsigned NOT NULL default '0',
`CC_Couleur_V` tinyint(4) unsigned NOT NULL default '0',
`CC_Couleur_B` tinyint(4) unsigned NOT NULL default '0'
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COMMENT='liste des continent avec leur couleur respective';
 
--
-- Contenu de la table `carto_CONTINENT`
--
 
INSERT INTO `carto_CONTINENT` (`CC_ID_Continent`, `CC_Intitule_continent`, `CC_Couleur_R`, `CC_Couleur_V`, `CC_Couleur_B`) VALUES
(1, 'Afrique', 60, 174, 15),
(2, 'Amérique du Nord', 128, 218, 141),
(3, 'Asie', 189, 179, 25),
(4, 'Europe', 0, 128, 218),
(5, 'Océanie', 206, 0, 0),
(6, 'Amérique du Sud', 255, 125, 0),
(7, 'Moyen-Orient', 0, 0, 255),
(0, '', 255, 255, 255);
 
-- --------------------------------------------------------
 
--
-- Structure de la table `carto_DEPARTEMENT`
--
 
CREATE TABLE IF NOT EXISTS `carto_DEPARTEMENT` (
`CD_ID_Departement` smallint(3) unsigned NOT NULL default '0',
`CD_Intitule_departement` varchar(100) NOT NULL default '',
`CD_Couleur_R` tinyint(3) unsigned NOT NULL default '0',
`CD_Couleur_V` tinyint(3) unsigned NOT NULL default '0',
`CD_Couleur_B` tinyint(3) unsigned NOT NULL default '0',
`CD_ID_Region` int(10) unsigned NOT NULL default '0',
`CD_ID_Pays` char(3) NOT NULL default '',
PRIMARY KEY (`CD_ID_Departement`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COMMENT='cette table fait la correspondance entre les departements et';
 
--
-- Contenu de la table `carto_DEPARTEMENT`
--
 
INSERT INTO `carto_DEPARTEMENT` (`CD_ID_Departement`, `CD_Intitule_departement`, `CD_Couleur_R`, `CD_Couleur_V`, `CD_Couleur_B`, `CD_ID_Region`, `CD_ID_Pays`) VALUES
(1, 'Ain', 0, 204, 51, 22, 'fr'),
(2, 'Aisne', 240, 240, 255, 19, 'fr'),
(3, 'Allier', 255, 125, 125, 3, 'fr'),
(4, 'Alpes-de-Haute-Provence', 51, 51, 153, 21, 'fr'),
(5, 'Hautes-Alpes', 51, 51, 204, 21, 'fr'),
(6, 'Alpes-Maritimes', 51, 51, 102, 21, 'fr'),
(7, 'Ardèche', 0, 102, 51, 22, 'fr'),
(8, 'Ardennes', 0, 255, 0, 8, 'fr'),
(9, 'Ariège', 255, 102, 102, 16, 'fr'),
(10, 'Aube', 50, 255, 50, 8, 'fr'),
(11, 'Aude', 102, 51, 0, 13, 'fr'),
(12, 'Aveyron', 255, 153, 0, 16, 'fr'),
(13, 'Bouches-du-Rhône', 0, 0, 153, 21, 'fr'),
(14, 'Calvados', 150, 150, 255, 4, 'fr'),
(15, 'Cantal', 255, 175, 175, 3, 'fr'),
(16, 'Charente', 175, 255, 175, 20, 'fr'),
(17, 'Charente-Maritime', 150, 255, 150, 20, 'fr'),
(18, 'Cher', 125, 255, 255, 7, 'fr'),
(19, 'Corrèze', 255, 255, 150, 14, 'fr'),
(20, 'Corse', 51, 255, 204, 9, 'fr'),
(21, 'Côte-d''Or', 50, 151, 255, 5, 'fr'),
(22, 'Côtes-d''Armor', 75, 75, 255, 6, 'fr'),
(23, 'Creuse', 255, 255, 125, 14, 'fr'),
(24, 'Dordogne', 102, 153, 102, 2, 'fr'),
(25, 'Doubs', 255, 255, 50, 10, 'fr'),
(26, 'Drôme', 1, 51, 51, 22, 'fr'),
(27, 'Eure', 204, 255, 0, 11, 'fr'),
(28, 'Eure-et-Loir', 0, 255, 255, 7, 'fr'),
(29, 'Finistère', 25, 25, 255, 6, 'fr'),
(30, 'Gard', 255, 204, 0, 13, 'fr'),
(31, 'Haute-Garonne', 204, 102, 102, 16, 'fr'),
(32, 'Gers', 204, 153, 51, 16, 'fr'),
(33, 'Gironde', 153, 204, 153, 2, 'fr'),
(34, 'Hérault', 204, 153, 0, 13, 'fr'),
(35, 'Ille-et-Vilaine', 100, 100, 255, 6, 'fr'),
(36, 'Indre', 100, 255, 255, 7, 'fr'),
(37, 'Indre-et-Loire', 75, 255, 255, 7, 'fr'),
(38, 'Isère', 51, 102, 102, 22, 'fr'),
(39, 'Jura', 255, 255, 75, 10, 'fr'),
(40, 'Landes', 153, 255, 153, 2, 'fr'),
(41, 'Loir-et-Cher', 50, 255, 255, 7, 'fr'),
(42, 'Loire', 0, 153, 51, 22, 'fr'),
(43, 'Haute-Loire', 255, 200, 200, 3, 'fr'),
(44, 'Loire-Atlantique', 255, 0, 0, 18, 'fr'),
(45, 'Loiret', 25, 255, 255, 7, 'fr'),
(46, 'Lot', 204, 102, 0, 16, 'fr'),
(47, 'Lot-et-Garonne', 204, 255, 204, 2, 'fr'),
(48, 'Lozére', 153, 102, 0, 13, 'fr'),
(49, 'Maine-et-Loire', 255, 100, 100, 18, 'fr'),
(50, 'Manche', 125, 125, 255, 4, 'fr'),
(51, 'Marne', 25, 255, 25, 8, 'fr'),
(52, 'Haute-Marne', 75, 255, 75, 8, 'fr'),
(53, 'Mayenne', 255, 75, 75, 18, 'fr'),
(54, 'Meurthe-et-Moselle', 102, 0, 102, 15, 'fr'),
(55, 'Meuse', 153, 0, 153, 15, 'fr'),
(56, 'Morbihan', 50, 50, 255, 6, 'fr'),
(57, 'Moselle', 204, 0, 204, 15, 'fr'),
(58, 'Nièvre', 100, 151, 255, 5, 'fr'),
(59, 'Nord', 153, 153, 51, 17, 'fr'),
(60, 'Oise', 225, 225, 255, 19, 'fr'),
(61, 'Orne', 175, 175, 255, 4, 'fr'),
(62, 'Pas-de-Calais', 102, 102, 51, 17, 'fr'),
(63, 'Puy-de-Dôme', 255, 150, 150, 3, 'fr'),
(64, 'Pyrénnées-Atlantiques', 102, 255, 102, 2, 'fr'),
(65, 'Hautes-Pyrénnées', 153, 102, 51, 16, 'fr'),
(66, 'Pyrénnées-Orientales', 51, 51, 0, 13, 'fr'),
(67, 'Bas-Rhin', 204, 204, 51, 1, 'fr'),
(68, 'Haut-Rhin', 153, 153, 0, 1, 'fr'),
(69, 'Rhône', 0, 255, 51, 22, 'fr'),
(70, 'Haute-Saône', 255, 255, 0, 10, 'fr'),
(71, 'Saône-et-Loire', 150, 151, 255, 5, 'fr'),
(72, 'Sarthe', 255, 25, 25, 18, 'fr'),
(73, 'Savoie', 51, 153, 153, 22, 'fr'),
(74, 'Haute-Savoie', 0, 204, 204, 22, 'fr'),
(75, 'Paris', 199, 255, 175, 12, 'fr'),
(76, 'Seine-Maritime', 204, 204, 0, 11, 'fr'),
(77, 'Seine-et-Marne', 199, 255, 75, 12, 'fr'),
(78, 'Yvelines', 199, 255, 25, 12, 'fr'),
(79, 'Deux-Sèvres', 100, 255, 100, 20, 'fr'),
(80, 'Somme', 200, 200, 255, 19, 'fr'),
(81, 'Tarn', 153, 102, 102, 16, 'fr'),
(82, 'Tarn-et-Garonne', 153, 51, 0, 16, 'fr'),
(83, 'Var', 0, 0, 204, 21, 'fr'),
(84, 'Vaucluse', 0, 0, 102, 21, 'fr'),
(85, 'Vendée', 255, 50, 50, 18, 'fr'),
(86, 'Vienne', 125, 255, 125, 20, 'fr'),
(87, 'Haute-Vienne', 255, 255, 100, 14, 'fr'),
(88, 'Vosges', 255, 0, 255, 15, 'fr'),
(89, 'Yonne', 0, 151, 255, 5, 'fr'),
(90, 'Territoire-de-Belfort', 255, 255, 25, 10, 'fr'),
(91, 'Essonne', 199, 255, 50, 12, 'fr'),
(92, 'Hauts-de-Seine', 199, 255, 100, 12, 'fr'),
(93, 'Seine-Saint-Denis', 199, 255, 125, 12, 'fr'),
(94, 'Val-de-Marne', 199, 255, 150, 12, 'fr'),
(95, 'Val-d''Oise', 199, 255, 0, 12, 'fr'),
(99, 'Etranger', 255, 255, 255, 900, ''),
(971, 'Guadeloupe', 161, 161, 25, 900, 'fr'),
(972, 'Martinique', 161, 161, 125, 900, 'fr'),
(973, 'Guyane', 161, 161, 200, 900, 'fr'),
(974, 'Réunion', 161, 161, 225, 900, 'fr'),
(975, 'St-Pierre-et-Miquelon', 25, 161, 161, 900, 'fr'),
(976, 'Mayotte', 125, 161, 161, 900, 'fr'),
(980, 'Monaco', 1, 1, 1, 900, 'fr'),
(986, 'Wallis-et-Futuna', 200, 161, 161, 900, 'fr'),
(987, 'Polynésie-Française', 225, 161, 161, 900, 'fr'),
(988, 'Nouvelle-Calédonie', 225, 225, 161, 900, 'fr');
 
-- --------------------------------------------------------
 
--
-- Structure de la table `carto_DESCRIPTION_CARTE`
--
 
CREATE TABLE IF NOT EXISTS `carto_DESCRIPTION_CARTE` (
`CDC_ID_Carte` varchar(32) NOT NULL default '',
`CDC_Titre_carte` varchar(100) NOT NULL default '',
`CDC_Infos_carte` mediumblob NOT NULL,
`CDC_Carte_fond` varchar(100) NOT NULL default '',
`CDC_Carte_masque` varchar(100) NOT NULL default '',
`CDC_ID_Zone_geo_carte` varchar(255) NOT NULL default '',
`CDC_Type_zone_carte` int(10) unsigned NOT NULL default '0',
`CDC_Type_zone_contenu_carte` int(10) unsigned NOT NULL default '0',
KEY `CM_PROJECT` (`CDC_ID_Carte`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
 
--
-- Contenu de la table `carto_DESCRIPTION_CARTE`
--
 
INSERT INTO `carto_DESCRIPTION_CARTE` (`CDC_ID_Carte`, `CDC_Titre_carte`, `CDC_Infos_carte`, `CDC_Carte_fond`, `CDC_Carte_masque`, `CDC_ID_Zone_geo_carte`, `CDC_Type_zone_carte`, `CDC_Type_zone_contenu_carte`) VALUES
('europe', 'Europe', '', 'europe.png', 'europe_masque.png', '4', 1, 2),
('france', 'France', '', 'france_region.png', 'france_masque.png', 'fr', 2, 4),
('continent', 'Monde', '', 'monde5c.png', 'monde_masque5c.png', '', 0, 1),
('afrique', 'Afrique', '', 'afrique.png', 'afrique_masque.png', '1', 1, 2),
('oceanie', 'Océanie', '', 'oceanie.png', 'oceanie_masque.png', '5', 1, 2),
('namerique', 'Amérique du Nord', '', 'namerique.png', 'namerique_masque.png', '2', 1, 2),
('samerique', 'Amérique du Sud', '', 'samerique.png', 'samerique_masque.png', '6', 1, 2),
('asie', 'Asie - Extrême Orient', '', 'asie.png', 'asie_masque.png', '3', 1, 2),
('moyenorient', 'Moyen-Orient', '', 'moyenorient.png', 'moyenorient_masque.png', '7', 1, 2);
 
-- --------------------------------------------------------
 
--
-- Structure de la table `carto_PAYS`
--
 
CREATE TABLE IF NOT EXISTS `carto_PAYS` (
`CP_ID_Pays` char(3) NOT NULL default '',
`CP_Langue_intitule` char(3) NOT NULL default '',
`CP_Intitule_pays` varchar(100) NOT NULL default '',
`CP_Intitule_capitale` varchar(100) NOT NULL default '',
`CP_Couleur_R` tinyint(3) unsigned NOT NULL default '0',
`CP_Couleur_V` tinyint(3) unsigned NOT NULL default '0',
`CP_Couleur_B` tinyint(3) unsigned NOT NULL default '0',
`CP_ID_Continent` tinyint(4) unsigned NOT NULL default '0',
PRIMARY KEY (`CP_ID_Pays`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COMMENT='table de correspondance entre le spays et leur couleur';
 
--
-- Contenu de la table `carto_PAYS`
--
 
INSERT INTO `carto_PAYS` (`CP_ID_Pays`, `CP_Langue_intitule`, `CP_Intitule_pays`, `CP_Intitule_capitale`, `CP_Couleur_R`, `CP_Couleur_V`, `CP_Couleur_B`, `CP_ID_Continent`) VALUES
('af', 'fr', 'Afghanistan', 'Kaboul', 60, 140, 60, 7),
('za', 'fr', 'Afrique du Sud', 'Pretoria', 255, 25, 25, 1),
('al', 'fr', 'Albanie', 'Tirana', 150, 150, 255, 4),
('dz', 'fr', 'Algérie', 'Alger', 255, 25, 75, 1),
('de', 'fr', 'Allemagne', 'Berlin', 255, 75, 75, 4),
('an', 'fr', 'Andorre', 'Andorre la vielle', 51, 51, 51, 4),
('ao', 'fr', 'Angola', 'Luanda', 255, 25, 125, 1),
('ag', 'fr', 'Antigua et Barbuda', 'St Jean', 200, 100, 0, 2),
('sa', 'fr', 'Arabie Saoudite', 'Riyad', 60, 100, 60, 7),
('ar', 'fr', 'Argentine', 'Buenos Aires', 20, 220, 120, 6),
('am', 'fr', 'Arménie', 'Erevan', 60, 180, 60, 7),
('au', 'fr', 'Australie', 'Canberra', 255, 25, 25, 5),
('at', 'fr', 'Autriche', 'Vienne', 179, 179, 179, 4),
('az', 'fr', 'Azerbaïdjan', 'Bakou', 60, 240, 60, 7),
('bs', 'fr', 'Bahamas', 'Nassau', 200, 100, 50, 2),
('bh', 'fr', 'Bahreïn', 'Manama', 140, 0, 0, 7),
('bd', 'fr', 'Bangladesh', 'Dhaka', 140, 40, 0, 3),
('bb', 'fr', 'Barbade', 'Bridgetown', 200, 100, 75, 2),
('be', 'fr', 'Belgique', 'Bruxelles', 204, 204, 204, 4),
('bz', 'fr', 'Bélize', 'Belmopan', 200, 100, 100, 2),
('bj', 'fr', 'Bénin', 'Porto-Novo', 255, 25, 175, 1),
('bt', 'fr', 'Bhoutan', 'Timphou', 140, 80, 0, 3),
('by', 'fr', 'Biélorussie', 'Minsk', 225, 255, 225, 4),
('bo', 'fr', 'Bolivie', 'La Paz', 120, 220, 120, 6),
('ba', 'fr', 'Bosnie-Herzégovine', 'Sarajevo', 255, 25, 25, 4),
('bw', 'fr', 'Botswana', 'Gaborone', 255, 25, 225, 1),
('br', 'fr', 'Brésil', 'Brasillia', 250, 220, 120, 6),
('bn', 'fr', 'Brunei Darusalam', 'Bandar Seri Begawan', 140, 120, 0, 3),
('bg', 'fr', 'Bulgarie', 'Sofia', 75, 75, 255, 4),
('bf', 'fr', 'Burkina Faso', 'Ouagadougou', 255, 150, 25, 1),
('bi', 'fr', 'Burundi', 'Bujumbura', 255, 150, 75, 1),
('kh', 'fr', 'Cambodge', 'Phnom Penh', 140, 140, 0, 3),
('cm', 'fr', 'Cameroun', 'Yaoundé', 255, 150, 125, 1),
('ca', 'fr', 'Canada', 'Ottawa', 200, 100, 125, 2),
('cv', 'fr', 'Cap Vert', 'Praia', 25, 100, 150, 1),
('cl', 'fr', 'Chili', 'Santiago', 220, 20, 120, 6),
('cn', 'fr', 'Chine', 'Pékin', 140, 180, 0, 3),
('cy', 'fr', 'Chypre', 'Nicosie', 200, 200, 255, 4),
('co', 'fr', 'Colombie', 'Bogota', 220, 120, 120, 6),
('km', 'fr', 'Comores', 'Moroni', 255, 150, 175, 1),
('cr', 'fr', 'Costa Rica', 'San José', 200, 100, 150, 2),
('ci', 'fr', 'Côte d''Ivoire', 'Yamoussoukro', 255, 150, 225, 1),
('hr', 'fr', 'Croatie', 'Zaghreb', 255, 225, 225, 4),
('cu', 'fr', 'Cuba', 'La Havane', 200, 100, 175, 2),
('dk', 'fr', 'Danemark', 'Copenhague', 25, 255, 25, 4),
('dj', 'fr', 'Djibouti', 'Djibouti', 255, 250, 25, 1),
('dm', 'fr', 'Dominique', 'Roseau', 200, 100, 250, 2),
('eg', 'fr', 'Egypte', 'Le Caire', 255, 250, 75, 1),
('sv', 'fr', 'Salvador', 'San Salvador', 200, 200, 0, 2),
('ae', 'fr', 'Emirats Arabes Unis', 'Abou Dabi', 140, 220, 0, 7),
('ec', 'fr', 'Equateur', 'Quito', 220, 250, 120, 6),
('er', 'fr', 'Erythrée', 'Asmara', 255, 250, 125, 1),
('es', 'fr', 'Espagne', 'Madrid', 102, 102, 102, 4),
('ee', 'fr', 'Estonie', 'Tallin', 125, 255, 125, 4),
('us', 'fr', 'Etats-Unis', 'Washington', 200, 200, 100, 2),
('et', 'fr', 'Ethiopie', 'Addis-Abeba', 255, 250, 175, 1),
('fj', 'fr', 'Fidji', 'Suva', 255, 25, 75, 5),
('fi', 'fr', 'Finlande', 'Helsinki', 100, 255, 100, 4),
('fr', 'fr', 'France', 'Paris', 77, 77, 77, 4),
('ga', 'fr', 'Gabon', 'Libreville', 25, 50, 255, 1),
('gm', 'fr', 'Gambie', 'Banjul', 75, 50, 255, 1),
('ge', 'fr', 'Géorgie', 'T''billisi', 170, 15, 50, 7),
('gh', 'fr', 'Ghana', 'Accra', 125, 50, 255, 1),
('gr', 'fr', 'Grèce', 'Athènes', 175, 175, 255, 4),
('gd', 'fr', 'Grenade', 'Saint-Georges', 200, 200, 125, 2),
('gl', 'fr', 'Groenland', 'Nuuk', 200, 200, 250, 2),
('gt', 'fr', 'Guatémala', 'Guatemala', 0, 100, 200, 2),
('gw', 'fr', 'Guinée Bissau', 'Bissau', 175, 50, 255, 1),
('gq', 'fr', 'Guinée équatoriale', 'Malabo', 225, 50, 255, 1),
('gy', 'fr', 'Guyana', 'Georgetown', 20, 0, 160, 6),
('ht', 'fr', 'Haïti', 'Port au Prince', 50, 100, 200, 2),
('hn', 'fr', 'Honduras', 'Tegucigalpa', 75, 100, 200, 2),
('hu', 'fr', 'Hongrie', 'Budapest', 255, 175, 175, 4),
('in', 'fr', 'Inde', 'New Delhi', 255, 0, 0, 3),
('id', 'fr', 'Indonésie', 'Jakarta', 255, 40, 0, 3),
('iq', 'fr', 'Irak', 'Bagdad', 255, 80, 0, 7),
('ir', 'fr', 'Iran', 'Téhéran', 255, 120, 0, 7),
('ie', 'fr', 'Irlande', 'Dublin', 0, 255, 0, 4),
('is', 'fr', 'Islande', 'Reykjavik', 255, 50, 50, 4),
('il', 'fr', 'Israël', 'Tel-Aviv', 255, 160, 0, 7),
('it', 'fr', 'Italie', 'Rome', 153, 153, 153, 4),
('jm', 'fr', 'Jamaïque', 'Kingston', 100, 100, 200, 2),
('jp', 'fr', 'Japon', 'Tokyo', 255, 200, 0, 3),
('jo', 'fr', 'Jordanie', 'Amman', 255, 240, 0, 7),
('kz', 'fr', 'Kazakhstan', 'Astana', 0, 100, 255, 3),
('ke', 'fr', 'Kenya', 'Nairobo', 25, 150, 255, 1),
('kg', 'fr', 'Kirghizstan', 'Bichkek', 40, 100, 255, 7),
('ki', 'fr', 'Kiribati', 'Tarawa', 255, 25, 125, 5),
('kw', 'fr', 'Koweït', 'Keweït', 80, 100, 255, 7),
('ls', 'fr', 'Lesotho', 'Maseru', 75, 150, 255, 1),
('lv', 'fr', 'Lettonie', 'Rïga', 150, 255, 150, 4),
('lb', 'fr', 'Liban', 'Beyrouth', 120, 100, 255, 7),
('lr', 'fr', 'Libéria', 'Monrovia', 125, 150, 255, 1),
('ly', 'fr', 'Libye', 'Tripoli', 175, 150, 255, 1),
('li', 'fr', 'Liechtenstein', 'Vaduz', 0, 255, 255, 4),
('lt', 'fr', 'Lituanie', 'Vinius', 175, 255, 175, 4),
('lu', 'fr', 'Luxembourg', 'Luxembourg', 229, 229, 229, 4),
('mk', 'fr', 'Macédoine', 'Skopje', 125, 125, 255, 4),
('mg', 'fr', 'Madagascar', 'Antananarivo', 225, 150, 255, 1),
('my', 'fr', 'Malaisie', 'Kuala Lumpur', 140, 100, 255, 3),
('mw', 'fr', 'Malawi', 'Lilongwe', 25, 250, 255, 1),
('mv', 'fr', 'Maldives', 'Malé', 160, 100, 255, 3),
('ml', 'fr', 'Mali', 'Bamoko', 75, 250, 255, 1),
('mt', 'fr', 'Malte', 'La Valette', 225, 225, 255, 4),
('ma', 'fr', 'Maroc', 'Rabat', 125, 250, 255, 1),
('mh', 'fr', 'Marshall', 'Majuro', 255, 25, 175, 5),
('mu', 'fr', 'Maurice', 'Port-Louis', 175, 250, 255, 1),
('mr', 'fr', 'Mauritanie', 'Nouakchott', 25, 255, 50, 1),
('mx', 'fr', 'Mexique', 'Mexico', 125, 100, 200, 2),
('fm', 'fr', 'Micronésie', 'Palikir', 255, 25, 225, 5),
('md', 'fr', 'Moldavie', 'Chisinau', 25, 25, 255, 4),
('mc', 'fr', 'Monaco', 'Monaco', 50, 255, 255, 4),
('mn', 'fr', 'Mongolie', 'Oulan-Bator', 180, 100, 255, 3),
('mz', 'fr', 'Mozambique', 'Maputo', 75, 255, 50, 1),
('na', 'fr', 'Namibie', 'Windhoek', 125, 255, 50, 1),
('nr', 'fr', 'Nauru', 'Yaren District', 255, 75, 25, 5),
('np', 'fr', 'Népal', 'Kathmandou', 200, 100, 255, 3),
('ni', 'fr', 'Nicaragua', 'Managua', 150, 100, 200, 2),
('ne', 'fr', 'Niger', 'Niamey', 175, 255, 50, 1),
('ng', 'fr', 'Nigéria', 'Abuja', 225, 255, 50, 1),
('no', 'fr', 'Norvège', 'Oslo', 50, 255, 50, 4),
('nz', 'fr', 'Nouvelle-Zélande', 'Wellington', 255, 75, 75, 5),
('om', 'fr', 'Oman', 'Mascate', 220, 100, 255, 7),
('ug', 'fr', 'Ouganda', 'Kampala', 25, 255, 150, 1),
('uz', 'fr', 'Ouzbekistan', 'Tachkent', 240, 100, 255, 7),
('pk', 'fr', 'Pakistan', 'Islamabad', 0, 255, 0, 7),
('pw', 'fr', 'Palau', 'Koror', 255, 75, 125, 5),
('ps', 'fr', 'Palestine', 'Jérusalem', 40, 255, 0, 7),
('pa', 'fr', 'Panama', 'Panama', 175, 100, 200, 2),
('pg', 'fr', 'Papouasie - Nouvelle Guinée', 'Port Moresby', 255, 75, 175, 5),
('py', 'fr', 'Paraguay', 'Assomption', 20, 120, 160, 6),
('nl', 'fr', 'Pays-Bas', 'Amsterdam', 245, 245, 245, 4),
('pe', 'fr', 'Pérou', 'Lima', 20, 160, 160, 6),
('ph', 'fr', 'Philippines', 'Manille', 80, 255, 0, 3),
('pl', 'fr', 'Pologne', 'Varsovie', 255, 100, 100, 4),
('pt', 'fr', 'Portugal', 'Lisbonne', 26, 26, 26, 4),
('qa', 'fr', 'Qatar', 'Doha', 120, 255, 0, 7),
('cf', 'fr', 'République Centrafricaine', 'Bangui', 75, 255, 150, 1),
('kr', 'fr', 'République de Corée', 'Séoul', 140, 255, 0, 3),
('cd', 'fr', 'République Démocratique du Congo', 'Kinshasa', 125, 255, 150, 1),
('kp', 'fr', 'République Populaire Démocratique de Corée', 'Pyongyang', 180, 255, 0, 3),
('cz', 'fr', 'République Tchèque', 'Prague', 255, 125, 125, 4),
('ro', 'fr', 'Roumanie', 'Bucarest', 50, 50, 255, 4),
('uk', 'fr', 'Royaume-Uni', 'Londres', 255, 0, 0, 4),
('ru', 'fr', 'Russie', 'Moscou', 200, 255, 200, 4),
('rw', 'fr', 'Rwanda', 'Kigali', 175, 255, 150, 1),
('sm', 'fr', 'San Marin', 'Saint marin', 25, 255, 255, 4),
('vc', 'fr', 'Saint Vincent et les Grenadines', 'Kingston', 200, 100, 200, 2),
('lc', 'fr', 'Sainte Lucie', 'Castries', 0, 100, 100, 2),
('sb', 'fr', 'Salomon', 'Honiara', 255, 75, 225, 5),
('ws', 'fr', 'Samoa', 'Apia', 255, 125, 25, 5),
('st', 'fr', 'Sao Tomé et Principe', 'Sao Tomé', 25, 255, 250, 1),
('sn', 'fr', 'Sénégal', 'Dakar', 75, 255, 250, 1),
('sc', 'fr', 'Seychelles', 'Victoria', 100, 255, 250, 1),
('sl', 'fr', 'Sierra Leone', 'Freetown', 125, 255, 250, 1),
('sg', 'fr', 'Singapour', 'Singapour', 200, 255, 0, 3),
('sk', 'fr', 'Slovaquie', 'Bratislava', 255, 150, 150, 4),
('si', 'fr', 'Slovénie', 'Ljubljana', 255, 200, 200, 4),
('so', 'fr', 'Somalie', 'Mogadiscio', 175, 255, 250, 1),
('sd', 'fr', 'Soudan', 'Khartoum', 151, 151, 25, 1),
('lk', 'fr', 'Sri Lanka', 'Sri Jayawardhanapura', 220, 255, 0, 3),
('se', 'fr', 'Suède', 'Stokholm', 75, 255, 75, 4),
('ch', 'fr', 'Suisse', 'Berne', 128, 128, 128, 4),
('sr', 'fr', 'Surinam', 'Paramaribo', 20, 160, 250, 6),
('sz', 'fr', 'Swaziland', 'Mbabe', 151, 151, 75, 1),
('sy', 'fr', 'Syrie', 'Damas', 240, 255, 0, 7),
('tj', 'fr', 'Tadjikistan', 'Douchanbé', 0, 100, 50, 7),
('tz', 'fr', 'Tanzanie', 'Dar es Salaam', 151, 151, 125, 1),
('td', 'fr', 'Tchad', 'Ndjamena', 151, 151, 175, 1),
('th', 'fr', 'Thaïlande', 'Bangkok', 50, 100, 50, 3),
('tg', 'fr', 'Togo', 'Lomé', 151, 151, 225, 1),
('to', 'fr', 'Tonga', 'Nuku''alofa', 25, 125, 225, 5),
('tt', 'fr', 'Trinité et Tobago', 'Port d''Espagne', 75, 100, 100, 2),
('tn', 'fr', 'Tunisie', 'Tunis', 25, 151, 151, 1),
('tm', 'fr', 'Turkmenistan', 'Asgabad', 100, 100, 50, 7),
('tr', 'fr', 'Turquie', 'Ankara', 150, 100, 50, 7),
('tv', 'fr', 'Tuvalu', 'Funafuti', 25, 175, 25, 5),
('ua', 'fr', 'Ukraine', 'Kiev', 0, 0, 255, 4),
('uy', 'fr', 'Uruguay', 'Montevideo', 220, 220, 60, 6),
('vu', 'fr', 'Vanuatu', 'Port-Vila', 255, 125, 175, 5),
('ve', 'fr', 'Vénézuéla', 'Caracas', 220, 60, 60, 6),
('vn', 'fr', 'Vietnam', 'Hanoï', 200, 100, 50, 3),
('ye', 'fr', 'Yémen', 'Sanaa', 250, 100, 50, 7),
('yu', 'fr', 'Yougoslavie', 'Belgrade', 100, 100, 255, 4),
('zm', 'fr', 'Zambie', 'Lusaka', 75, 151, 151, 1),
('zw', 'fr', 'Zimbabwe', 'Harare', 225, 151, 151, 1),
('cg', 'fr', 'Congo', 'Brazzaville', 175, 151, 151, 1),
('gn', 'fr', 'Guinée', 'Conakry', 125, 151, 151, 1),
('la', 'fr', 'Laos', 'Vientiane', 160, 200, 250, 3),
('mm', 'fr', 'Birmanie', 'Rangoon', 210, 200, 250, 3),
('rua', 'fr', 'Russie (Asie)', 'Moscou', 0, 125, 125, 3),
('tw', 'fr', 'Taïwan', 'Taïpei', 0, 200, 250, 3),
('0', '', '', '', 255, 255, 255, 0);
 
-- --------------------------------------------------------
 
--
-- Structure de la table `carto_PROJET`
--
 
CREATE TABLE IF NOT EXISTS `carto_PROJET` (
`CP_ID_Projet` int(10) unsigned NOT NULL default '0',
`CP_Nom_projet` varchar(100) NOT NULL default '',
`CP_Description_projet` text,
PRIMARY KEY (`CP_ID_Projet`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COMMENT='Description des projets d''action des cartes.';
 
--
-- Contenu de la table `carto_PROJET`
--
 
INSERT INTO `carto_PROJET` (`CP_ID_Projet`, `CP_Nom_projet`, `CP_Description_projet`) VALUES
(1, 'Actions génériques', 'La carte des continents appelle les cartes des pays de chaque continent. La carte du continent Europe appelle la carte des départements français pour le pays ''fr''.');
 
-- --------------------------------------------------------
 
--
-- Structure de la table `carto_REGION`
--
 
CREATE TABLE IF NOT EXISTS `carto_REGION` (
`CR_ID_Region` int(11) NOT NULL default '0',
`CR_Intitule_region` varchar(100) NOT NULL default '',
`CR_Couleur_R` tinyint(3) unsigned NOT NULL default '0',
`CR_Couleur_V` tinyint(3) unsigned NOT NULL default '0',
`CR_Couleur_B` tinyint(3) unsigned NOT NULL default '0',
`CR_ID_Pays` char(3) NOT NULL default '',
PRIMARY KEY (`CR_ID_Region`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
 
--
-- Contenu de la table `carto_REGION`
--
 
INSERT INTO `carto_REGION` (`CR_ID_Region`, `CR_Intitule_region`, `CR_Couleur_R`, `CR_Couleur_V`, `CR_Couleur_B`, `CR_ID_Pays`) VALUES
(1, 'Alsace', 51, 153, 153, 'fr'),
(2, 'Aquitaine', 51, 51, 204, 'fr'),
(3, 'Auvergne', 51, 51, 153, 'fr'),
(4, 'Basse-Normandie', 102, 102, 255, 'fr'),
(5, 'Bourgogne', 0, 204, 204, 'fr'),
(6, 'Bretagne', 102, 102, 204, 'fr'),
(7, 'Centre', 51, 204, 102, 'fr'),
(8, 'Champagne-Ardenne', 153, 255, 255, 'fr'),
(9, 'Corse', 0, 0, 102, 'fr'),
(10, 'Franche-Comté', 0, 102, 102, 'fr'),
(11, 'Haute-Normandie', 153, 153, 255, 'fr'),
(12, 'Ile-de-France', 0, 102, 51, 'fr'),
(13, 'Languedoc-Roussillon', 0, 0, 204, 'fr'),
(14, 'Limousin', 51, 51, 102, 'fr'),
(15, 'Lorraine', 102, 204, 204, 'fr'),
(16, 'Midi-Pyrénnées', 51, 51, 255, 'fr'),
(17, 'Nord-Pas-de-Calais', 153, 204, 204, 'fr'),
(18, 'Pays-de-la-Loire', 102, 102, 153, 'fr'),
(19, 'Picardie', 153, 153, 204, 'fr'),
(20, 'Poitou-Charentes', 102, 102, 102, 'fr'),
(21, 'Provence-Alpes-Côte-d''Azur', 0, 0, 153, 'fr'),
(22, 'Rhône-Alpes', 0, 0, 255, 'fr'),
(900, '', 255, 255, 255, '');
 
-- --------------------------------------------------------
 
--
-- Structure de la table `carto_TYPE_ZONE`
--
 
CREATE TABLE IF NOT EXISTS `carto_TYPE_ZONE` (
`CTZ_ID_Type_zone` int(11) NOT NULL default '0',
`CTZ_Intitule_type_zone` varchar(100) NOT NULL default '',
`CTZ_Nom_table` varchar(100) NOT NULL default '',
PRIMARY KEY (`CTZ_ID_Type_zone`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COMMENT='Les types de zones géographiques.';
 
--
-- Contenu de la table `carto_TYPE_ZONE`
--
 
INSERT INTO `carto_TYPE_ZONE` (`CTZ_ID_Type_zone`, `CTZ_Intitule_type_zone`, `CTZ_Nom_table`) VALUES
(1, 'Continent', 'carto_COULEUR_CONTINENT'),
(2, 'Pays', 'carto_COULEUR_PAYS'),
(3, 'Région', 'carto_COULEUR_REGION'),
(4, 'Département', 'carto_COULEUR_DEPARTEMENT'),
(0, 'Monde', '');
/trunk/client/cartographie/fonds/oceanie.png
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/trunk/client/cartographie/fonds/oceanie.png
New file
Property changes:
Added: svn:mime-type
+application/octet-stream
\ No newline at end of property
Added: svn:executable
+*
\ No newline at end of property
/trunk/client/cartographie/fonds/monde_masque5c.png
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/trunk/client/cartographie/fonds/monde_masque5c.png
New file
Property changes:
Added: svn:mime-type
+application/octet-stream
\ No newline at end of property
Added: svn:executable
+*
\ No newline at end of property
/trunk/client/cartographie/fonds/samerique_masque.png
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/trunk/client/cartographie/fonds/samerique_masque.png
New file
Property changes:
Added: svn:mime-type
+application/octet-stream
\ No newline at end of property
Added: svn:executable
+*
\ No newline at end of property
/trunk/client/cartographie/fonds/afrique_masque.png
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/trunk/client/cartographie/fonds/afrique_masque.png
New file
Property changes:
Added: svn:mime-type
+application/octet-stream
\ No newline at end of property
Added: svn:executable
+*
\ No newline at end of property
/trunk/client/cartographie/fonds/moyenorient.png
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/trunk/client/cartographie/fonds/moyenorient.png
New file
Property changes:
Added: svn:mime-type
+application/octet-stream
\ No newline at end of property
Added: svn:executable
+*
\ No newline at end of property
/trunk/client/cartographie/fonds/france_masque.png
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/trunk/client/cartographie/fonds/france_masque.png
New file
Property changes:
Added: svn:mime-type
+application/octet-stream
\ No newline at end of property
Added: svn:executable
+*
\ No newline at end of property
/trunk/client/cartographie/fonds/europe_masque.png
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/trunk/client/cartographie/fonds/europe_masque.png
New file
Property changes:
Added: svn:mime-type
+application/octet-stream
\ No newline at end of property
Added: svn:executable
+*
\ No newline at end of property
/trunk/client/cartographie/fonds/oceanie_masque.png
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/trunk/client/cartographie/fonds/oceanie_masque.png
New file
Property changes:
Added: svn:mime-type
+application/octet-stream
\ No newline at end of property
Added: svn:executable
+*
\ No newline at end of property
/trunk/client/cartographie/fonds/carto_ad.php
New file
0,0 → 1,270
<?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
*
*La page contient les fonctions propres à GSite permettant d'afficher en sortie les styles
*(inclusion du fichier : lib.putsyle.php), le corps de la page (fonction : putFrame) et son pied de page (fonction : putFooter).
*
*@package carto_ad
//Auteur original :
*@author Alexandre GRANIER <alexandre@tela-botanica.org>
//Autres auteurs :
*@author Jean-Pascal MILCENT <jpm@tela-botanica.org>
*@copyright Tela-Botanica 2000-2003
*@version 01 avril 2002
// +-----------------------------------------------------------------------------------------------+
//
// $Id: carto_ad.php,v 1.9 2003/05/06 12:49:27 alex Exp $
// FICHIER : $RCSfile: carto_ad.php,v $
// AUTEUR : $Author: alex $
// VERSION : $Revision: 1.9 $
// DATE : $Date: 2003/05/06 12:49:27 $
*/
 
 
include_once 'modules/client/carto_ad/carto-common_ad.php';
include_once 'php/context.php';
include_once 'php/auth.php';
global $var_style;
$var_style='alex';
include_once 'php/lib/pack.lib.carto.php';
 
//================================================================================================
//================================================================================================
 
function putFrame ()
{
 
global $GS_GLOBAL;
global $AUTH_GLOBAL;
global $image_x;
global $image_y;
global $historique_cartes;
global $mailer;
global $fin;
global $sendpwd;//utilisé dans tb_ad.php
global $titre, $corps;//utilisé dans tb_ad.php
global $select;//utilisé dans tb_ad.php
global $liste_zone_carte;
//===========================================================================================================
$requete_01 =
"SELECT *,count(cp_id_continent) as nbr".
" FROM annuaire_tela, carto_PAYS".
" WHERE u_country = cp_id_pays".
" AND u_show = 3".
" GROUP BY cp_id_continent";
$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());
$tableau_ad_continent=array();
while ($ligne_01 = mysql_fetch_object($resultat_01)) {
$tableau_ad_continent[$ligne_01->CP_ID_Continent] = $ligne_01->nbr;
}
$info_continent['nom_table_zone'] = 'carto_CONTINENT';
$info_continent['nom_chp_id_zone'] = 'CC_ID_Continent';
$info_continent['nom_chp_nom_zone'] = 'CC_Intitule_continent';
$info_continent['nom_chp_rouge'] = 'CC_Couleur_R';
$info_continent['nom_chp_vert'] = 'CC_Couleur_V';
$info_continent['nom_chp_bleu'] = 'CC_Couleur_B';
$info_continent['nom_chp_zone_sup'] = '';
$info_continent['tableau_valeurs_zone'] = $tableau_ad_continent;
//============================================================================================================
$requete_02 =
'SELECT CC_ID_Continent'.
' FROM carto_CONTINENT';
$resultat_02 = mysql_query ($requete_02) or die('
<H2 style="text-align: center; font-weight: bold; font-size: 26px;">Erreur de requête</H2>'.
'<b>Requete : </b>'.$requete_02.
'<br/><br/><b>Erreur : </b>'.mysql_error());
while ($ligne_02 = mysql_fetch_object($resultat_02)) {
$requete_03 =
'SELECT *, count(cp_id_pays) as nbr '.
' FROM annuaire_tela, carto_PAYS'.
' WHERE u_country = cp_id_pays'.
' AND cp_id_continent = "'.$ligne_02->CC_ID_Continent.'"'.
' AND u_show = 3'.
' GROUP BY cp_id_pays';
$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_01.
'<br/><br/><b>Erreur : </b>'.mysql_error());
$tableau_ad_pays = array();
while ($ligne_03 = mysql_fetch_object($resultat_03)) {
$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;
}
//============================================================================================================
$requete_04 = "SELECT * ,count(cd_id_departement) as nbr".
" FROM annuaire_tela, carto_DEPARTEMENT".
" WHERE u_country = 'fr'".
" AND u_french_dpt = cd_id_departement".
" AND u_show = 3".
" GROUP BY cd_id_Departement";
$resultat_04 = mysql_query ($requete_04) 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());
$tableau_ad_dpt_france = array();
while ($ligne_04 = mysql_fetch_object($resultat_04)) {
$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'abords l'arborescence
$monde = new Carto_Carte ('continent', '', 'Monde', 'monde_masque5c.png', 'monde5c.png', 'Local/tela/carto/', $info_continent);
$monde->historique_cartes = $historique_cartes;
$monde->image_x = $image_x;
$monde->image_y = $image_y;
$monde->liste_zone_carte = $liste_zone_carte;
$monde->url = "document.php?project=tela&locale=fr&doc=adherents&page=".$GS_GLOBAL['current_page_ndx'];
foreach ($info_pays 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 = mysql_query ($requete_05) 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());
$ligne_05 = mysql_fetch_object($resultat_05);
$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['europe']->ajouterFils('france', 'fr', 'France' ,'france_masque.png', 'france_region.png', $info_dpt_france);
// Une fois l'arborescence créee 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).
$res = '';
$img = false;
if ($mailer == 1 || $fin == true) {
$objet_carte = cxt_getVariable ($GS_GLOBAL['mysql_db'], $GS_GLOBAL['link'], "carte");
$monde = unserialize($objet_carte);}
else {
$img = $monde->donnerFormulaireImage();
}
// On teste donc img
if (!$img ) {
include 'modules/client/carto_ad/tb_ad.php';
return $res;
}
else {
$historique_carte = new Carto_HistoriqueCarte ($monde, '&gt;', 'lien_non_souligne');
$res .= '<tr><td>'."\n";
$res .= '<table summary="" cellspacing="5" cellpadding="0" border="0">'."\n";
$res .= '<tr><td><b>';
$res .= $historique_carte->afficherHistoriqueCarte();
$res .= '</b></td></tr>';
$tab = explode('*',$monde->historique);
$res .= carto_ad_consulterNbreInscrits($tab[(count($tab)-1)]);
$res .= '<tr><td>';
$res .= $img;
$res .= '</td></tr>';
$res .= '<tr><td>&nbsp;</td></tr>'."\n";
$res .= '<tr class="texte_tb"><td align="center">';
$res .= '<b>Cliquez sur une zone de la carte pour zoomer.</b>';
$res .= '<br>La couleur est proportionnelle au nombre d\'adhérents.</td></tr>';
$res .= '<tr><td>&nbsp;</td></tr>'."\n";
$res .= '<tr class="insTitle1"><td>Avertissement et déni de responsabilité : </td></tr>'."\n";
$res .= '
<tr class="textJustify"><td>
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é
de l\'association ni n\'impliquent de reconnaissance officielle de sa part.
</td></tr>'."\n";
$res .= '<tr><td>&nbsp;</td></tr>'."\n";
$res .= '</table></td></tr>';
return $res;
}
}
//-- Fin du code source ------------------------------------------------------------
/*
* $Log: carto_ad.php,v $
* 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.
*
*
*/
?>
Property changes:
Added: svn:executable
+*
\ No newline at end of property
/trunk/client/cartographie/fonds/asie.png
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/trunk/client/cartographie/fonds/asie.png
New file
Property changes:
Added: svn:mime-type
+application/octet-stream
\ No newline at end of property
Added: svn:executable
+*
\ No newline at end of property
/trunk/client/cartographie/fonds/moyenorient_masque.png
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/trunk/client/cartographie/fonds/moyenorient_masque.png
New file
Property changes:
Added: svn:mime-type
+application/octet-stream
\ No newline at end of property
Added: svn:executable
+*
\ No newline at end of property
/trunk/client/cartographie/fonds/namerique.png
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/trunk/client/cartographie/fonds/namerique.png
New file
Property changes:
Added: svn:mime-type
+application/octet-stream
\ No newline at end of property
Added: svn:executable
+*
\ No newline at end of property
/trunk/client/cartographie/fonds/monde5c.png
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/trunk/client/cartographie/fonds/monde5c.png
New file
Property changes:
Added: svn:mime-type
+application/octet-stream
\ No newline at end of property
Added: svn:executable
+*
\ No newline at end of property
/trunk/client/cartographie/fonds/samerique.png
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/trunk/client/cartographie/fonds/samerique.png
New file
Property changes:
Added: svn:mime-type
+application/octet-stream
\ No newline at end of property
Added: svn:executable
+*
\ No newline at end of property
/trunk/client/cartographie/fonds/afrique.png
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/trunk/client/cartographie/fonds/afrique.png
New file
Property changes:
Added: svn:mime-type
+application/octet-stream
\ No newline at end of property
Added: svn:executable
+*
\ No newline at end of property
/trunk/client/cartographie/fonds/asie_masque.png
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/trunk/client/cartographie/fonds/asie_masque.png
New file
Property changes:
Added: svn:mime-type
+application/octet-stream
\ No newline at end of property
Added: svn:executable
+*
\ No newline at end of property
/trunk/client/cartographie/fonds/france.png
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/trunk/client/cartographie/fonds/france.png
New file
Property changes:
Added: svn:mime-type
+application/octet-stream
\ No newline at end of property
Added: svn:executable
+*
\ No newline at end of property
/trunk/client/cartographie/fonds/europe.png
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/trunk/client/cartographie/fonds/europe.png
New file
Property changes:
Added: svn:mime-type
+application/octet-stream
\ No newline at end of property
Added: svn:executable
+*
\ No newline at end of property
/trunk/client/cartographie/fonds/france_region.png
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/trunk/client/cartographie/fonds/france_region.png
New file
Property changes:
Added: svn:mime-type
+application/octet-stream
\ No newline at end of property
Added: svn:executable
+*
\ No newline at end of property
/trunk/client/cartographie/fonds/namerique_masque.png
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/trunk/client/cartographie/fonds/namerique_masque.png
New file
Property changes:
Added: svn:mime-type
+application/octet-stream
\ No newline at end of property
Added: svn:executable
+*
\ No newline at end of property
/trunk/client/cartographie/bibliotheque/car_cartographie.fonct.php
New file
0,0 → 1,253
<?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: car_cartographie.fonct.php,v 1.4 2005/03/11 17:27:23 alex Exp $
// FICHIER : $RCSfile: car_cartographie.fonct.php,v $
// AUTEUR : $Author: alex $
// VERSION : $Revision: 1.4 $
// DATE : $Date: 2005/03/11 17:27:23 $
*/
 
/** function carto_texte_cocher ()
*
*
* @return string HTML
*/
 
function carto_texte_cocher () {
$res = '<p class="cocher">'.CAR_CHECK_UNCHECK ;
$res .= '&nbsp;<input type="checkbox" name="selecttotal" onclick="javascript:setCheckboxes(\'formmail\');" />'.
'</p>';
return $res ;
}
/** function carto_formulaire ()
*
*
*
* @return string HTML
*/
function carto_formulaire ($titre_mail = '', $corps = '') {
$res = '<div id="redaction">'."\n";
$res .= '<div id="redaction_tete"></div>'."\n";
$res .= '<h2 class="chapo">'.CAR_ENVOYER_MAIL.'</h2>'."\n";
$res .= '<table id="formulaire_mail" border="0">'."\n".
' <tr>' .
' <td class="texte">'.CAR_SUJET.' :</td>'."\n".
' <td><input class="forml" type="text" name="titre_mail" size="60" value="'.$titre_mail.'" /></td>'."\n".
' </tr>'."\n".
' <tr>'."\n".
' <td class="texte" valign="top">'.CAR_MESSAGE.'&nbsp;:&nbsp;</td>'."\n".
' <td><textarea class="forml" name="corps" rows="5" cols="60">'.$corps.'</textarea></td>'."\n".
' </tr>'."\n".
' <tr>'."\n".
' <td>&nbsp;</td>'."\n".
' <td>';
if (ereg('Gecko', $GLOBALS['HTTP_USER_AGENT'])) {
$res.= '<input class="spip_bouton" type="submit" value="'.CAR_ENVOYER.'" />';
} else {
$res .= '<input class="spip_bouton" type="submit" onclick="javascript:confirmer();" value="'.CAR_ENVOYER.'" />';
}
$res .= ' </td>'."\n".
' </tr>'."\n".
'</table>'."\n".
'<div id="redaction_pied"/></div>'."\n".
'</div>'."\n".
'</form>'."\n";
$res .= '<p class="attention surveillance">'.CAR_SURVEILLANCE.'</p>' ;
$res .= '<p class="information message_a_tous">'.sprintf(CAR_MESSAGE_A_TOUS, '<a href="'.CAR_URL_ACTUALITE.'">'.CAR_ACTUALITE.'</a>').'</p>' ;
return $res ;
}
 
/**
* La fonction carto_getNbInscrits renvoit une phrase complete indiquant le
* nombre d'inscrits dans zone passee en argument
* @param string identifiant de carte ex: europe
* @return string
*/
 
function carto_ad_consulterNbreInscrits ($id_carte)
{
global $NOM_FICHIER;
$titre_carte = carto_consulterTitreCarte($id_carte);
$type_zone_carte = carto_consulterTypeZoneCarte ($id_carte);
switch ($type_zone_carte){
case '0' :
$requete =
' SELECT count(u_id) as nbr'.
' FROM annuaire_tela'.
' WHERE u_french_dpt <> 999';
break;
case '1' :
$requete =
' SELECT count(u_id) as nbr'.
' FROM annuaire_tela, carto_PAYS'.
' WHERE u_country = cp_id_pays'.
' AND cp_id_continent = "'.carto_consulterIdZoneGeoCarte ($id_carte).'"';
break;
case '2' :
$requete =
' SELECT count(u_id) as nbr'.
' FROM annuaire_tela'.
' WHERE u_french_dpt != "999"'.
' AND u_country = "fr"';
break;
}
$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_ad_consulterNbreInscrits<br/>'.
'<b>Requete : </b>'.$requete.
'<br/><br/><b>Erreur : </b>'.mysql_error());
$ligne = mysql_fetch_object ($resultat) ;
$res = '<h1 class="titre1_cartographie">'.$titre_carte.' : ' ;
if ($ligne->nbr == 0) {
$res .= 'aucun inscrit' ;
}
else if ($ligne->nbr == 1) {
$res .= $ligne->nbr.' inscrit' ;
}
else {
$res .= $ligne->nbr.' inscrits ';
}
return $res.' &agrave; Tela Botanica</h1>' ;
}
 
/**
* Envoie un email à tous les adhérents sélectionnés
*
* @return string Renvoie le message 'votre message a été envoyé'
*/
 
function envoie_mail (&$db) {
$res = "<div class=\"titre1_cartographie\">Votre message a &eacute;t&eacute; envoy&eacute;</div>" ;
$requete = "select ".CAR_CHAMPS_MAIL." from ".CAR_ANNUAIRE.
" where ".CAR_CHAMPS_ID."='".$GLOBALS['car_auth']->getAuthData (CAR_CHAMPS_ID)."'";
$resultat = $db->query($requete);
if (DB::isError($resultat)) {
die ($resultat->getMessage().'<br />'.$resultat->getDebugInfo());
}
$ligne = $resultat->fetchRow(DB_FETCHMODE_ASSOC);
$entete = "From: <".$ligne[CAR_CHAMPS_MAIL].">\n";
$_POST['corps'] .= CAR_TEXTE_FIN_MAIL;
$_POST['corps'] = stripslashes($_POST['corps']) ;
$liste = "" ;
foreach ($_POST['select'] as $key => $value) {
mail($value, stripslashes($_POST['titre_mail']), $_POST['corps'], $entete) ;
$liste .= $value."\n" ;
}
$_POST['corps'] .= "\n----------------------------------------------------------------------------";
$_POST['corps'] .= "\n".CAR_MESSAGE_APPLI."\n" ;
$_POST['corps'] .= "\n".CAR_MESSAGE_ENVOYE_A.":\n $liste" ;
// Envoie du message aux administrateurs
foreach ($GLOBALS['mail_admin'] as $courriel) {
if (!mail($courriel, stripslashes($_POST['titre_mail']), $_POST['corps'], $entete)) {
trigger_error("Le courriel n'a pas été envoyé à : $courriel", E_USER_WANRNING);
}
}
$_POST['corps']='';
$_POST['titre_mail']='';
return $res ;
}
 
function envoie_mail_modere (&$db) {
$res = '<p class="attention">'.CAR_MAIL_ATTENTE_MODERATION.'</p>' ;
$requete = "select ".CAR_CHAMPS_MAIL." from ".CAR_ANNUAIRE.
" where ".CAR_CHAMPS_ID."='".$GLOBALS['car_auth']->getAuthData (CAR_CHAMPS_ID)."'";
$resultat = $db->query($requete);
if (DB::isError($resultat)) {
die ($resultat->getMessage().'<br />'.$resultat->getDebugInfo());
}
$ligne = $resultat->fetchRow(DB_FETCHMODE_ASSOC);
$liste = '';
$entete = '' ;
foreach ($_POST['select'] as $key => $value) {
$liste .= $value."\n" ;
}
$precorps = $ligne[CAR_CHAMPS_MAIL]." ".CAR_EXPEDITEUR_ORIGINAL." \n" ;
$precorps .= CAR_LISTE_DESTINATAIRES." : ".$liste." \n" ;
$precorps .= CAR_TITRE_MAIL.' : '.$_POST['titre_mail']." \n" ;
$precorps .= "\n------".CAR_CONTENU_MESSAGE."------\n";
$corps = stripslashes($precorps.$_POST['corps']) ;
$corps .= "\n----------------------------------------------------------------------------";
$corps .= "\n".CAR_MESSAGE_APPLI."\n" ;
// Envoie du message au modérateur
foreach ($GLOBALS['mail_admin'] as $courriel) {
if(!mail($courriel,CAR_TITRE_MAIL_MODERATION,$corps, $entete))
{
trigger_error("Le courriel n'a pas été envoyé à : $courriel", E_USER_WARNING);
}
}
$_POST['corps']='';
$_POST['titre_mail']='';
return $res ;
}
 
//-- Fin du code source ------------------------------------------------------------
/*
* $Log: car_cartographie.fonct.php,v $
* Revision 1.4 2005/03/11 17:27:23 alex
* modification html
*
* Revision 1.3 2005/03/11 17:24:39 alex
* modification html
*
* Revision 1.2 2005/03/11 15:18:45 alex
* migration version 4
*
* Revision 1.1 2004/11/30 13:37:19 tam
* installation
*
* Revision 1.1.1.1 2004/11/23 17:48:17 tam
* Importation
*
* Revision 1.1 2004/11/23 17:30:13 tam
* installation
*
*
*/
?>
/trunk/client/cartographie/bibliotheque/lib.carto.php
New file
0,0 → 1,1157
<?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.2 2005/03/11 15:18:45 alex Exp $
// FICHIER : $RCSfile: lib.carto.php,v $
// AUTEUR : $Author: alex $
// VERSION : $Revision: 1.2 $
// DATE : $Date: 2005/03/11 15:18:45 $
//
// +-----------------------------------------------------------------------------------------------+
// A FAIRE :
// 1.-Rendre cette classe indépendante de l'arborescence du site.
// On trouve encore des urls ou des chemins d'accé au fichier codé en dur dans l'appli
// Il faudrait pouvoir les paramétrés dans la classe.
// 2.- Supprimer l'attribut $this->historiques qui doit être devenu complétement obscoléte et le
// remplacer par $this->historique_cartes
// 3.- Renomer $this->liste_zone_carte en quelque chose de plus parlant...
*/
//Inclusion d'un autre fichier de librairie
include_once 'lib.couleur.php';
 
//Sert seulement en interne pour le débogage des requetes SQL
$NOM_FICHIER = 'lib.carto.php';
 
//==================================================================================================
// La classe Carto_HistoriqueCarte sert à pouvoir afficher les liens avec les carte précédentes
// On accède à cette fonctionnalité grâce à la méthode afficherHistoriqueCarte()
// L'objet Carto_HistoriqueCarte recoit en parametres :
// -la généalogie du niveau ou on en est (du type monde*europe*france )
// -l'url du document
// -en option : *le caractere de separation (par defaut c'est >)
// *la classe css des liens
//===================================================================================================
 
class Carto_HistoriqueCarte
{
var $historique;
var $url;
var $caractere_separation;
var $class_css;
var $nom;
 
function Carto_HistoriqueCarte ($objet_carte, $caractere = '&gt;', $class = '')
{
global $GS_GLOBAL;
 
$this->historique = $objet_carte->historique;
$this->url = $objet_carte->url;
$this->nom = $objet_carte->nom;
unset ($objet_carte);
$this->caractere_separation = $caractere;
$this->class_css = $class;
}//Fin du constructeur Carto_HistoriqueCarte().
function afficherHistoriqueCarte ()
{
$res='';
$tabonglet = explode ('*', $this->historique);
$tabnom = explode ('*', $this->nom);
foreach ($tabonglet as $key=>$value) {
if ($key == 0) {
$chemin = $value;
}
else {
$chemin .= '*'.$value;
}
$res.= '<a ';
if (!empty($this->class_css)) {
$res.='class="'.$this->class_css.'" ';
}
$res.='href="'.$this->url.'&amp;historique_cartes='.$chemin.'">&nbsp;'.$this->caractere_separation.'&nbsp;'.$tabnom[$key].'</a>';
}
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="cartographie/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.
// Quoi qu'il arrive, on ouvre la balise formulaire
$res = '<form action="'.$this->url.'" method="post">'."\n";
$res .= '<h2 class="titre2_cartographie">'.CAR_CLIQUER_ACCEDER.'</h2>' ;
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) {
// $this_tmp = $this->fils[$value];
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;
$res .= '<div class="liste_zone">'.$this->fils[$id_carte_destination]->_donnerListeZoneCarte()."</div>\n";
$res .= '<div id="carto"><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') {
$res .= '<div class="liste_zone">'.$this->_donnerListeZoneCarte()."</div>\n";
$res .= '<div id="carto"><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) {
// $this = $this->fils[$value];
foreach (get_object_vars($this->fils[$value]) as $key => $value)
$this->$key = $value;
}
}
$this->liste_zone_carte = $liste_zone_carte;
$res .= '<div class="liste_zone">'.$this->_donnerListeZoneCarte($this->liste_zone_carte)."</div>\n";
$res .= '<div id="carto"><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) {
// $this = $this->fils[$value];
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
$res .= '<div class="liste_zone">'.$this->_donnerListeZoneCarte()."</div>\n";
$res .= '<div id="carto"><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']) ;
$res .= '<div class="liste_zone">'.$this->_donnerListeZoneCarte()."</div>\n";
$res .= '<div id="carto"><input type="image" src="';
$id_image = $this->_donnerIdUnique();
$this->_lancerColoriage($id_image);
$this->historique = $this->id;
$obj = serialize($this);
$_SESSION['carte'] = $obj ;
}
$res .= CAR_CHEMIN_LIBRAIRIE.'/lib.carto.extractimg.php?fichier='.$this->id.$id_image.'"';
$res .= ' name="image" />'."\n";
$res .= '<input type="hidden" name="historique_cartes" value="'.$this->historique.'" />';
$res .= '</div></form>'."\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('
<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());
$i=0;
$retour = '<select name="liste_zone_carte" onchange="javascript:this.form.submit();">'."\n";
$retour .= '<option value="">Visualiser une 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 != '') {
if (!imagepng(&$this->image,'tmp/carto/'.$nom_fichier.'.png')) {
echo 'erreur';
}
//$this->image = imagepng(&$this->image);
}
else {
imagepng(&$this->image,'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);
//echo $taille_palette.'<br>';
// 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)
{
//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 - round(($i * abs(($miniR - $maxiR)/$nbre_frequences)), 0);
$couleur['V'] = $miniV - round(($i * abs(($miniV - $maxiV)/$nbre_frequences)), 0);
$couleur['B'] = $miniB - round(($i * abs(($miniB - $maxiB)/$nbre_frequences)), 0);
}
$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: lib.carto.php,v $
* Revision 1.2 2005/03/11 15:18:45 alex
* migration version 4
*
* 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.
*
*
*/
?>
/trunk/client/cartographie/bibliotheque/lib.carto.extractimg.php
New file
0,0 → 1,88
<?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.1.1 2004/11/23 17:48:17 tam Exp $
// FICHIER : $RCSfile: lib.carto.extractimg.php,v $
// AUTEUR : $Author: tam $
// VERSION : $Revision: 1.1.1.1 $
// DATE : $Date: 2004/11/23 17:48:17 $
//
// +-----------------------------------------------------------------------------------------------+
// A FAIRE :
//
*/
 
define("CAR_CHEMIN_TMP",'../../../tmp/carto/');
 
$image = imagecreatefrompng(CAR_CHEMIN_TMP.$_GET['fichier'].'.png');
chmod (CAR_CHEMIN_TMP.$_GET['fichier'].".png", 705) ;
 
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(CAR_CHEMIN_TMP.$_GET['fichier'].'.png');
//Nous nettoyons le dossier tmp des fichiers qu'il contient:
$poignet_de_dossier = opendir(CAR_CHEMIN_TMP);
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: lib.carto.extractimg.php,v $
* Revision 1.1.1.1 2004/11/23 17:48:17 tam
* Importation
*
* Revision 1.1 2004/11/23 17:30:13 tam
* installation
*
* 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.
*
*
*
*/
?>
Property changes:
Added: svn:executable
+*
\ No newline at end of property
/trunk/client/cartographie/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.1.1 2004/11/23 17:48:17 tam Exp $
// FICHIER : $RCSfile: lib.couleur.php,v $
// AUTEUR : $Author: tam $
// VERSION : $Revision: 1.1.1.1 $
// DATE : $Date: 2004/11/23 17:48:17 $
//
// +-----------------------------------------------------------------------------------------------+
// 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;
}
 
?>
Property changes:
Added: svn:executable
+*
\ No newline at end of property
/trunk/client/cartographie/cartographie.php
New file
0,0 → 1,312
<?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.6 2005/03/14 09:43:13 alex Exp $
// FICHIER : $RCSfile: cartographie.php,v $
// AUTEUR : $Author: alex $
// VERSION : $Revision: 1.6 $
// DATE : $Date: 2005/03/14 09:43:13 $
*/
 
include_once 'client/cartographie/configuration/car_config.inc.php' ;
if (isset($lang)) {
include_once CAR_CHEMIN_APPLI."/langues/car_langue_$lang.inc.php" ;
} else {
include_once CAR_CHEMIN_APPLI.'/langues/car_langue_fr.inc.php' ;
}
 
include_once CAR_CHEMIN_APPLI.'/bibliotheque/lib.carto.php' ;
include_once CAR_CHEMIN_APPLI.'/bibliotheque/car_cartographie.fonct.php' ;
include_once 'HTML/QuickForm.php' ;
 
// Ajout d'une feuille de style externe
GEN_stockerStyleExterne ('cartographie', 'client/cartographie/cartographie.css') ;
 
if (isset($GLOBALS['logout']) && $GLOBALS['logout']==1) {
$GLOBALS['car_auth']->logout();
}
//================================================================================================
//================================================================================================
function AUTH_formulaire_login() {
// l'url de la page en cours
$url = $GLOBALS['car_url'];
$url->addQueryString('historique_cartes', $GLOBALS['historique_cartes']);
$url->addQueryString('fin', true);
$res = '<h2 class="titre2_cartographie">'.CAR_TEXTE_IDENTIFICATION_2.'</h2>';
$res .= "<div>".CAR_LAIUS_INSCRIPTION."&nbsp;<a href=\"".CAR_CHEMIN_INSCRIPTION."\">".CAR_S_INSCRIRE."</a></div>\n" ;
$res .= '<h2 class="titre2_cartographie">'.CAR_TEXTE_IDENTIFICATION_1.'</h2>';
$form = new HTML_QuickForm ('inscription', 'post', preg_replace('/&amp;/', '&', $url->getURL())) ;
$form->addElement ('text', 'username', CAR_EMAIL) ;
$form->addElement ('password', 'password', CAR_MOT_DE_PASSE) ;
$form->addElement('submit', 'connexion', CAR_VALIDER);
$res .= $form->toHTML() ;
//$res .= "<div>".CAR_TEXTE_PERDU."</div>\n" ;
return $res;
}
 
function afficherContenuCorps ()
{
$image_x = null;
if (isset($_POST['image_x'])) $image_x = $_POST['image_x'];
$image_y = null;
if (isset($_POST['image_y'])) $image_y = $_POST['image_y'];
$historique_cartes = null;
if (isset($_POST['historique_cartes'])) $historique_cartes = $_POST['historique_cartes'];
if (isset($_GET['historique_cartes'])) $historique_cartes = $_GET['historique_cartes'];
$mailer = null;
if (isset($_GET['mailer'])) $mailer = $_GET['mailer'];
$fin = null;
if (isset($_GET['fin'])) $fin = $_GET['fin'];
$sendpwd = null;//utilisé dans liste_inscrit.php
if (isset($_GET['sendpwd'])) $sendpwd = $_GET['sendpwd'];
$select = null;//utilisé dans liste_inscrit.php
if (isset($_POST['select'])) $select = $_POST['select'];
$liste_zone_carte = null;
if (isset($_POST['liste_zone_carte'])) $liste_zone_carte = $_POST['liste_zone_carte'];
//===========================================================================================================
$requete_01 =
"SELECT *,count(cp_id_continent) as nbr".
" FROM ".CAR_ANNUAIRE.", carto_PAYS".
" WHERE ".CAR_CHAMPS_CE_PAYS." = cp_id_pays".
" GROUP BY cp_id_continent";
 
$resultat_01 = $GLOBALS['car_db']->query ($requete_01) ;
if (DB::isError($resultat_01)) {
die ($resultat_01->getMessage().'<br />'.$resultat_01->getDebugInfo()) ;
}
$tableau_ad_continent=array();
while ($ligne_01 = $resultat_01->fetchRow(DB_FETCHMODE_OBJECT)) {
$tableau_ad_continent[$ligne_01->CP_ID_Continent] = $ligne_01->nbr;
}
$info_continent['nom_table_zone'] = 'carto_CONTINENT';
$info_continent['nom_chp_id_zone'] = 'CC_ID_Continent';
$info_continent['nom_chp_nom_zone'] = 'CC_Intitule_continent';
$info_continent['nom_chp_rouge'] = 'CC_Couleur_R';
$info_continent['nom_chp_vert'] = 'CC_Couleur_V';
$info_continent['nom_chp_bleu'] = 'CC_Couleur_B';
$info_continent['nom_chp_zone_sup'] = '';
$info_continent['tableau_valeurs_zone'] = $tableau_ad_continent;
//============================================================================================================
$requete_02 = 'SELECT CC_ID_Continent FROM carto_CONTINENT';
$resultat_02 = $GLOBALS['car_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 *, count(cp_id_pays) as nbr '.
' FROM '.CAR_ANNUAIRE.', carto_PAYS'.
' WHERE '.CAR_CHAMPS_CE_PAYS.'= cp_id_pays'.
' AND cp_id_continent = "'.$ligne_02->CC_ID_Continent.'"'.
' GROUP BY cp_id_pays';
$resultat_03 = $GLOBALS['car_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;
}
//============================================================================================================
$requete_04 = "SELECT * ,count(cd_id_departement) as nbr".
" FROM ".CAR_ANNUAIRE.", carto_DEPARTEMENT".
" WHERE ".CAR_CHAMPS_CE_PAYS." = 'fr'".
" AND ".CAR_CHAMPS_DPT." = cd_id_departement".
" GROUP BY cd_id_Departement";
$resultat_04 = $GLOBALS['car_db']->query ($requete_04) ;
if (DB::isError($resultat_04)) {
die('
<H2 style="text-align: center; font-weight: bold; font-size: 26px;">Erreur de requête</H2>'.
'<b>Requete : </b>'.$requete_04.
'<br/><br/><b>Erreur : </b>'.$resultat_04->getMessage());
}
$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', CAR_CHEMIN_APPLI.'/fonds/', $info_continent);
$monde->definirCouleurs ('255', '255', '255','255', '250', '130','255', '165', '0','255', '50', '0') ;
$monde->historique_cartes = $historique_cartes;
$monde->image_x = $image_x;
$monde->image_y = $image_y;
$monde->liste_zone_carte = $liste_zone_carte;
$monde->url = CAR_URL;
foreach ($info_pays 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['car_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);
if (is_object($ligne_05)) {
$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', '165', '0','255', '50', '0') ;
}
}
$monde->fils['europe']->ajouterFils('france', 'fr', 'France' ,'france_masque.png', 'france_region.png', $info_dpt_france);
$monde->fils['europe']->fils['france']->definirCouleurs ('255', '255', '255','255', '250', '130','255', '165', '0','255', '50', '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).
$res = '';
$img = false;
if ($mailer == 1 || $fin == true) {
$objet_carte = $_SESSION['carte'] ;
$monde = unserialize($objet_carte);}
else {
$img = $monde->donnerFormulaireImage();
}
// On teste donc img
if (!$img ) {
include 'liste_inscrit.php';
return $res;
}
else {
$historique_carte = new Carto_HistoriqueCarte ($monde, '&gt;', 'chemin_carto');
$res .= $historique_carte->afficherHistoriqueCarte();
$res .= "<br />\n" ;
$tab = explode('*',$monde->historique);
$res .= carto_ad_consulterNbreInscrits($tab[(count($tab)-1)]);
$res .= $img;
$res .= '<div class="cliquer2">'.CAR_CLIQUER.'</div>';
$res .= '<div class="couleur">'.CAR_COULEUR.'</div>'."\n";
$res .= '<div class="avertissement_carto" id="d"><h2 class="titre2_cartographie">'.CAR_AVERTISSEMENT_TITRE.' : </h2>';
$res .= '<span class="texte_avertissement">'.CAR_AVERTISSEMENT."</span></div>\n";
return $res;
}
}
 
 
//-- Fin du code source ------------------------------------------------------------
/*
* $Log: cartographie.php,v $
* Revision 1.6 2005/03/14 09:43:13 alex
* changement des couleurs
*
* Revision 1.5 2005/03/11 15:58:21 alex
* suppression d'une phrase
*
* Revision 1.2 2005/03/11 15:18:36 alex
* migration version 4
*
* Revision 1.1 2004/11/30 13:37:32 tam
* installation
*
* Revision 1.1.1.1 2004/11/23 17:48:17 tam
* Importation
*
* Revision 1.1 2004/11/23 17:29:40 tam
* installation
*
* 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.
*
*
*/
?>
/trunk/client/cartographie/langues/car_langue_fr.inc.php
New file
0,0 → 1,133
<?php
/*vim: set expandtab tabstop=4 shiftwidth=4: */
// +------------------------------------------------------------------------------------------------------+
// | PHP version 4.1 |
// +------------------------------------------------------------------------------------------------------+
// | Copyright (C) 2004 Tela Botanica (accueil@tela-botanica.org) |
// +------------------------------------------------------------------------------------------------------+
// | This library is free software; you can redistribute it and/or |
// | modify it under the terms of the GNU Lesser General Public |
// | License as published by the Free Software Foundation; either |
// | version 2.1 of the License, or (at your option) any later version. |
// | |
// | This library is distributed in the hope that it will be useful, |
// | but WITHOUT ANY WARRANTY; without even the implied warranty of |
// | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU |
// | Lesser General Public License for more details. |
// | |
// | You should have received a copy of the GNU Lesser General Public |
// | License along with this library; if not, write to the Free Software |
// | Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA |
// +------------------------------------------------------------------------------------------------------+
// CVS : $Id: car_langue_fr.inc.php,v 1.4 2005/03/21 08:30:41 alex 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 Aurelien PERONNET
*@copyright Tela-Botanica 2000-2004
*@version $Revision: 1.4 $ $Date: 2005/03/21 08:30:41 $
// +------------------------------------------------------------------------------------------------------+
*/
 
define ('CAR_NOM', 'Nom') ;
define ('CAR_PRENOM', 'Pr&eacute;nom') ;
define ('CAR_DATE_INS', 'Date d\'inscription') ;
define ('CAR_REGION', 'R&eacute;gion') ;
define ('CAR_CP', 'CP') ;
define ('CAR_VILLE', 'Ville') ;
define ('CAR_PAYS', 'Pays :') ;
define ('CAR_LANGUES_PARLES', 'Langues parl&eacute;s :') ;
define ('CAR_EMAIL', 'E-mail :') ;
define ('CAR_MOT_DE_PASSE', 'Mot de passe :') ;
define ('CAR_REPETE_MOT_DE_PASSE', 'R&eacute;p&eacute;ter le mot de passe :') ;
define ('CAR_RETABLIR', 'R&eacute;tablir') ;
define ('CAR_VALIDER', 'Valider') ;
define ('CAR_MOTS_DE_PASSE_DIFFERENTS', 'Les mots de passe sont diff&eacute;rents !') ;
define ('CAR_EMAIL_REQUIS', 'Vous devez saisir un email.') ;
define ('CAR_MOT_DE_PASSE_REQUIS', 'Vous devez saisir un mot de passe.') ;
define ('CAR_MAIL_INCORRECT', 'L\'email doit avoir une forme correcte, utilisateur@domaine.ext') ;
define ('CAR_NOTE_REQUIS', 'Indique les champs requis') ;
define ('CAR_MODIFIER_INSCRIPTION', 'Modifier votre inscription') ;
define ('CAR_SUPPRIMER_INSCRIPTION', 'Supprimer votre inscription') ;
define ('CAR_MESSAGE_BIENVENU', 'Vous &ecirc;tes inscrit &agrave; Tela Botanica') ;
define ('CAR_DECONNEXION', 'D&eacute;connexion') ;
define ('CAR_INSCRIPTION', 'Inscription') ;
define ('CAR_TEXTE_PERDU', 'Si vous avez perdu votre mot de passe, indiquer '.
'votre adresse email dans le champs login ci-dessus et cliquez sur \'Valider\'') ;
define ('CAR_CHECK_UNCHECK', 'Cocher les cases pour s&eacute;lectionner votre destinataire ou cocher / d&eacute;cocher tout') ;
define ('CAR_ENVOYER_MAIL', 'Envoyer un email') ;
define ('CAR_SUJET', 'Sujet') ;
define ('CAR_MESSAGE', 'Message') ;
define ('CAR_ENVOYER', 'Envoyer') ;
define ('CAR_LABEL_PROJET', 'à Tela Botanica') ;
define ('CAR_CLIQUER', 'Cliquez sur une zone de la carte pour zoomer.') ;
define ('CAR_COULEUR', 'La couleur est proportionnelle au nombre d\'inscrits.') ;
define ('CAR_AVERTISSEMENT_TITRE', 'Avertissement et d&eacute;ni de responsabilit&eacute;') ;
define ('CAR_AVERTISSEMENT', 'La représentation et l\'utilisation des fronti&egrave;res, des noms g&eacute;ographiques et autres '.
' donn&eacute;es employ&eacute;s sur les cartes et utilis&eacute;s dans les listes,'.
' les tableaux, les documents et les bases de donn&eacute;es de ce site ne sont pas garanties sans '.
'erreurs, de m&ecirc;me qu\'elles n\'engagent pas la responsabilit&eacute; des auteurs de ce site ni '.
'n\'impliquent de reconnaissance officielle de leur part.') ;
define ('CAR_MONDE', 'Monde') ;
define ('CAR_CLIQUER_ACCEDER', 'Cliquer sur la carte pour zoomer ou acc&eacute;der aux informations&nbsp;&nbsp;') ;
define ('CAR_LAIUS_INSCRIPTION', 'Pour accéder aux informations sur les membres, il faut être inscrit au réseau Tela Botanica') ;
define ('CAR_S_INSCRIRE', 'S\'inscrire') ;
define ('CAR_MESSAGE_A_TOUS', 'Si votre message concerne une actualit&eacute; botanique (expo, sortie, stage, nouvel ouvrage, emploi,...) vous pouvez le diffuser &agrave; l\'ensemble des membres du r&eacute;seau : voir la page <a href="http://www.tela-botanica.org/actu/article220.html">comment proposer des informations</a>.');
define ('CAR_ACTUALITE', 'les actualités de Tela Botanica');
define ('CAR_SURVEILLANCE', '<strong>Avertissement :</strong> la messagerie ci-dessous est destinée à vous permettre d\'échanger des messages entre membres du réseau Tela Botanica, sans dévoiler les adresses email des adhérents. Afin de respecter la tranquillité de chacun, il est strictement interdit d\'utiliser cette messagerie interne pour faire des relances périodiques d\'informations ou des annonces publicitaires et commerciales. Une surveillance du contenu des mails échangés est effectuée par l\'Association Tela Botanica. Merci de votre compréhension.') ;
define ('CAR_TEXTE_IDENTIFICATION_1', 'Identifiez-vous pour accéder aux informations') ;
define ('CAR_TEXTE_IDENTIFICATION_2', 'Informations sur les personnes inscrites dans cette unité géographique') ;
define ('CAR_PAS_D_INSCRIT', 'Pas d\'inscrit dans cette zone') ;
define ('CAR_MESSAGE_APPLI', 'Application CARTOGRAPHIE');
define ('CAR_MESSAGE_ENVOYE_A', 'Ce message a été envoyé à ');
define ('CAR_TITRE_MAIL_MODERATION', 'Un nouveau message aux adhérents est en attente de modération') ;
define ('CAR_EXPEDITEUR_ORIGINAL', 'vous a envoyé un message par l\'intermédiaire du site Internet (http://www.tela-botanica.org) du Réseau Tela Botanica auquel vous êtes inscrit. D\'autres inscrits peuvent avoir reçu ce message. Ne répondez que si vous êtes concerné, ou si vous avez des informations utiles à transmettre au demandeur.') ;
define ('CAR_LISTE_DESTINATAIRES','aux destinataires suivants') ;
define ('CAR_CONTENU_MESSAGE','Contenu du message') ;
define ('CAR_TITRE_MAIL','Sujet du message') ;
define ('CAR_MESSAGE_APPLI', 'Application CARTOGRAPHIE');
define ('CAR_MAIL_ATTENTE_MODERATION','Ce message a été envoyé au modérateur, il sera envoyé aux destinataires dès sa validation') ;
define ('CAR_TEXTE_FIN_MAIL', '\n---------------------------------------------------------------------------\n'.
'Ce message vous est envoyé par l\'intermédiaire du site Internet\n'.
'(http://www.tela-botanica.org) de Tela Botanica, Réseau des Botanistes\n'.
'Francophones auquel vous êtes inscrit.\n'.
'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 ('CAR_NO_DESTINATAIRE', 'Veuillez cocher au moins un destinataire pour votre mail');
 
/* +--Fin du code ----------------------------------------------------------------------------------------+
*
* $Log: car_langue_fr.inc.php,v $
* Revision 1.4 2005/03/21 08:30:41 alex
* ajout d'une phrase losrqu'il n'y a pas d'inscrit
*
* Revision 1.3 2005/03/11 17:34:49 tam
* modifs
*
* Revision 1.2 2005/03/11 16:54:53 alex
* ajout de label
*
* Revision 1.1 2004/11/30 13:36:59 tam
* installation
*
* Revision 1.1.1.1 2004/11/23 17:48:18 tam
* Importation
*
* Revision 1.1 2004/11/23 17:32:56 tam
* installation
*
* Revision 1.1 2004/06/18 08:49:57 alex
* version initiale, pour vecam
*
*
* +-- Fin du code ----------------------------------------------------------------------------------------+
*/
?>
/trunk/client/cartographie/cartographie.css
New file
0,0 → 1,70
/*Cartographie.css*/
table {
border:0;
border-spacing:0;}
#table_inscrits th {
text-align:center;
background-color: #E4B842;
color: black;}
#table_inscrits td {
padding:2px;
text-align:left;}
#table_inscrits{
width:100%;
margin:0;
border:none;}
#table_inscrits tbody{
vertical-align:top;
min-height:1em;
height:200px;
overflow: auto;}
#carto {
text-align:center;}
a.chemin_carto {
text-decoration:none;
font-weight:bold;}
ul.liste_carto {
margin: 0;}
li.liste_carto {
list-style-type: none;
margin: 0;}
.ligne_paire, .ligne2_paire{
background-color:#faf2dc;}
.titre1_carto {
font-size: 130%;
margin-top: 1em;}
.titre2_carto {
margin: 1em 0;
font-size: 110%;}
.carto_erreur {
color: #CC6633;
font-weight: bold;
text-decoration: blink;}
.avertissement_carto {
margin: 5px 2px 0 2px;
text-align:justify;
line-height:1.2em;}
.cliquer2 {
text-align:center;
font-weight:bold;}
.couleur {
text-align:center;}
.liste_zone {
text-align:center;}
#redaction {
background:#D4D4D4 url(images/redaction_milieu.png) repeat-y scroll 0%;
color:#454545;
width:900px;}
#redaction .text, #redaction .forml {
width:800px;}
#redaction table,#redaction h2 {
margin:5px;}
#redaction_tete {
background:#D4D4D4 url(images/redaction_tete.png) no-repeat scroll 0%;
color:#FFFFFF;
height:15px;}
#redaction_pied {
background:#D4D4D4 url(images/redaction_pied.png) no-repeat scroll 0%;
color:#FFFFFF;
height:15px;}
/trunk/client/cartographie/liste_inscrit.php
New file
0,0 → 1,303
<?
// +--------------------------------------------------------------------------------+
// | liste_inscrit.php |
// +--------------------------------------------------------------------------------+
// | Copyright (c) 2002 |
// +--------------------------------------------------------------------------------+
// | |
// +--------------------------------------------------------------------------------+
// | Auteur : Alexandre Granier <alexandre@tela-botanica.org> |
// +--------------------------------------------------------------------------------+
//
// $Id: liste_inscrit.php,v 1.6 2005/03/14 10:10:02 alex Exp $
 
global $HTTP_USER_AGENT;
 
 
$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);
 
$url = CAR_URL ;
 
$corps = (isset($_POST['corps'])) ? $_POST['corps'] : '' ;
$titre_mail = (isset($_POST['titre_mail'])) ? $_POST['titre_mail'] : '';
 
$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];
$requete = "select * from carto_PAYS where CP_ID_pays='$argument'";
$resultat = $GLOBALS['car_db']->query($requete);
if (DB::isError($resultat)) {
die ($resultat->getMessage().'<br />'.$resultat->getDebugInfo()) ;
}
$ligne = $resultat->fetchRow(DB_FETCHMODE_OBJECT) ;
$pays = $ligne->CP_Intitule_pays;
$monde->nom = $monde->nom.'*'.$pays;
$tabonglet = explode ('*', $monde->historique);
$tabnom = explode ('*', $monde->nom);
foreach ($tabonglet as $key => $value) {
$res .= '<a class="chemin_carto"' ;
if ($key == 0) {
$chemin = $value;
$value = 'monde';
$res .= " href=\"".$monde->url."&amp;historique_cartes=$chemin\">&nbsp;&gt;&nbsp;".$tabnom[$key] ;
}
else if ($key == (count($tabonglet)-1)) {
$res .= ">&nbsp;&gt;&nbsp;$pays";
}
else {
$chemin .= '*'.$value;
$res .= " href=\"".$monde->url."&amp;historique_cartes=$chemin\">&nbsp;&gt;&nbsp;".$tabnom[$key] ;
}
$res .= '</a>' ;
}
 
$capitale = $ligne->CP_Intitule_capitale;
$requete_2 = " SELECT count(".CAR_CHAMPS_ID.") as nbr".
" from ".CAR_ANNUAIRE.
" where ".CAR_CHAMPS_CE_PAYS."='$argument'";
$resultat_2 = $GLOBALS['car_db']->query($requete_2);
if (DB::isError($resultat_2)) {
die ($resultat_2->getMessage().'<br />'.$resultat_2->getDebugInfo()) ;
}
$ligne_2 = $resultat_2->fetchRow(DB_FETCHMODE_OBJECT) ;
$res .= '<h1 class="titre1_cartographie">'.$pays.' ('.$capitale.') : ' ;
if ($ligne_2->nbr == 0) {
$res .= 'aucun inscrit '.CAR_LABEL_PROJET."</h1>\n";
if (!$GLOBALS['car_auth']->getAuth()) {
$res .= AUTH_formulaire_login();
} else {
$res .= '<div class="message_pas_dinscrit">'.CAR_PAS_D_INSCRIT.'</div>'."\n" ;
}
return $res ;
} else if ($ligne_2->nbr == 1) {
$res .= $ligne_2->nbr." inscrit " ;
} else {
$res .= $ligne_2->nbr." inscrits " ;
}
$res .= CAR_LABEL_PROJET."</h1>\n";
if (!$GLOBALS['car_auth']->getAuth()) {
$res .= AUTH_formulaire_login();
} else {
$res .= '<form action="'.$url.'?mailer=1&amp;fin=true" method="post" name="formmail">'.
' <div id="div_inscrit">'.
' <table id="table_inscrits">'.
' <colgroup>'.
' <col />'.
' <col />'.
' <col />'.
' <col />'.
' <col />'.
' <col />'.
' </colgroup>'.
' <thead>'.
' <tr>'.
' <th>&nbsp;</th>'.
' <th>'.CAR_NOM.'</th>'.
' <th>'.CAR_PRENOM.'</th>'.
' <th>'.CAR_DATE_INS.'</th>'.
' <th>'.CAR_REGION.'</th>'.
' <th>'.CAR_VILLE.'</th>'.
' </tr>'.
' </thead>'.
' <tbody>';
$requete = "select * from ".CAR_ANNUAIRE.
" where ".CAR_CHAMPS_CE_PAYS."='$argument'".
" order by ".CAR_CHAMPS_NOM.", ".CAR_CHAMPS_PRENOM;
$resultat= $GLOBALS['car_db']->query($requete);
if (DB::isError($resultat)) {
die ($resultat->getMessage().'<br />'.$resultat->getDebugInfo()) ;
}
$indic=0;
$i=1;
while ($ligne = $resultat->fetchRow(DB_FETCHMODE_ASSOC)) {
if ($indic==0) {
$res.="<tr class=\"ligne_impaire\">\n";
$indic=1;
}
else {
$res.="<tr class=\"ligne_paire\">\n";
$indic=0;
}
$res.="<td><input type=\"checkbox\" name=\"select[]\" value=\"".$ligne[CAR_CHAMPS_MAIL]."\" /></td>
<td>".strtoupper($ligne[CAR_CHAMPS_NOM])."&nbsp;</td>\n
<td>".str_replace(' - ', '-', ucwords(strtolower(str_replace('-', ' - ', $ligne[CAR_CHAMPS_PRENOM]))))."&nbsp;</td>\n
<td>".date("d m Y", strtotime($ligne[CAR_CHAMPS_DATE_INS]))."&nbsp;</td>
<td>".str_replace(' - ', '-', ucwords(strtolower(str_replace('-', ' - ', $ligne[CAR_CHAMPS_REGION]))))."&nbsp;</td>
<td>".strtoupper($ligne[CAR_CHAMPS_VILLE])."&nbsp;</td>\n";
$res .= "</tr>\n";
}
$res .= "</tbody></table></div>\n";
if ($mailer==1) {
if (!is_array($select)) {
$res .= '<p class="attention">'.CAR_NO_DESTINATAIRE.'<p>';
} else {
$res .= envoie_mail_modere($GLOBALS['car_db']) ;
}
} else {
$res .= carto_texte_cocher() ;
}
$res .= carto_formulaire($titre_mail, stripslashes($corps)) ;
}
 
// 2 ème cas, on vient de cliquer sur un département français
 
} else if (count($tabmonde) == 4) {
$argument = $tabmonde[3];
$requete = "select * from gen_FRENCH_DPT where GFD_ID='$argument'";
$resultat = $GLOBALS['car_db']->query($requete);
if (DB::isError($resultat)) {
die ($resultat->getMessage() .'<br />'.$resultat->getDebugInfo());
}
$ligne = $resultat->fetchRow(DB_FETCHMODE_OBJECT);
$nom = $ligne->GFD_NAME;
$tabonglet=explode ('*', $monde->historique);
$tabnom=explode ('*', $monde->nom);
$res.="<div>\n";
foreach ($tabonglet as $key=>$value) {
if ($key==0) {
$chemin=$value;
$value='monde';
$res.= "<a class=\"chemin_carto\" href=\"".$monde->url."&amp;historique_cartes=$chemin\">&nbsp;&gt;&nbsp;".$tabnom[$key]."</a>";
}
else if ($key==(count($tabonglet)-1)) {
$res.="<a class=\"chemin_carto\">&nbsp;&gt;&nbsp;$nom</a>";
}
else {
$chemin.='*'.$value;
$res.= "<a class=\"chemin_carto\" href=\"".$monde->url."&amp;historique_cartes=$chemin\">&nbsp;&gt;&nbsp;".$tabnom[$key]."</a>";
}
}
$res .= "</div>\n";
$requete_2 = " SELECT count(".CAR_CHAMPS_ID.") as nbr".
" FROM ".CAR_ANNUAIRE.
" WHERE ".CAR_CHAMPS_DPT." = '$argument'".
" AND ".CAR_CHAMPS_CE_PAYS."='fr'";
$resultat_2 = $GLOBALS['car_db']->query($requete_2);
if (DB::isError($resultat_2)) {
die ($resultat_2->getMessage().'<br />'.$resultat_2->getDebugInfo()) ;
}
$ligne_2 = $resultat_2->fetchRow(DB_FETCHMODE_OBJECT);
 
$res .= '<h1 class="titre1_cartographie">'.$nom.' : ' ;
if ($ligne_2->nbr == 0) {
$res .= 'aucun inscrit '.CAR_LABEL_PROJET."</h1>\n";
if (!$GLOBALS['car_auth']->getAuth()) {
$res .= AUTH_formulaire_login();
} else {
$res .= '<p class="attention">'.CAR_PAS_D_INSCRIT.'<p>';
}
return $res ;
} else if ($ligne_2->nbr == 1) {
$res .= $ligne_2->nbr." inscrit " ;
} else {
$res .= $ligne_2->nbr." inscrits " ;
}
$res .= CAR_LABEL_PROJET."</h1>\n";
if (!$GLOBALS['car_auth']->getAuth()) {
$res .= AUTH_formulaire_login();
} else {
$res.= "<form action=\"$url?argument=$argument&amp;fin=true&amp;mailer=1\"
method=\"post\" name=\"formmail\">
<div id=\"div_inscrit\"><table id=\"table_inscrits\">
<colgroup>
<col />
<col />
<col />
<col />
<col />
<col />
</colgroup>
<thead>
<tr>
<th>&nbsp;</th>
<th>".CAR_NOM."</th>
<th>".CAR_PRENOM."</th>
<th>".CAR_DATE_INS."</th>
<th>".CAR_CP."</th>
<th>".CAR_VILLE."</th>
</tr></thead><tbody>\n";
$requete = "SELECT * FROM ".CAR_ANNUAIRE.
" WHERE ".CAR_CHAMPS_DPT." = '$argument'".
" AND ".CAR_CHAMPS_CE_PAYS."='fr'".
" ORDER BY ".CAR_CHAMPS_NOM.", ".CAR_CHAMPS_PRENOM;
$resultat = $GLOBALS['car_db']->query($requete);
if (DB::isError($resultat)) {
die ($resultat->getMessage().'<br />'.$resultat->getDebugInfo()) ;
}
$indic=0;
$i=1;
while ($ligne = $resultat->fetchRow(DB_FETCHMODE_ASSOC)) {
if ($indic==0) {
$res.="<tr class=\"ligne_impaire\">\n";
$indic=1;
} else {
$res.="<tr class=\"ligne_paire\">\n";
$indic=0;
}
$res.="<td><input type=\"checkbox\" name=\"select[]\" value=\"".$ligne[CAR_CHAMPS_MAIL]."\" /></td>
<td>".strtoupper($ligne[CAR_CHAMPS_NOM])."&nbsp;</td>
<td>".str_replace(' - ', '-', ucwords(strtolower(str_replace('-', ' - ', $ligne[CAR_CHAMPS_PRENOM]))))."&nbsp;</td>
<td>".date("d m Y", strtotime($ligne[CAR_CHAMPS_DATE_INS]))."</td>
<td>".$ligne[CAR_CHAMPS_CODE_POSTAL]."&nbsp;</td>
<td>".strtoupper($ligne[CAR_CHAMPS_VILLE])."&nbsp;</td>
</tr>\n";
}
$res.="</tbody></table></div>\n";
if ($mailer==1) {
if (!is_array($select)) {
$res.= '<p class="attention">'.CAR_NO_DESTINATAIRE.'<p>';
} else {
$res .= envoie_mail_modere($GLOBALS['car_db']) ;
}
} else {
$res .=carto_texte_cocher() ;
}
$res .= carto_formulaire($titre_mail,stripslashes($corps)) ;
}
}
?>
/trunk/client/cartographie/images/redaction_pied.png
Cannot display: file marked as a binary type.
svn:mime-type = image/png
/trunk/client/cartographie/images/redaction_pied.png
New file
Property changes:
Added: svn:mime-type
+image/png
\ No newline at end of property
/trunk/client/cartographie/images/redaction_tete.png
Cannot display: file marked as a binary type.
svn:mime-type = image/png
/trunk/client/cartographie/images/redaction_tete.png
New file
Property changes:
Added: svn:mime-type
+image/png
\ No newline at end of property
/trunk/client/cartographie/images/redaction_milieu.png
Cannot display: file marked as a binary type.
svn:mime-type = image/png
/trunk/client/cartographie/images/redaction_milieu.png
New file
Property changes:
Added: svn:mime-type
+image/png
\ No newline at end of property
/trunk/client/cartographie/configuration/car_config.inc.php
New file
0,0 → 1,70
<?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: car_config.inc.php,v 1.1 2004/11/30 13:37:13 tam Exp $
 
// Paramêtres indiquant que l'on est en français pourpermettre la mise en majuscule des caractères accentués
setlocale(LC_CTYPE, "fr_FR");
 
/**
//=========================DEFINITION DE VARIABLES =================================
* Définition des variables globales
//==================================================================================
*/
$GLOBALS['car_auth'] =& $_GEN_commun['pear_auth'] ;
$GLOBALS['car_db'] =& $_GEN_commun['pear_db'] ;
$GLOBALS['car_url'] = $_GEN_commun['url'];
 
/**
//==================================== LES URLS ==================================
* Constantes liées à l'utilisation des url
//==================================================================================
*/
define ("CAR_URL", $_GEN_commun['url']->getURL()) ;
define ("CAR_URL_ACTUALITE", 'http://www.tela-botanica.org/actu/article220.html') ;
 
/**
//==================================== LES CHEMINS =================================
* Constantes définissant les chemins d'accès aux différents fichiers inclus dans les
* applications.
//==================================================================================
*/
define("CAR_CHEMIN_APPLI",'client/cartographie') ;//le chemin vers l'application courrante
define("CAR_CHEMIN_LIBRAIRIE",'client/cartographie/bibliotheque/');//le chemin de la librairie de fichier php
define ("CAR_CHEMIN_INSCRIPTION", "inscription");//l'adresse de renvoi pour s'inscrire au site
 
 
/**
//==================================== CONSTANTES ==================================
* Constantes des noms de tables et de champs dans l'annuaire
//==================================================================================
*/
define ("CAR_ANNUAIRE", "annuaire_tela") ;
define ("CAR_CHAMPS_NOM", "U_NAME") ; // Nom du champs nom
define ("CAR_CHAMPS_MAIL", "U_MAIL") ; // Nom du champs mail
define ("CAR_CHAMPS_PRENOM", "U_SURNAME") ; // Nom du champs prénom
define ("CAR_CHAMPS_CE_PAYS", "U_COUNTRY") ;
define ("CAR_CHAMPS_DPT", " U_FRENCH_DPT") ;
define ("CAR_CHAMPS_ID", "U_ID") ;
define ("CAR_CHAMPS_DATE_INS", "U_DATE") ;
define ("CAR_CHAMPS_REGION", "U_STATE") ;
define ("CAR_CHAMPS_CODE_POSTAL", "U_ZIP_CODE") ;
define ("CAR_CHAMPS_VILLE", "U_CITY") ;
 
define ("PROJET_DPT", "gen_FRENCH_DPT") ; // Nom de la table département
define ("PROJET_PAYS", "gen_COUNTRY") ; // Nom de la table pays
 
 
 
/** Tableau global contenant les mails des administrateurs. */
// Liste des personne recevant le mail après envoie de courriel par l'annuaire
$GLOBALS['mail_admin'] = array ('carto@tela-botanica.org');
?>