Calculettes pour l'hydraulique
affiche_resultats.php
Aller à la documentation de ce fichier.
1 <?php
2 
3 /**
4  * Renvoie un tableau formaté à partir d'un array à deux dimensions
5  * @param $tContent Tableau à 2 dimensions contenant les cellules [ligne][colonne]
6  * @param $tEntetes Tableau contenant les entêtes de colonne
7  */
8 function GetResultTable($tContent,$tEntetes=false) {
9  // On génère les entêtes du tableau de résulats
10  $echo='<table class="spip">';
11 
12  if($tEntetes) {
13  $echo.='<thead>
14  <tr class="row_first">';
15  foreach($tEntetes as $s){
16  $echo.= '<th scope="col" rowspan="2">'.$s.'</th>';
17  }
18  $echo.= '</tr>
19  </thead>';
20  }
21  $echo.='<tbody>';
22  $i=0;
23  foreach($tContent as $Ligne){
24  $i++;
25  $echo.= '<tr class="align_right ';
26  $echo.=($i%2==0)?'row_even':'row_odd';
27  $echo.='">';
28  foreach($Ligne as $Cellule){
29  $echo.= '<td>'.$Cellule.'</td>';
30  }
31  $echo.= '</tr>';
32  }
33  $echo.= '</tbody>
34  </table>';
35  return $echo;
36 }
37 
38 
39 /**
40  * Renvoie Le résultat sous la forme de tableaux et graphiques
41  * @param $datas Tableau contenant :
42  * - la valeur de tous les paramètres répertoriés par leur clé
43  * - les clés de la variable à calculer et de la variable qui varie (ValCal et ValVar)
44  * - Un tableau des libellés de tous les paramètres (clé tLib)
45  * - Le nombre de décimales pour la précision d'affichage (clé iPrec)
46  * @param $tAbs Tableau contenant les abscisses du résultat (paramètre qui varie)
47  * @param $tRes Tableau contenant les résultats du calcul
48  * @param $tFlag Tableau contenant les flags du résultats du calcul
49  */
50 function AfficheResultats($datas, $tAbs, $tRes, $tFlag=false) {
51  $echo = '';
52  $tLib = $datas['tLib'];
53  if(!isset($datas['ValVar'])) {
54  $datas['ValVar']='';
55  }
56  // Affichage des paramètres fixes
57  $tCnt = array();
58  foreach($tLib as $k=>$s) {
59  if(!in_array($k,array($datas['ValCal'],$datas['ValVar']))) {
60  $tCnt[]=array($s,format_nombre($datas[$k], $datas['iPrec']));
61  }
62  $tEnt = array(_T('hydraulic:param_fixes'),_T('hydraulic:valeurs'));
63  }
64  // Si il n'y a pas de valeur à varier on ajoute le résultat et le flag de calcul s'il existe
65  if(!$datas['ValVar']) {
66  $tCnt[]=array('<b>'.$tLib[$datas['ValCal']].'</b>','<b>'.format_nombre($tRes[0], $datas['iPrec']).'</b>');
67  if($tFlag) {
68  spip_log($tFlag,'hydraulic.'._LOG_DEBUG);
69  $tCnt[]= array(_T('hydraulic:type_ecoulement'),_T('hydraulic:flag_'.$tFlag[0]));
70  }
71  }
72  $tableau_fixe = GetResultTable($tCnt,$tEnt);
73 
74  // Affichage d'un tableau pour un paramètre qui varie
75  if($datas['ValVar']) {
76  $tCnt=array();
77  foreach($tAbs as $k=>$Abs){
78  $tCnt[] = array(format_nombre($Abs, $datas['iPrec']),format_nombre($tRes[$k], $datas['iPrec']));
79  }
80  $tEnt = array($tLib[$datas['ValVar']],$tLib[$datas['ValCal']]);
81  $tableau_variable = GetResultTable($tCnt,$tEnt);
82 
83  // Si la première valeur est infinie alors ...
84  if(is_infinite($tRes[0])){
85  // ... on supprime cette valeur
86  unset($tRes[0]);
87  // ... on tasse le tableau des résultats
88  $tRes = array_values($tRes);
89  // ... on supprime l'abscisse correspond
90  unset($tAbs[0]);
91  // ... on tasse le tableau des abscisses
92  $tAbs = array_values($tAbs);
93  }
94 
95  /***************************************************************************
96  * Affichage du graphique
97  ****************************************************************************/
98  include_spip('hyd_inc/graph.class');
99  $oGraph = new cGraph('',$tLib[$datas['ValVar']],'');
100  if(isset($tRes)) {
101  $oGraph->AddSerie(
102  _T('hydraulic:param_'.$datas['ValCal']),
103  $tAbs,
104  $tRes,
105  '#00a3cd',
106  'lineWidth:3, showMarker:true, markerOptions:{style:\'filledCircle\', size:8}');
107  }
108  // Récupération du graphique
109  $graph = $oGraph->GetGraph('graphique',400,600);
110  $echo = $graph."\n";
111  }
112  $echo .= '<table class="hyd_graph"><tr><td>'.$tableau_fixe.'</td>';
113  if(isset($tableau_variable)) {
114  $echo .= '<td width="5%">&nbsp;</td><td>'.$tableau_variable.'</td>';
115  }
116  $echo .= '</tr></table>';
117  return $echo;
118 }
119 
120 ?>
AfficheResultats($datas, $tAbs, $tRes, $tFlag=false)
Renvoie Le résultat sous la forme de tableaux et graphiques.
GetResultTable($tContent, $tEntetes=false)
Renvoie un tableau formaté à partir d&#39;un array à deux dimensions.
Classe pour l&#39;affichage des graphiques.
Definition: graph.class.php:48
format_nombre($nombre, $dec)
Definition: cache.php:55