source: spip-zone/_plugins_/hydraulic/branches/v0.3/formulaires/calcul_normale_critique.php @ 59311

Last change on this file since 59311 was 59311, checked in by m.dulondel@…, 8 years ago
  • Mise à jour des fichiers langues: Français et Anglais.
  • Ajout du formulaire calcul_normale_critique (encore brouillon, à améliorer).
  • Modification minime du css (tous les éléments sont désormais centrés).
  • Amélioration de la mise en page des formulaires existants.
File size: 4.6 KB
Line 
1<?php
2/*
3 * formulaires/calcul_normale_critique.php
4 *
5 *
6 *
7 * Copyright 2012 David Dorchies <dorch@dorch.fr>
8 *
9 *
10 *
11 * This program is free software; you can redistribute it and/or modify
12 *
13 * it under the terms of the GNU General Public License as published by
14 *
15 * the Free Software Foundation; either version 2 of the License, or
16 *
17 * (at your option) any later version.
18 *
19 *
20 *
21 * This program is distributed in the hope that it will be useful,
22 *
23 * but WITHOUT ANY WARRANTY; without even the implied warranty of
24 *
25 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
26 *
27 * GNU General Public License for more details.
28 *
29 *
30 *
31 * You should have received a copy of the GNU General Public License
32 *
33 * along with this program; if not, write to the Free Software
34 *
35 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
36 *
37 * MA 02110-1301, USA.
38 *
39 */
40
41function mes_saisies_normale_critique(){
42        $fieldset_champs_nc = array(
43       
44                                'FT'          => array(
45                                                                           'Définition de la section trapézoïdale',
46                                                                           array(
47                                                                                         'rLarg'  =>array('largeur_fond',2.5),
48                                                                                         'rFruit' =>array('fruit', 0.56, false)
49                                                                                        )
50                                ),
51                               
52                                'FR'          => array(
53                                                                           'Définition de la section rectangulaire',
54                                                                           array(
55                                                                                         'rLarg'  =>array('largeur_fond',2.5),
56                                                                                        )
57                                ),
58                                       
59                                'FC'          => array(
60                                                                           'Définition de la section circulaire',
61                                                                           array(
62                                                                                         'circ1'  =>array('champ_circulaire1',3),
63                                                                                         'circ2'  =>array('champ_circulaire2', 0.6)
64                                                                                        )
65                                ),
66                               
67                                'FP'          => array(
68                                                                           'Définition de la section puissance',
69                                                                           array(
70                                                                                         'puiss1' =>array('champs_puissance1',10),
71                                                                                         'puiss2' =>array('champs_puissance2', 0.7)
72                                                                                        )
73                                ),
74                               
75                                'Caract' => array(                             
76                                                                           'Caractéristiques',                                 
77                                                                           array(
78                                                                                         'rug'      =>array('rugosite_nc',50),
79                                                                                         'pente'    =>array('pente_nc', 50),
80                                                                                         'cote_eau' =>array('cote_eau_nc', 0.005),
81                                                                                         'debit'    =>array('debit_nc', 1.2)
82                                                                                        )
83                                )
84        );
85               
86  return $fieldset_champs_nc;
87}
88
89function champs_obligatoires_nc() {
90       
91        $tSaisie = mes_saisies_normale_critique();
92    $tChOblig = array();
93    $sTypeSection = _request('ncTypeSection');
94   
95    foreach($tSaisie as $IdFS=>$FieldSet) {
96                if((substr($IdFS,0,1) != 'F') || ($IdFS == $sTypeSection)){
97                        foreach($FieldSet[1] as $Cle=>$Champ) {
98                                if((!isset($Champ[2])) || (isset($Champ[2]) && $Champ[2])) {
99                                        $tChOblig[] = $IdFS.'_'.$Cle.'_nc';
100                                }
101                        }
102                }
103        }
104
105        return $tChOblig;
106}
107
108function formulaires_calcul_normale_critique_charger_dist() { 
109        // On charge les saisies et les champs qui nécessitent un accès par les fonctions
110        $tSaisie_nc = mes_saisies_normale_critique();
111       
112        $valeurs = array(
113                'ncTypeSection' => 'FT',
114                'mes_saisies' => $tSaisie_nc,
115                'choix_champs_rug'      => 'varier_val_rug',
116                'choix_champs_pente'    => 'val_fixe_pente',
117                'choix_champs_cote_eau' => 'val_fixe_cote_eau',
118                'choix_champs_debit'    => 'val_fixe_debit',
119        );
120   
121    foreach($tSaisie_nc as $CleFD=>$FieldSet) {
122                foreach($FieldSet[1] as $Cle=>$Champ) {
123                        $valeurs[$CleFD.'_'.$Cle.'_nc'] = $Champ[1];
124                }
125        }
126
127    return $valeurs;
128}
129
130function formulaires_calcul_normale_critique_verifier_dist(){
131    $erreurs = array();
132    $datas = array();
133    $tChOblig= champs_obligatoires_nc();
134    // Vérifier que les champs obligatoires sont bien là :
135    foreach($tChOblig as $obligatoire) {
136        if (!_request($obligatoire)) {
137                        $erreurs[$obligatoire] = _T('hydraulic:champ_obligatoire');
138        }
139        else {
140            $datas[$obligatoire] = _request($obligatoire);
141        }
142    }
143
144        // Gestion des valeurs négatives
145    foreach($datas as $champ=>$data) {
146        if ($data < 0) $erreurs[$champ] = _T('hydraulic:valeur_positive');
147    }
148   
149    if (count($erreurs)) {
150        $erreurs['message_erreur'] = _T('hydraulic:saisie_erreur');
151    }
152
153    return $erreurs;
154}
155
156function formulaires_normale_critique_traiter_dist(){
157
158         /***************************************************************************
159    *                        Calcul de Lechapt et calmon
160    ****************************************************************************/
161
162        /***************************************************************************
163    *                   Affichage du tableau de données
164    ****************************************************************************/
165
166    /***************************************************************************
167    *                        Affichage du graphique
168    ****************************************************************************/
169
170}
171?>
172
Note: See TracBrowser for help on using the repository browser.