Rev 2 | Blame | Last modification | View Log | RSS feed
<?//------------------------------------------------------------------------------// FICHIER : $RCSfile: appli_arbre_date.php,v $// AUTEUR : $Author: ddelon $// VERSION : $Revision: 1.1 $// DATE : $Date: 2005-09-22 14:02:49 $//------------------------------------------------------------------------------//==============================================================================// FUNCTION putStyles ($STYLErow)//// Generation of private styles.//==============================================================================function putStyles ($STYLErow) {echo ".actuTexte {\n";echo " font-family: $STYLErow->S_FONT_FAMILY;\n";echo " font-size: $STYLErow->S_FONT_SIZE_SMALL;\n";echo " font-style: normal;\n";/* echo " font-weight: 400;\n"; */// echo " text-align: left;\n";echo " vertical-align: top;\n";echo " color: $STYLErow->S_COLOR_TEXT;\n";echo " background-color: $STYLErow->S_COLOR_3;\n";echo "}\n";}//==============================================================================// FUNCTION putFrame (...)//// Generation frame content.//==============================================================================function putFrame ($db, $link,$DOCrow, $PAGEresult, $CURRENTPAGErow,$innerTableWidth, $innerTableSpacing) {global $project;global $locale;global $set;global $G_mysqlDB;global $G_link;global $num_sem;global $thema; //permet un passage de parametreglobal $fichier_arbre;global $fichier_cartouche;$page_arg = $CURRENTPAGErow->P_ARGUMENT;if($page_arg != ""):$thema=$page_arg;endif;include ('php/frame/arbre/chemin.php3');include ("$chemin_ago");include ("$chemin_param");include ('php/frame/arbre/fonctions.php3');$pageNdx = $CURRENTPAGErow->P_ORDER;//ici commence mon arbre//SCRIPT DE DESSIN DE L'ARBRE Version 2: construction avec des tables//-------------------------------------------------------------------$xesvert="0";//$xesvert*2=espace verticcal entre 2 branches d'un même coté//Connexion a la base//mysql_connect ($dbhostname, $dbwho, $dbpass);//mysql_select_db ($dbnamedb);if($thema != ""):$nom_en_cl=mysql_query("select AGO_CAT_TITRE from AGORA_CATEG where AGO_CAT_APPEL LIKE \"%$thema%\"") or die("Theme non répertorié dans la base de donnée : $thema");$thema_temp="and (THEMA LIKE \"%$thema%\")";$nom_en_clair=mysql_result($nom_en_cl,0,"AGO_CAT_TITRE");$blabla_thema="Theme de l'arbre: $nom_en_clair";endif;//prerequis au moteur//->les requetes $res//->les variable $lientela_botanica $nb_ab_tela $nb_total_mess=0 $nb_total_abon=0 $nbtables_dessin//->connexion à la base//--------------------------------------------------------------------------------------------------------------------------------------------$res = mysql_query("select NOM_TABLE, LIEN_BRANCHE, LIEN_FEUILLE, ALIAS, DATE_CREATION, LIEN_PUCEfrom $nom_table_index where ((VISIBLE=1) and (NOM_TABLE <> \"$nom_table_tela\") $thema_temp ) order by \"date_creation\" desc");$nbtables = mysql_num_rows($res);// boucle visant a constituer les valeurs couleur, nombre d'abonnes et taille de branche pour les tables concernees//(existant deja a la date $nv_date)$max_nv_mesg=1; ///////////////////////////////////////////////////////////////////////////////////$max_mesg=1; ///////////////////////////////////////////////////////////////////////////////////$nb_table_2=0; //index des tables à afficher... puisfor($i=0;$i<$nbtables;$i++){// on recupere le nom de la table$nom_tb[$i] = mysql_result($res,$i,"NOM_TABLE");// on recupere un tuple contenant le nombre de messages, le nombre d'abonnes pour la table concernee// et la semaine correspondant a la semaine $num_sem$tab = mysql_query("select NB_MESSAGES,NB_ABONNES from $nom_tb[$i] where NUM_SEM=$num_sem");$nb_rows_tab_tmp = mysql_num_rows($tab);// on teste si l'on a qqchose a afficherif ($nb_rows_tab_tmp > 0) :$nb_rows_tab[$nb_table_2]=$nb_rows_tab_tmp;$nom_tb02[$nb_table_2]=mysql_result($res,$i,"ALIAS");$tab_lien_branche[$nb_table_2]=mysql_result($res,$i,"LIEN_BRANCHE");$tab_lien_puce[$nb_table_2]=mysql_result($res,$i,"LIEN_PUCE");$tab_lien_feuille[$nb_table_2]=mysql_result($res,$i,"LIEN_FEUILLE");// on recupere le nombre de messages (cumule) pour la semaine $num_sem -1if ($num_sem == 1) : $anc_mesg = 0;else :$sem_prec = $num_sem -1;$anc_mesg = mysql_query("select NB_MESSAGES from $nom_tb[$i] where NUM_SEM=$sem_prec");$nb_rows_anc_mesg = mysql_num_rows($anc_mesg);if ($nb_rows_anc_mesg == 0) : $nb_anc_mesg[$nb_table_2] = 0;else : $nb_anc_mesg[$nb_table_2] = mysql_result($anc_mesg,0,"NB_MESSAGES");endif;endif;// on recupere le nombre de messages(cumule) pour la semaine $num_sem$nb_nv_mesg[$nb_table_2] = mysql_result($tab,0,"NB_MESSAGES");// on calcule le nombre de messages emis effectivement lors de// la semaine $num_sem$nb_mesg[$nb_table_2] = $nb_nv_mesg[$nb_table_2] - $nb_anc_mesg[$nb_table_2];// on positionne la variable donnant le maximum de messagesif ($max_nv_mesg < $nb_nv_mesg[$nb_table_2]) : $max_nv_mesg = $nb_nv_mesg[$nb_table_2];endif;// on positionne la variable donnant le maximum de messages de la semaine// $num_semif ($max_mesg < $nb_mesg[$nb_table_2]) : $max_mesg = $nb_mesg[$nb_table_2];endif;//calcul du nombre de messages total$nb_tot_mess += $nb_nv_mesg[$nb_table_2];// on recupere le nombre d'abonnes pour la semaine $num_sem$nb_abon[$nb_table_2] = mysql_result($tab,0,"NB_ABONNES");//calcul du nombre d'abonnes total$nb_tot_abon += $nb_abon[$nb_table_2];$nb_table_2++;endif;}//cette requete recupere ne nombre d'abonnes et de messages a la semaine num_sem$resreq=mysql_query("select NB_ABONNES, NB_MESSAGES from $nom_table_tela where NUM_SEM=$num_sem");$nbresreq=mysql_num_rows($resreq);$nb_ab_tela=mysql_result($resreq,($nbresreq-1),nb_abonnes);$nb_mes_tela=mysql_result($resreq,($nbresreq-1),nb_messages);$temptotoblabla=round(($xres-$nhi_xsommet)/2);// oui, je suis en manque d'inspiration pour les noms de variables ;)//sérieusement, c'est le blanc devant la cime de l'arbre// l'idee c'est de remetre tout dans une table temporaire pour refaire une requete res et rende tout ca compatible avac le moteur...//un nom aléatoir pour la table..function create_new_pwd($n){//caractères possibles en virant ceux qui se ressemblent (ijl1oO0)$chaine = "123456789";// $n_car caractères dans le 'mot' généré$n_car = $n;srand((double)microtime()*1000000);for($i = 0; $i < $n_car; $i++){$str .= $chaine[rand()%strlen($chaine)];}return "$str";}$ago_tempo=TEMP.create_new_pwd(5);//en premier lieu, virer la table $ago_tempo si elle existe$rep=mysql_query("DROP TABLE IF EXISTS $ago_tempo");//ensuite la créer, et la remplire avec les données récoltées...//creation$creation = "CREATE table $ago_tempo(INDEXE INT,NB_MES INT not null,LIEN_BRANCHE TINYTEXT not null,LIEN_FEUILLE TINYTEXT not null,COULEUR TINYINT not null,NB_ADH INT not null,TAILLE_B TINYINT not null,ALIAS TINYTEXT not null,LIEN_PUCE TINYTEXT) ";$rep=mysql_query("$creation")or die ("<font face=\"Arial, Helvetica, sans-serif\" size=2>ERREUR LORS DE LA CREATION DE LA TABLE TEMPORAIRE</font><BR><BR>$creation");//remplissage$les_slashes=1; //pour la gestion des parametres du javascript de popup sans erreur d'insertion dans la basefor($i=0;$i<$nb_table_2;$i++){$couleur = round(($nb_mesg[$i]/$max_mesg)*100);//i+1?$tb = round(($nb_nv_mesg[$i]/$max_nv_mesg)*100);//i+1?//pour la gestion des parametres du javascript de popup sans erreur d'insertion dans la base$tab_lien_branche[$i]=addslashes($tab_lien_branche[$i]);$tab_lien_feuille[$i]= addslashes($tab_lien_feuille[$i]);$tab_lien_puce[$i]=addslashes($tab_lien_puce[$i]);//$toto="INSERT INTO $ago_tempo (INDEXE, NB_MES, LIEN_BRANCHE, LIEN_FEUILLE, COULEUR, NB_ADH, TAILLE_B, ALIAS, LIEN_PUCE ) VALUES ('$i','$nb_nv_mesg[$i]','$tab_lien_branche[$i]','$tab_lien_feuille[$i]','$couleur','$nb_abon[$i]','$tb','$nom_tb02[$i]','$tab_lien_puce[$i]')";$rep=mysql_query($toto)or die("erreur dans l'insertion dans la table temporaire : $toto");}//Calcul des totaux C'est un reliqua d'une version précedente//$nb_total_mess=$nb_tot_mess+$nb_mes_tela;//$nb_total_abon=$nb_tot_abon+$nb_ab_tela;mysql_free_result($res);$res = mysql_query("select INDEXE, NB_MES, LIEN_BRANCHE, LIEN_FEUILLE, COULEUR, NB_ADH, TAILLE_B, ALIAS, LIEN_PUCE from $ago_tempo order by \"INDEXE\" ")or die("erreur dans l'interogation de la table temporaire");$rep=mysql_query("DROP TABLE IF EXISTS $ago_tempo");$nbtables_dessin=$nb_table_2;$nb_total_mess=0;$nb_total_abon=0;$req=mysql_query("select LIEN_BRANCHE, LIEN_FEUILLE, LIEN_PUCE from $nom_table_index where NOM_TABLE=\"$nom_table_tela\"");$tabtemp=mysql_fetch_array($req);$lientela_botanica=$tabtemp["LIEN_BRANCHE"];$lientela_numero=$tabtemp["LIEN_FEUILLE"];$lientela_feuille=$tabtemp["LIEN_PUCE"];// $lientela_botanica=mysql_result($req,0,"LIEN_BRANCHE");// $lientela_numero=mysql_result($req,0,"LIEN_FEUILLE");// $lientela_feuille=mysql_result($req,0,"LIEN_PUCE");//--------------------------------------------------------------------------------------------------------------------------------------------//inclusion du moteurinclude ('php/frame/arbre/moteur_dessin.php');include ('php/frame/arbre/cartouche_arbre_date.php');//purge des résultats de requetesmysql_free_result($resreq);mysql_free_result($res);mysql_free_result($req);//fermeture de la connexion//mysql_close();//ici finit mon arbre...}//==============================================================================// FUNCTION putFooter ()//// Generation of footer.//==============================================================================function putFooter () {echo ' ';}//-- End of source ------------------------------------------------------------?>