Changeset 82447 in spip-zone


Ignore:
Timestamp:
May 16, 2014, 11:56:12 AM (5 years ago)
Author:
brunobergot@…
Message:

version 0.8.5 : réparer l'enregistrement des données quand deux formulaires sont présents sur une même page

report adapté de r80690 qui fix ce bug dans le trunk, car en récupérant id_formulaire avec _request dans les traitements on récupérait à tord l'id du formulaire précédemment posté depuis l'url de la page

Location:
_plugins_/formidable/branches/v0
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • _plugins_/formidable/branches/v0/formulaires/formidable.php

    r75995 r82447  
    99include_spip('inc/autoriser');
    1010
     11function formidable_id_formulaire($id){
     12        if (intval($id)>0)
     13                $where = 'id_formulaire = ' . intval($id);
     14        elseif (is_string($id))
     15                $where = 'identifiant = ' . sql_quote($id);
     16        else
     17                return 0;
     18
     19        $id_formulaire = intval(sql_getfetsel('id_formulaire','spip_formulaires',$where));
     20        return $id_formulaire;
     21}
     22
    1123/**
    1224 * Formulaire CVT de Formidable.
    1325 * Genere le formulaire dont l'identifiant (numerique ou texte est indique)
    1426 *
    15  * @param mixed $id_formulaire identifiant numerique ou textuel
     27 * @param int|string $id identifiant numerique ou textuel
    1628 * @param array $valeurs valeurs par defauts passes au contexte du formulaire
    1729 *        exemple : array('hidden_1' => 3) pour que champ identifie "@hidden_1@" soit prerempli
     
    2133 * @return array $contexte : le contexte envoye au squelette HTML du formulaire.
    2234**/
    23 function formulaires_formidable_charger($id_formulaire, $valeurs=array(), $id_formulaires_reponse=false){
     35function formulaires_formidable_charger($id, $valeurs=array(), $id_formulaires_reponse=false){
    2436        $contexte = array();
    2537       
    2638        // On peut donner soit un id soit un identifiant
    27         if (intval($id_formulaire) > 0)
    28                 $where = 'id_formulaire = '.intval($id_formulaire);
    29         elseif (is_string($id_formulaire))
    30                 $where = 'identifiant = '.sql_quote($id_formulaire);
    31         else
     39        if (!$id_formulaire = formidable_id_formulaire($id))
    3240                return;
    3341       
    3442        // On cherche si le formulaire existe
    35         if ($formulaire = sql_fetsel('*', 'spip_formulaires', $where)){
     43        if ($formulaire = sql_fetsel('*', 'spip_formulaires', 'id_formulaire = ' . intval($id_formulaire))){
    3644                // Est-ce que la personne a le droit de répondre ?
    3745                if (autoriser('repondre', 'formulaire', $formulaire['id_formulaire'], null, array('formulaire'=>$formulaire))){
     
    112120
    113121
    114 function formulaires_formidable_verifier($id_formulaire, $valeurs=array(), $id_formulaires_reponse=false){
     122function formulaires_formidable_verifier($id, $valeurs=array(), $id_formulaires_reponse=false){
    115123        $erreurs = array();
     124       
     125        // On peut donner soit un id soit un identifiant
     126        if (!$id_formulaire = formidable_id_formulaire($id))
     127                return;
    116128       
    117129        // Sale bête !
     
    121133        }
    122134       
    123         $id_formulaire = intval(_request('id_formulaire'));
    124135        $formulaire = sql_fetsel('*', 'spip_formulaires', 'id_formulaire = '.$id_formulaire);
    125136        $saisies = unserialize($formulaire['saisies']);
     
    134145
    135146
    136 function formulaires_formidable_traiter($id_formulaire, $valeurs=array(), $id_formulaires_reponse=false){
     147function formulaires_formidable_traiter($id, $valeurs=array(), $id_formulaires_reponse=false){
    137148        $retours = array();
    138         $id_formulaire = intval(_request('id_formulaire'));
     149       
     150        // On peut donner soit un id soit un identifiant
     151        if (!$id_formulaire = formidable_id_formulaire($id))
     152                return;
     153       
    139154        $formulaire = sql_fetsel('*', 'spip_formulaires', 'id_formulaire = '.$id_formulaire);
    140155        $traitements = unserialize($formulaire['traitements']);
     
    143158        $retours['editable'] = ($formulaire['apres']=='formulaire');
    144159        $retours['formidable_afficher_apres'] = $formulaire['apres'];
     160        $retours['id_formulaire'] = $id_formulaire;
    145161       
    146162        // Si on a une redirection valide
  • _plugins_/formidable/branches/v0/plugin.xml

    r80937 r82447  
    44        <auteur>RastaPopoulos, [Les Développements Durables->http://www.ldd.fr]</auteur>
    55        <licence>GPL v3</licence>
    6         <version>0.8.4</version>
     6        <version>0.8.5</version>
    77        <version_base>0.5.2</version_base>
    88        <etat>stable</etat>
Note: See TracChangeset for help on using the changeset viewer.