Rev 1081 | Rev 1292 | Go to most recent revision | Blame | Compare with Previous | Last modification | View Log | RSS feed
<?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.7 2007-01-04 16:53:02 alexandre_tb Exp $
// FICHIER : $RCSfile: cartographie.php,v $
// AUTEUR : $Author: alexandre_tb $
// VERSION : $Revision: 1.7 $
// DATE : $Date: 2007-01-04 16:53:02 $
*/
include_once PAP_CHEMIN_RACINE.'/client/bottin/configuration/bottin.config.inc.php';
include_once INS_CHEMIN_APPLI.'configuration/cartographie.config.inc.php';
include_once INS_CHEMIN_APPLI.'bibliotheque/bottin.fonct.php';
include_once INS_CHEMIN_APPLI.'bibliotheque/lib.carto.php';
//================================================================================================
if (isset($_GET['voir_abonnement']) or isset($_GET['voir_actus']) or isset($_GET['voir_ressources']) or isset($_GET['voir_competences']) ) {
//---------------le menu de l'appli-----------
function afficherContenuNavigation () {
$res =inscription_onglets();
return $res ;
}
}
//================================================================================================
function construit_hierarchie(&$info_zone, &$carto_config, $info_zone_hierarchie, &$monde) {
static $i=0;
$i++;
//requete pour trouver les fils de la carte de depart voulue
$requete_zone_fils = 'SELECT * FROM carto_zone_hierarchie '.
'WHERE czh_id_zone_pere='.$info_zone_hierarchie->czh_id_zone;
$resultat_zone_fils = $GLOBALS['ins_db']->query($requete_zone_fils) ;//$GLOBALS['debug'] .= $requete_zone_fils.'<br /><br />';
if (DB::isError($resultat_zone_fils )) {
echo ($resultat_zone_fils->getMessage().'<br />'.$resultat_zone_fils->getDebugInfo()).'<br />'.$requete_zone_fils ;
}
if ($resultat_zone_fils->numRows()!=0) {
while ($ligne_zone_fils = $resultat_zone_fils ->fetchRow(DB_FETCHMODE_OBJECT)) {
//on ajoute la carto en cours en tant que fils
//requete pour obtenir toutes les infos (repartition par zones, nom des tables et champs pour les couleurs,.. ) pour la carte à afficher
$requete_01 = 'SELECT '.$ligne_zone_fils->czh_code_alpha.'.'.$ligne_zone_fils-> czh_champs_jointure_annuaire.
',count('.$ligne_zone_fils->czh_code_alpha.'.'.$ligne_zone_fils-> czh_champs_jointure_annuaire.') AS nbr'.
' FROM '.$carto_config['cc_table1']; //.', '.$ligne_zone_fils->czh_nom_table_info_couleur;
if ($carto_config['cc_table2']!='') $requete_01 .= ', '.$carto_config['cc_table2'].' as '.$info_zone_hierarchie->czh_code_alpha.', '.
$carto_config['cc_table2'].' as '.$ligne_zone_fils->czh_code_alpha.'';
$requete_01 .= ' WHERE '.$info_zone_hierarchie->czh_code_alpha.'.'.$info_zone_hierarchie->czh_champs_jointure_annuaire.' = "'.
$ligne_zone_fils-> czh_identifiant_table_info_couleur.
'" AND '.$info_zone_hierarchie->czh_sql_complementaire;
if ($carto_config['cc_sql']!='') $requete_01 .= ' and ('.$carto_config['cc_sql'].')';
if ($ligne_zone_fils-> czh_sql_complementaire != '') $requete_01 .= ' and '.$ligne_zone_fils->czh_sql_complementaire ;
$requete_01 .= ' and '.$info_zone_hierarchie->czh_code_alpha.'.bfvl_ce_fiche='.$ligne_zone_fils->czh_code_alpha.'.bfvl_ce_fiche';
$requete_01 .= ' GROUP BY '.$ligne_zone_fils-> czh_champs_jointure_annuaire;
$resultat_01 = $GLOBALS['ins_db']->query($requete_01) ;
if (DB::isError($resultat_01)) {
return $resultat_01->getMessage().'<br />'.$resultat_01->getDebugInfo().'<br />'.$requete_01 ;
}
$tableau_repartition=array();
while ($ligne_01 = $resultat_01->fetchRow(DB_FETCHMODE_OBJECT)) {
$id=$ligne_zone_fils-> czh_champs_jointure_annuaire;
$tableau_repartition[$ligne_01->$id] = $ligne_01->nbr;
}
$info_zone[$i]['nom_table_zone'] =$ligne_zone_fils->czh_nom_table_info_couleur;
$info_zone[$i]['nom_chp_id_zone'] =$ligne_zone_fils->czh_nom_champs_id;
$info_zone[$i]['nom_chp_nom_zone'] =$ligne_zone_fils->czh_nom_champs_intitule;
$info_zone[$i]['nom_chp_rouge'] =$ligne_zone_fils->czh_nom_champs_couleur_R;
$info_zone[$i]['nom_chp_vert'] =$ligne_zone_fils->czh_nom_champs_couleur_V;
$info_zone[$i]['nom_chp_bleu'] =$ligne_zone_fils->czh_nom_champs_couleur_B;
$info_zone[$i]['nom_chp_zone_sup'] =$ligne_zone_fils->czh_nom_champs_id_pere;
$info_zone[$i]['tableau_valeurs_zone'] = $tableau_repartition;
$monde->ajouterFils($ligne_zone_fils->czh_code_alpha, $ligne_zone_fils->czh_identifiant_table_info_couleur,
$ligne_zone_fils->czh_nom, $ligne_zone_fils->czh_fichier_masque,
$ligne_zone_fils->czh_fichier_image, $info_zone[$i]);
$monde->fils[$ligne_zone_fils->czh_code_alpha]->definirCouleurs ('255', '255', '255','200', '255', '200','100', '255', '100','0', '100', '0') ;
$monde->fils[$ligne_zone_fils->czh_code_alpha]->champs_jointure = $ligne_zone_fils->czh_champs_jointure_annuaire;
$monde->fils[$ligne_zone_fils->czh_code_alpha]->sql_complementaire = $ligne_zone_fils->czh_sql_complementaire;
if ($i == 1) {
construit_hierarchie($info_zone, $carto_config, $ligne_zone_fils, $monde->fils[$ligne_zone_fils->czh_code_alpha]);
} else {
construit_hierarchie($info_zone, $carto_config, $ligne_zone_fils, $monde->fils[$ligne_zone_fils->czh_code_alpha]);
}
}
}
}
function afficherContenuCorps() {
global $image_x;
global $image_y;
global $historique_cartes;
global $mailer;
global $fin;
global $sendpwd;//utilisé dans liste_inscrit.php
global $select;//utilisé dans liste_inscrit.php
global $liste_zone_carte;
//=================================================================================================
//Gestion de la configuration
$requete = 'SELECT * FROM carto_config WHERE cc_menu_id='.$GLOBALS['_GEN_commun']['info_menu']->gm_id_menu;
$resultat = $GLOBALS['ins_db']->query($requete) ;
if (DB::isError($resultat)) {
die ("Echec de la requete<br />".$resultat->getMessage()."<br />".$resultat->getDebugInfo()) ;
}
if ($resultat->numRows()>0) {
$carto_config = $resultat->fetchRow(DB_FETCHMODE_ASSOC);
//on affiche les infos lorsqu'on regarde une fiche
if ( isset($_GET['voir_abonnement']) or isset($_GET['voir_actus']) or isset($_GET['voir_ressources']) or isset($_GET['voir_competences']) ) {
$res = affiche_onglet_info();
} else {
//requete pour afficher la carte de depart voulue dans la conf.
$requete_zone_hierarchie = 'SELECT * FROM carto_zone_hierarchie WHERE czh_id_zone='.$carto_config['cc_ce_premiere_carte'];
$resultat_zone_hierarchie = $GLOBALS['ins_db']->query($requete_zone_hierarchie) ;
if (DB::isError($resultat_zone_hierarchie )) {
echo ($resultat_zone_hierarchie->getMessage().'<br />'.$resultat_zone_hierarchie->getDebugInfo()) ;
}
$ligne_zone_hierarchie = $resultat_zone_hierarchie ->fetchRow(DB_FETCHMODE_OBJECT);
//initialisation de la variable 2 dimensions, contenant les infos specifiques a chaque echelle de territoire
$info_zone= array();
//requete pour obtenir toutes les infos (repartition par zones, nom des tables et champs pour les couleurs,.. ) pour la carte à afficher
$requete_01 = 'SELECT '.$ligne_zone_hierarchie-> czh_champs_jointure_annuaire.',count('.$ligne_zone_hierarchie-> czh_champs_jointure_annuaire.') AS nbr'.
' FROM '.$carto_config['cc_table1']; //.', '.$ligne_zone_fils->czh_nom_table_info_couleur;
if ($carto_config['cc_table2']!='') $requete_01 .= ', '.$carto_config['cc_table2'].' as '.$ligne_zone_hierarchie->czh_code_alpha.' ';
if ($carto_config['cc_sql']!='') $requete_01 .= ' WHERE ('.$carto_config['cc_sql'].')';
if ($ligne_zone_hierarchie-> czh_sql_complementaire != '') $requete_01 .= ' and '.$ligne_zone_hierarchie->czh_sql_complementaire ;
$requete_01 .= ' GROUP BY '.$ligne_zone_hierarchie-> czh_champs_jointure_annuaire;
$resultat_01 = $GLOBALS['ins_db']->query($requete_01) ;
if (DB::isError($resultat_01)) {
echo $resultat_01->getMessage().'<br />'.$resultat_01->getDebugInfo().'<br />'.$requete_01 ;
}
$info_zone=array();
while ($ligne_01 = $resultat_01->fetchRow(DB_FETCHMODE_OBJECT)) {
$id=$ligne_zone_hierarchie-> czh_champs_jointure_annuaire;
$tableau_repartition[$ligne_01->$id] = $ligne_01->nbr;
}
$info_zone['nom_table_zone'] =$ligne_zone_hierarchie->czh_nom_table_info_couleur;
$info_zone['nom_chp_id_zone'] =$ligne_zone_hierarchie->czh_nom_champs_id;
$info_zone['nom_chp_nom_zone'] =$ligne_zone_hierarchie->czh_nom_champs_intitule;
$info_zone['nom_chp_rouge'] =$ligne_zone_hierarchie->czh_nom_champs_couleur_R;
$info_zone['nom_chp_vert'] =$ligne_zone_hierarchie->czh_nom_champs_couleur_V;
$info_zone['nom_chp_bleu'] =$ligne_zone_hierarchie->czh_nom_champs_couleur_B;
$info_zone['nom_chp_zone_sup'] =$ligne_zone_hierarchie->czh_nom_champs_id_pere;
$info_zone['tableau_valeurs_zone'] = $tableau_repartition;
$monde = new Carto_Carte($ligne_zone_hierarchie->czh_code_alpha, '', $ligne_zone_hierarchie->czh_nom,
$ligne_zone_hierarchie->czh_fichier_masque, $ligne_zone_hierarchie->czh_fichier_image,
INS_CHEMIN_APPLI.'presentations/fonds/', $info_zone);
$monde->definirCouleurs('255', '255', '255','200', '255', '200','100', '255', '100','0', '100', '0') ;
$monde->champs_jointure = $ligne_zone_hierarchie->czh_champs_jointure_annuaire;
$monde->sql_complementaire = $ligne_zone_hierarchie->czh_sql_complementaire;
construit_hierarchie($info_zone, $carto_config, $ligne_zone_hierarchie, $monde);
//$GLOBALS['debug'] .= '<pre>'.print_r($monde, true).'</pre>';
if (isset($_REQUEST['historique_cartes'])) {
$monde->historique_cartes = $_REQUEST['historique_cartes'];
} else {
$monde->historique_cartes = INS_ECHELLE_DEPART;
}
$monde->image_x = $image_x;
$monde->image_y = $image_y;
$monde->liste_zone_carte = $liste_zone_carte;
$monde->url = $GLOBALS['ins_url']->getURL();
// Une fois l'arborescence créée on lance la methode donnerFormulaireImage() pour recuperer la carte
// (dans $img). S'il n'y a pas de carte a afficher donnerFormulaireImage() renvoi false. On peut alors recuperer
// le niveau ou on en est grace a $monde->historique (du type continent*namerique*ca).
$img = false;
if ($mailer == 1 || $fin == true) {
$objet_carte = $_SESSION['carte'] ;
$monde = unserialize($objet_carte);}
else {
$img = $monde->donnerFormulaireImage();
}
// Quoi qu'il arrive, on ouvre la balise formulaire
if ($carto_config['cc_titre_carto']!='') $res = '<h1>'.$carto_config['cc_titre_carto'].'</h1>'."\n";
else $res = '<h1>'.INS_CARTOGRAPHIE.'</h1>'."\n";
$res .= '<form name="formmail" action="'.$monde->url.'" method="post">'."\n";
if ((INS_AFFICHE_ECHELLE)and($img)) {
$historique_carte = new Carto_HistoriqueCarte ($monde, '>', 'chemin_carto');
$res .= $historique_carte->afficherHistoriqueCarte()."\n" ;
}
if (isset($_GET['voir_fiche'])) {
return carto_liste_fiches($monde, $carto_config);
}
if (!$img ) {
//include 'bibliotheque/cartographie.fonct.liste_inscrit.php';
$res .= '';
/*var_dump ($monde);
if (count (explode ('*', $monde->historique)) > 2) {
$monde = $monde->fils['drome'] ;
} */
$res .= carto_liste_fiches($monde, $carto_config);
return $res;
} else {
$res .= $img;
$res .= '<p class="zone_info">'."\n";
$res .= '<strong>'.INS_CLIQUER_ACCEDER.'</strong><br />'."\n";
$res .= INS_COULEUR."\n".'</p>'."\n";
}
$res .= '</form>'."\n";
return $res;
}
//----------------------------------------------------------------------------------------------------------------------
// Cas ou la carto n'a pas encore ete configuree
} else {
return '<p class="zone_alert">'.INS_FAUT_CONFIGURER_CARTO.'</p>'."\n";
}
}
//-- Fin du code source ------------------------------------------------------------
/*
* $Log: not supported by cvs2svn $
* Revision 1.5 2006/04/19 13:49:04 alexandre_tb
* correction de bug sur l'utilisation de l'id_menu de papyrus
*
* Revision 1.4 2006/04/10 14:01:36 florian
* uniformisation de l'appli bottin: plus qu'un fichier de fonctions
*
* Revision 1.3 2006/04/04 12:23:05 florian
* modifs affichage fiches, généricité de la carto, modification totale de l'appli annuaire
*
* Revision 1.2 2005/11/24 16:17:52 florian
* changement template inscription + modifs carto
*
* Revision 1.1 2005/09/22 14:02:49 ddelon
* nettoyage annuaire et php5
*
* Revision 1.2 2005/09/22 13:30:49 florian
* modifs pour compatibilité XHTML Strict + corrections de bugs (mais ya encore du boulot!!)
*
* Revision 1.1 2004/12/15 13:33:03 alex
* version initiale
*
* Revision 1.2 2004/06/18 08:48:03 alex
* améliorations diverses
*
* Revision 1.1 2004/06/09 13:56:47 alex
* corrections diverses
*
* Revision 1.9 2003/05/06 12:49:27 alex
* remplacement include par include_once
*
* Revision 1.8 2003/03/07 15:20:32 jpm
* Correction d'une erreur de texte.
*
* Revision 1.7 2003/02/28 08:43:33 jpm
* Gestion des nouvelles tables MySql carto.
*
* Revision 1.6 2003/02/21 13:50:19 jpm
* Mise à jour nouvel objet Carto_Carte.
*
* Revision 1.5 2003/02/17 14:33:52 jpm
* Modification pour être compatible avec la nouvelle classe carte.
*
*
*/
?>