source: spip-zone/_plugins_/hydraulic/branches/v0.3/formulaires/calcul_ouvrages.php @ 60709

Last change on this file since 60709 was 60709, checked in by m.dulondel@…, 7 years ago
  • Correction du bug sur l'affichage du graphique lorqu'on choisit une section parabolique (formulaire courbe_remous).
  • Correction des scripts javascript qui ne fonctionnaient pas sur certains navigateurs.
  • Rajout du formulaire calcul_ouvrages (Structure html + traitement).
  • Property svn:executable set to *
File size: 5.1 KB
Line 
1<?php
2/**
3 *      @file formulaires/calcul_ouvrages.php
4 */
5
6/*      Copyright 2012 Médéric Dulondel
7 *
8 *      This program is free software; you can redistribute it and/or modify
9 *      it under the terms of the GNU General Public License as published by
10 *      the Free Software Foundation; either version 2 of the License, or
11 *      (at your option) any later version.
12 *
13 *      This program is distributed in the hope that it will be useful,
14 *      but WITHOUT ANY WARRANTY; without even the implied warranty of
15 *      MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
16 *      GNU General Public License for more details.
17 *
18 *      You should have received a copy of the GNU General Public License
19 *      along with this program; if not, write to the Free Software
20 *      Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
21 *      MA 02110-1301, USA.
22 */
23
24function numLoi(){
25
26        $numLoi = array(
27                1 => 'Déversoir/Orifice Cemagref 88',
28                2 => 'Vanne de fond/Seuil Cemagref 88',
29                3 => 'Seuil dénoyé',   
30                4 => 'Seuil noyé',
31                5 => 'Vanne dénoyé',
32                6 => 'Vanne noyé',
33                7 => 'Cunge 1980',
34                8 => 'Déversoir/Orifice Cemagref 02',
35                9 => 'Vanne de fond/Seuil Cemagref 02'
36        );
37       
38        return $numLoi;
39}
40
41function champsLib(){
42       
43        $libVar = array(
44                'L'  => array('largeur', 2.5),
45                'W'  => array('ouverture', 0.56),
46                'C'  => array('coeffDebit', 0.25),
47                'LF' => array('largeur_fond', 2.5),
48                'CR' => array('cDebitRect', 0.5),
49                'CT' => array('cDebitTria', 0.5),
50                'F'  => array('fruit', 0.56)
51        );
52       
53        return $libVar;
54}
55
56function mes_saisies_surverse(){
57        $num_equation = array(1, 2, 3, 4, 7);
58        $numLoi = numLoi();
59        $surverse = array(
60                'hpelle'    => array('haut_pelle', 5),
61                'cdebit'    => array('coeffDebit', 0.25)       
62        );
63       
64        foreach($num_equation as $valeur){
65                $surverse['loi_debit'][] = array($valeur, $numLoi[$valeur]);
66        }
67
68        return $surverse;
69}
70
71function mes_saisies_caract_fixe(){
72        $caract_fixe = array(
73                array(
74                        'caract_globale',
75             array(
76                                        'rQ'    =>array('debit', 1.2),
77                    'cAm'   =>array('cote_amont', 2.1),
78                    'cAv'   =>array('cote_aval', 2.1),                         
79                  )
80        ),
81       
82        array(
83                        'param_calcul',
84             array(
85                                        'rPrec' =>array('precision', 0.001)                                         
86                  )
87        )
88        );
89       
90        return $caract_fixe;   
91}
92
93function mes_saisies_ouvrages(){
94        $numLoi = numLoi();
95        $champsLib = champsLib();
96        $mes_saisies = array(
97                'vRect' => array(
98                        'vanne_rect',
99            array( 'L', 'W', 'C'),
100            array(1, 2, 5, 6, 7),
101            true
102                ),
103 
104                'vCirc' => array(
105                        'vanne_circ',
106            array( 'L', 'W', 'C'),
107            array(1, 2, 5, 6, 7),
108            true
109                ),
110               
111                'sRect' => array(
112                        'seuil_rect',
113            array( 'L', 'C'),
114            array(1, 2, 3, 4, 7),
115            false
116                ),
117               
118                'sTrap' => array(
119                        'seuil_trap',
120            array( 'LF', 'F', 'CR', 'CT'),
121            array(8,9),
122            false
123                ),
124               
125                'vTrap' => array(
126                        'vanne_trap',
127            array( 'LF', 'F', 'CR', 'CT'),
128            array(8,9),
129            true
130                ),
131        );
132               
133        $mes_saisies_ouv = array();
134       
135        foreach($mes_saisies as $cleF=>$valeurTab){
136                $mes_saisies_ouv[$cleF][0] = $valeurTab[0];
137                foreach($valeurTab[1] as $valeur){
138                        $mes_saisies_ouv[$cleF][1][$valeur]= $champsLib[$valeur];       
139                }
140                foreach($valeurTab[2] as $valeur){
141                        $mes_saisies_ouv[$cleF][2][]= array($valeur, $numLoi[$valeur]); 
142                }
143                $mes_saisies_ouv[$cleF][3] = $valeurTab[3];
144        }
145        return $mes_saisies_ouv;
146       
147}
148
149function formulaires_calcul_ouvrages_charger_dist() {
150    // On charge les saisies et les champs qui nécessitent un accès par les fonctions
151    $choixOuv = mes_saisies_ouvrages();
152    $champsLib = champsLib();
153    $numLoi = numLoi();
154    $champs_surverse = mes_saisies_surverse();
155    $caract_fixes = mes_saisies_caract_fixe();
156    $valeurs = array(
157        'choixOuvrage' => 'vRect',
158        'choixEquation'=> 1,
159        'equatSurverse' => 1,
160        'afficher_surverse' => _request('afficher_surverse'),
161        'mes_saisies'  => $choixOuv,
162        'saisie_equat' => $champsLib,
163        'numLoi'       => $numLoi,
164        'surverse'     => $champs_surverse,     
165        'caract_fixes' => $caract_fixes
166    );
167       
168        foreach($choixOuv as $cleF=>$valeurF){
169                $cpt = 0;
170                foreach($valeurF[1] as $cle=>$valeur){
171                        if($cpt == 0){
172                                $valeurs['choix_champs_'.$cle] = 'calcul_val_'.$cle;
173                                $cpt++;
174                        }
175                        else{
176                                $valeurs['choix_champs_'.$cle] = 'val_fixe_'.$cle;
177                        }       
178                        $valeurs[$cle] = $valeur[1];
179                        $valeurs['val_min_'.$cle] = 1;
180                        $valeurs['val_max_'.$cle] = 2;
181                        $valeurs['pas_var_'.$cle] = 0.1;
182                }       
183        }
184       
185        foreach($champs_surverse as $cle=>$valeur){
186                if($cle !== 'loi_debit'){
187                        $valeurs[$cle] = $valeur[1];
188                        $valeurs['choix_champs_'.$cle] = 'val_fixe_'.$cle;
189                        $valeurs['val_min_'.$cle] = 1;
190                        $valeurs['val_max_'.$cle] = 2;
191                        $valeurs['pas_var_'.$cle] = 0.1;
192                }
193        }
194       
195        foreach($caract_fixes as $cleF=>$valeurF){
196                foreach($valeurF[1] as $cle=>$valeur){
197                        $valeurs[$cle] = $valeur[1];
198                        $valeurs['choix_champs_'.$cle] = 'val_fixe_'.$cle;
199                        $valeurs['val_min_'.$cle] = 1;
200                        $valeurs['val_max_'.$cle] = 2;
201                        $valeurs['pas_var_'.$cle] = 0.1;
202                }               
203        }
204    return $valeurs;
205}
206
207?>
208
Note: See TracBrowser for help on using the repository browser.