Rev 2 | Blame | Last modification | View Log | RSS feed
<?/* ***************************** classe arbre ************************************ class permettant la creation d'un arbre, elle est fonctionnelle en tant que module* de gsite (www.gsite.org).* L'arbre peut servir de representation graphique de donnees statistiques.* Copyright 2001 Tela Botanica* Auteurs : Daniel Mathieu, Nicolas Touillaud, Alexandre Granier* Cette bibliothèque est libre, vous pouvez la redistribuer et/ou la modifier* selon les termes de la Licence Publique Générale GNU publiée par la* Free Software Foundation.* Cette bibliothèque est distribuée car potentiellement utile, mais SANS* AUCUNE GARANTIE, ni explicite ni implicite, y compris les garanties de* commercialisation ou d'adaptation dans un but spécifique.*************************************************************************************/include('php/frame/arbre/tailles.php3');//recuperation des noms de table$nom_table_index = "AGORA" ;$nom_table_tela = "AGO_TELA_BOTANICAE" ;global $GS_GLOBAL ;mysql_select_db($GS_GLOBAL['mysql_db'],$GS_GLOBAL['link']) ;$tables = mysql_query("select AGO_A_NOMGRP from agora where ((AGO_A_VISIBLE=1) and (AGO_A_NOMGRP <> \"tela-botanicae\"))");$nbtables_dessin = mysql_num_rows($tables);mysql_free_result($tables);$hauteur=$yfait;//verification si il y a des listes a afficherif ($nbtables_dessin==""):{$nbdroite=0;}else : {$nbdroite=(round($nbtables_dessin/2))+1;}endif;function calc_xref_branche($xres_,$xfeuille_, $xtronc_)//calcule la taille de reference des branches{//global $xres, $xfeuille, $xtronc;$toto=round(($xres_-$xtronc_-(2*$xfeuille_))/2);return $toto;}//******************************************************// calcule l'espace vertical entre 2 branche d'un meme coté: si il n'y a pas la place -> 12 pixelsfunction calc_esver(){global $nbdroite ;if ($nbdroite != 1):{global $yres, $yfait, $yracine, $ybranche, $nbdroite;$toto=($yres-$yfait-$yracine-($nbdroite*$ybranche))/($nbdroite-1);if($toto<0):{$toto=12;} //on ne se place plus sur 1 ecran mais sur plusendif;return $toto;}else:{return 0;}endif;}//******************************************************$esver=calc_esver();//******************************************************//calcul la position en x de la branchefunction calcul_x_branche($adroite,$xreel){global $xres, $xtronc, $xref_branche;$tempx=($xres+$xtronc)/2-2; //pour un bugif($adroite != 1):{$tempx=$tempx+2-$xtronc-($xreel);}endif;return round($tempx);}//******************************************************//Il est impératif d'afficher 1 branche d'un coté, puis de l'autre etc..//******************************************************//retourne la position y de la branche (et de la feuille) et met à jour la hauteur de la prochaine branchefunction calcul_y_branche(){global $esver, $hauteur, $ybranche;$toto=$hauteur;$hauteur=$hauteur+(($ybranche+$esver)/2);return $toto;}//******************************************************//******************************************************//retourne la position x du troncfunction x_tronc(){global $xtronc, $xres;return ($xres-$xtronc)/2;}//******************************************************//******************************************************//retourne la position y du troncfunction y_tronc(){global $yfait;return ($yfait);}//******************************************************//******************************************************// retourne la position x de la racinefunction x_racine(){global $xracine, $xres;return ($xres-$xracine)/2;}//******************************************************//******************************************************//retourne la taille du tronc en pixelsfunction taille_tronc(){global $nbdroite, $esver, $ybranche;$toto=($nbdroite-1)*$esver+($nbdroite*$ybranche);return $toto;}//******************************************************//******************************************************//retourne la position x de la feuille en fonction des param de la branchefunction calcul_x_feuille($adroite, $pos_branche, $xreel_brch) //xreel en %{global $xref_branche, $xfeuille;if($adroite !=1):{$toto=$pos_branche-$xfeuille;}else:{$toto=$pos_branche+($xreel_brch);}endif;return $toto;}//******************************************************//******************************************************// retourne la position y de la racinefunction y_racine(){global $yfait;$toto=$yfait+taille_tronc();return $toto;}//******************************************************//******************************************************//met 1 à 0 et inversementfunction dg($dte){if($dte==1):{return 0;}else:{return 1;}endif;}//******************************************************//******************************************************//une fonction qui prend le % de vert *100 et qui sort la chaine html du vert correspondantfunction couleur_f($prc){if ($prc==0) return ("#279C27");if (($prc>0) && ($prc<=16)) return ("#279C27");if (($prc>16) && ($prc<=32)) return ("#CCCC00");if (($prc>32) && ($prc<=48)) return ("#FFCC00");if (($prc>48) && ($prc<=64)) return ("#DD8D22");if (($prc>64) && ($prc<=80)) {return "#FF6600" ;} else {return "#CC3300" ;}}//*****************************************************//une fonction qui détermine si un entier est pair ou nonfunction est_pair($un_entier){return(($un_entier %2)==0);}?>