Changeset 45253 in spip-zone for _plugins_/cvt-multi-etapes


Ignore:
Timestamp:
Mar 8, 2011, 9:35:08 AM (9 years ago)
Author:
cedric@…
Message:

garantir l'unipotence de cvtm : en cas de double implementation les operations ne seront faites qu'une fois, par le premier appele

Location:
_plugins_/cvt-multi-etapes
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • _plugins_/cvt-multi-etapes/cvtm_pipelines.php

    r43028 r45253  
    6969                        if (!isset($store[$k])) // on ecrase pas si saisi a nouveau !
    7070                                $_REQUEST[$k] = $store[$k] = $v;
     71
     72                // vider pour eviter un second appel a verifier_n
     73                // en cas de double implementation (unipotence)
     74                set_request('cvtm_prev_post');
    7175                return array($c['_etape'],$c['_etapes']);
    7276        }
     
    8488 */
    8589function cvtm_sauver_post($form, $je_suis_poste, &$valeurs){
    86         $post = array('_etape'=>$valeurs['_etape'],'_etapes'=>$valeurs['_etapes']);
    87         foreach(array_keys($valeurs) as $champ){
    88                 if (substr($champ,0,1)!=='_'){
    89                         if ($je_suis_poste || (isset($valeurs['_forcer_request']) && $valeurs['_forcer_request'])) {
    90                                 if (($v = _request($champ))!==NULL)
    91                                         $post[$champ] = $v;
     90        if (!isset($valeurs['_cvtm_prev_post'])){
     91                $post = array('_etape'=>$valeurs['_etape'],'_etapes'=>$valeurs['_etapes']);
     92                foreach(array_keys($valeurs) as $champ){
     93                        if (substr($champ,0,1)!=='_'){
     94                                if ($je_suis_poste || (isset($valeurs['_forcer_request']) && $valeurs['_forcer_request'])) {
     95                                        if (($v = _request($champ))!==NULL)
     96                                                $post[$champ] = $v;
     97                                }
    9298                        }
    9399                }
    94         }
    95         include_spip('inc/filtres');
    96         $c = encoder_contexte_ajax($post,$form);
    97         if (!isset($valeurs['_hidden']))
    98                 $valeurs['_hidden'] = '';
    99         $valeurs['_hidden'] .= "<input type='hidden' name='cvtm_prev_post' value='$c' />";
     100                include_spip('inc/filtres');
     101                $c = encoder_contexte_ajax($post,$form);
     102                if (!isset($valeurs['_hidden']))
     103                        $valeurs['_hidden'] = '';
     104                $valeurs['_hidden'] .= "<input type='hidden' name='cvtm_prev_post' value='$c' />";
     105                // marquer comme fait, pour eviter double encodage (unipotence)
     106                $valeurs['_cvtm_prev_post'] = true;
     107        }
    100108        return $valeurs;
    101109}
  • _plugins_/cvt-multi-etapes/plugin.xml

    r43028 r45253  
    22        <nom>CVT-multi-etapes</nom>
    33        <auteur>[Cedric->yterium.net]</auteur>
    4         <version>0.1.3</version>
     4        <version>0.2.0</version>
    55        <etat>stable</etat>
    66        <description>Permet de faire facilement des CVT a plusieurs etapes. Voir le formulaires/demo dans le plugin pour plus de detail</description>
Note: See TracChangeset for help on using the changeset viewer.