Ignore:
Timestamp:
Nov 1, 2019, 8:45:01 PM (13 months ago)
Author:
maieul@…
Message:

Formidable_raccourcis_arobases_2_valeurs_champs() peut désormais prendre
les valeurs n'ont pas dans _request() mais dans l'enregistrement d'une
réponse. On peut donc facilement utiliser le raccourci @@ pour afficher
une présentation particulière d'une réponse donnée (cas d'usage : un
plugin perso pour une application métier).

Du coup on fait appel à cette fonction pour affiche_resume_reponse() en
gardant la compatibilité ascendante de ce qui est passé au pipeline
homonyme (dont je doute que qui que ce soit l'utilise, mais c'est une
autre affaire).

File:
1 edited

Legend:

Unmodified
Added
Removed
  • _plugins_/formidable/trunk/formidable_fonctions.php

    r115247 r118367  
    134134function affiche_resume_reponse($id_formulaires_reponse, $id_formulaire = null, $modele_resume = null) {
    135135        static $modeles_resume = array();
    136         static $modeles_vars = array();
     136        static $saisies;
    137137
    138138        if (is_null($id_formulaire)) {
     
    143143                );
    144144        }
     145
    145146        if (is_null($modele_resume) and !isset($modeles_resume[$id_formulaire])) {
    146                 $traitements_formulaire = unserialize(sql_getfetsel(
    147                         'traitements',
    148                         'spip_formulaires',
    149                         'id_formulaire='.intval($id_formulaire)
    150                 ));
    151                 if (isset($traitements_formulaire['enregistrement']['resume_reponse'])) {
    152                         $modeles_resume[$id_formulaire] = $traitements_formulaire['enregistrement']['resume_reponse'];
     147                $row = sql_fetsel('saisies, traitements', 'spip_formulaires', 'id_formulaire='.intval($id_formulaire));
     148                $saisies = unserialize($row['saisies']);
     149                $traitements = unserialize($row['traitements']);
     150                if (isset($traitements['enregistrement']['resume_reponse'])) {
     151                        $modeles_resume[$id_formulaire] = $traitements['enregistrement']['resume_reponse'];
    153152                } else {
    154153                        $modeles_resume[$id_formulaire] = '';
     
    163162        }
    164163
    165         if (!isset($modeles_vars[$modele_resume])) {
    166                 preg_match_all(',@(.*)@,Uims', $modele_resume, $matches);
    167                 $modeles_vars[$modele_resume] = $matches[1];
    168         }
    169 
    170164        $valeurs = array();
    171         foreach ($modeles_vars[$modele_resume] as $var) {
    172                 $valeur = calculer_voir_reponse($id_formulaires_reponse, $id_formulaire, $var,'', 'valeur_uniquement', '');
    173                 $valeur = formidable_nettoyer_saisie_vue($valeur);
    174                 $valeurs["@$var@"] = $valeur;
    175         }
     165        $chaine = formidable_raccourcis_arobases_2_valeurs_champs($modele_resume, $saisies, false, '', $source = 'base', $id_formulaires_reponse, $id_formulaire, $valeurs, $valeurs_libellees);
     166
     167        // Pour compatibilité historique : remplacer les clés dans $valeurs_libellees pour mettre un arobase autour
     168        foreach ($valeurs_libellees as $cle => $val) {
     169                unset($valeurs_libellees[$cle]);
     170                $valeurs_libellees["@$cle@"] = $val;
     171        }
     172
    176173        return pipeline(
    177174                'formidable_affiche_resume_reponse',
     
    181178                                'id_formulaires_reponse' => $id_formulaires_reponse,
    182179                                'modele_resume' => $modele_resume,
    183                                 'valeurs' => $valeurs,
     180                                'valeurs' => $valeurs_libellees,
    184181                        ),
    185                         'data' => str_replace(array_keys($valeurs), array_values($valeurs), $modele_resume),
     182                        'data' => $chaine,
    186183                )
    187184        );
Note: See TracChangeset for help on using the changeset viewer.