Subversion Repositories Applications.projet

Compare Revisions

Ignore whitespace Rev 1 → Rev 2

/trunk/appli_arbre_date.php
New file
0,0 → 1,285
<?
//------------------------------------------------------------------------------
// 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 parametre
global $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_PUCE
from $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... puis
for($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 afficher
if ($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 -1
if ($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 messages
if ($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_sem
if ($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 base
for($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 moteur
include ('php/frame/arbre/moteur_dessin.php');
 
include ('php/frame/arbre/cartouche_arbre_date.php');
 
 
 
//purge des résultats de requetes
mysql_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 '&nbsp;';
}
 
//-- End of source ------------------------------------------------------------
?>