Calculettes pour l'hydraulique
charge_datas.php
Aller à la documentation de ce fichier.
1 <?php
2 
3 /**
4  * Charge les données d'un formulaire avec choix des variables fixées, qui varient et à calculer
5  * @param $bLibelles Remplit la clé tlib avec les libellés traduits des variables
6  * @return un tableau avec les clés suivantes:
7  * - Couples clés/valeur des champs du formulaire
8  * - iPrec : nombre de décimales pour la précision des calculs
9  * - tLib: tableau avec couples clés/valeurs des libellés traduits des champs du formulaire
10  * - sLang : la langue en cours
11  * - CacheFileName : Le nom du fichier de cache
12  * - min, max, pas : resp. le min, le max et le pas de variation de la variable qui varie
13  * - i : pointeur vers la variable qui varie
14  * - ValCal : Nom de la variable à calculer
15  * - ValVar : Nom de la variable qui varie
16  * @author David Dorchies
17  * @date Juillet 2012
18  */
19 function charge_datas($bLibelles = true) {
20  global $spip_lang;
21 
22  $tChOblig = champs_obligatoires();
23  $tChCalc = champs_obligatoires(true);
24  spip_log($tChOblig,'hydraulic',_LOG_DEBUG);
25  $choix_radio = array();
26  $tLib = array();
27  $datas=array();
28  $datas['iPrec']=(int)-log10(_request('rPrec'));
29 
30  //On récupère les données
31  foreach($tChOblig as $champ) {
32  if (_request($champ)){
33  $datas[$champ] = _request($champ);
34  } else {
35  $datas[$champ] = 0.;
36  }
37  $datas[$champ] = str_replace(',','.',$datas[$champ]); // Bug #574
38  }
39  //spip_log($datas,'hydraulic');
40  // On ajoute la langue en cours pour différencier le fichier de cache par langue
41  $datas['sLang'] = $spip_lang;
42 
43  // Nom du fichier en cache pour calcul déjà fait
44  $datas['CacheFileName']=md5(serialize($datas));
45 
46  // On récupère les différents choix effectué sur les boutons radios ainsi que les libelles de tous les paramètres
47  foreach($tChCalc as $cle){
48  $choix_radio[$cle] = _request('choix_champs_'.$cle);
49  if($bLibelles) {$datas['tLib'][$cle] = _T('hydraulic:param_'.$cle);}
50  }
51 
52  $datas['min'] = 0;
53  $datas['max'] = 0;
54  $datas['pas'] = 1;
55  $datas['i'] = 0;
56 
57  foreach($choix_radio as $ind){
58  $decoup = explode('_', $ind, 3);
59  $sVar = $decoup[count($decoup)-1];
60  // Si il y a une valeur a calculer
61  if(substr($ind, 0, 3) == 'cal'){
62  $datas['ValCal'] = $sVar; // Stockage du nom de la variable à calculer
63  }
64  // Sinon si une valeur varie
65  else if(substr($ind, 0, 3) == 'var'){
66  // alors on récupère sa valeur maximum, minimum et son pas de variation
67  $datas['min'] = _request('val_min_'.$sVar);
68  $datas['max'] = _request('val_max_'.$sVar);
69  $datas['pas'] = _request('pas_var_'.$sVar);
70  // On fait pointer la variable qui varie sur l'indice de parcours du tableau i
71  $datas['ValVar'] = $sVar; // Stockage du nom de la variable qui varie
72  $datas[$sVar] = &$datas['i']; // Pointeur pour relier le compteur de boucle à la variable
73  }
74  }
75  // Pour afficher correctement la valeur maximum avec les pb d'arrondi des réels
76  $datas['max'] += $datas['pas']/2;
77 
78  return $datas;
79 }
80 ?>
charge_datas($bLibelles=true)
Charge les données d&#39;un formulaire avec choix des variables fixées, qui varient et à calculer...
champs_obligatoires($bCalc=false)