Changeset 59103 in spip-zone


Ignore:
Timestamp:
Mar 6, 2012, 1:05:52 PM (8 years ago)
Author:
m.dulondel@…
Message:
 
Location:
_plugins_/hydraulic/branches/v0.3
Files:
5 added
6 edited

Legend:

Unmodified
Added
Removed
  • _plugins_/hydraulic/branches/v0.3/formulaires/courbe_remous.html

    r56971 r59103  
    11[<div class='hyd_formulaire_erreur '><span>(#ENV*{message_erreur})</span></div>]
    2 <form method="post" action="#ENV{action}">
     2<script>
     3function afficher_cacher() {
     4       
     5        var section = getSelectValue('choix_section');
     6    var f = document.getElementById("form_courbe_remous");
     7    if(f) {
     8       var champs = f.getElementsByTagName("tr");
     9       for(var i=0, n=champs.length; i<n; i++) {
     10                   
     11                   
     12          if((champs[i].getAttribute("id") != null) &&((champs[i].getAttribute("id")).substr(0,2) == section)){
     13                                document.getElementById((champs[i].getAttribute("id"))).style.display='table-row';
     14                               
     15                  }
     16                  else if((champs[i].getAttribute("id") != null) &&((champs[i].getAttribute("id")).substr(0,1) == 'F')) {
     17                                document.getElementById((champs[i].getAttribute("id"))).style.display='none';
     18
     19                 }
     20                       
     21           }
     22    }
     23       
     24}
     25</script>
     26
     27<form method="post" action="#ENV{action}" id="form_courbe_remous">
    328   #ACTION_FORMULAIRE{#ENV{action}}
    429   <table class="hyd_formulaire">
    530      <tbody>
    6          <tr><td colspan="2"><div class="hyd_formulaire_chapitre"><:hydraulic:def_section_trap:></div></td></tr>
    7          <tr>
    8             <td align="right">
    9                <:hydraulic:largeur_fond:> :
    10             </td>
    11             <td>
    12                <input type="text" value="#ENV{rLarg}" maxlength="30" name="rLarg">
    13                [<div class='hyd_erreur'>(#ENV**{erreurs}|table_valeur{rLarg})</div>]
    14             </td>
    15          </tr>
    16          <tr>
    17             <td align="right">
    18                <:hydraulic:fruit:> :
    19             </td>
    20             <td>
    21                <input type="text" value="#ENV{rFruit}" maxlength="30" name="rFruit">
    22                [<div class='hyd_erreur'>(#ENV**{erreurs}|table_valeur{rFruit})</div>]
    23             </td>
    24          </tr>
    25          <tr><td colspan="2"><div class="hyd_formulaire_chapitre"><:hydraulic:caract_bief:></div></td></tr>
    26          <tr>
    27             <td align="right"><:hydraulic:coef_strickler:> :</td>
    28             <td>
    29                <input type="text" value="#ENV{rKs}" maxlength="30" name="rKs">
    30                [<div class='hyd_erreur'>(#ENV**{erreurs}|table_valeur{rKs})</div>]
    31             </td>
    32          </tr>
    33          <tr>
    34             <td align="right"><:hydraulic:longueur_bief:> :</td>
    35             <td><input type="text" value="#ENV{rLong}" maxlength="30" name="rLong"></td>
    36                [<div class='hyd_erreur'>(#ENV**{erreurs}|table_valeur{rLong})</div>]
    37          </tr>
    38          <tr>
    39             <td align="right"><:hydraulic:pente_fond:> :</td>
    40             <td><input type="text" value="#ENV{rIf}" maxlength="30" name="rIf"></td>
    41                [<div class='hyd_erreur'>(#ENV**{erreurs}|table_valeur{rIf})</div>]
    42          </tr>
    43          <tr><td colspan="2"><div class="hyd_formulaire_chapitre"><:hydraulic:condition_limite:></div></td></tr>
    44          <tr>
    45             <td align="right"><:hydraulic:debit_amont:> :</td>
    46             <td><input type="text" value="#ENV{rQ}" maxlength="30" name="rQ"></td>
    47                [<div class='hyd_erreur'>(#ENV**{erreurs}|table_valeur{rQ})</div>]
    48          </tr>
    49          <tr>
    50             <td align="right"><:hydraulic:h_aval_imposee:> :</td>
    51             <td>
    52                <input type="text" value="#ENV{rYaval}" maxlength="30" name="rYaval">
    53                [<div class='hyd_erreur'>(#ENV**{erreurs}|table_valeur{rYaval})</div>]
    54             </td>
    55          </tr>
    56          <tr>
    57             <td align="right"><:hydraulic:h_amont_imposee:> :</td>
    58             <td>
    59                <input type="text" value="#ENV{rYamont}" maxlength="30" name="rYamont">
    60                [<div class='hyd_erreur'>(#ENV**{erreurs}|table_valeur{rYamont})</div>]
    61             </td>
    62          </tr>
    63          <tr><td colspan="2"><div class="hyd_formulaire_chapitre"><:hydraulic:param_calcul:></div></td></tr>
    64          <tr>
    65             <td align="right"><:hydraulic:pas_discret:> :</td>
    66             <td><input type="text" value="#ENV{rDx}" maxlength="30" name="rDx"></td>
    67                [<div class='hyd_erreur'>(#ENV**{erreurs}|table_valeur{rDx})</div>]
    68          </tr>
    69          <tr>
    70             <td align="right"><:hydraulic:precision_calc:> :</td>
    71             <td><input type="text" value="#ENV{rPrec}" maxlength="30" name="rPrec"></td>
    72                [<div class='hyd_erreur'>(#ENV**{erreurs}|table_valeur{rPrec})</div>]
    73          </tr>
     31                        <tr id="type_section_field">
     32                                <td colspan="2"><div class="hyd_formulaire_chapitre">Type de section</div></td>
     33                        </tr>
    7434
    75          <tr>
    76             <td colspan="2" class="hyd_bouton_submit">
    77                <input type="submit" value=" <:hydraulic:calculer_remous:>">
    78                </td>
    79          </tr>
     35                        <tr id="type_section_choix">
     36                                <td align="right">
     37                                        Choix de la section
     38                                </td>
     39                                               
     40                                <td>
     41                                        <select name="lTypeSection" id="choix_section" onChange="afficher_cacher();">
     42                                                <option value="FT" [(#ENV{lTypeSection}|=={'FT'}|?{'selected',''})]>Section Trapézoïdale</option>
     43                                                <option value="FR" [(#ENV{lTypeSection}|=={'FR'}|?{'selected',''})]>Section Rectangulaire</option>
     44                                                <option value="FC" [(#ENV{lTypeSection}|=={'FC'}|?{'selected',''})]>Section circulaire</option>
     45                                                <option value="FP" [(#ENV{lTypeSection}|=={'FP'}|?{'selected',''})]>Section Puissance</option>
     46                                        </select>
     47                 
     48                                        [<div class='hyd_erreur'>(#ENV**{erreurs}|table_valeur{[(#VALEUR|table_valeur{0})]})</div>]
     49                                </td>
     50                                               
     51                        </tr>
     52                       
     53               
     54            <BOUCLE_fieldChamps(POUR){tableau #ENV{mes_saisies}}>
     55                               
     56                                 #SET{id_fieldset, #CLE}
     57                               
     58                                 <tr id="#GET{id_fieldset}_field" style="display:[(#CLE|match{^([(#ENV{lTypeSection})]|Caract_bief|Cond_lim|Param_calc)$}|?{'table-row','none'})];">
     59                                                                               
     60                                         <td colspan="2"><div class="hyd_formulaire_chapitre">[(#VALEUR|table_valeur{0})]</div></td>
     61                                </tr>
     62                               
     63                                <BOUCLE_champsLib(POUR){tableau (#VALEUR|table_valeur{1})}>
     64                                                                               
     65                                        <tr id="#GET{id_fieldset}_#CLE" style="display:[(#GET{id_fieldset}|match{^([(#ENV{lTypeSection})]|Caract_bief|Cond_lim|Param_calc)$}|?{'table-row','none'})];">
     66                                                <td align="right">
     67                                                        [(#VALEUR|table_valeur{0}|traduction_libelle)]         
     68                                                </td>
     69                                               
     70                                                <td>
     71                                                   <input type="text" value="[(#ENV{#GET{id_fieldset}_#CLE})]" maxlength="30" name="#GET{id_fieldset}_#CLE">
     72                                                   [<div class='hyd_erreur'>(#ENV**{erreurs}|table_valeur{#GET{id_fieldset}_#CLE})</div>]
     73                                                </td>
     74                                               
     75                                        </tr>
     76                                       
     77                                </BOUCLE_champsLib>
     78
     79                        </BOUCLE_fieldChamps>
     80
     81                        <tr>
     82                                <td colspan="2" class="hyd_bouton_submit">
     83                                   <input type="submit" value=" <:hydraulic:calculer_remous:>">
     84                                </td>
     85                        </tr>
     86                       
    8087      </tbody>
    8188   </table>
  • _plugins_/hydraulic/branches/v0.3/formulaires/courbe_remous.php

    r58731 r59103  
    3939 */
    4040
    41 function formulaires_courbe_remous_charger_dist() {
    42     $valeurs = array(
    43         'rLarg'=>2.5,
    44         'rFruit'=>0.56,
    45         'rYaval'=>0.6,
    46         'rYamont'=>0.15,
    47         'rKs'=>50,
    48         'rQ'=>2,
    49         'rLong'=>50,
    50         'rIf'=>0.005,
    51         'rDx'=>5,
    52         'rPrec'=>0.001);
     41function mes_saisies_section() {
     42
     43        $fieldset_champs = array(
     44       
     45                                'FT'          => array(
     46                                                                           'Définition de la section trapézoïdale',
     47                                                                           array(
     48                                                                                         'rLarg'  =>array('largeur_fond',2.5),
     49                                                                                         'rFruit' =>array('fruit', 0.56, false)
     50                                                                                        )
     51                                ),
     52                               
     53                                'FR'          => array(
     54                                                                           'Définition de la section rectangulaire',
     55                                                                           array(
     56                                                                                         'rLarg'  =>array('largeur_fond',2.5),
     57                                                                                        )
     58                                ),
     59                                       
     60                                'FC'          => array(
     61                                                                           'Définition de la section circulaire',
     62                                                                           array(
     63                                                                                         'circ1'  =>array('champ_circulaire1',3),
     64                                                                                         'circ2'  =>array('champ_circulaire2', 0.6)
     65                                                                                        )
     66                                ),
     67                               
     68                                'FP'          => array(
     69                                                                           'Définition de la section puissance',
     70                                                                           array(
     71                                                                                         'puiss1' =>array('champs_puissance1',10),
     72                                                                                         'puiss2' =>array('champs_puissance2', 0.7)
     73                                                                                        )
     74                                ),
     75                               
     76                                'Caract_bief' => array(                         
     77                                                                           'Caractéristiques du bief',                                 
     78                                                                           array(
     79                                                                                         'rKs'    =>array('coef_strickler',50),
     80                                                                                         'rLong'  =>array('longueur_bief', 50),
     81                                                                                         'rIf'    =>array('pente_fond', 0.005)
     82                                                                                        )
     83                                ),
     84                                                                                                                       
     85                                'Cond_lim'    => array(                                                                                 
     86                                                                           'Conditions aux limites',                   
     87                                                                           array(
     88                                                                                         'rQ'     =>array('debit_amont', 2),
     89                                                                                         'rYaval' =>array('h_aval_imposee', 0.6),
     90                                                                                         'rYamont'=>array('h_amont_imposee', 0.15)
     91                                                                                        )
     92                                ),
     93                                                               
     94                                'Param_calc'  => array(                                                                 
     95                                                                           'Paramètres de calcul',             
     96                                                                           array(                                               
     97                                                                                         'rDx'    =>array('pas_discret', 5),
     98                                                                                         'rPrec'  =>array('precision_calc', 0.001)
     99                                                                                        )
     100                                )
     101        );
     102               
     103  return $fieldset_champs;
     104 
     105}
     106
     107function champs_obligatoires() {
     108       
     109        $tSaisie = mes_saisies_section();
     110    $tChOblig = array();
     111    $sTypeSection = _request('lTypeSection');
     112   
     113    foreach($tSaisie as $IdFS=>$FieldSet) {
     114                if((substr($IdFS,0,1) != 'F') || ($IdFS == $sTypeSection)){
     115                        foreach($FieldSet[1] as $Cle=>$Champ) {
     116                                if((!isset($Champ[2])) || (isset($Champ[2]) && $Champ[2])) {
     117                                        $tChOblig[] = $IdFS.'_'.$Cle;
     118                                }
     119                        }
     120                }
     121        }
     122        return $tChOblig;
     123}
     124
     125function formulaires_courbe_remous_charger_dist() {
     126    // On charge les saisies et les champs qui nécessitent un accès par les fonctions
     127        $tSaisie_section = mes_saisies_section();
     128        $valeurs = array(
     129                'lTypeSection' => 'FT',
     130                'mes_saisies' => $tSaisie_section       
     131        );
     132   
     133    foreach($tSaisie_section as $CleFD=>$FieldSet) {
     134                foreach($FieldSet[1] as $Cle=>$Champ) {
     135                                $valeurs[$CleFD.'_'.$Cle] = $Champ[1];
     136                }
     137        }
    53138
    54139    return $valeurs;
     
    58143    $erreurs = array();
    59144    $datas = array();
     145   
     146    $tChOblig= champs_obligatoires();
    60147    // verifier que les champs obligatoires sont bien là :
    61     foreach(array('rLarg','rYaval','rYamont','rKs','rQ','rLong','rIf','rDx','rPrec') as $obligatoire) {
     148    foreach($tChOblig as $obligatoire) {
    62149        if (!_request($obligatoire)) {
    63150            $erreurs[$obligatoire] = _T('hydraulic:champ_obligatoire');}
     
    74161        $erreurs['message_erreur'] = _T('hydraulic:saisie_erreur');
    75162    }
     163       
    76164    return $erreurs;
    77165}
     
    90178    $datas = array();
    91179    $echo = '';
    92     // On récupère les données
    93     foreach(array('rLarg','rFruit','rYaval','rYamont','rKs','rQ','rLong','rIf','rDx','rPrec') as $champ) {
    94         if (_request($champ)) $datas[$champ] = _request($champ);
    95         $datas[$champ] = str_replace(',','.',$datas[$champ]); // Bug #574
     180    $tSaisie = mes_saisies_section();
     181    $tChUtil = array();
     182    $lTypeSection = _request('lTypeSection');
     183
     184    foreach($tSaisie as $IdFS=>$FieldSet) {
     185                if((substr($IdFS,0,1) != 'F') || ($IdFS == $lTypeSection)){
     186                        foreach($FieldSet[1] as $Cle=>$Champ) {
     187                                        $tChUtil[] = $IdFS.'_'.$Cle;
     188                        }
     189                }
     190        }
     191       
     192    //On récupère les données
     193    foreach($tChUtil as $champ) {
     194        if (_request($champ)){
     195                        $datas[$champ] = _request($champ);
     196                }
     197               
     198                $datas[$champ] = str_replace(',','.',$datas[$champ]); // Bug #574
    96199    }
    97200
     
    109212        ${$champ}=$data;
    110213    }
    111 
    112     // Initialisation du format d'affichage des réels
    113     $iPrec=(int)-log10($rPrec);
    114 
     214   
     215        // Initialisation du format d'affichage des réels
     216    $iPrec=(int)-log10($Param_calc_rPrec);
     217       
    115218    // Contrôle du nombre de pas d'espace maximum
    116219    $iPasMax = 1000;
    117     if($rLong / $rDx > $iPasMax) {
    118         $rDx = $rLong / $iPasMax;
    119         $oLog->Add(_T('hydraulic:pas_nombre').' > '.$iPasMax.' => '._T('hydraulic:pas_ajustement').$rDx.' m');
    120     }
    121 
     220    if($Caract_bief_rLong / $Param_calc_rDx > $iPasMax) {
     221        $Param_calc_rDx = $Caract_bief_rLong / $iPasMax;
     222        $oLog->Add(_T('hydraulic:pas_nombre').' > '.$iPasMax.' => '._T('hydraulic:pas_ajustement').$Param_calc_rDx.' m');
     223    }
     224        spip_log(array($Cond_lim_rYaval,$Caract_bief_rKs,$Cond_lim_rQ,$Caract_bief_rLong,$Caract_bief_rIf,$Param_calc_rDx,$Param_calc_rPrec),'hydraulic');
    122225    // Enregistrement des paramètres dans les classes qui vont bien
    123     $oParam= new cParam($rYaval,$rKs,$rQ,$rLong,$rIf,$rDx,$rPrec);
    124     $oSection=new cSnTrapeze($oParam,$rLarg,$rFruit);
     226    $oParam= new cParam($Cond_lim_rYaval,$Caract_bief_rKs,$Cond_lim_rQ,$Caract_bief_rLong,$Caract_bief_rIf,$Param_calc_rDx,$Param_calc_rPrec);
     227       
     228    switch($lTypeSection) {
     229                case 'FT':
     230                        $oSection=new cSnTrapeze($oParam,$FT_rLarg,$FT_rFruit);
     231                break; 
     232               
     233                case 'FR':
     234                        $oSection=new cSnRectangulaire($oParam,$FR_rLarg);
     235                break;
     236               
     237                case 'FC':
     238                        echo 'circulaire';
     239                break;
     240               
     241                case 'FP':
     242                        echo 'puissance';
     243                       
     244                default:
     245                        $oSection=new cSnTrapeze($oParam,$FT_rLarg,$FT_rFruit);
     246        }
     247   
    125248
    126249
     
    138261
    139262        // Calcul depuis l'aval
    140         if($oSection->rHautCritique <= $rYaval) {
     263        if($oSection->rHautCritique <= $Cond_lim_rYaval) {
    141264            $oLog->Add(_T('hydraulic:calcul_fluvial'));
    142265            list($tr['X1'],$tr['Y1']) = calcul_courbe_remous($oParam,$oSection,$oLog,$iPrec);
     
    147270
    148271        // Calcul depuis l'amont
    149         if($oSection->rHautCritique >= $rYamont) {
     272        if($oSection->rHautCritique >= $Cond_lim_rYamont) {
    150273            $oLog->Add(_T('hydraulic:calcul_torrentiel'));
    151             $oParam->rYCL = $rYamont; // Condition limite amont
     274            $oParam->rYCL = $Cond_lim_rYamont; // Condition limite amont
    152275            $oParam->rDx = -$oParam->rDx; // un pas négatif force le calcul à partir de l'amont
    153276            list($tr['X2'],$tr['Y2']) = calcul_courbe_remous($oParam,$oSection,$oLog,$iPrec);
     
    216339
    217340    // Décalage des données par rapport au fond
    218     $oGraph->Decal(0, $rIf, $rLong);
     341    $oGraph->Decal(0, $Caract_bief_rIf, $Caract_bief_rLong);
    219342
    220343    // Récupération du graphique
  • _plugins_/hydraulic/branches/v0.3/hyd_inc/section.class.php

    r58731 r59103  
    293293   public $rLargeurFond; /// largeur au fond
    294294
    295     function __construct($oP,$rLargeurFond, $rFruit) {
     295    function __construct($oP,$rLargeurFond) {
    296296        $this->rLargeurFond=(real) $rLargeurFond;
    297297        parent::__construct($oP);
  • _plugins_/hydraulic/branches/v0.3/hydraulic_pipelines.php

    r57841 r59103  
    99            <script language="javascript" type="text/javascript" src="'.url_absolue(find_in_path('lib/dist/jquery.min.js')).'"></script>
    1010            <script language="javascript" type="text/javascript" src="'.url_absolue(find_in_path('lib/dist/jquery.jqplot.min.js')).'"></script>
    11             <script type="text/javascript" src="'.url_absolue(find_in_path('lib/dist/plugins/jqplot.cursor.min.js')).'"></script>'."\n";
     11            <script type="text/javascript" src="'.url_absolue(find_in_path('lib/dist/plugins/jqplot.cursor.min.js')).'"></script>
     12            <script language="javascript" type="text/javascript" src="'.url_absolue(find_in_path('js/hyd_fonctions.js')).'"></script>'."\n";
    1213   $flux .= "\n<!-- Fin Plugin hydraulic -->\n";
    1314   return $flux;
  • _plugins_/hydraulic/branches/v0.3/modeles/hyd_courberemous.html

    r56649 r59103  
    44]
    55#FORMULAIRE_COURBE_REMOUS
     6#FORMULAIRE_LECHAPT_CALMON
  • _plugins_/hydraulic/branches/v0.3/plugin.xml

    r57841 r59103  
    3131        <etat>dev</etat>
    3232        <prefix>hydraulic</prefix>
     33        <fonctions>hydraulic_traductions.php</fonctions>
    3334        <pipeline>
    3435                <nom>insert_head</nom>
Note: See TracChangeset for help on using the changeset viewer.