| 448 | ddelon | 1 | <?php
 | 
        
           |  |  | 2 |   | 
        
           |  |  | 3 | //vim: set expandtab tabstop=4 shiftwidth=4:
 | 
        
           |  |  | 4 | // +-----------------------------------------------------------------------------------------------+
 | 
        
           |  |  | 5 | // | PHP version 4.0                                                                               |
 | 
        
           |  |  | 6 | // +-----------------------------------------------------------------------------------------------+
 | 
        
           |  |  | 7 | // | Copyright (c) 1997, 1998, 1999, 2000, 2001 The PHP Group                                      |
 | 
        
           |  |  | 8 | // +-----------------------------------------------------------------------------------------------+
 | 
        
           |  |  | 9 | // | This source file is subject to version 2.0 of the PHP license,                                |
 | 
        
           |  |  | 10 | // | that is bundled with this package in the file LICENSE, and is                                 |
 | 
        
           |  |  | 11 | // | available at through the world-wide-web at                                                    |
 | 
        
           |  |  | 12 | // | http://www.php.net/license/2_02.txt.                                                          |
 | 
        
           |  |  | 13 | // | If you did not receive a copy of the PHP license and are unable to                            |
 | 
        
           |  |  | 14 | // | obtain it through the world-wide-web, please send a note to                                   |
 | 
        
           |  |  | 15 | // | license@php.net so we can mail you a copy immediately.                                        |
 | 
        
           |  |  | 16 | // +-----------------------------------------------------------------------------------------------+
 | 
        
           |  |  | 17 | /**
 | 
        
           |  |  | 18 | * Fichier regroupant toutes les classes de la carto
 | 
        
           |  |  | 19 | *
 | 
        
           |  |  | 20 | *Toutes les classe de la carto sont disponibles dans ce fichier.
 | 
        
           |  |  | 21 | *
 | 
        
           |  |  | 22 | *@package carto
 | 
        
           |  |  | 23 | //Auteur original :
 | 
        
           |  |  | 24 | *@author        Nicolas MATHIEU
 | 
        
           |  |  | 25 | //Autres auteurs :
 | 
        
           |  |  | 26 | *@author        Alexandre GRANIER <alexandre@tela-botanica.org>
 | 
        
           |  |  | 27 | *@author        Jean-Pascal MILCENT <jpm@tela-botanica.org>
 | 
        
           |  |  | 28 | *@copyright     Tela-Botanica 2000-2003
 | 
        
           |  |  | 29 | *@version       01 juillet 2002
 | 
        
           |  |  | 30 | // +-----------------------------------------------------------------------------------------------+
 | 
        
           |  |  | 31 | //
 | 
        
           | 1367 | alexandre_ | 32 | // $Id: lib.carto.php,v 1.9 2007-04-20 14:16:45 alexandre_tb Exp $
 | 
        
           | 448 | ddelon | 33 | // FICHIER : $RCSfile: lib.carto.php,v $
 | 
        
           | 1367 | alexandre_ | 34 | // AUTEUR  : $Author: alexandre_tb $
 | 
        
           |  |  | 35 | // VERSION : $Revision: 1.9 $
 | 
        
           |  |  | 36 | // DATE    : $Date: 2007-04-20 14:16:45 $
 | 
        
           | 448 | ddelon | 37 | //
 | 
        
           |  |  | 38 | // +-----------------------------------------------------------------------------------------------+
 | 
        
           |  |  | 39 | // A FAIRE :
 | 
        
           |  |  | 40 | // 1.-Rendre cette classe indépendante de l'arborescence du site.
 | 
        
           |  |  | 41 | //      On trouve encore des urls ou des chemins d'accé au fichier codé en dur dans l'appli
 | 
        
           |  |  | 42 | //      Il faudrait pouvoir les paramétrés dans la classe.
 | 
        
           |  |  | 43 | // 2.- Supprimer l'attribut $this->historiques qui doit être devenu complétement obscoléte et le
 | 
        
           |  |  | 44 | //      remplacer par $this->historique_cartes
 | 
        
           |  |  | 45 | // 3.- Renomer $this->liste_zone_carte en quelque chose de plus parlant...
 | 
        
           |  |  | 46 | */
 | 
        
           |  |  | 47 | //Inclusion d'un autre fichier de librairie
 | 
        
           |  |  | 48 | include_once 'lib.couleur.php';
 | 
        
           |  |  | 49 |   | 
        
           |  |  | 50 | //Sert seulement en interne pour le débogage des requetes SQL
 | 
        
           |  |  | 51 | $NOM_FICHIER = 'lib.carto.php';
 | 
        
           |  |  | 52 |   | 
        
           |  |  | 53 | //==================================================================================================
 | 
        
           |  |  | 54 | // La classe Carto_HistoriqueCarte sert à pouvoir afficher les liens avec les carte précédentes
 | 
        
           |  |  | 55 | // On accède à cette fonctionnalité grâce à la méthode afficherHistoriqueCarte()
 | 
        
           |  |  | 56 | // L'objet Carto_HistoriqueCarte recoit en parametres :
 | 
        
           |  |  | 57 | //      -la généalogie du niveau ou on en est (du type monde*europe*france )
 | 
        
           |  |  | 58 | //      -l'url du document
 | 
        
           |  |  | 59 | //      -en option :    *le caractere de separation (par defaut c'est >)
 | 
        
           |  |  | 60 | //                      *la classe css des liens
 | 
        
           |  |  | 61 | //===================================================================================================
 | 
        
           |  |  | 62 |   | 
        
           |  |  | 63 | class Carto_HistoriqueCarte
 | 
        
           |  |  | 64 | {
 | 
        
           |  |  | 65 |     var $historique;
 | 
        
           |  |  | 66 |     var $url;
 | 
        
           |  |  | 67 |     var $caractere_separation;
 | 
        
           |  |  | 68 |     var $class_css;
 | 
        
           |  |  | 69 |     var $nom;
 | 
        
           |  |  | 70 |   | 
        
           |  |  | 71 |     function Carto_HistoriqueCarte ($objet_carte, $caractere = '>', $class = '')
 | 
        
           |  |  | 72 |     {
 | 
        
           |  |  | 73 |         global $GS_GLOBAL;
 | 
        
           |  |  | 74 |   | 
        
           |  |  | 75 |         $this->historique = $objet_carte->historique;
 | 
        
           |  |  | 76 |         $this->url = $objet_carte->url;
 | 
        
           |  |  | 77 |         $this->nom = $objet_carte->nom;
 | 
        
           |  |  | 78 |         unset ($objet_carte);
 | 
        
           |  |  | 79 |         $this->caractere_separation = $caractere;
 | 
        
           |  |  | 80 |         $this->class_css = $class;
 | 
        
           |  |  | 81 |     }//Fin du constructeur Carto_HistoriqueCarte().
 | 
        
           |  |  | 82 |   | 
        
           |  |  | 83 |     function afficherHistoriqueCarte ()
 | 
        
           |  |  | 84 |     {
 | 
        
           | 612 | florian | 85 |         $res='<div style="float:left;">'.INS_ECHELLE;
 | 
        
           | 448 | ddelon | 86 |         $tabonglet = explode ('*', $this->historique);
 | 
        
           |  |  | 87 |         $tabnom = explode ('*', $this->nom);
 | 
        
           |  |  | 88 |         foreach ($tabonglet as $key=>$value) {
 | 
        
           |  |  | 89 |             if ($key == 0) {
 | 
        
           |  |  | 90 |                 $chemin = $value;
 | 
        
           |  |  | 91 |             }
 | 
        
           |  |  | 92 |             else {
 | 
        
           |  |  | 93 |                 $chemin .= '*'.$value;
 | 
        
           |  |  | 94 |             }
 | 
        
           |  |  | 95 |   | 
        
           |  |  | 96 |             $res.= '<a ';
 | 
        
           |  |  | 97 |   | 
        
           |  |  | 98 |             if (!empty($this->class_css)) {
 | 
        
           |  |  | 99 |                 $res.='class="'.$this->class_css.'" ';
 | 
        
           |  |  | 100 |             }
 | 
        
           | 1292 | neiluj | 101 |   | 
        
           |  |  | 102 |             $res.='href="'.$this->url.'&historique_cartes='.$chemin.'"> '.$this->caractere_separation.' '.$tabnom[$key].'</a>';
 | 
        
           | 448 | ddelon | 103 |         }
 | 
        
           | 612 | florian | 104 |         $res.= '</div>'."\n";
 | 
        
           | 448 | ddelon | 105 |         return $res;
 | 
        
           |  |  | 106 |   | 
        
           |  |  | 107 |     }//Fin de la méthode afficherHistoriqueCarte().
 | 
        
           |  |  | 108 |   | 
        
           |  |  | 109 | }//Fin de la classe Carto_HistoriqueCarte.
 | 
        
           |  |  | 110 |   | 
        
           |  |  | 111 | //================================================================================================
 | 
        
           |  |  | 112 | //La classe Action sert a definir les paramètres nécessaires pour recueillir l'action a réaliser en
 | 
        
           |  |  | 113 | // fonction des coordonnées du point, du masque et du niveau.
 | 
        
           |  |  | 114 | //Elle remplace la fonction get_cartoAction() que l'on peut trouver dans le fichier carto_commun.php
 | 
        
           |  |  | 115 | //des différentes application utilisant la carto.
 | 
        
           |  |  | 116 | // Les champs a renseigner sont les suivants :
 | 
        
           |  |  | 117 | //   -le nom de la table ($nom_table_carto_action) où sont stokée les actions à réalisées
 | 
        
           |  |  | 118 | //      en fonction des couleurs
 | 
        
           |  |  | 119 | //   -les 5 champs principaux de la table :
 | 
        
           |  |  | 120 | //      -l'identifiant de la zone géographique (un nom, un numéro ou une abréviation) -> $nom_champ_cle
 | 
        
           |  |  | 121 | //      -les couleurs -> $nom_champ_rouge, $nom_champ_vert, $nom_champ_bleu
 | 
        
           |  |  | 122 | //      -l'action -> $nom_champ_action
 | 
        
           |  |  | 123 | // Elle possède une seule méthode : get_cartoAction().
 | 
        
           |  |  | 124 | //================================================================================================
 | 
        
           |  |  | 125 |   | 
        
           |  |  | 126 | class Carto_Action
 | 
        
           |  |  | 127 | {
 | 
        
           |  |  | 128 |         var $_table_zone_geo;
 | 
        
           |  |  | 129 |         var $_id_zone_geo_zone;
 | 
        
           |  |  | 130 |         var $_rouge;
 | 
        
           |  |  | 131 |         var $_vert;
 | 
        
           |  |  | 132 |         var $_bleu;
 | 
        
           |  |  | 133 |         var $_table_action;
 | 
        
           |  |  | 134 |         var $_id_carte_action;
 | 
        
           |  |  | 135 |         var $_id_zone_geo_action;
 | 
        
           |  |  | 136 |         var $_type_zone_geo_action;
 | 
        
           |  |  | 137 |         var $_action;
 | 
        
           |  |  | 138 |         var $_id_carte_destination;
 | 
        
           |  |  | 139 |   | 
        
           |  |  | 140 |     function Carto_Action ($table_zone_geo, $zone_chp_id_zone, $chp_rouge,
 | 
        
           |  |  | 141 |                                     $chp_vert, $chp_bleu, $table_carto_action, $action_chp_id_carte, $action_chp_id_zone,
 | 
        
           |  |  | 142 |                                     $action_chp_type_zone, $chp_action, $chp_destination)
 | 
        
           |  |  | 143 |     {
 | 
        
           |  |  | 144 |         $this->_table_zone_geo = $table_zone_geo;
 | 
        
           |  |  | 145 |         $this->_id_zone_geo_zone = $zone_chp_id_zone;
 | 
        
           |  |  | 146 |         $this->_rouge = $chp_rouge;
 | 
        
           |  |  | 147 |         $this->_vert = $chp_vert;
 | 
        
           |  |  | 148 |         $this->_bleu = $chp_bleu;
 | 
        
           |  |  | 149 |         $this->_table_action = $table_carto_action;
 | 
        
           |  |  | 150 |         $this->_id_carte_action = $action_chp_id_carte;
 | 
        
           |  |  | 151 |         $this->_id_zone_geo_action = $action_chp_id_zone;
 | 
        
           |  |  | 152 |         $this->_type_zone_geo_action = $action_chp_type_zone;
 | 
        
           |  |  | 153 |         $this->_action = $chp_action;
 | 
        
           |  |  | 154 |         $this->_id_carte_destination = $chp_destination;
 | 
        
           |  |  | 155 |     }
 | 
        
           |  |  | 156 |   | 
        
           |  |  | 157 |     //**********************************************************************************************************
 | 
        
           |  |  | 158 |     // Méthode get_cartoAction($imageX, $imageY, $masque, $id_carte)
 | 
        
           |  |  | 159 |   | 
        
           |  |  | 160 |     // Elle renvoit l'action a réaliser.
 | 
        
           |  |  | 161 |     // Nous passons les paramètres suivant :
 | 
        
           |  |  | 162 |     //      -les coordonnees du point ($imageX et $imageY)
 | 
        
           |  |  | 163 |     //      -le masque pour recuperer la couleur ($masque)
 | 
        
           |  |  | 164 |     //      -l'identifiant de la carte où nous nous trouvons ($id_carte)
 | 
        
           |  |  | 165 |     //**********************************************************************************************************
 | 
        
           |  |  | 166 |   | 
        
           |  |  | 167 |     function _consulterActionImage($imageX, $imageY, $masque, $id_carte)
 | 
        
           |  |  | 168 |     {
 | 
        
           |  |  | 169 |         // Nous récuperons les valeurs RVB de la couleur sur laquelle l'utilisateur a cliqué.
 | 
        
           |  |  | 170 |         // Les valeurs RVB sont stockées dans le tableau associatif $valeurs_RVB.
 | 
        
           |  |  | 171 |   | 
        
           |  |  | 172 |         $masque_courant = imagecreatefrompng($masque);
 | 
        
           |  |  | 173 |         $index_couleur = imagecolorat($masque_courant,$imageX,$imageY);
 | 
        
           |  |  | 174 |         $valeurs_RVB = imagecolorsforindex($masque_courant, $index_couleur);
 | 
        
           |  |  | 175 |   | 
        
           |  |  | 176 |         // Nous effectuons une requete dans la table carto_ACTION pour récupérer la valeur
 | 
        
           |  |  | 177 |         // du champ "action", afin de savoir quoi faire.
 | 
        
           |  |  | 178 |         $requete =
 | 
        
           |  |  | 179 |         'SELECT '.$this->_action.', '.$this->_id_carte_destination.', '.$this->_id_zone_geo_action.
 | 
        
           |  |  | 180 |         ' FROM '.$this->_table_action.', '.$this->_table_zone_geo.
 | 
        
           |  |  | 181 |         ' WHERE '.$this->_table_zone_geo.'.'.$this->_rouge.' = '.$valeurs_RVB['red'].
 | 
        
           |  |  | 182 |         ' AND '.$this->_table_zone_geo.'.'.$this->_vert.' = '.$valeurs_RVB['green'].
 | 
        
           |  |  | 183 |         ' AND '.$this->_table_zone_geo.'.'.$this->_bleu.' = '.$valeurs_RVB['blue'].
 | 
        
           |  |  | 184 |         ' AND '.$this->_table_action.'.'.$this->_id_zone_geo_action.' = '.$this->_table_zone_geo.'.'.$this->_id_zone_geo_zone.
 | 
        
           |  |  | 185 |         ' AND '.$this->_table_action.'.'.$this->_id_carte_action.' = "'.$id_carte.'"';
 | 
        
           |  |  | 186 |   | 
        
           |  |  | 187 |         $resultat=mysql_query($requete) or die('
 | 
        
           |  |  | 188 |             <H2 style="text-align: center; font-weight: bold; font-size: 26px;">Erreur de requête</H2>'.
 | 
        
           |  |  | 189 |             '<b>Requete : </b>'.$requete.
 | 
        
           |  |  | 190 |             '<br/><br/><b>Erreur : </b>'.mysql_error());
 | 
        
           |  |  | 191 |   | 
        
           |  |  | 192 |         $ligne = mysql_fetch_object ($resultat);
 | 
        
           |  |  | 193 |   | 
        
           |  |  | 194 |         if (mysql_num_rows ($resultat) != 0) {
 | 
        
           |  |  | 195 |   | 
        
           |  |  | 196 |             $chp_id_zone_geo = $this->_id_zone_geo_action;
 | 
        
           |  |  | 197 |             $chp_action = $this->_action;
 | 
        
           |  |  | 198 |             $chp_id_carte_destination = $this->_id_carte_destination;
 | 
        
           |  |  | 199 |   | 
        
           |  |  | 200 |             $action['id_zone_geo'] = $ligne->$chp_id_zone_geo;
 | 
        
           |  |  | 201 |             $action['type_action'] = $ligne->$chp_action;
 | 
        
           |  |  | 202 |             $action['id_carte_destination'] = $ligne->$chp_id_carte_destination;
 | 
        
           |  |  | 203 |   | 
        
           |  |  | 204 |             return $action;
 | 
        
           |  |  | 205 |         }
 | 
        
           |  |  | 206 |     }//Fin de la méthode _consulterActionImage().
 | 
        
           |  |  | 207 |   | 
        
           |  |  | 208 |     //**********************************************************************************************************
 | 
        
           |  |  | 209 |     // Méthode _consulterActionListe($id_zone_carte, $id_carte)
 | 
        
           |  |  | 210 |   | 
        
           |  |  | 211 |     // Elle renvoit l'action a réaliser.
 | 
        
           |  |  | 212 |     // Nous passons les paramètres suivant :
 | 
        
           |  |  | 213 |     //      -l'identifiant de la zone que l'on veut afficher
 | 
        
           |  |  | 214 |     //      -l'identifiant de la carte où nous nous trouvons ($id_carte)
 | 
        
           |  |  | 215 |     //**********************************************************************************************************
 | 
        
           |  |  | 216 |   | 
        
           |  |  | 217 |     function _consulterActionListe($id_zone_carte, $id_carte)
 | 
        
           |  |  | 218 |     {
 | 
        
           |  |  | 219 |         // Nous effectuons une requete dans la table carto_ACTION pour récupérer la valeur
 | 
        
           |  |  | 220 |         // du champ "action", afin de savoir quoi faire.
 | 
        
           |  |  | 221 |         $requete =
 | 
        
           |  |  | 222 |         'SELECT '.$this->_action.', '.$this->_id_carte_destination.', '.$this->_id_zone_geo_action.
 | 
        
           |  |  | 223 |         ' FROM '.$this->_table_action.', '.$this->_table_zone_geo.
 | 
        
           |  |  | 224 |         ' WHERE '.$this->_table_action.'.'.$this->_id_zone_geo_action.' = '.$this->_table_zone_geo.'.'.$this->_id_zone_geo_zone.
 | 
        
           |  |  | 225 |         ' AND '.$this->_table_zone_geo.'.'.$this->_id_zone_geo_zone.' = "'.$id_zone_carte.'"'.
 | 
        
           |  |  | 226 |         ' AND '.$this->_table_action.'.'.$this->_id_carte_action.' = "'.$id_carte.'"';
 | 
        
           |  |  | 227 |   | 
        
           |  |  | 228 |         $resultat=mysql_query($requete) or die('
 | 
        
           |  |  | 229 |             <H2 style="text-align: center; font-weight: bold; font-size: 26px;">Erreur de requête</H2>'.
 | 
        
           |  |  | 230 |             '<b>Requete : </b>'.$requete.
 | 
        
           |  |  | 231 |             '<br/><br/><b>Erreur : </b>'.mysql_error());
 | 
        
           |  |  | 232 |   | 
        
           |  |  | 233 |         $ligne = mysql_fetch_object ($resultat);
 | 
        
           |  |  | 234 |   | 
        
           |  |  | 235 |         if (mysql_num_rows ($resultat) != 0) {
 | 
        
           |  |  | 236 |   | 
        
           |  |  | 237 |             $chp_id_zone_geo = $this->_id_zone_geo_action;
 | 
        
           |  |  | 238 |             $chp_action = $this->_action;
 | 
        
           |  |  | 239 |             $chp_id_carte_destination = $this->_id_carte_destination;
 | 
        
           |  |  | 240 |   | 
        
           |  |  | 241 |             $action['id_zone_geo'] = $ligne->$chp_id_zone_geo;
 | 
        
           |  |  | 242 |             $action['type_action'] = $ligne->$chp_action;
 | 
        
           |  |  | 243 |             $action['id_carte_destination'] = $ligne->$chp_id_carte_destination;
 | 
        
           |  |  | 244 |   | 
        
           |  |  | 245 |             return $action;
 | 
        
           |  |  | 246 |         }
 | 
        
           |  |  | 247 |     }//Fin de la méthode get_cartoAction().
 | 
        
           |  |  | 248 | }//Fin de la classe Carto_Action.
 | 
        
           |  |  | 249 |   | 
        
           |  |  | 250 | //================================================================================================
 | 
        
           |  |  | 251 | // L'objet carte est l'objet principal de la carto. C'est lui possede qui possède les methodes
 | 
        
           |  |  | 252 | //pour colorier les cartes.
 | 
        
           |  |  | 253 | // Il faut lui donner les parametres suivants :
 | 
        
           |  |  | 254 | //      -le nom de la premier carte ($id).
 | 
        
           |  |  | 255 | //      -le nom du masque ($masque).
 | 
        
           |  |  | 256 | //      -le nom du fond de carte a colorier ($fond).
 | 
        
           |  |  | 257 | //      -le tableau $info_table_couleur : il contient les renseignements concernant la table des couleurs ainsi
 | 
        
           |  |  | 258 | //       qu'un autre tableau dans lequel figure le nombre d'elements par zone.
 | 
        
           |  |  | 259 | // L'objet comporte deux methodes principales :
 | 
        
           |  |  | 260 | //      -'ajouterFils()' qui permet d'ajouter les cartes de niveau inferieur.
 | 
        
           |  |  | 261 | //      -'donnerFormulaireImage()' qui lance l'action a faire en fonction de l'action de l'utilisateur.
 | 
        
           |  |  | 262 | // Il faut aussi penser a donner directement le champs url.
 | 
        
           |  |  | 263 | //================================================================================================
 | 
        
           |  |  | 264 |   | 
        
           |  |  | 265 | class Carto_Carte
 | 
        
           |  |  | 266 | {
 | 
        
           |  |  | 267 |     /*|=============================================================================================|*/
 | 
        
           |  |  | 268 |     /*|                                LES ATTRIBUTS DE LA CLASSE                                   |*/
 | 
        
           |  |  | 269 |     /*|---------------------------------------------------------------------------------------------|*/
 | 
        
           |  |  | 270 |     var $id;
 | 
        
           |  |  | 271 |     var $_id_zone_geo_carte;
 | 
        
           |  |  | 272 |     var $nom;
 | 
        
           |  |  | 273 |     var $masque;
 | 
        
           |  |  | 274 |     var $fond;
 | 
        
           |  |  | 275 |     var $chemin;
 | 
        
           |  |  | 276 |     var $image;
 | 
        
           |  |  | 277 |     var $fils;
 | 
        
           |  |  | 278 |     var $url;
 | 
        
           |  |  | 279 |     var $_info_table_zg;
 | 
        
           |  |  | 280 |     var $filiation;
 | 
        
           |  |  | 281 |     var $image_x;
 | 
        
           |  |  | 282 |     var $image_y;
 | 
        
           |  |  | 283 |     var $historique_cartes;
 | 
        
           |  |  | 284 |     var $liste_zone_carte;
 | 
        
           |  |  | 285 |     var $historique;
 | 
        
           |  |  | 286 |     // La couleur dominante ( $maxiRVB ), la couleur la plus claire ($miniRVB) et la couleur
 | 
        
           |  |  | 287 |     // intermédiaire précédant le maximum ( $mediumRVB ) au cas ou il y aurait un trop grand
 | 
        
           |  |  | 288 |     //ecart entre les deux plus grandes valeurs.
 | 
        
           |  |  | 289 |     var $_zeroR;
 | 
        
           |  |  | 290 |     var $_zeroV;
 | 
        
           |  |  | 291 |     var $_zeroB;
 | 
        
           |  |  | 292 |     var $_miniR;
 | 
        
           |  |  | 293 |     var $_miniV;
 | 
        
           |  |  | 294 |     var $_miniB;
 | 
        
           |  |  | 295 |     var $_mediumR;
 | 
        
           |  |  | 296 |     var $_mediumV;
 | 
        
           |  |  | 297 |     var $_mediumB;
 | 
        
           |  |  | 298 |     var $_maxiR;
 | 
        
           |  |  | 299 |     var $_maxiV;
 | 
        
           |  |  | 300 |     var $_maxiB;
 | 
        
           |  |  | 301 |     //Le type de formule mathématique permettant de colorier la carte
 | 
        
           |  |  | 302 |     var $_formule_coloriage;
 | 
        
           |  |  | 303 |     //L'action à réaliser
 | 
        
           |  |  | 304 |     var $_action;
 | 
        
           |  |  | 305 |   | 
        
           |  |  | 306 |     /*|=============================================================================================|*/
 | 
        
           |  |  | 307 |     /*|                                LE CONSTRUCTEUR DE LA CLASSE                                 |*/
 | 
        
           |  |  | 308 |     /*|---------------------------------------------------------------------------------------------|*/
 | 
        
           |  |  | 309 |   | 
        
           |  |  | 310 |     function Carto_Carte ($id, $id_zone_geo_carte, $nom, $masque, $fond, $chemin, $info_table)
 | 
        
           |  |  | 311 |     {
 | 
        
           |  |  | 312 |         $this->id = $id;
 | 
        
           |  |  | 313 |         $this->_id_zone_geo_carte = $id_zone_geo_carte;
 | 
        
           |  |  | 314 |         $this->nom = $nom;
 | 
        
           |  |  | 315 |         $this->masque = $chemin.$masque;
 | 
        
           |  |  | 316 |         $this->fond = $chemin.$fond;
 | 
        
           |  |  | 317 |         $this->chemin = $chemin;
 | 
        
           |  |  | 318 |         $this->_info_table_zg = $info_table;
 | 
        
           |  |  | 319 |   | 
        
           | 1292 | neiluj | 320 |         $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'],
 | 
        
           |  |  | 321 |                                                             'carto_ACTION', 'CA_ID_Carte', 'CA_ID_Zone_geo', 'CA_Type_zone', 'CA_Action', 'CA_ID_Carte_destination');
 | 
        
           | 448 | ddelon | 322 |         $this->fils = array();
 | 
        
           |  |  | 323 |         $this->filiation = $id;
 | 
        
           |  |  | 324 |         $this->historique_cartes = '';
 | 
        
           |  |  | 325 |         $this->liste_zone_carte = '';
 | 
        
           |  |  | 326 |         $this->definirCouleurs();
 | 
        
           |  |  | 327 |         $this->definirFormuleColoriage();
 | 
        
           |  |  | 328 |     }
 | 
        
           |  |  | 329 |   | 
        
           |  |  | 330 |     /*|=============================================================================================|*/
 | 
        
           |  |  | 331 |     /*|                                LES METHODES PUBLIQUES                                       |*/
 | 
        
           |  |  | 332 |     /*|---------------------------------------------------------------------------------------------|*/
 | 
        
           |  |  | 333 |     function definirCouleurs (
 | 
        
           |  |  | 334 |         $couleur_zero_R = '255', $couleur_zero_V = '255', $couleur_zero_B = '255',
 | 
        
           |  |  | 335 |         $couleur_mini_R = '210', $couleur_mini_V = '230', $couleur_mini_B = '210',
 | 
        
           |  |  | 336 |         $couleur_medium_R  = '92', $couleur_medium_V = '181', $couleur_medium_B = '92',
 | 
        
           |  |  | 337 |         $couleur_maxi_R = '0', $couleur_maxi_V = '127', $couleur_maxi_B = '0')
 | 
        
           |  |  | 338 |     {
 | 
        
           |  |  | 339 |         $this->_zeroR = $couleur_zero_R;
 | 
        
           |  |  | 340 |         $this->_zeroV = $couleur_zero_V;
 | 
        
           |  |  | 341 |         $this->_zeroB = $couleur_zero_B;
 | 
        
           |  |  | 342 |         $this->_miniR = $couleur_mini_R;
 | 
        
           |  |  | 343 |         $this->_miniV = $couleur_mini_V;
 | 
        
           |  |  | 344 |         $this->_miniB = $couleur_mini_B;
 | 
        
           |  |  | 345 |         $this->_mediumR = $couleur_medium_R;
 | 
        
           |  |  | 346 |         $this->_mediumV = $couleur_medium_V;
 | 
        
           |  |  | 347 |         $this->_mediumB = $couleur_medium_B;
 | 
        
           |  |  | 348 |         $this->_maxiR = $couleur_maxi_R;
 | 
        
           |  |  | 349 |         $this->_maxiV = $couleur_maxi_V;
 | 
        
           |  |  | 350 |         $this->_maxiB = $couleur_maxi_B;
 | 
        
           |  |  | 351 |     }
 | 
        
           |  |  | 352 |   | 
        
           |  |  | 353 |     function definirFormuleColoriage ($nomFormuleColoriage = 'defaut')
 | 
        
           |  |  | 354 |     {
 | 
        
           |  |  | 355 |         $this->_formule_coloriage = $nomFormuleColoriage;
 | 
        
           |  |  | 356 |     }
 | 
        
           |  |  | 357 |   | 
        
           |  |  | 358 |     //********************************************************************************************************
 | 
        
           |  |  | 359 |     // La méthode donnerImageSimple ($objet) permet de récupérer une image non cliquable.
 | 
        
           |  |  | 360 |     //*********************************************************************************************************
 | 
        
           |  |  | 361 |   | 
        
           |  |  | 362 |     function donnerImageSimple ($objet)
 | 
        
           |  |  | 363 |     {
 | 
        
           |  |  | 364 |         $nom_fichier_image = $this->_donnerIdUnique();
 | 
        
           |  |  | 365 |         $objet->_lancerColoriage('', $nom_fichier_image);
 | 
        
           |  |  | 366 |         $res = '<img src="'.INS_CHEMIN_APPLI.'/bibliotheque/lib.carto.extractimg.php?fichier='.$nom_fichier_image.'" alt="image.png">';
 | 
        
           |  |  | 367 |         return $res;
 | 
        
           |  |  | 368 |     }
 | 
        
           |  |  | 369 |   | 
        
           |  |  | 370 |     //********************************************************************************************************
 | 
        
           |  |  | 371 |     // La methode ajouterFils() est essentielle. Elle permet d'ajouter toutes les sous cartes voulues.
 | 
        
           |  |  | 372 |     // Il faut lui indiquer, comme a la carte du niveau du dessus, son nom, le masque, le fond et info_table_couleur.
 | 
        
           |  |  | 373 |     // On a ainsi une inclusion d'objets les uns dans les autres.
 | 
        
           |  |  | 374 |     //*********************************************************************************************************
 | 
        
           |  |  | 375 |   | 
        
           |  |  | 376 |     function ajouterFils ($id, $id_zone_geo_carte, $nom, $masque, $fond, $info_table)
 | 
        
           |  |  | 377 |     {
 | 
        
           |  |  | 378 |         $this->fils[$id] = new Carto_Carte ($id, $id_zone_geo_carte, $nom, $masque, $fond, $this->chemin, $info_table);
 | 
        
           |  |  | 379 |         //Si on ajoute à la carte du monde comme fils celle de l'europe, alors
 | 
        
           |  |  | 380 |         //on aura comme valeur pour $this->filiation de la carte d'europe : monde*europe
 | 
        
           |  |  | 381 |         $this->fils[$id]->filiation = $this->filiation.'*'.$id;
 | 
        
           |  |  | 382 |         $this->fils[$id]->url = $this->url;
 | 
        
           |  |  | 383 |         //Si on ajoute à la carte du monde dont le nom est 'Monde' comme fils celle de l'europe,
 | 
        
           |  |  | 384 |         //dont le nom est 'Europe', alors on aura comme valeur pour $this->nom de la carte d'europe : Monde*Europe
 | 
        
           |  |  | 385 |         $this->fils[$id]->nom = $this->nom.'*'.$nom;
 | 
        
           |  |  | 386 |         $this->fils[$id]->historique_cartes = $this->historique_cartes;
 | 
        
           |  |  | 387 |     }
 | 
        
           |  |  | 388 |   | 
        
           |  |  | 389 |     //*********************************************************************************************************
 | 
        
           |  |  | 390 |     // La methode donnerFormulaireImage() est la methode principale de la carto. C'est elle qui gere ce qu'il y a faire en
 | 
        
           |  |  | 391 |     // fonction de l'action de l'utilisateur.
 | 
        
           |  |  | 392 |     // Trois cas se distinguent :
 | 
        
           |  |  | 393 |     //      -soit l'utilisateur a clique sur un point de la carte.
 | 
        
           |  |  | 394 |     //      -soit il a clique sur un des liens que l'on a afficher avec la méthode afficherHistoriqueCarte de l'objet Carto_HistoriqueCarte.
 | 
        
           |  |  | 395 |     //      -soit il a sélectionné une zone géographique dans la liste déroulante.
 | 
        
           |  |  | 396 |     // Elle renvoit a la fin:
 | 
        
           |  |  | 397 |     //      -soit une nouvelle carte coloriée
 | 
        
           |  |  | 398 |     //      -soit false.
 | 
        
           |  |  | 399 |     //**********************************************************************************************************
 | 
        
           |  |  | 400 |   | 
        
           |  |  | 401 |     function donnerFormulaireImage ()
 | 
        
           |  |  | 402 |     {
 | 
        
           | 1292 | neiluj | 403 |         global $GS_GLOBAL;
 | 
        
           | 448 | ddelon | 404 |         $res = '';
 | 
        
           |  |  | 405 |   | 
        
           |  |  | 406 |         // Nous commençons par tester tout d'abords si nous venons d'une autre carte. Pour cela nous vérifions,
 | 
        
           |  |  | 407 |         // si les attributs $this->image_x et $this->image_y de la classe Carte existe ou ne sont pas null.
 | 
        
           |  |  | 408 |         // La carte est une image appelée par une balise <input type="image"> et non par une balise classique <img>.
 | 
        
           |  |  | 409 |         // Ansi, lorsqu'on clique sur la carte le formulaire appelle (via l'url du formulaire) l'application
 | 
        
           |  |  | 410 |         // utilisant la classe carte et lui renvoit deux variables contenant les coordonnées x et y du clic.
 | 
        
           |  |  | 411 |         // L'application instancie à nouveau les objets cartes mais cette fois ci la carte affichée dépendra des
 | 
        
           |  |  | 412 |         // informations founit par une table de la base de données.
 | 
        
           |  |  | 413 |         // La classe carto_action instanciée dans l'application utilisant la classe carte fournit les noms
 | 
        
           |  |  | 414 |         // des champs et celui de la table contenant les valeur RVB de chaque zone des cartes, l'identifiant
 | 
        
           |  |  | 415 |         // de la zone et l'action à entreprendre pour la zone conssidérée.
 | 
        
           |  |  | 416 |         // La méthode imgform() utilise la méthode get_cartoAction() de l'objet Carto_Action pour connaître
 | 
        
           |  |  | 417 |         // en fonction des coordonnées du clic l'action à entreprendre.
 | 
        
           | 612 | florian | 418 |   | 
        
           | 448 | ddelon | 419 |         if (isset ($this->image_x) && ($this->image_x != '') && isset ($this->image_y) && ($this->image_y != '')) {
 | 
        
           |  |  | 420 |             // on regarde ici si l'on a pas un objet de plus bas niveau présent dans la variable de session carte
 | 
        
           |  |  | 421 |             //a charger a la place de l'objet de plus haut niveau
 | 
        
           |  |  | 422 |   | 
        
           |  |  | 423 |             $var_session_retour = $_SESSION['carte'] ;
 | 
        
           |  |  | 424 |   | 
        
           |  |  | 425 |             if ($var_session_retour) {
 | 
        
           |  |  | 426 |                 $image_x = $this->image_x;
 | 
        
           |  |  | 427 |                 $image_y = $this->image_y;
 | 
        
           |  |  | 428 |                 $liste_zone_carte = $this->liste_zone_carte;
 | 
        
           |  |  | 429 |                 // Nous chargons alors l'ojet approprié en descendant grâce a la généalogie
 | 
        
           |  |  | 430 |   | 
        
           |  |  | 431 |                 $historique_cartes = explode('*',$this->historique_cartes);
 | 
        
           |  |  | 432 |                 foreach ($historique_cartes as $key => $value) {
 | 
        
           | 1367 | alexandre_ | 433 |                     if ($key != 0) {
 | 
        
           |  |  | 434 |                         foreach (get_object_vars($this->fils[$value]) as $key => $value)
 | 
        
           |  |  | 435 |                                $this->$key = $value;
 | 
        
           | 448 | ddelon | 436 |                     }
 | 
        
           |  |  | 437 |                 }
 | 
        
           | 1367 | alexandre_ | 438 |   | 
        
           | 448 | ddelon | 439 |                 $this->image_x = $image_x;
 | 
        
           |  |  | 440 |                 $this->image_y = $image_y;
 | 
        
           |  |  | 441 |                 $this->liste_zone_carte = $liste_zone_carte;
 | 
        
           |  |  | 442 |                 unset ($_SESSION['carte']) ;
 | 
        
           |  |  | 443 |             }
 | 
        
           |  |  | 444 |   | 
        
           |  |  | 445 |             // on regarde qu'est-ce qu'on doit faire grace a la methode _consulterAction() de l'objet Carto_Action
 | 
        
           |  |  | 446 |   | 
        
           |  |  | 447 |             $action = $this->_action->_consulterActionImage($this->image_x, $this->image_y, $this->masque, $this->id);
 | 
        
           | 1292 | neiluj | 448 |   | 
        
           | 448 | ddelon | 449 |             // Nous distinguons 2 cas :
 | 
        
           |  |  | 450 |             //le cas ou il faut afficher une nouvelle carte ... :
 | 
        
           |  |  | 451 |             if ($action['type_action'] == 'Aller_a') {
 | 
        
           |  |  | 452 |   | 
        
           |  |  | 453 |                 $id_carte_destination = $action['id_carte_destination'] ;
 | 
        
           |  |  | 454 |                 $this->fils[$id_carte_destination]->liste_zone_carte = $this->liste_zone_carte;
 | 
        
           | 1298 | neiluj | 455 |                 if (INS_AFFICHE_ZONE_ROUGE) {
 | 
        
           |  |  | 456 |                 	$res .= ''.$this->fils[$id_carte_destination]->_donnerListeZoneCarte()."<br />\n";
 | 
        
           |  |  | 457 |                 }
 | 
        
           | 448 | ddelon | 458 |                 $res .= '<input type="image" src="';
 | 
        
           |  |  | 459 |                 $id_image = $this->_donnerIdUnique();
 | 
        
           |  |  | 460 |                 $this->fils[$id_carte_destination]->_lancerColoriage($id_image);
 | 
        
           |  |  | 461 |                 $obj = serialize($this->fils[$id_carte_destination]);
 | 
        
           |  |  | 462 |                 $_SESSION['carte'] = $obj ;
 | 
        
           |  |  | 463 |                 $this->historique = $this->fils[$id_carte_destination]->filiation;
 | 
        
           |  |  | 464 |                 $this->id = $this->fils[$id_carte_destination]->id;
 | 
        
           |  |  | 465 |                 $this->nom = $this->fils[$id_carte_destination]->nom;
 | 
        
           |  |  | 466 |             }
 | 
        
           |  |  | 467 |             //Dans le cas où l'on veut rappeler une nouvelle carte, il se peut que la nouvelle carte à rappeler
 | 
        
           |  |  | 468 |             //soit la même que précédement.
 | 
        
           |  |  | 469 |             //Cette possibilité peut se présenter quand on clique sur un zone blanche d'une carte (càd dans la mer)
 | 
        
           |  |  | 470 |             //Là, on recharge la carte précédente :
 | 
        
           |  |  | 471 |             elseif ($action['type_action'] == 'Recharger') {
 | 
        
           | 1298 | neiluj | 472 |                 if (INS_AFFICHE_ZONE_ROUGE) {
 | 
        
           |  |  | 473 |                 	$res .= ''.$this->_donnerListeZoneCarte()."<br />\n";
 | 
        
           |  |  | 474 |                 }
 | 
        
           | 448 | ddelon | 475 |                 $res .= '<input type="image" src="';
 | 
        
           |  |  | 476 |                 $id_image = $this->_donnerIdUnique();
 | 
        
           |  |  | 477 |                 $this->_lancerColoriage($id_image);
 | 
        
           |  |  | 478 |                 $obj = serialize($this);
 | 
        
           |  |  | 479 |                 $_SESSION['carte'] = $obj ;
 | 
        
           |  |  | 480 |                 $this->historique = $this->filiation;
 | 
        
           |  |  | 481 |             }
 | 
        
           |  |  | 482 |             // ... et le cas ou il faut lancer le dernier niveau
 | 
        
           |  |  | 483 |             else if ($action['type_action'] == 'Stop') {
 | 
        
           |  |  | 484 |                 unset ($_SESSION['carte']) ;
 | 
        
           |  |  | 485 |                 $this->historique = $this->filiation.'*'.$action['id_zone_geo'];
 | 
        
           |  |  | 486 |                 $obj = serialize($this);
 | 
        
           |  |  | 487 |                 $_SESSION['carte'] = $obj ;
 | 
        
           |  |  | 488 |                 return false;
 | 
        
           |  |  | 489 |             }
 | 
        
           |  |  | 490 |         }
 | 
        
           |  |  | 491 |         elseif ($this->liste_zone_carte != '') {
 | 
        
           |  |  | 492 |             $liste_zone_carte = $this->liste_zone_carte;
 | 
        
           |  |  | 493 |             $historique_cartes = explode('*',$this->historique_cartes);
 | 
        
           |  |  | 494 |             foreach ($historique_cartes as $key => $value) {
 | 
        
           | 1367 | alexandre_ | 495 |                     if ($key != 0) {
 | 
        
           |  |  | 496 |                         foreach (get_object_vars($this->fils[$value]) as $key => $value)
 | 
        
           |  |  | 497 |                                $this->$key = $value;
 | 
        
           |  |  | 498 |                     }
 | 
        
           | 448 | ddelon | 499 |                 }
 | 
        
           |  |  | 500 |             $this->liste_zone_carte = $liste_zone_carte;
 | 
        
           | 1298 | neiluj | 501 |             if (INS_AFFICHE_ZONE_ROUGE) {
 | 
        
           |  |  | 502 |             	$res .= ''.$this->_donnerListeZoneCarte($this->liste_zone_carte)."<br />\n";
 | 
        
           |  |  | 503 |             }
 | 
        
           | 448 | ddelon | 504 |             $res .= '<input type="image" src="';
 | 
        
           |  |  | 505 |             $id_image = $this->_donnerIdUnique();
 | 
        
           |  |  | 506 |             $this->_lancerColoriage($id_image, '', $this->liste_zone_carte);
 | 
        
           |  |  | 507 |             $this->historique = $this->historique_cartes;
 | 
        
           |  |  | 508 |             $obj = serialize($this);
 | 
        
           |  |  | 509 |             $_SESSION['carte'] = $obj ;
 | 
        
           |  |  | 510 |         }
 | 
        
           |  |  | 511 |         // On teste maintenant si l'on vient d'un lien. Si c'est le cas on a recu un argument
 | 
        
           |  |  | 512 |         // qui nous donne la "genealogie" de la carte que l'on doit afficher
 | 
        
           |  |  | 513 |         else if ($this->historique_cartes) {
 | 
        
           |  |  | 514 |             // Nous chargons alors l'ojet approprié en descendant grâce a la généalogie
 | 
        
           |  |  | 515 |             $historique_cartes = explode('*',$this->historique_cartes);
 | 
        
           |  |  | 516 |             foreach ($historique_cartes as $key => $value) {
 | 
        
           | 1367 | alexandre_ | 517 |                 if ($key != 0) {
 | 
        
           |  |  | 518 |                     foreach (get_object_vars($this->fils[$value]) as $key => $value)
 | 
        
           |  |  | 519 |                            $this->$key = $value;
 | 
        
           | 448 | ddelon | 520 |                 }
 | 
        
           |  |  | 521 |             }
 | 
        
           |  |  | 522 |             // une foit que l'on a charge le bon objet nous le colorions
 | 
        
           | 1298 | neiluj | 523 |             if (INS_AFFICHE_ZONE_ROUGE) {
 | 
        
           |  |  | 524 |             	$res .= ''.$this->_donnerListeZoneCarte()."<br />\n";
 | 
        
           |  |  | 525 |             }
 | 
        
           | 448 | ddelon | 526 |             $res .= '<input type="image" src="';
 | 
        
           |  |  | 527 |             $id_image = $this->_donnerIdUnique();
 | 
        
           |  |  | 528 |             $this->_lancerColoriage($id_image);
 | 
        
           |  |  | 529 |             $this->historique = $this->historique_cartes;
 | 
        
           |  |  | 530 |             $obj = serialize($this);
 | 
        
           |  |  | 531 |             $_SESSION['carte'] = $obj ;
 | 
        
           |  |  | 532 |         }
 | 
        
           |  |  | 533 |         // 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
 | 
        
           |  |  | 534 |         // et on affiche alors la premiere carte
 | 
        
           |  |  | 535 |         else {
 | 
        
           |  |  | 536 |             unset ($_SESSION['carte']) ;
 | 
        
           | 1298 | neiluj | 537 |             if (INS_AFFICHE_ZONE_ROUGE) {
 | 
        
           |  |  | 538 |             	$res .= ''.$this->_donnerListeZoneCarte()."<br />\n";
 | 
        
           |  |  | 539 |             }
 | 
        
           | 448 | ddelon | 540 |             $res .= '<input type="image" src="';
 | 
        
           |  |  | 541 |             $id_image = $this->_donnerIdUnique();
 | 
        
           |  |  | 542 |             $this->_lancerColoriage($id_image);
 | 
        
           |  |  | 543 |             $this->historique = $this->id;
 | 
        
           |  |  | 544 |             $obj = serialize($this);
 | 
        
           |  |  | 545 |   | 
        
           |  |  | 546 |             $_SESSION['carte'] = $obj ;
 | 
        
           |  |  | 547 |         }
 | 
        
           |  |  | 548 |         $res .= INS_CHEMIN_APPLI.'/bibliotheque/lib.carto.extractimg.php?fichier='.$this->id.$id_image.'"';
 | 
        
           |  |  | 549 |         $res .= ' name="image" onmouseover="javascript:show(\'d\');" onmouseout="javascript:show(\'d\');" />'."\n";
 | 
        
           | 612 | florian | 550 |         $res .= '<input type="hidden" name="historique_cartes" value="'.$this->historique.'" />'."\n";
 | 
        
           | 448 | ddelon | 551 |         return $res;
 | 
        
           |  |  | 552 |     }
 | 
        
           |  |  | 553 |   | 
        
           |  |  | 554 |     /*|=============================================================================================|*/
 | 
        
           |  |  | 555 |     /*|                                LES METHODES PRIVEES                                         |*/
 | 
        
           |  |  | 556 |     /*|---------------------------------------------------------------------------------------------|*/
 | 
        
           |  |  | 557 |     function _donnerListeZoneCarte($zone_par_defaut = '')
 | 
        
           |  |  | 558 |     {
 | 
        
           |  |  | 559 |         $retour = '';
 | 
        
           |  |  | 560 |   | 
        
           |  |  | 561 |         $requete =
 | 
        
           |  |  | 562 |                     'SELECT '.$this->_info_table_zg['nom_chp_id_zone'].', '.$this->_info_table_zg['nom_chp_nom_zone'].
 | 
        
           |  |  | 563 |                     ' FROM '.$this->_info_table_zg['nom_table_zone'];
 | 
        
           | 1292 | neiluj | 564 |         if ($this->_info_table_zg['nom_chp_zone_sup'] != ''){
 | 
        
           | 448 | ddelon | 565 |             if(ereg("[a-z]+",$this->_id_zone_geo_carte)){
 | 
        
           |  |  | 566 |                 $requete .=
 | 
        
           |  |  | 567 |                     ' WHERE '.$this->_info_table_zg['nom_chp_zone_sup'].' = "'.$this->_id_zone_geo_carte.'"';
 | 
        
           |  |  | 568 |             }
 | 
        
           |  |  | 569 |             else{
 | 
        
           |  |  | 570 |                 $requete .=
 | 
        
           |  |  | 571 |                     ' WHERE '.$this->_info_table_zg['nom_chp_zone_sup'].' = '.$this->_id_zone_geo_carte;
 | 
        
           |  |  | 572 |             }
 | 
        
           |  |  | 573 |         }
 | 
        
           |  |  | 574 |         $requete .=
 | 
        
           |  |  | 575 |                     ' ORDER BY '.$this->_info_table_zg['nom_chp_nom_zone'].' ASC';
 | 
        
           | 1298 | neiluj | 576 | 	$resultat = mysql_query ($requete) or die(BOG_afficherErreurSql(__FILE__, __LINE__,
 | 
        
           |  |  | 577 | 								'', $requete));
 | 
        
           | 1292 | neiluj | 578 |   | 
        
           | 448 | ddelon | 579 |         $i=0;
 | 
        
           |  |  | 580 |   | 
        
           | 612 | florian | 581 |         $retour = '<select name="liste_zone_carte" style="float:right;" onchange="javascript:this.form.submit();">'."\n";
 | 
        
           | 448 | ddelon | 582 |         $retour .= '<option value="">'.INS_VISUALISER_ZONE.'</option>'."\n";
 | 
        
           |  |  | 583 |   | 
        
           |  |  | 584 |         $nom_chp_nom_zone = $this->_info_table_zg['nom_chp_nom_zone'];
 | 
        
           |  |  | 585 |         $nom_chp_id_zone = $this->_info_table_zg['nom_chp_id_zone'];
 | 
        
           |  |  | 586 |   | 
        
           | 1292 | neiluj | 587 |         while ($ligne = mysql_fetch_object ($resultat)) {
 | 
        
           | 448 | ddelon | 588 |             if ($zone_par_defaut == $ligne->$nom_chp_id_zone){
 | 
        
           |  |  | 589 |                 $retour .= '<option value="'.$ligne->$nom_chp_id_zone.'" selected="selected">'.$ligne->$nom_chp_nom_zone.'</option>'."\n";
 | 
        
           |  |  | 590 |             }
 | 
        
           |  |  | 591 |             else {
 | 
        
           |  |  | 592 |                 $retour .= '<option value="'.$ligne->$nom_chp_id_zone.'">'.$ligne->$nom_chp_nom_zone.'</option>'."\n";
 | 
        
           |  |  | 593 |             }
 | 
        
           |  |  | 594 |             $i++;
 | 
        
           |  |  | 595 |         }
 | 
        
           |  |  | 596 |   | 
        
           |  |  | 597 |         $retour .= '</select>'."\n";
 | 
        
           |  |  | 598 |   | 
        
           |  |  | 599 |         return $retour;
 | 
        
           |  |  | 600 |     }
 | 
        
           |  |  | 601 |     //==============================================================================
 | 
        
           |  |  | 602 |     // METHODE _lancerColoriage()
 | 
        
           |  |  | 603 |     //
 | 
        
           |  |  | 604 |     // Elle lance le coloriage de l'image.
 | 
        
           |  |  | 605 |     // Elle est lancée toute seule par la méthode donnerFormulaireImage().
 | 
        
           |  |  | 606 |     // Les informations qui lui sont necessaires sont déjà données à l'objet carte (fond, info_table_couleur).
 | 
        
           |  |  | 607 |     //==============================================================================
 | 
        
           |  |  | 608 |   | 
        
           |  |  | 609 |     function _lancerColoriage ($id_image = '_00', $nom_fichier = '', $id_zone_a_reperer = '')
 | 
        
           |  |  | 610 |     {
 | 
        
           | 642 | alexandre_ | 611 |   | 
        
           | 448 | ddelon | 612 |         $this->image = imagecreatefrompng($this->fond);
 | 
        
           | 642 | alexandre_ | 613 |   | 
        
           | 448 | ddelon | 614 |         $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'],
 | 
        
           |  |  | 615 |                                         $this->_info_table_zg['nom_chp_vert'], $this->_info_table_zg['nom_chp_bleu'], $this->_info_table_zg['nom_chp_zone_sup'],
 | 
        
           |  |  | 616 |                                         $this->_info_table_zg['tableau_valeurs_zone'], $id_zone_a_reperer) ;
 | 
        
           |  |  | 617 |         if ($nom_fichier != '') {
 | 
        
           |  |  | 618 |             imagepng(&$this->image, INS_CHEMIN_APPLI.'bibliotheque/tmp/carto/'.$nom_fichier.'.png');
 | 
        
           | 642 | alexandre_ | 619 |   | 
        
           | 448 | ddelon | 620 |             //$this->image = imagepng(&$this->image);
 | 
        
           |  |  | 621 |         }
 | 
        
           |  |  | 622 |         else {
 | 
        
           |  |  | 623 |             imagepng(&$this->image, INS_CHEMIN_APPLI.'bibliotheque/tmp/carto/'.$this->id.$id_image.'.png');
 | 
        
           |  |  | 624 |             //imagepng(&$this->image);
 | 
        
           |  |  | 625 |         }
 | 
        
           |  |  | 626 |     }
 | 
        
           |  |  | 627 |   | 
        
           |  |  | 628 |     //==============================================================================
 | 
        
           |  |  | 629 |     // METHODE _colorierImage()
 | 
        
           |  |  | 630 |     //
 | 
        
           |  |  | 631 |     // Elle réalise le coloriage de l'image.
 | 
        
           |  |  | 632 |     //==============================================================================
 | 
        
           |  |  | 633 |   | 
        
           |  |  | 634 |     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)
 | 
        
           |  |  | 635 |     {
 | 
        
           |  |  | 636 |         //----------------------------------------------------------------------------
 | 
        
           |  |  | 637 |         // Cherche les valeurs RVB de la couleur de chaque zone géographique et les rentre dans
 | 
        
           |  |  | 638 |         //un tableau d'objets Carto_InformationCouleur (voir la description de la classe ci-dessus.
 | 
        
           |  |  | 639 |   | 
        
           |  |  | 640 |         $requete_01 =
 | 
        
           |  |  | 641 |                     'SELECT *'.
 | 
        
           |  |  | 642 |                     ' FROM '.$table_zone_geo;
 | 
        
           | 1292 | neiluj | 643 |         if ($chp_zone_sup != ''){
 | 
        
           | 448 | ddelon | 644 |             if(ereg("[a-z]+",$this->_id_zone_geo_carte)){
 | 
        
           |  |  | 645 |                 $requete_01 .=
 | 
        
           |  |  | 646 |                     ' WHERE '.$chp_zone_sup.' = "'.$this->_id_zone_geo_carte.'"';
 | 
        
           |  |  | 647 |             }
 | 
        
           |  |  | 648 |             else{
 | 
        
           |  |  | 649 |                 $requete_01 .=
 | 
        
           |  |  | 650 |                     ' WHERE '.$chp_zone_sup.' = '.$this->_id_zone_geo_carte;
 | 
        
           |  |  | 651 |             }
 | 
        
           |  |  | 652 |         }
 | 
        
           |  |  | 653 |         $resultat_01 = mysql_query ($requete_01) or die('
 | 
        
           |  |  | 654 |             <H2 style="text-align: center; font-weight: bold; font-size: 26px;">Erreur de requête</H2>'.
 | 
        
           |  |  | 655 |             '<b>Requete : </b>'.$requete_01.
 | 
        
           |  |  | 656 |             '<br/><br/><b>Erreur : </b>'.mysql_error());
 | 
        
           |  |  | 657 |         $i=0;
 | 
        
           |  |  | 658 |         $attachments = array();
 | 
        
           |  |  | 659 |         while ($ligne_01 = mysql_fetch_object ($resultat_01)) {
 | 
        
           |  |  | 660 |             $attachments[$i] = new Carto_InformationCouleur ($ligne_01->$chp_id_zone_couleur, $ligne_01->$chp_rouge, $ligne_01->$chp_vert, $ligne_01->$chp_bleu);
 | 
        
           |  |  | 661 |             $i++;
 | 
        
           |  |  | 662 |         }
 | 
        
           |  |  | 663 |   | 
        
           |  |  | 664 |         //Nous libérons toute la mémoire associée à l'identifiant de résultat.
 | 
        
           |  |  | 665 |         mysql_free_result ($resultat_01);
 | 
        
           |  |  | 666 |   | 
        
           |  |  | 667 |         //----------------------------------------------------------------------------
 | 
        
           |  |  | 668 |         // On realide l'association entre l'index des couleurs et la zone de meme couleur
 | 
        
           |  |  | 669 |   | 
        
           |  |  | 670 |         $attachments = $this->_construireAssociationIndexZone ($image_fond, $attachments);
 | 
        
           |  |  | 671 |   | 
        
           |  |  | 672 |         //----------------------------------------------------------------------------
 | 
        
           |  |  | 673 |         //Dans l'application qui utilise la classe carte, nous avons instancié un tableau
 | 
        
           |  |  | 674 |         //associatif qui contient en clé l'identifiant d'une zone géographique et en valeur
 | 
        
           |  |  | 675 |         //un nombre (qui peut-être un nombre d'inscrit, d'institutions, de taxons...).
 | 
        
           |  |  | 676 |         // Nous récupérons ci-dessous la valeur minimum autre que 0 présente dans ce tableau
 | 
        
           |  |  | 677 |         //puis une valeur conscidérée comme maximum
 | 
        
           |  |  | 678 |   | 
        
           |  |  | 679 |         if (!is_array($tableau_valeurs_zone)) {
 | 
        
           |  |  | 680 |             $mini = 0;
 | 
        
           |  |  | 681 |             $medium = 0;
 | 
        
           |  |  | 682 |             $maxi = 0;
 | 
        
           |  |  | 683 |             $nbre_valeurs = 0;
 | 
        
           |  |  | 684 |         }
 | 
        
           |  |  | 685 |         else {
 | 
        
           |  |  | 686 |             if (count($tableau_valeurs_zone) == 0) {
 | 
        
           |  |  | 687 |                 $mini=0;
 | 
        
           |  |  | 688 |                 $medium = 0;
 | 
        
           |  |  | 689 |                 $maxi=0;
 | 
        
           |  |  | 690 |             }
 | 
        
           |  |  | 691 |             else {
 | 
        
           |  |  | 692 |                 $i=0;
 | 
        
           |  |  | 693 |                 foreach ($tableau_valeurs_zone as $cle => $valeur) {
 | 
        
           |  |  | 694 |                     //Nous recherchons le minimum, le maximum et le la valeur médium juste au dessous du maximum.
 | 
        
           |  |  | 695 |                     if ($valeur != 0) {
 | 
        
           |  |  | 696 |                         $tablo_valeurs[$i] = $valeur;
 | 
        
           |  |  | 697 |                         $i++;
 | 
        
           |  |  | 698 |                     }
 | 
        
           |  |  | 699 |                 }
 | 
        
           |  |  | 700 |                 //Nombre d'entrées dans le tableau de valeurs non nulles :
 | 
        
           |  |  | 701 |                 $nbre_valeurs = count($tablo_valeurs);
 | 
        
           |  |  | 702 |                 $somme_valeurs = array_sum($tablo_valeurs);
 | 
        
           |  |  | 703 |                 $tablo_frequences = array_count_values($tablo_valeurs);
 | 
        
           |  |  | 704 |                 $nbre_frequences = count($tablo_frequences);
 | 
        
           |  |  | 705 |                 if ($nbre_valeurs > 0){
 | 
        
           |  |  | 706 |                     //Nous trions le tableau dans l'ordre croissant :
 | 
        
           |  |  | 707 |                     sort($tablo_valeurs);
 | 
        
           |  |  | 708 |                     //Nous récupérons la valeur la plus petite :
 | 
        
           |  |  | 709 |                     $mini = $tablo_valeurs[0];
 | 
        
           |  |  | 710 |                     $maxi = $tablo_valeurs[$nbre_valeurs-1];
 | 
        
           |  |  | 711 |                     isset($tablo_valeurs[$nbre_valeurs-2]) ? $medium = $tablo_valeurs[$nbre_valeurs-2] : $medium = 0;
 | 
        
           |  |  | 712 |                     $moyenne = $somme_valeurs/$nbre_valeurs;
 | 
        
           |  |  | 713 |                     $ecart_au_carre_moyen = 0;
 | 
        
           |  |  | 714 |                     for ($i = 0; $i < $nbre_valeurs; $i++) {
 | 
        
           |  |  | 715 |                         $ecart_au_carre_moyen += pow(($tablo_valeurs[$i] - $moyenne), 2);
 | 
        
           |  |  | 716 |                     }
 | 
        
           |  |  | 717 |                     $variance = $ecart_au_carre_moyen/$nbre_valeurs;
 | 
        
           |  |  | 718 |                     $ecart_type = sqrt($variance);
 | 
        
           |  |  | 719 |   | 
        
           |  |  | 720 |                     $moyenne = round($moyenne, 0);
 | 
        
           |  |  | 721 |                     $variance = round($variance, 0);
 | 
        
           |  |  | 722 |                     $ecart_type = round($ecart_type, 0);
 | 
        
           |  |  | 723 |   | 
        
           |  |  | 724 |                     /*echo 'Nombre de valeurs : '.$nbre_valeurs.'<br>';
 | 
        
           |  |  | 725 |                     echo 'Nombre de frequences : '.$nbre_frequences.'<br>';
 | 
        
           |  |  | 726 |                     echo 'Moyenne : '.$moyenne.'<br>';
 | 
        
           |  |  | 727 |                     echo 'Variance : '.$variance.'<br>';
 | 
        
           |  |  | 728 |                     echo 'Ecart-type : '.$ecart_type.'<br>';
 | 
        
           |  |  | 729 |                     echo 'Formule de coloriage : '.$this->_formule_coloriage.'<br>';
 | 
        
           |  |  | 730 |                     echo "mini : $mini medium : $medium maxi : $maxi<br/>";
 | 
        
           |  |  | 731 |             */
 | 
        
           |  |  | 732 |                 }
 | 
        
           |  |  | 733 |             }
 | 
        
           |  |  | 734 |         }
 | 
        
           |  |  | 735 |   | 
        
           |  |  | 736 |         //----------------------------------------------------------------------------
 | 
        
           |  |  | 737 |         // Nous réalisons le coloriage de toutes les zones :
 | 
        
           |  |  | 738 |   | 
        
           |  |  | 739 |         $requete_03 =
 | 
        
           |  |  | 740 |             "SELECT $chp_id_zone_couleur ".
 | 
        
           |  |  | 741 |             "FROM $table_zone_geo";
 | 
        
           |  |  | 742 |   | 
        
           |  |  | 743 |         $resultat_03 = mysql_query ($requete_03) or die('
 | 
        
           |  |  | 744 |             <H2 style="text-align: center; font-weight: bold; font-size: 26px;">Erreur de requête</H2>'.
 | 
        
           |  |  | 745 |             '<b>Requete : </b>'.$requete_03.
 | 
        
           |  |  | 746 |             '<br/><br/><b>Erreur : </b>'.mysql_error());
 | 
        
           |  |  | 747 |   | 
        
           |  |  | 748 |         while ($ligne_03 = mysql_fetch_object ($resultat_03)) {
 | 
        
           |  |  | 749 |             $id_zone_geo = $ligne_03->$chp_id_zone_couleur;
 | 
        
           |  |  | 750 |             if (!isset ($tableau_valeurs_zone[$id_zone_geo])) {
 | 
        
           |  |  | 751 |                 $tableau_valeurs_zone[$id_zone_geo] = 0;
 | 
        
           |  |  | 752 |             }
 | 
        
           |  |  | 753 |             //Nous cherchons la couleur a afficher pour chaque zone.
 | 
        
           |  |  | 754 |             if ($tableau_valeurs_zone[$id_zone_geo] != 0) {
 | 
        
           |  |  | 755 |                 //echo 'ZONE:'.$id_zone_geo."<br/>";
 | 
        
           |  |  | 756 |                 //echo $tableau_valeurs_zone[$id_zone_geo]."<br/>";
 | 
        
           |  |  | 757 |                 $theColor = $this->_donnerCouleur(
 | 
        
           |  |  | 758 |                                         $this->_miniR, $this->_miniV, $this->_miniB,
 | 
        
           |  |  | 759 |                                         $this->_mediumR , $this->_mediumV , $this->_mediumB ,
 | 
        
           |  |  | 760 |                                         $this->_maxiR , $this->_maxiV , $this->_maxiB ,
 | 
        
           |  |  | 761 |                                         $mini, $medium, $maxi, $nbre_valeurs, $ecart_type, $moyenne, $tablo_valeurs,
 | 
        
           |  |  | 762 |                                         $tablo_frequences, $nbre_frequences,
 | 
        
           |  |  | 763 |                                         $tableau_valeurs_zone[$id_zone_geo],
 | 
        
           |  |  | 764 |                                         $this->_formule_coloriage);
 | 
        
           |  |  | 765 |                 //echo $theColor['R'].'<br>';
 | 
        
           |  |  | 766 |                 //echo $theColor['V'].'<br>';
 | 
        
           |  |  | 767 |                 //echo $theColor['B'].'<br>';
 | 
        
           |  |  | 768 |             }
 | 
        
           |  |  | 769 |             else {
 | 
        
           |  |  | 770 |                 $theColor['R'] = $this->_zeroR;
 | 
        
           |  |  | 771 |                 $theColor['V'] = $this->_zeroV;
 | 
        
           |  |  | 772 |                 $theColor['B'] = $this->_zeroB;
 | 
        
           |  |  | 773 |             }
 | 
        
           |  |  | 774 |             //Nous réalisons le coloriage de toutes les zones de l'image avec la couleur obtenue.
 | 
        
           |  |  | 775 |             $this->_remplacerCouleur($image_fond, $attachments, $id_zone_geo,  $theColor['R'], $theColor['V'], $theColor['B'], $id_zone_a_reperer);
 | 
        
           |  |  | 776 |         }
 | 
        
           |  |  | 777 |         //Nous libérons toute la mémoire associée à l'identifiant de résultat de la requête.
 | 
        
           |  |  | 778 |         mysql_free_result ($resultat_03);
 | 
        
           |  |  | 779 |     }
 | 
        
           |  |  | 780 |   | 
        
           |  |  | 781 |     //==============================================================================
 | 
        
           |  |  | 782 |     // METHODE  _construireAssociationIndexZone ($image, &$att)
 | 
        
           |  |  | 783 |     //
 | 
        
           |  |  | 784 |     // Le tableau $att est passé par référence. La méthode modifie donc directement
 | 
        
           |  |  | 785 |     // le tableau et ne renvoit donc rien.
 | 
        
           |  |  | 786 |     // Attache dans un tableau $att, contenant sous forme d'objet (Carto_ColorInfo)
 | 
        
           |  |  | 787 |     // les valeurs RVB des zones d'une image, la valeur de l'index correspondant
 | 
        
           |  |  | 788 |     // à la couleur de la zone.
 | 
        
           |  |  | 789 |     // Note : les images en question sont constituées de zones distincte possédant
 | 
        
           |  |  | 790 |     // chacune une couleur unique et unie.
 | 
        
           |  |  | 791 |     //==============================================================================
 | 
        
           |  |  | 792 |   | 
        
           |  |  | 793 |     function _construireAssociationIndexZone(&$image_fond, &$att)
 | 
        
           |  |  | 794 |     {
 | 
        
           |  |  | 795 |         // Nous récupérons le nombre de couleur différentes contenues dans l'image.
 | 
        
           |  |  | 796 |         //echo $this->fond.'<BR>';
 | 
        
           |  |  | 797 |         $image_fond = imagecreatefrompng($this->fond);
 | 
        
           |  |  | 798 |         $taille_palette = imagecolorstotal ($image_fond);
 | 
        
           | 1298 | neiluj | 799 |         if (!$image_fond) echo 'erreur fond : '.$this->fond;
 | 
        
           | 448 | ddelon | 800 |         // Pour chaque couleur contenue dans l'image, nous cherchons l'objet correspondant
 | 
        
           |  |  | 801 |         // dans le tableau $att, qui contient des informations sur chaque zone de l'image,
 | 
        
           |  |  | 802 |         // et nous attribuons à l'objet la valeur de l'index de sa couleur dans l'image.
 | 
        
           |  |  | 803 |   | 
        
           |  |  | 804 |         for ($i = 0; $i < $taille_palette; $i++) {
 | 
        
           |  |  | 805 |             $valeurs_RVB = array();
 | 
        
           |  |  | 806 |             $valeurs_RVB = imagecolorsforindex ($image_fond, $i);
 | 
        
           | 642 | alexandre_ | 807 |   | 
        
           | 448 | ddelon | 808 |             for ($j = 0; $j < count ($att); $j++) {
 | 
        
           |  |  | 809 |   | 
        
           |  |  | 810 |                 if (($att[$j]->rouge == $valeurs_RVB['red']) && ($att[$j]->vert == $valeurs_RVB['green']) && ($att[$j]->bleu == $valeurs_RVB['blue'])) {
 | 
        
           |  |  | 811 |                     $att[$j]->index = $i;
 | 
        
           |  |  | 812 |                     //echo 'ICI'.$att[$j]->id_zone.$att[$j]->index.'<br>';
 | 
        
           |  |  | 813 |                     break;
 | 
        
           |  |  | 814 |                 }
 | 
        
           |  |  | 815 |             }
 | 
        
           |  |  | 816 |         }
 | 
        
           |  |  | 817 |   | 
        
           |  |  | 818 |         return $att;
 | 
        
           |  |  | 819 |     }//Fin méthode _construireAssociationIndexZone()
 | 
        
           |  |  | 820 |   | 
        
           |  |  | 821 |     //==============================================================================
 | 
        
           |  |  | 822 |     // METHODE _donnerCouleur()
 | 
        
           |  |  | 823 |     //------------------------------------------------------------------------------
 | 
        
           |  |  | 824 |     // Renvoie pour une valeur donnee la couleur a mettre
 | 
        
           |  |  | 825 |     //------------------------------------------------------------------------------
 | 
        
           |  |  | 826 |     // ENTREE
 | 
        
           |  |  | 827 |     // $miniR : valeur rouge du minimum
 | 
        
           |  |  | 828 |     // $miniV : valeur vert du minimum
 | 
        
           |  |  | 829 |     // $miniB : valeur blue du minimum
 | 
        
           |  |  | 830 |     // $maxiR : valeur rouge du maximum
 | 
        
           |  |  | 831 |     // $maxiV : valeur vert du maximum
 | 
        
           |  |  | 832 |     // $maxiB : valeur bleu du maximum
 | 
        
           |  |  | 833 |     // $mediumR : valeur rouge du deuxieme maximum
 | 
        
           |  |  | 834 |     // $mediumV : valeur vert du deuxieme maximum
 | 
        
           |  |  | 835 |     // $mediumB : valeur bleu du deuxieme maximum
 | 
        
           |  |  | 836 |     // $mini  : valeur mini sur l'echelle
 | 
        
           |  |  | 837 |     // $medium  : valeur juste au dessous du maximum sur l'echelle
 | 
        
           |  |  | 838 |     // $maxi  : valeur maxi sur l'echelle
 | 
        
           |  |  | 839 |     // $val   : valeur dont on cherche la couleur
 | 
        
           |  |  | 840 |     //------------------------------------------------------------------------------
 | 
        
           |  |  | 841 |     // SORTIE
 | 
        
           |  |  | 842 |     // $couleur array donne la couleur pour la valeur demande ($val)
 | 
        
           |  |  | 843 |     //------------------------------------------------------------------------------
 | 
        
           |  |  | 844 |   | 
        
           |  |  | 845 |     function _donnerCouleur($miniR, $miniV, $miniB, $mediumR, $mediumV, $mediumB, $maxiR,
 | 
        
           |  |  | 846 |                             $maxiV, $maxiB, $mini, $medium, $maxi, $nbre_valeurs, $ecart_type, $moyenne, $tablo_valeurs, $tablo_frequences, $nbre_frequences, $val, $formuleColoriage)
 | 
        
           |  |  | 847 |     {
 | 
        
           |  |  | 848 |         if ($formuleColoriage == 'defaut'){
 | 
        
           |  |  | 849 |             if ($val == $maxi) {
 | 
        
           |  |  | 850 |                 $couleur['R'] = $maxiR;
 | 
        
           |  |  | 851 |                 $couleur['V'] = $maxiV;
 | 
        
           |  |  | 852 |                 $couleur['B'] = $maxiB;
 | 
        
           |  |  | 853 |             }
 | 
        
           |  |  | 854 |             if ($val == $mini && $val != $maxi) {
 | 
        
           |  |  | 855 |                 $couleur['R'] = $miniR;
 | 
        
           |  |  | 856 |                 $couleur['V'] = $miniV;
 | 
        
           |  |  | 857 |                 $couleur['B'] = $miniB;
 | 
        
           |  |  | 858 |             }
 | 
        
           |  |  | 859 |             if ($maxi/10 > $medium && $maxi/40 < $medium) {
 | 
        
           |  |  | 860 |                 $diff = $medium - $mini;
 | 
        
           |  |  | 861 |                 if ($diff > 0 && $val != $medium && $val != $maxi) {
 | 
        
           |  |  | 862 |                     $diffR   = $mediumR - $miniR;
 | 
        
           |  |  | 863 |                     $diffV   = $mediumV - $miniV;
 | 
        
           |  |  | 864 |                     $diffB   = $mediumB - $miniB;
 | 
        
           |  |  | 865 |                     $variationR =  round ( ($diffR/$diff ), 0 );
 | 
        
           |  |  | 866 |                     $variationV =  round ( ($diffV/$diff ), 0 );
 | 
        
           |  |  | 867 |                     $variationB =  round ( ($diffB/$diff ), 0 );
 | 
        
           |  |  | 868 |                     $couleur['R'] = couleur_bornerNbre(($miniR + ($val * $variationR)), 0, 255);
 | 
        
           |  |  | 869 |                     $couleur['V'] = couleur_bornerNbre(($miniV + ($val * $variationV)), 0, 255);
 | 
        
           |  |  | 870 |                     $couleur['B'] = couleur_bornerNbre(($miniB + ($val * $variationB)), 0, 255);
 | 
        
           |  |  | 871 |                 }
 | 
        
           |  |  | 872 |                 else if ($val == $medium) {
 | 
        
           |  |  | 873 |                     $couleur['R'] = $mediumR;
 | 
        
           |  |  | 874 |                     $couleur['V'] = $mediumV;
 | 
        
           |  |  | 875 |                     $couleur['B'] = $mediumB;
 | 
        
           |  |  | 876 |                 }
 | 
        
           |  |  | 877 |             }
 | 
        
           |  |  | 878 |             else {
 | 
        
           |  |  | 879 |                 $diff = $maxi - $mini;
 | 
        
           |  |  | 880 |                 if ($diff > 0 && $val != $maxi && $val != $mini) {
 | 
        
           |  |  | 881 |                     $diffR = $maxiR - $miniR;
 | 
        
           |  |  | 882 |                     $diffV = $maxiV - $miniV;
 | 
        
           |  |  | 883 |                     $diffB = $maxiB - $miniB;
 | 
        
           |  |  | 884 |                     $variationR =  round ( ($diffR/$diff ), 0 );
 | 
        
           |  |  | 885 |                     $variationV =  round ( ($diffV/$diff ), 0 );
 | 
        
           |  |  | 886 |                     $variationB =  round ( ($diffB/$diff ), 0 );
 | 
        
           |  |  | 887 |                     $couleur['R'] = couleur_bornerNbre(($miniR + ($val * $variationR)), 0, 255);
 | 
        
           |  |  | 888 |                     $couleur['V'] = couleur_bornerNbre(($miniV + ($val * $variationV)), 0, 255);
 | 
        
           |  |  | 889 |                     $couleur['B'] = couleur_bornerNbre(($miniB + ($val * $variationB)), 0, 255);
 | 
        
           |  |  | 890 |                 }
 | 
        
           |  |  | 891 |                 else if ($diff == 0){
 | 
        
           |  |  | 892 |                     $couleur['R'] = $mediumR;
 | 
        
           |  |  | 893 |                     $couleur['V'] = $mediumV;
 | 
        
           |  |  | 894 |                     $couleur['B'] = $mediumB;
 | 
        
           |  |  | 895 |                 }
 | 
        
           |  |  | 896 |             }
 | 
        
           |  |  | 897 |         }
 | 
        
           |  |  | 898 |         elseif ($formuleColoriage == 'ecart_type') {
 | 
        
           |  |  | 899 |             if ($ecart_type == 0) {
 | 
        
           |  |  | 900 |                     $couleur['R'] = $maxiR;
 | 
        
           |  |  | 901 |                     $couleur['V'] = $maxiV;
 | 
        
           |  |  | 902 |                     $couleur['B'] = $maxiB;
 | 
        
           |  |  | 903 |             }
 | 
        
           |  |  | 904 |             elseif ($ecart_type >= 1 && $ecart_type <= 15) {
 | 
        
           |  |  | 905 |                 if ($val == $mini) {
 | 
        
           |  |  | 906 |                     $couleur['R'] = $miniR;
 | 
        
           |  |  | 907 |                     $couleur['V'] = $miniV;
 | 
        
           |  |  | 908 |                     $couleur['B'] = $miniB;
 | 
        
           |  |  | 909 |                 }
 | 
        
           |  |  | 910 |                 elseif ($val == $medium) {
 | 
        
           |  |  | 911 |                     $couleur['R'] = $mediumR;
 | 
        
           |  |  | 912 |                     $couleur['V'] = $mediumV;
 | 
        
           |  |  | 913 |                     $couleur['B'] = $mediumB;
 | 
        
           |  |  | 914 |                 }
 | 
        
           |  |  | 915 |                 elseif ($val == $maxi) {
 | 
        
           |  |  | 916 |                     $couleur['R'] = $maxiR;
 | 
        
           |  |  | 917 |                     $couleur['V'] = $maxiV;
 | 
        
           |  |  | 918 |                     $couleur['B'] = $maxiB;
 | 
        
           |  |  | 919 |                 }
 | 
        
           |  |  | 920 |                 else {
 | 
        
           |  |  | 921 |                     $dif_valeur_maxi_mini = $maxi - $mini;
 | 
        
           |  |  | 922 |                     $diffR = $maxiR - $miniR;
 | 
        
           |  |  | 923 |                     $diffV = $maxiV - $miniV;
 | 
        
           |  |  | 924 |                     $diffB = $maxiB - $miniB;
 | 
        
           |  |  | 925 |                     $variationR =  round ( ($diffR/$dif_valeur_maxi_mini ), 0 );
 | 
        
           |  |  | 926 |                     $variationV =  round ( ($diffV/$dif_valeur_maxi_mini ), 0 );
 | 
        
           |  |  | 927 |                     $variationB =  round ( ($diffB/$dif_valeur_maxi_mini ), 0 );
 | 
        
           |  |  | 928 |                     $couleur['R']=$miniR + ($val * $variationR);
 | 
        
           |  |  | 929 |                     $couleur['V']=$miniV + ($val * $variationV);
 | 
        
           |  |  | 930 |                     $couleur['B']=$miniB + ($val * $variationB);
 | 
        
           |  |  | 931 |                 }
 | 
        
           |  |  | 932 |             }
 | 
        
           |  |  | 933 |             elseif ($ecart_type > 15) {
 | 
        
           |  |  | 934 |                 //Le tableau est trié de la plus petite à la plus grande clé.
 | 
        
           |  |  | 935 |                 ksort($tablo_frequences);
 | 
        
           |  |  | 936 |                 $i = 0;
 | 
        
           |  |  | 937 |                 foreach ($tablo_frequences as $cle => $valeur){
 | 
        
           |  |  | 938 |                     //Nous cherchons la correspondance entre la valeur et la clé.
 | 
        
           |  |  | 939 |                     if ($cle == $val) {
 | 
        
           |  |  | 940 |                         //Pour faire le Rouge, Vert, Bleu
 | 
        
           |  |  | 941 |                         $couleur['R'] = $miniR + ($i/$nbre_frequences) * ($maxiR - $miniR);
 | 
        
           |  |  | 942 |                         $couleur['V'] = $miniV + ($i/$nbre_frequences) * ($maxiV - $miniV);
 | 
        
           |  |  | 943 |                         $couleur['B'] = $miniB + ($i/$nbre_frequences) * ($maxiB - $miniB);
 | 
        
           |  |  | 944 |                     }
 | 
        
           |  |  | 945 |                     $i++;
 | 
        
           |  |  | 946 |                 }
 | 
        
           |  |  | 947 |             }
 | 
        
           |  |  | 948 |         }
 | 
        
           |  |  | 949 |   | 
        
           |  |  | 950 |         return $couleur;
 | 
        
           |  |  | 951 |   | 
        
           |  |  | 952 |     }//Fin méthode _donnerCouleur()
 | 
        
           |  |  | 953 |   | 
        
           |  |  | 954 |     //==============================================================================
 | 
        
           |  |  | 955 |     // METHODE _remplacerCouleur ($img, $att, $id_zone_geo, $r, $g, $b)
 | 
        
           |  |  | 956 |     //
 | 
        
           |  |  | 957 |     // $img is the image, $att an array of carto_colorinfo objects, $id_zone_geo the name
 | 
        
           |  |  | 958 |     // of an object of $att, ($r, $g, $b) the new color.
 | 
        
           |  |  | 959 |     //
 | 
        
           |  |  | 960 |     // In the palette of $img, the color matching with $id_zone_geo is modified.
 | 
        
           |  |  | 961 |     //==============================================================================
 | 
        
           |  |  | 962 |   | 
        
           |  |  | 963 |     function _remplacerCouleur(&$image, &$atta, $id_zone_geo, $rouge, $vert, $bleu, $id_zone_a_reperer)
 | 
        
           |  |  | 964 |     {
 | 
        
           |  |  | 965 |         // Nous recherchons la valeur de l'index.
 | 
        
           |  |  | 966 |   | 
        
           |  |  | 967 |         $index = -1;
 | 
        
           |  |  | 968 |         for ($i = 0; $i < count ($atta); $i++) {
 | 
        
           |  |  | 969 |             if ($atta[$i]->id_zone == $id_zone_geo) {
 | 
        
           |  |  | 970 |                 $index = $atta[$i]->index;
 | 
        
           |  |  | 971 |                 //Dans le cas où nous voulons repérer une zone sur la carte :
 | 
        
           |  |  | 972 |                 if($id_zone_geo == $id_zone_a_reperer) {
 | 
        
           |  |  | 973 |                     $rouge = 255;
 | 
        
           |  |  | 974 |                     $vert = 0;
 | 
        
           |  |  | 975 |                     $bleu = 0;
 | 
        
           |  |  | 976 |                 }
 | 
        
           |  |  | 977 |                 break;
 | 
        
           |  |  | 978 |             }
 | 
        
           |  |  | 979 |         }
 | 
        
           |  |  | 980 |   | 
        
           |  |  | 981 |         // Nous mettons à jour l'image de la carte avec la valeur de l'index.
 | 
        
           |  |  | 982 |   | 
        
           |  |  | 983 |         if ($index >= 0) {
 | 
        
           |  |  | 984 |             imagecolorset (&$image, $index, $rouge, $vert, $bleu);
 | 
        
           |  |  | 985 |         }
 | 
        
           |  |  | 986 |   | 
        
           |  |  | 987 |     }//Fin de la méthode _remplacerCouleur
 | 
        
           |  |  | 988 |   | 
        
           |  |  | 989 |     //==============================================================================
 | 
        
           |  |  | 990 |     // METHODE _donnerIdUnique ()
 | 
        
           |  |  | 991 |     //
 | 
        
           |  |  | 992 |     // Cette méthode privée retourne un identifiant de 32 caractères unique.
 | 
        
           |  |  | 993 |     //
 | 
        
           |  |  | 994 |     //==============================================================================
 | 
        
           |  |  | 995 |   | 
        
           |  |  | 996 |     function _donnerIdUnique()
 | 
        
           |  |  | 997 |     {
 | 
        
           |  |  | 998 |         $id = '';
 | 
        
           |  |  | 999 |         $id = md5 (uniqid (rand()));
 | 
        
           |  |  | 1000 |   | 
        
           |  |  | 1001 |         return $id;
 | 
        
           |  |  | 1002 |     }//Fin de la méthode _donnerIdUnique()
 | 
        
           |  |  | 1003 |   | 
        
           |  |  | 1004 |   | 
        
           |  |  | 1005 | }//Fin de la classe Carto_Carte()
 | 
        
           |  |  | 1006 |   | 
        
           |  |  | 1007 | //==============================================================================
 | 
        
           |  |  | 1008 | // La classe Carto_InformationCouleur n'est utilisée que par la classe carte.
 | 
        
           |  |  | 1009 | // C'est une classe privée.
 | 
        
           |  |  | 1010 | // Elle sert à stocker les informations (RVB et index) sur la couleur d'une
 | 
        
           |  |  | 1011 | // zone d'une image.
 | 
        
           |  |  | 1012 | //==============================================================================
 | 
        
           |  |  | 1013 |   | 
        
           |  |  | 1014 | class Carto_InformationCouleur
 | 
        
           |  |  | 1015 | {
 | 
        
           |  |  | 1016 |     /*|=============================================================================================|*/
 | 
        
           |  |  | 1017 |     /*|                                LES ATTRIBUTS DE LA CLASSE                                   |*/
 | 
        
           |  |  | 1018 |     /*|---------------------------------------------------------------------------------------------|*/
 | 
        
           |  |  | 1019 |   | 
        
           |  |  | 1020 |     var $id_zone;
 | 
        
           |  |  | 1021 |     var $rouge;
 | 
        
           |  |  | 1022 |     var $vert;
 | 
        
           |  |  | 1023 |     var $bleu;
 | 
        
           |  |  | 1024 |     var $index;
 | 
        
           |  |  | 1025 |   | 
        
           |  |  | 1026 |     /*|=============================================================================================|*/
 | 
        
           |  |  | 1027 |     /*|                                LE CONSTRUCTEUR DE LA CLASSE                                 |*/
 | 
        
           |  |  | 1028 |     /*|---------------------------------------------------------------------------------------------|*/
 | 
        
           |  |  | 1029 |   | 
        
           |  |  | 1030 |     function Carto_InformationCouleur($id_zone, $rouge, $vert, $bleu)
 | 
        
           |  |  | 1031 |     {
 | 
        
           |  |  | 1032 |         $this->id_zone    = $id_zone;
 | 
        
           |  |  | 1033 |         $this->rouge     = $rouge;
 | 
        
           |  |  | 1034 |         $this->vert = $vert;
 | 
        
           |  |  | 1035 |         $this->bleu    = $bleu;
 | 
        
           |  |  | 1036 |         $this->index = -1;
 | 
        
           |  |  | 1037 |     }
 | 
        
           |  |  | 1038 |   | 
        
           |  |  | 1039 | }//Fin de la classe Carto_InformationCouleur
 | 
        
           |  |  | 1040 |   | 
        
           |  |  | 1041 |   | 
        
           |  |  | 1042 | //==============================================================================
 | 
        
           |  |  | 1043 | // FUNCTION carto_errorMsg ()
 | 
        
           |  |  | 1044 | //
 | 
        
           |  |  | 1045 | // Return an error message about carto management.
 | 
        
           |  |  | 1046 | //==============================================================================
 | 
        
           |  |  | 1047 |   | 
        
           |  |  | 1048 | function carto_errorMsg()
 | 
        
           |  |  | 1049 | {
 | 
        
           |  |  | 1050 |     global $PRIVATE_CARTO_ERROR;
 | 
        
           |  |  | 1051 |   | 
        
           |  |  | 1052 |     return $PRIVATE_CARTO_ERROR;
 | 
        
           |  |  | 1053 | }
 | 
        
           |  |  | 1054 |   | 
        
           |  |  | 1055 | //==============================================================================
 | 
        
           |  |  | 1056 | // FUNCTION carto_putErrorImage ()
 | 
        
           |  |  | 1057 | //
 | 
        
           |  |  | 1058 | // Dump a default error image.
 | 
        
           |  |  | 1059 | //==============================================================================
 | 
        
           |  |  | 1060 |   | 
        
           |  |  | 1061 | function carto_putErrorImage()
 | 
        
           |  |  | 1062 | {
 | 
        
           |  |  | 1063 |     $img = '47494638396120002000800100ff000000006621f90401000001002c000000002000'.
 | 
        
           |  |  | 1064 |             '200040026d848fa99be11f009c53524373b41ae2da65dcf345e1693aa536aae77ab1'.
 | 
        
           |  |  | 1065 |             'e1d7a2a22ad5f60deb6fe54bc958418f0b05bb9190bee2f1327276a2c91db16a855a'.
 | 
        
           |  |  | 1066 |             'a4489c31bb24d5b8614fb32b2a9ea7d228738785dab673e7f81554b395682008dc52'.
 | 
        
           |  |  | 1067 |             '4236b4210416c390a8a85000003b';
 | 
        
           |  |  | 1068 |   | 
        
           |  |  | 1069 |     header ('Content-Type: image/gif');
 | 
        
           |  |  | 1070 |   | 
        
           |  |  | 1071 |     echo gs_hex2bin($img);
 | 
        
           |  |  | 1072 | }
 | 
        
           |  |  | 1073 |   | 
        
           |  |  | 1074 | //==============================================================================
 | 
        
           |  |  | 1075 | //==============================================================================
 | 
        
           |  |  | 1076 | // Les fonctions qui suivent permettent de recuperer des infos (nom de l'image,
 | 
        
           |  |  | 1077 | // du masque, du niveau ou du titre) d'une carte.
 | 
        
           |  |  | 1078 | //==============================================================================
 | 
        
           |  |  | 1079 | //==============================================================================
 | 
        
           |  |  | 1080 |   | 
        
           |  |  | 1081 | function carto_consulterTitreCarte($id_carte)
 | 
        
           |  |  | 1082 | {
 | 
        
           |  |  | 1083 |     global $NOM_FICHIER;
 | 
        
           |  |  | 1084 |   | 
        
           |  |  | 1085 |     $requete =
 | 
        
           |  |  | 1086 |     'SELECT * '.
 | 
        
           |  |  | 1087 |     ' FROM carto_DESCRIPTION_CARTE'.
 | 
        
           |  |  | 1088 |     ' WHERE CDC_ID_Carte = "'.$id_carte.'"';
 | 
        
           |  |  | 1089 |   | 
        
           |  |  | 1090 |     $resultat = mysql_query ($requete) or die('
 | 
        
           |  |  | 1091 |             <H2 style="text-align: center; font-weight: bold; font-size: 26px;">Erreur de requête</H2>'.
 | 
        
           |  |  | 1092 |             '<b>Nom du fichier : </b> '.$NOM_FICHIER.'<br/>'.
 | 
        
           |  |  | 1093 |             '<b>Nom fonction : </b> carto_consulterTitreCarte<br/>'.
 | 
        
           |  |  | 1094 |             '<b>Requete : </b>'.$requete.
 | 
        
           |  |  | 1095 |             '<br/><br/><b>Erreur : </b>'.mysql_error());
 | 
        
           |  |  | 1096 |   | 
        
           |  |  | 1097 |     $ligne = mysql_fetch_object ($resultat);
 | 
        
           |  |  | 1098 |   | 
        
           |  |  | 1099 |     $titre_carte = $ligne->CDC_Titre_carte;
 | 
        
           |  |  | 1100 |   | 
        
           |  |  | 1101 |     return $titre_carte;
 | 
        
           |  |  | 1102 | }
 | 
        
           |  |  | 1103 |   | 
        
           |  |  | 1104 | function carto_consulterFichierFond($id_carte)
 | 
        
           |  |  | 1105 | {
 | 
        
           |  |  | 1106 |     global $NOM_FICHIER;
 | 
        
           |  |  | 1107 |   | 
        
           |  |  | 1108 |     $requete =
 | 
        
           |  |  | 1109 |         'SELECT * '.
 | 
        
           |  |  | 1110 |         ' FROM carto_DESCRIPTION_CARTE'.
 | 
        
           |  |  | 1111 |         ' WHERE CDC_ID_Carte = "'.$id_carte.'"';
 | 
        
           |  |  | 1112 |   | 
        
           |  |  | 1113 |     $resultat = mysql_query ($requete) or die('
 | 
        
           |  |  | 1114 |             <H2 style="text-align: center; font-weight: bold; font-size: 26px;">Erreur de requête</H2>'.
 | 
        
           |  |  | 1115 |             '<b>Nom du fichier : </b> '.$NOM_FICHIER.'<br/>'.
 | 
        
           |  |  | 1116 |             '<b>Nom fonction : </b> carto_consulterFichierFond<br/>'.
 | 
        
           |  |  | 1117 |             '<b>Requete : </b>'.$requete.
 | 
        
           |  |  | 1118 |             '<br/><br/><b>Erreur : </b>'.mysql_error());
 | 
        
           |  |  | 1119 |   | 
        
           |  |  | 1120 |     $ligne = mysql_fetch_object ($resultat);
 | 
        
           |  |  | 1121 |   | 
        
           |  |  | 1122 |     $nom_fichier_carte_fond = $ligne->CDC_Carte_fond;
 | 
        
           |  |  | 1123 |   | 
        
           |  |  | 1124 |     return $nom_fichier_carte_fond;
 | 
        
           |  |  | 1125 | }
 | 
        
           |  |  | 1126 |   | 
        
           |  |  | 1127 | function carto_consulterFichierMasque($id_carte)
 | 
        
           |  |  | 1128 | {
 | 
        
           |  |  | 1129 |     global $NOM_FICHIER;
 | 
        
           |  |  | 1130 |   | 
        
           |  |  | 1131 |     $requete =
 | 
        
           |  |  | 1132 |         'SELECT * '.
 | 
        
           |  |  | 1133 |         ' FROM carto_DESCRIPTION_CARTE'.
 | 
        
           |  |  | 1134 |         ' WHERE CDC_ID_Carte = "'.$id_carte.'"';
 | 
        
           |  |  | 1135 |   | 
        
           |  |  | 1136 |     $resultat = mysql_query ($requete) or die('
 | 
        
           |  |  | 1137 |             <H2 style="text-align: center; font-weight: bold; font-size: 26px;">Erreur de requête</H2>'.
 | 
        
           |  |  | 1138 |             '<b>Nom du fichier : </b> '.$NOM_FICHIER.'<br/>'.
 | 
        
           |  |  | 1139 |             '<b>Nom fonction : </b> carto_consulterFichierMasque<br/>'.
 | 
        
           |  |  | 1140 |             '<b>Requete : </b>'.$requete.
 | 
        
           |  |  | 1141 |             '<br/><br/><b>Erreur : </b>'.mysql_error());
 | 
        
           |  |  | 1142 |   | 
        
           |  |  | 1143 |     $ligne = mysql_fetch_object ($resultat);
 | 
        
           |  |  | 1144 |   | 
        
           |  |  | 1145 |     $nom_fichier_carte_masque = $ligne->CDC_Carte_masque;
 | 
        
           |  |  | 1146 |   | 
        
           |  |  | 1147 |     return $nom_fichier_carte_masque;
 | 
        
           |  |  | 1148 | }
 | 
        
           |  |  | 1149 |   | 
        
           |  |  | 1150 | function carto_consulterTypeZoneCarte($id_carte)
 | 
        
           |  |  | 1151 | {
 | 
        
           |  |  | 1152 |     global $NOM_FICHIER;
 | 
        
           |  |  | 1153 |   | 
        
           |  |  | 1154 |     $requete =
 | 
        
           |  |  | 1155 |         'SELECT * '.
 | 
        
           |  |  | 1156 |         ' FROM carto_DESCRIPTION_CARTE'.
 | 
        
           |  |  | 1157 |         ' WHERE CDC_ID_Carte = "'.$id_carte.'"';
 | 
        
           |  |  | 1158 |   | 
        
           |  |  | 1159 |     $resultat = mysql_query($requete) or die('
 | 
        
           |  |  | 1160 |             <H2 style="text-align: center; font-weight: bold; font-size: 26px;">Erreur de requête</H2>'.
 | 
        
           |  |  | 1161 |             '<b>Nom du fichier : </b> '.$NOM_FICHIER.'<br/>'.
 | 
        
           |  |  | 1162 |             '<b>Nom fonction : </b> carto_consulterTypeZoneCarte<br/>'.
 | 
        
           |  |  | 1163 |             '<b>Requete : </b>'.$requete.
 | 
        
           |  |  | 1164 |             '<br/><br/><b>Erreur : </b>'.mysql_error());
 | 
        
           |  |  | 1165 |   | 
        
           |  |  | 1166 |     $ligne = mysql_fetch_object($resultat);
 | 
        
           |  |  | 1167 |   | 
        
           |  |  | 1168 |     $type_zone_carte = $ligne->CDC_Type_zone_carte;
 | 
        
           |  |  | 1169 |   | 
        
           |  |  | 1170 |     return $type_zone_carte;
 | 
        
           |  |  | 1171 | }
 | 
        
           |  |  | 1172 |   | 
        
           |  |  | 1173 | function carto_consulterIdZoneGeoCarte($id_carte)
 | 
        
           |  |  | 1174 | {
 | 
        
           |  |  | 1175 |     global $NOM_FICHIER;
 | 
        
           |  |  | 1176 |   | 
        
           |  |  | 1177 |     $requete =
 | 
        
           |  |  | 1178 |         'SELECT * '.
 | 
        
           |  |  | 1179 |         ' FROM carto_DESCRIPTION_CARTE'.
 | 
        
           |  |  | 1180 |         ' WHERE CDC_ID_Carte = "'.$id_carte.'"';
 | 
        
           |  |  | 1181 |   | 
        
           |  |  | 1182 |     $resultat = mysql_query($requete) or die('
 | 
        
           |  |  | 1183 |             <H2 style="text-align: center; font-weight: bold; font-size: 26px;">Erreur de requête</H2>'.
 | 
        
           |  |  | 1184 |             '<b>Nom du fichier : </b> '.$NOM_FICHIER.'<br/>'.
 | 
        
           |  |  | 1185 |             '<b>Nom fonction : </b> carto_consulterIdZoneGeoCarte<br/>'.
 | 
        
           |  |  | 1186 |             '<b>Requete : </b>'.$requete.
 | 
        
           |  |  | 1187 |             '<br/><br/><b>Erreur : </b>'.mysql_error());
 | 
        
           |  |  | 1188 |   | 
        
           |  |  | 1189 |     $ligne = mysql_fetch_object ($resultat);
 | 
        
           |  |  | 1190 |   | 
        
           |  |  | 1191 |     $id_zone_carte = $ligne->CDC_ID_Zone_geo_carte;
 | 
        
           |  |  | 1192 |     return $id_zone_carte;
 | 
        
           |  |  | 1193 | }
 | 
        
           |  |  | 1194 |   | 
        
           |  |  | 1195 | //-- Fin du code source  ------------------------------------------------------------
 | 
        
           |  |  | 1196 | /*
 | 
        
           |  |  | 1197 | * $Log: not supported by cvs2svn $
 | 
        
           | 1367 | alexandre_ | 1198 | * Revision 1.8  2007/04/11 08:30:12  neiluj
 | 
        
           |  |  | 1199 | * remise en état du CVS...
 | 
        
           |  |  | 1200 | *
 | 
        
           | 1298 | neiluj | 1201 | * Revision 1.5  2006/12/01 13:23:16  florian
 | 
        
           |  |  | 1202 | * integration annuaire backoffice
 | 
        
           |  |  | 1203 | *
 | 
        
           |  |  | 1204 | * Revision 1.4  2006/04/04 12:23:05  florian
 | 
        
           |  |  | 1205 | * modifs affichage fiches, généricité de la carto, modification totale de l'appli annuaire
 | 
        
           |  |  | 1206 | *
 | 
        
           | 805 | florian | 1207 | * Revision 1.3  2005/12/07 14:59:14  alexandre_tb
 | 
        
           |  |  | 1208 | * suppression d'un echo
 | 
        
           |  |  | 1209 | *
 | 
        
           | 642 | alexandre_ | 1210 | * Revision 1.2  2005/11/24 16:17:52  florian
 | 
        
           |  |  | 1211 | * changement template inscription + modifs carto
 | 
        
           |  |  | 1212 | *
 | 
        
           | 612 | florian | 1213 | * Revision 1.1  2005/09/22 14:02:49  ddelon
 | 
        
           |  |  | 1214 | * nettoyage annuaire et php5
 | 
        
           |  |  | 1215 | *
 | 
        
           | 448 | ddelon | 1216 | * Revision 1.2  2005/09/22 13:30:49  florian
 | 
        
           |  |  | 1217 | * modifs pour compatibilité XHTML Strict + corrections de bugs (mais ya encore du boulot!!)
 | 
        
           |  |  | 1218 | *
 | 
        
           |  |  | 1219 | * Revision 1.1  2004/12/15 13:30:20  alex
 | 
        
           |  |  | 1220 | * version initiale
 | 
        
           |  |  | 1221 | *
 | 
        
           |  |  | 1222 | * Revision 1.17  2003/05/16 13:17:40  jpm
 | 
        
           |  |  | 1223 | * Correction d'une erreur (des guillemets en trop).
 | 
        
           |  |  | 1224 | *
 | 
        
           |  |  | 1225 | * Revision 1.16  2003/03/14 14:12:14  jpm
 | 
        
           |  |  | 1226 | * Correction bug : le nom de la zone ne restait pas dans la liste déroulante.
 | 
        
           |  |  | 1227 | *
 | 
        
           |  |  | 1228 | * Revision 1.15  2003/03/11 14:49:47  jpm
 | 
        
           |  |  | 1229 | * Simplification de l'interface.
 | 
        
           |  |  | 1230 | *
 | 
        
           |  |  | 1231 | * Revision 1.14  2003/03/07 15:10:24  jpm
 | 
        
           |  |  | 1232 | * Ajout de commentaires : "à faire"
 | 
        
           |  |  | 1233 | *
 | 
        
           |  |  | 1234 | * Revision 1.13  2003/03/04 16:14:06  alex
 | 
        
           |  |  | 1235 | * Utilisation de la fonction cxt_clearVariable à la place de cxt_clear
 | 
        
           |  |  | 1236 | *
 | 
        
           |  |  | 1237 | * Revision 1.12  2003/03/04 08:09:39  jpm
 | 
        
           |  |  | 1238 | * Ajout suppression des fichiers carto du dossier carto temporaire.
 | 
        
           |  |  | 1239 | *
 | 
        
           |  |  | 1240 | * Revision 1.11  2003/02/26 12:12:38  jpm
 | 
        
           |  |  | 1241 | * Ajout de la gestion des listes déroulantes représentant la zone géographique
 | 
        
           |  |  | 1242 | * à éditer.
 | 
        
           |  |  | 1243 | *
 | 
        
           |  |  | 1244 | * Revision 1.10  2003/02/21 13:50:57  jpm
 | 
        
           |  |  | 1245 | * Mise à jour nouvel objet Carto_Carte.
 | 
        
           |  |  | 1246 | *
 | 
        
           |  |  | 1247 | * Revision 1.8  2003/02/14 08:01:14  jpm
 | 
        
           |  |  | 1248 | * Changement des noms de méthode selon les recommandations de PEAR.
 | 
        
           |  |  | 1249 | * Ajout d'attributs à la classe.
 | 
        
           |  |  | 1250 | * Ajout de la possibilité de redéfinir les couleurs de coloriage d'une carte.
 | 
        
           |  |  | 1251 | * Ajout de la possibilité de désigner une formule mathématique de coloriage.
 | 
        
           |  |  | 1252 | *
 | 
        
           |  |  | 1253 | * Revision 1.7  2003/02/12 18:15:56  jpm
 | 
        
           |  |  | 1254 | * Meilleure gestion de l'obtentions des valeurs minimum, medium et maximum
 | 
        
           |  |  | 1255 | * pour l'ensemble des zones géographiques d'une carte.
 | 
        
           |  |  | 1256 | * Ajout de commentaires.
 | 
        
           |  |  | 1257 | * Meilleure gestion des erreurs de requêtes.
 | 
        
           |  |  | 1258 | *
 | 
        
           |  |  | 1259 | *
 | 
        
           |  |  | 1260 | */
 | 
        
           |  |  | 1261 | ?>
 |