448 |
ddelon |
1 |
<?php
|
|
|
2 |
|
|
|
3 |
/* ***************************** classe arbre ***********************************
|
|
|
4 |
* classe permettant la creation d'un arbre, elle est fonctionnelle en tant que module
|
|
|
5 |
* de gsite (www.gsite.org).
|
|
|
6 |
* L'arbre peut servir de representation graphique de donnees statistiques.
|
|
|
7 |
* Copyright 2001 Tela Botanica
|
|
|
8 |
* Auteurs : Daniel Mathieu, Nicolas Touillaud, Alexandre Granier
|
|
|
9 |
* Cette bibliothèque est libre, vous pouvez la redistribuer et/ou la modifier
|
|
|
10 |
* selon les termes de la Licence Publique Générale GNU publiée par la
|
|
|
11 |
* Free Software Foundation.
|
|
|
12 |
* Cette bibliothèque est distribuée car potentiellement utile, mais SANS
|
|
|
13 |
* AUCUNE GARANTIE, ni explicite ni implicite, y compris les garanties de
|
|
|
14 |
* commercialisation ou d'adaptation dans un but spécifique.
|
|
|
15 |
*
|
|
|
16 |
* Derniere mise a jour : 10 decembre 2001
|
|
|
17 |
************************************************************************************/
|
|
|
18 |
error_reporting (E_ALL) ;
|
832 |
florian |
19 |
//l'ecran
|
|
|
20 |
//$xres=698; //doit etre divisible par 2 sinon bug d'alignement
|
|
|
21 |
$innerTableWidth = 600;
|
|
|
22 |
$xres=$innerTableWidth-10;
|
|
|
23 |
$yres=600;
|
|
|
24 |
|
|
|
25 |
//les images
|
|
|
26 |
$yfait= 50; //la hauteur du "sommet"
|
|
|
27 |
$xfait= 1;
|
|
|
28 |
$xtronc= 36; //doit etre divisible par 2 sinon bug d'alignement
|
|
|
29 |
$ytronc= 559;
|
|
|
30 |
$xbranche= 200;
|
|
|
31 |
$ybranche= 64;
|
|
|
32 |
$xracine= 191;
|
|
|
33 |
$yracine= 61;
|
|
|
34 |
$xfeuille= 50;
|
|
|
35 |
$yfeuille= 45;
|
|
|
36 |
$xtextedroite=10;
|
|
|
37 |
$ytextedroite=15;
|
|
|
38 |
$xtextegauche=10;
|
|
|
39 |
$ytextegauche=10;
|
|
|
40 |
$yposnom=12;
|
|
|
41 |
$xpuce=10;
|
|
|
42 |
$ypuce=10;
|
|
|
43 |
$taille_mini=60;
|
|
|
44 |
$nhi_xsommet=191;
|
|
|
45 |
$nhi_ysommet=61;
|
|
|
46 |
include 'tailles.php3' ;
|
448 |
ddelon |
47 |
|
|
|
48 |
define ("ARBRE_CHEMIN_IMAGES", 'api/arbre/images/') ;
|
|
|
49 |
|
|
|
50 |
|
|
|
51 |
function calc_xref_branche($xres_,$xfeuille_, $xtronc_)
|
|
|
52 |
//calcule la taille de reference des branches
|
|
|
53 |
{
|
|
|
54 |
//global $xres, $xfeuille, $xtronc;
|
|
|
55 |
$toto=round(($xres_-$xtronc_-(2*$xfeuille_))/2);
|
|
|
56 |
return $toto;
|
|
|
57 |
}
|
|
|
58 |
|
|
|
59 |
|
|
|
60 |
|
|
|
61 |
//******************************************************
|
|
|
62 |
// calcule l'espace vertical entre 2 branche d'un meme coté: si il n'y a pas la place -> 12 pixels
|
|
|
63 |
function calc_esver()
|
|
|
64 |
{
|
|
|
65 |
global $nbdroite ;
|
|
|
66 |
if ($nbdroite != 1):
|
|
|
67 |
{
|
|
|
68 |
global $yres, $yfait, $yracine, $ybranche, $nbdroite;
|
|
|
69 |
$toto=($yres-$yfait-$yracine-($nbdroite*$ybranche))/($nbdroite-1);
|
|
|
70 |
if($toto<0):{$toto=12;} //on ne se place plus sur 1 ecran mais sur plus
|
|
|
71 |
endif;
|
|
|
72 |
return $toto;
|
|
|
73 |
}
|
|
|
74 |
else:{return 0;}
|
|
|
75 |
endif;
|
|
|
76 |
}
|
|
|
77 |
//******************************************************
|
|
|
78 |
|
|
|
79 |
$esver=calc_esver();
|
|
|
80 |
|
|
|
81 |
//******************************************************
|
|
|
82 |
//calcul la position en x de la branche
|
|
|
83 |
function calcul_x_branche($adroite,$xreel)
|
|
|
84 |
{
|
|
|
85 |
global $xres, $xtronc, $xref_branche;
|
|
|
86 |
$tempx=($xres+$xtronc)/2-2; //pour un bug
|
|
|
87 |
if($adroite != 1):
|
|
|
88 |
{
|
|
|
89 |
$tempx=$tempx+2-$xtronc-($xreel);
|
|
|
90 |
}
|
|
|
91 |
endif;
|
|
|
92 |
return round($tempx);
|
|
|
93 |
}
|
|
|
94 |
//******************************************************
|
|
|
95 |
|
|
|
96 |
//Il est impératif d'afficher 1 branche d'un coté, puis de l'autre etc..
|
|
|
97 |
|
|
|
98 |
//******************************************************
|
|
|
99 |
//retourne la position y de la branche (et de la feuille) et met à jour la hauteur de la prochaine branche
|
|
|
100 |
function calcul_y_branche()
|
|
|
101 |
{
|
|
|
102 |
global $esver, $hauteur, $ybranche;
|
|
|
103 |
$toto=$hauteur;
|
|
|
104 |
$hauteur=$hauteur+(($ybranche+$esver)/2);
|
|
|
105 |
return $toto;
|
|
|
106 |
}
|
|
|
107 |
//******************************************************
|
|
|
108 |
|
|
|
109 |
//******************************************************
|
|
|
110 |
//retourne la position x du tronc
|
|
|
111 |
function x_tronc()
|
|
|
112 |
{
|
|
|
113 |
global $xtronc, $xres;
|
|
|
114 |
return ($xres-$xtronc)/2;
|
|
|
115 |
}
|
|
|
116 |
//******************************************************
|
|
|
117 |
|
|
|
118 |
//******************************************************
|
|
|
119 |
//retourne la position y du tronc
|
|
|
120 |
function y_tronc()
|
|
|
121 |
{
|
|
|
122 |
global $yfait;
|
|
|
123 |
return ($yfait);
|
|
|
124 |
}
|
|
|
125 |
//******************************************************
|
|
|
126 |
|
|
|
127 |
//******************************************************
|
|
|
128 |
// retourne la position x de la racine
|
|
|
129 |
function x_racine()
|
|
|
130 |
{
|
|
|
131 |
global $xracine, $xres;
|
|
|
132 |
return ($xres-$xracine)/2;
|
|
|
133 |
}
|
|
|
134 |
//******************************************************
|
|
|
135 |
|
|
|
136 |
//******************************************************
|
|
|
137 |
//retourne la taille du tronc en pixels
|
|
|
138 |
function taille_tronc()
|
|
|
139 |
{
|
|
|
140 |
global $nbdroite, $esver, $ybranche;
|
|
|
141 |
$toto=($nbdroite-1)*$esver+($nbdroite*$ybranche);
|
|
|
142 |
return $toto;
|
|
|
143 |
}
|
|
|
144 |
//******************************************************
|
|
|
145 |
|
|
|
146 |
//******************************************************
|
|
|
147 |
//retourne la position x de la feuille en fonction des param de la branche
|
|
|
148 |
function calcul_x_feuille($adroite, $pos_branche, $xreel_brch) //xreel en %
|
|
|
149 |
{
|
|
|
150 |
global $xref_branche, $xfeuille;
|
|
|
151 |
if($adroite !=1):
|
|
|
152 |
{
|
|
|
153 |
$toto=$pos_branche-$xfeuille;
|
|
|
154 |
}
|
|
|
155 |
else:
|
|
|
156 |
{
|
|
|
157 |
$toto=$pos_branche+($xreel_brch);
|
|
|
158 |
}
|
|
|
159 |
endif;
|
|
|
160 |
return $toto;
|
|
|
161 |
}
|
|
|
162 |
//******************************************************
|
|
|
163 |
|
|
|
164 |
//******************************************************
|
|
|
165 |
// retourne la position y de la racine
|
|
|
166 |
function y_racine()
|
|
|
167 |
{
|
|
|
168 |
global $yfait;
|
|
|
169 |
$toto=$yfait+taille_tronc();
|
|
|
170 |
return $toto;
|
|
|
171 |
}
|
|
|
172 |
//******************************************************
|
|
|
173 |
|
|
|
174 |
|
|
|
175 |
//******************************************************
|
|
|
176 |
//met 1 à 0 et inversement
|
|
|
177 |
function dg($dte)
|
|
|
178 |
{
|
|
|
179 |
if($dte==1):{return 0;}
|
|
|
180 |
else:{return 1;}
|
|
|
181 |
endif;
|
|
|
182 |
}
|
|
|
183 |
//******************************************************
|
|
|
184 |
|
|
|
185 |
//******************************************************
|
|
|
186 |
//une fonction qui prend le % de vert *100 et qui sort la chaine html du vert correspondant
|
|
|
187 |
function couleur_f($prc)
|
|
|
188 |
{
|
|
|
189 |
if ($prc==0) return ("#279C27");
|
|
|
190 |
if (($prc>0) && ($prc<=16)) return ("#279C27");
|
|
|
191 |
if (($prc>16) && ($prc<=32)) return ("#CCCC00");
|
|
|
192 |
if (($prc>32) && ($prc<=48)) return ("#FFCC00");
|
|
|
193 |
if (($prc>48) && ($prc<=64)) return ("#DD8D22");
|
|
|
194 |
if (($prc>64) && ($prc<=80)) {
|
|
|
195 |
return "#FF6600" ;
|
|
|
196 |
} else {
|
|
|
197 |
return "#CC3300" ;
|
|
|
198 |
}
|
|
|
199 |
}
|
|
|
200 |
//*****************************************************
|
|
|
201 |
|
|
|
202 |
//une fonction qui détermine si un entier est pair ou non
|
|
|
203 |
function est_pair($un_entier)
|
|
|
204 |
{
|
|
|
205 |
return(($un_entier %2)==0);
|
|
|
206 |
}
|
|
|
207 |
|
|
|
208 |
|
|
|
209 |
class arbre {
|
|
|
210 |
|
|
|
211 |
var $nbre_branche ;
|
|
|
212 |
var $branche ;
|
|
|
213 |
var $blanc_cime ;
|
|
|
214 |
|
|
|
215 |
/********************************************************************************
|
|
|
216 |
* constructeur arbre(chaine $nom, chaine $lien_nom, entier $intensite, chaine $lien_intensite,
|
|
|
217 |
* chaine $lien_feuille)
|
|
|
218 |
* crees une instance d'arbre, les parametres sont les informations du sommet de l'arbre
|
|
|
219 |
* $nom : le texte du haut de l'arbre
|
|
|
220 |
* $lien_nom : le lein associe
|
|
|
221 |
* $intensite : le nombre a cote du nom
|
|
|
222 |
* $lien_intensite : le lien sur l'intensite
|
|
|
223 |
* $lien_feuille : le lien, lorsqu'on clique sur la feuille du haut de l'arbre
|
|
|
224 |
*********************************************************************************/
|
|
|
225 |
|
|
|
226 |
function arbre() {}
|
|
|
227 |
|
|
|
228 |
function cime($nom, $lien_nom, $intensite, $lien_intensite, $lien_feuille) {
|
|
|
229 |
//global $nhi_xsommet, $nhi_ysommet,$ybranche,$yfeuille, $yres, $innerTableWidth ;
|
|
|
230 |
|
832 |
florian |
231 |
//l'ecran
|
|
|
232 |
//$xres=698; //doit etre divisible par 2 sinon bug d'alignement
|
|
|
233 |
$innerTableWidth = 600;
|
|
|
234 |
$xres=$innerTableWidth-10;
|
|
|
235 |
$yres=600;
|
|
|
236 |
|
|
|
237 |
//les images
|
|
|
238 |
$yfait= 50; //la hauteur du "sommet"
|
|
|
239 |
$xfait= 1;
|
|
|
240 |
$xtronc= 36; //doit etre divisible par 2 sinon bug d'alignement
|
|
|
241 |
$ytronc= 559;
|
|
|
242 |
$xbranche= 200;
|
|
|
243 |
$ybranche= 64;
|
|
|
244 |
$xracine= 191;
|
|
|
245 |
$yracine= 61;
|
|
|
246 |
$xfeuille= 50;
|
|
|
247 |
$yfeuille= 45;
|
|
|
248 |
$xtextedroite=10;
|
|
|
249 |
$ytextedroite=15;
|
|
|
250 |
$xtextegauche=10;
|
|
|
251 |
$ytextegauche=10;
|
|
|
252 |
$yposnom=12;
|
|
|
253 |
$xpuce=10;
|
|
|
254 |
$ypuce=10;
|
|
|
255 |
$taille_mini=60;
|
|
|
256 |
$nhi_xsommet=191;
|
|
|
257 |
$nhi_ysommet=61;
|
448 |
ddelon |
258 |
// tailles.php3 contient les variables de tailles des fichiers graphiques associes
|
|
|
259 |
// a l'arbre
|
832 |
florian |
260 |
include 'tailles.php3' ;
|
448 |
ddelon |
261 |
|
|
|
262 |
// Le blanc devant la cime de l'arbre
|
|
|
263 |
$this->blanc_cime = round(($xres-$nhi_xsommet)/2);
|
|
|
264 |
|
|
|
265 |
$res = '<tr>
|
|
|
266 |
<td align="center"><a href="'.$lien_nom.'"><b><i>'.$nom.'</i></b></a> <a href="'.$lien_intensite.'"><b><i>('.$intensite.')</i></b></a></td>
|
|
|
267 |
</tr>
|
|
|
268 |
<tr>
|
|
|
269 |
<td align="center"><table width="'.$xres.'" border="0" cellspacing="0" cellpadding="0" summary="">';
|
|
|
270 |
// haut de l'arbre
|
|
|
271 |
$res .= '<tr>
|
|
|
272 |
<td align="center"><table border="0" cellspacing="0" cellpadding="0" summary="">
|
|
|
273 |
<tr>
|
|
|
274 |
<td><img alt="" width="'.$this->blanc_cime.'" height="1" src="'.ARBRE_CHEMIN_IMAGES.'vide.gif" /></td>
|
|
|
275 |
<td width="'.$nhi_xsommet.'" height="'.$nhi_ysommet.'" align="center"><a href="'.$lien_feuille.'" target="_blank" class="image_lien">
|
|
|
276 |
<img alt="" width="'.$nhi_xsommet.'" height="'.$nhi_ysommet.'" border="0" src="'.ARBRE_CHEMIN_IMAGES.'haut.gif" /></a></td>
|
|
|
277 |
<td><img alt="" width="'.$this->blanc_cime.'" height="1" src="'.ARBRE_CHEMIN_IMAGES.'vide.gif" /></td>
|
|
|
278 |
</tr>
|
|
|
279 |
</table>
|
|
|
280 |
</td>
|
|
|
281 |
</tr>';
|
|
|
282 |
return $res ;
|
|
|
283 |
}
|
|
|
284 |
|
|
|
285 |
|
|
|
286 |
/************************** fonction addBranche ******************************************
|
|
|
287 |
* ajoute une branche a l'arbre
|
|
|
288 |
*
|
|
|
289 |
* $nom : le label d'une branche
|
|
|
290 |
* $lien_nom : le lien associe au label
|
|
|
291 |
* $intensite : le nombre a droite du label
|
|
|
292 |
* $lien_intensite : le lien sur le nombre
|
|
|
293 |
* $lien feuille : le lien quand on clique sur la feuille
|
|
|
294 |
* $intensite_feuille : un nombre compris entre 1 et 100, qui sera transforme en couleur
|
|
|
295 |
* $longueur_branche : un nombre entre 1 et 100, pour la longueur de la branche*
|
|
|
296 |
********************************************************************************************/
|
|
|
297 |
function addBranche($nom, $lien_nom, $intensite, $lien_intensite, $lien_feuille, $intensite_feuille, $longueur_branche) {
|
|
|
298 |
|
|
|
299 |
$this->nbre_branche++ ;
|
|
|
300 |
|
|
|
301 |
$this->branche["nom"][$this->nbre_branche] = $nom ;
|
|
|
302 |
$this->branche["lien_nom"][$this->nbre_branche] = $lien_nom ;
|
|
|
303 |
$this->branche["intensite"][$this->nbre_branche] = $intensite ;
|
|
|
304 |
$this->branche["lien_intensite"][$this->nbre_branche] = $lien_intensite ;
|
|
|
305 |
$this->branche["lien_feuille"][$this->nbre_branche] = $lien_feuille ;
|
|
|
306 |
$this->branche["intensite_feuille"][$this->nbre_branche] = $intensite_feuille ;
|
|
|
307 |
$this->branche["longueur_branche"][$this->nbre_branche] = $longueur_branche ;
|
|
|
308 |
|
|
|
309 |
}
|
|
|
310 |
/************ fonction affBranche() ajoute le code HTML des branches ********************
|
|
|
311 |
* ne renvoie rien
|
|
|
312 |
*********************************************************************************************/
|
|
|
313 |
function affBranche() {
|
832 |
florian |
314 |
//l'ecran
|
|
|
315 |
//$xres=698; //doit etre divisible par 2 sinon bug d'alignement
|
|
|
316 |
$innerTableWidth = 600;
|
|
|
317 |
$xres=$innerTableWidth-10;
|
|
|
318 |
$yres=600;
|
|
|
319 |
|
|
|
320 |
//les images
|
|
|
321 |
$yfait= 50; //la hauteur du "sommet"
|
|
|
322 |
$xfait= 1;
|
|
|
323 |
$xtronc= 36; //doit etre divisible par 2 sinon bug d'alignement
|
|
|
324 |
$ytronc= 559;
|
|
|
325 |
$xbranche= 200;
|
|
|
326 |
$ybranche= 64;
|
|
|
327 |
$xracine= 191;
|
|
|
328 |
$yracine= 61;
|
|
|
329 |
$xfeuille= 50;
|
|
|
330 |
$yfeuille= 45;
|
|
|
331 |
$xtextedroite=10;
|
|
|
332 |
$ytextedroite=15;
|
|
|
333 |
$xtextegauche=10;
|
|
|
334 |
$ytextegauche=10;
|
|
|
335 |
$yposnom=12;
|
|
|
336 |
$xpuce=10;
|
|
|
337 |
$ypuce=10;
|
|
|
338 |
$taille_mini=60;
|
|
|
339 |
$nhi_xsommet=191;
|
|
|
340 |
$nhi_ysommet=61;
|
448 |
ddelon |
341 |
$tb = "" ; $tb2 = "" ;
|
|
|
342 |
//global $nhi_xsommet, $nhi_ysommet,$ybranche,$yfeuille, $xref_branche, $taille_mini;
|
|
|
343 |
//global $xtronc, $espace_a_gauche, $xfeuille , $les_slashes, $xres, $innerTableWidth;
|
832 |
florian |
344 |
include 'tailles.php3' ;
|
448 |
ddelon |
345 |
$xref_branche = calc_xref_branche($xres,$xfeuille,$xtronc);
|
|
|
346 |
|
|
|
347 |
$res = "<!-- xref_branche=$xref_branche -->";
|
|
|
348 |
|
|
|
349 |
$yinv=$ybranche-$yfeuille; //Hauteur de la case vide sous la feuille
|
|
|
350 |
|
|
|
351 |
//le tableau des branches
|
|
|
352 |
|
|
|
353 |
//ici, la boucle
|
|
|
354 |
//ajustement de la boucle: le nombre de tables doit être pair dans la boucle
|
|
|
355 |
$la_limite_de_la_boucle = $this->nbre_branche;
|
|
|
356 |
|
|
|
357 |
if(true != est_pair($la_limite_de_la_boucle)): //ajustement de la boucle
|
|
|
358 |
{
|
|
|
359 |
$la_limite_de_la_boucle-=1;
|
|
|
360 |
}endif;
|
|
|
361 |
|
|
|
362 |
$coul_ = '' ;
|
|
|
363 |
for($i=0; $i < $la_limite_de_la_boucle ; $i += 2) {
|
|
|
364 |
|
|
|
365 |
// informations concernant la branche gauche
|
|
|
366 |
|
|
|
367 |
$coul_=couleur_f($this->branche["intensite_feuille"][$i+1]);
|
|
|
368 |
$xrel=$this->branche["longueur_branche"][$i+2]/100;
|
|
|
369 |
$tbr = round($xrel * $xref_branche);
|
|
|
370 |
if($tbr < $taille_mini) $tbr = $taille_mini + $tbr ; //taille mini de la branche
|
|
|
371 |
|
|
|
372 |
if(isset ($les_slashes) && $les_slashes == 1) {
|
|
|
373 |
$this->branche["lien_nom"][$i+1] = stripslashes($this->branche["nom_lien"][$i+1]);
|
|
|
374 |
$this->branche["lien_feuille"][$i+1] = stripslashes($this->branche["lien_feuille"][$i+1]);
|
|
|
375 |
//$lien_puce2=stripslashes($lien_puce2);
|
|
|
376 |
}
|
|
|
377 |
|
|
|
378 |
// informations concernant la branche droite
|
|
|
379 |
$coul_2=couleur_f($this->branche["intensite_feuille"][$i+2]);
|
|
|
380 |
$xrel2 = $this->branche["longueur_branche"][$i+1]/100.0;
|
|
|
381 |
$tbr2 = round($xrel2*$xref_branche);
|
|
|
382 |
if($tbr2 < $taille_mini) $tbr2 = $taille_mini+$tbr2 ; //taille mini de la branche
|
|
|
383 |
|
|
|
384 |
//pour des parametress de javascript, le addslash provient de appli_dessin_date
|
|
|
385 |
if(isset ($les_slashes) && $les_slashes == 1) {
|
|
|
386 |
$this->branche["lien_nom"][$i+2] = stripslashes($this->branche["lien_nom"][$i+2]);
|
|
|
387 |
$this->branche["lien_feuille"][$i+2] = stripslashes($this->branche["lien_feuille"][$i+2]);
|
|
|
388 |
//$lien_puce2=stripslashes($lien_puce2);
|
|
|
389 |
}
|
|
|
390 |
|
|
|
391 |
//espace à gauche
|
|
|
392 |
$espace_a_gauche=round((($xres-$xtronc)/2)-$tbr2-$xfeuille);
|
|
|
393 |
|
|
|
394 |
//espace à droite
|
|
|
395 |
$espace_a_droite=round($xres-$xtronc-$tbr-$tbr2-2*$xfeuille-$espace_a_gauche);
|
|
|
396 |
|
|
|
397 |
$res .= "<!-- Les noms des listes -->
|
|
|
398 |
<tr>
|
|
|
399 |
<td>
|
|
|
400 |
<table border=\"0\" cellspacing=\"0\" cellpadding=\"0\" summary=\"\">
|
|
|
401 |
<tr>
|
|
|
402 |
<td colspan=\"3\" align=\"right\"><a href=\"";
|
|
|
403 |
$res .= $this->branche["lien_nom"][$i+1];
|
|
|
404 |
$res .= '" class="lien_nom">';
|
|
|
405 |
$res .= $this->branche["nom"][$i+1];
|
|
|
406 |
$res .= "</a>";
|
|
|
407 |
if($this->branche["intensite"][$i+1] != 0) {
|
|
|
408 |
$res .= " <a href=\"" ;
|
|
|
409 |
$res .= $this->branche["lien_intensite"][$i+1];
|
|
|
410 |
$res .= '" class="lien_nom">(';
|
|
|
411 |
$res .= $this->branche["intensite"][$i+1];
|
|
|
412 |
$res .= ")</a>";
|
|
|
413 |
}
|
|
|
414 |
$res .= " </td>
|
|
|
415 |
<!-- Le tronc -->
|
|
|
416 |
<td bgcolor=\"#663333\"><img alt=\"\" width=\"$xtronc\" height=\"20\" src=\"".ARBRE_CHEMIN_IMAGES."vide.gif\" /></td>
|
|
|
417 |
<td colspan=\"3\" align=\"left\"> <a href=\"";
|
|
|
418 |
$res .= $this->branche["lien_nom"][$i+2];
|
|
|
419 |
$res .= '" class="lien_nom">';
|
|
|
420 |
$res .= $this->branche["nom"][$i+2];
|
|
|
421 |
$res .= "</a>";
|
|
|
422 |
if($this->branche["intensite"][$i+2] != 0) {
|
|
|
423 |
$res .= " <a href=\"";
|
|
|
424 |
$res .= $this->branche["lien_intensite"][$i+2];
|
|
|
425 |
$res .= '" class="lien_nom">(';
|
|
|
426 |
$res .= $this->branche["intensite"][$i+2];
|
|
|
427 |
$res .= ")</a>";
|
|
|
428 |
}
|
|
|
429 |
$res .= "</td>
|
|
|
430 |
</tr>
|
|
|
431 |
|
|
|
432 |
<!-- Bloc de 2 branches -->
|
|
|
433 |
<tr>
|
|
|
434 |
<!-- Espace gauche -->
|
|
|
435 |
<td rowspan=\"2\"><img alt=\"\" width=\"$espace_a_gauche\" height=\"1\" src=\"".ARBRE_CHEMIN_IMAGES."vide.gif\" /></td>
|
|
|
436 |
<!-- Feuille gauche -->
|
|
|
437 |
<td class=\"chiffre\" align=\"center\" bgcolor=\"$coul_2\" width=\"$xfeuille\" height=\"$yfeuille\">";
|
|
|
438 |
if($this->branche["lien_feuille"][$i+1]!="") {
|
|
|
439 |
$res .= '<a target="_blank" href="';
|
|
|
440 |
$res .= $this->branche["lien_feuille"][$i+1] ;
|
|
|
441 |
$res .= '" class="image_lien">';
|
|
|
442 |
}
|
|
|
443 |
$res .= "<img alt=\"\" width=\"$xfeuille\" height=\"$yfeuille\" border=\"0\" src=\"".ARBRE_CHEMIN_IMAGES."feuille_gauche.gif\" />";
|
|
|
444 |
if($this->branche["lien_feuille"][$i+1]!=""):{$res .= "</a>";}endif;$res .= "</td>
|
|
|
445 |
<!-- Branche gauche: taille $tb2 % = $tbr2 pixels -->
|
|
|
446 |
<td rowspan=\"2\"><img alt=\"\" width=\"$tbr2\" height=\"$ybranche\" src=\"".ARBRE_CHEMIN_IMAGES."branche_gauche.gif\" /></td>
|
|
|
447 |
<!-- Le tronc -->
|
|
|
448 |
<td rowspan=\"2\" bgcolor=\"#663333\"><img alt=\"\" width=\"$xtronc\" src=\"".ARBRE_CHEMIN_IMAGES."vide.gif\" /></td>
|
|
|
449 |
|
|
|
450 |
<!-- Branche droite: taille $tb % = $tbr pixels -->
|
|
|
451 |
<td rowspan=\"2\"><img alt=\"\" width=\"$tbr\" height=\"$ybranche\" src=\"".ARBRE_CHEMIN_IMAGES."branche_droite.gif\" /></td>
|
|
|
452 |
<!-- Feuille droite -->
|
|
|
453 |
<td class=\"chiffre\" align=\"center\" bgcolor=\"$coul_\" width=\"$xfeuille\" height=\"$yfeuille\">";
|
|
|
454 |
if($this->branche["lien_feuille"][$i+2] != "") {
|
|
|
455 |
$res .= '<a target="_blank" href="';
|
|
|
456 |
$res .= $this->branche["lien_feuille"][$i+2];
|
|
|
457 |
$res .= '" class="image_lien">';
|
|
|
458 |
}
|
|
|
459 |
$res .= "<img alt=\"\" width=\"$xfeuille\" height=\"$yfeuille\" border=\"0\" src=\"".ARBRE_CHEMIN_IMAGES."feuille_droite.gif\" />";
|
|
|
460 |
if($this->branche["lien_feuille"][$i+2] !="") {
|
|
|
461 |
$res .= "</a>";
|
|
|
462 |
}
|
|
|
463 |
$res .= '</td>
|
|
|
464 |
<!-- Espace droit -->
|
|
|
465 |
<td rowspan="2"><img alt="" width="'.$espace_a_droite.'" height="1" src="'.ARBRE_CHEMIN_IMAGES.'vide.gif" /></td>
|
|
|
466 |
</tr>
|
|
|
467 |
<!-- Les cases vides sous les feuilles -->
|
|
|
468 |
<tr>
|
|
|
469 |
<td height="'.$yinv.'"><img alt="" width="1" height="'.$yinv.'" src="'.ARBRE_CHEMIN_IMAGES.'vide.gif" /></td>
|
|
|
470 |
<td height="'.$yinv.'"><img alt="" width="1" height="'.$yinv.'" src="'.ARBRE_CHEMIN_IMAGES.'vide.gif" /></td>
|
|
|
471 |
</tr>
|
|
|
472 |
</table>
|
|
|
473 |
</td>
|
|
|
474 |
</tr>
|
|
|
475 |
<!-- Fin du bloc de 2 branches -->';
|
|
|
476 |
|
|
|
477 |
}
|
|
|
478 |
if(!est_pair($this->nbre_branche)) {
|
|
|
479 |
$coul_2=couleur_f($this->branche["intensite_feuille"][$this->nbre_branche]);
|
|
|
480 |
$xrel2 = $this->branche["longueur_branche"][$this->nbre_branche]/100.0;
|
|
|
481 |
$tbr2 = round($xrel2*$xref_branche);
|
|
|
482 |
if($tbr2 < $taille_mini) $tbr2 = $taille_mini+$tbr2 ; //taille mini de la branche
|
|
|
483 |
|
|
|
484 |
//pour des parametress de javascript, le addslash provient de appli_dessin_date
|
|
|
485 |
if(isset ($les_slashes) && $les_slashes==1) {
|
|
|
486 |
$this->branche["lien_nom"][$this->nbre_branche] = stripslashes($this->branche["lien_nom"][$this->nbre_branche]);
|
|
|
487 |
$this->branche["lien_feuille"][$this->nbre_branche] = stripslashes($this->branche["lien_feuille"][$this->nbre_branche]);
|
|
|
488 |
//$lien_puce2=stripslashes($lien_puce2);
|
|
|
489 |
}
|
|
|
490 |
|
|
|
491 |
//espace à gauche
|
|
|
492 |
$espace_a_gauche=round((($xres-$xtronc)/2)-$tbr2-$xfeuille);
|
|
|
493 |
|
|
|
494 |
$res .= '<!-- Le nom de la liste -->
|
|
|
495 |
<tr>
|
|
|
496 |
<td>
|
|
|
497 |
<table border="0" cellspacing="0" cellpadding="0" align="left">
|
|
|
498 |
<tr>
|
|
|
499 |
<td colspan="3" align="right"><a href="';
|
|
|
500 |
$res .= $this->branche["lien_nom"][$this->nbre_branche] ;
|
|
|
501 |
$res .= '" class="lien_nom">';
|
|
|
502 |
$res .= $this->branche["nom"][$this->nbre_branche];
|
|
|
503 |
$res .= "</a>";
|
|
|
504 |
if($this->branche["intensite"][$this->nbre_branche] != 0 ) {
|
|
|
505 |
$res .= ' <a href="';
|
|
|
506 |
$res .= $this->branche["lien_intensite"][$this->nbre_branche] ;
|
|
|
507 |
$res .= '" class="lien_nom">(';
|
|
|
508 |
$res .= $this->branche["intensite"][$this->nbre_branche];
|
|
|
509 |
$res .= ')</a>';
|
|
|
510 |
}
|
|
|
511 |
$res .= ' </td>
|
|
|
512 |
<!-- Le tronc -->
|
|
|
513 |
<td bgcolor="#663333"><img alt="" width="'.$xtronc.'" height="20" src="'.ARBRE_CHEMIN_IMAGES.'vide.gif" /></td>
|
|
|
514 |
<td colspan="3" rowspan="3" align="left"> </td>
|
|
|
515 |
</tr>
|
|
|
516 |
|
|
|
517 |
<!-- Bloc de 1 branche -->
|
|
|
518 |
<tr>
|
|
|
519 |
<!-- Espace gauche -->
|
|
|
520 |
<td rowspan="2"><img alt="" width="'.$espace_a_gauche.'" height="1" src="'.ARBRE_CHEMIN_IMAGES.'vide.gif" /></td>
|
|
|
521 |
<!-- Feuille gauche -->
|
|
|
522 |
<td class="chiffre" align="center" bgcolor="'.$coul_.'" width="'.$xfeuille.'" height="'.$yfeuille.'" >';
|
|
|
523 |
if($this->branche["lien_feuille"][$this->nbre_branche] != "") {
|
|
|
524 |
$res .= "<a target=\"_blank\" href=\"";
|
|
|
525 |
$res .= $this->branche["lien_feuille"][$this->nbre_branche];
|
|
|
526 |
$res .= '">';
|
|
|
527 |
}
|
|
|
528 |
$res .= "<img alt=\"\" width=\"$xfeuille\" height=\"$yfeuille\" border=\"0\" src=\"".ARBRE_CHEMIN_IMAGES."feuille_gauche.gif\" />";
|
|
|
529 |
if($this->branche["lien_feuille"][$this->nbre_branche]!=""):{$res .= "</a>";}endif;$res .= "</td>
|
|
|
530 |
<!-- Branche gauche: taille $tb2 % = $tbr2 pixels -->
|
|
|
531 |
<td rowspan=\"2\"><img alt=\"\" width=\"$tbr2\" height=\"$ybranche\" src=\"".ARBRE_CHEMIN_IMAGES."branche_gauche.gif\" /></td>
|
|
|
532 |
|
|
|
533 |
<!-- Le tronc -->
|
|
|
534 |
<td rowspan=\"2\" bgcolor=\"#663333\"><img alt=\"\" width=\"$xtronc\" src=\"".ARBRE_CHEMIN_IMAGES."vide.gif\" /></td>
|
|
|
535 |
</tr>
|
|
|
536 |
<!-- La case vide sous la feuille -->
|
|
|
537 |
<tr>
|
|
|
538 |
<td height=\"$yinv\"><img alt=\"\" width=\"1\" height=\"$yinv\" src=\"".ARBRE_CHEMIN_IMAGES."vide.gif\" /></td>
|
|
|
539 |
</tr>
|
|
|
540 |
</table>
|
|
|
541 |
</td>
|
|
|
542 |
</tr>
|
|
|
543 |
";
|
|
|
544 |
|
|
|
545 |
}
|
|
|
546 |
return $res ;
|
|
|
547 |
}
|
|
|
548 |
/******************** fonction affRacine() ****************************************
|
|
|
549 |
* affiche la racine, ne renvoie rien
|
|
|
550 |
*************************************************************************************/
|
|
|
551 |
function affRacine() {
|
|
|
552 |
|
|
|
553 |
$xracine = 191 ; $yracine = 61;
|
|
|
554 |
$this->blanc_cime -= 4 ;
|
|
|
555 |
|
|
|
556 |
$res = '<!-- la racine -->
|
|
|
557 |
<tr>
|
|
|
558 |
<td align="left"><img width="'.$this->blanc_cime.'" height="1" border="0" src="'.ARBRE_CHEMIN_IMAGES.'vide.gif" alt="vide" />
|
|
|
559 |
<img src="'.ARBRE_CHEMIN_IMAGES.'racine.gif" width="'.$xracine.'" height="'.$yracine.'" border="0" alt="racine" />
|
|
|
560 |
</td>
|
|
|
561 |
</tr>
|
|
|
562 |
</table>
|
|
|
563 |
</td>
|
|
|
564 |
</tr>';
|
|
|
565 |
return $res ;
|
|
|
566 |
}
|
|
|
567 |
}
|
|
|
568 |
|
|
|
569 |
?>
|