Subversion Repositories Applications.papyrus

Rev

Rev 448 | 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 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  ------------------------------------------------------------
?>