Skip to content
Extraits de code Groupes Projets
Valider c3751161 rédigé par cedric@yterium.com's avatar cedric@yterium.com
Parcourir les fichiers

Les listes de reponses sont par defaut non signifiantes car n'affichant aucune...

Les listes de reponses sont par defaut non signifiantes car n'affichant aucune autre information que la date de saisie et l'IP source.
On permet de configurer pour chaque formulaire une chaine qui sera utilisee pour afficher un resume de chaque reponse (les champs @input_1@.. etant remplaces par leur valeur).
Ceci rend les listes de reponse beaucoup plus utilisables.
parent 78686b90
Aucune branche associée trouvée
Étiquettes v2.7.0
Aucune requête de fusion associée trouvée
......@@ -57,8 +57,8 @@ function formidable_declarer_tables_objets_sql($tables) {
'info_1_objet' => 'formidable:info_1_formulaire',
'info_nb_objets' => 'formidable:info_nb_formulaires',
'champs_editables' => array('titre', 'identifiant', 'descriptif','message_retour', 'saisies', 'traitements', 'public','apres','url_redirect'),
'champs_versionnes' => array('titre', 'identifiant', 'descriptif','message_retour', 'saisies', 'traitements', 'public','apres','url_redirect'),
'champs_editables' => array('titre', 'identifiant', 'descriptif','message_retour', 'saisies', 'traitements', 'public','apres','url_redirect','resume_reponse'),
'champs_versionnes' => array('titre', 'identifiant', 'descriptif','message_retour', 'saisies', 'traitements', 'public','apres','url_redirect','resume_reponse'),
'field' => array(
"id_formulaire" => "bigint(21) NOT NULL",
"identifiant" => "varchar(200)",
......@@ -71,6 +71,7 @@ function formidable_declarer_tables_objets_sql($tables) {
"apres" => "varchar(12) NOT NULL default ''",
"url_redirect" => "varchar(255)",
"statut" => "varchar(10) NOT NULL default ''",
"resume_reponse" => "text NOT NULL default ''",
"date_creation" => "datetime NOT NULL DEFAULT '0000-00-00 00:00:00'",
"maj" => "timestamp",
),
......
......@@ -65,6 +65,10 @@ function formidable_upgrade($nom_meta_base_version, $version_cible){
$maj['0.6.3'] = array(
array('sql_alter','TABLE spip_formulaires_reponses_champs ADD UNIQUE reponse (id_formulaires_reponse,nom)'),
);
$maj['0.6.4'] = array(
// champ resume_reponse
array('maj_tables',array('spip_formulaires')),
);
include_spip('base/upgrade');
maj_plugin($nom_meta_base_version, $version_cible, $maj);
......
......@@ -65,3 +65,43 @@ function calculer_voir_reponse($id_formulaires_reponse, $id_formulaire, $nom, $t
);
}
}
/**
* Afficher le resume d'une reponse selon un modele qui contient des noms de champ "@input_1@ ..."
*
* @param int $id_formulaires_reponse
* @param int $id_formulaire
* @param string $resume_reponse
* @return string
*/
function affiche_resume_reponse($id_formulaires_reponse, $id_formulaire=null, $modele_resume=null){
static $modeles_resume = array();
static $reponses_valeurs = array();
$tenter_unserialize = charger_fonction('tenter_unserialize', 'filtre/');
if (is_null($id_formulaire)){
$id_formulaire = sql_getfetsel("id_formulaire","spip_formulaires_reponses","id_formulaires_reponse=".intval($id_formulaires_reponse));
}
if (is_null($modele_resume) AND !isset($modeles_resume[$id_formulaire])){
$modeles_resume[$id_formulaire] = sql_getfetsel("resume_reponse","spip_formulaires","id_formulaire=".intval($id_formulaire));
}
if (is_null($modele_resume))
$modele_resume = $modeles_resume[$id_formulaire];
if (!$modele_resume)
return "";
if (is_null($reponses_valeurs[$id_formulaires_reponse])) {
if ($champs = sql_allfetsel('nom,valeur', 'spip_formulaires_reponses_champs', 'id_formulaires_reponse = '.intval($id_formulaires_reponse))) {
foreach ($champs as $champ) {
$valeur = $tenter_unserialize($champ['valeur']);
if (is_array($valeur)) {
$valeur = implode(", ",$valeur);
}
$reponses_valeurs[$id_formulaires_reponse]["@".$champ['nom']."@"] = $valeur;
}
}
}
return str_replace(array_keys($reponses_valeurs[$id_formulaires_reponse]),array_values($reponses_valeurs[$id_formulaires_reponse]),$modele_resume);
}
\ No newline at end of file
......@@ -62,6 +62,13 @@
]<input type="text" name="#GET{name}" class="text" value="#ENV*{#GET{name},#GET{defaut}}" id="#GET{name}" [(#HTML5|et{#GET{obli}})required='required']/>
<p class="explication"><:formidable:editer_redirige_url_explication:></p>
</li>
#SET{name,resume_reponse}#SET{obli,''}#SET{defaut,''}#SET{erreurs,#ENV**{erreurs}|table_valeur{#GET{name}}}
<li class="editer editer_[(#GET{name})][ (#GET{obli})][ (#GET{erreurs}|oui)erreur]">
<label for="#GET{name}"><:formidable:editer_resume_reponse:></label>[
<span class='erreur_message'>(#GET{erreurs})</span>
]<input type="text" name="#GET{name}" class="text" value="#ENV*{#GET{name},#GET{defaut}}" id="#GET{name}" [(#HTML5|et{#GET{obli}})required='required']/>
<p class="explication"><:formidable:editer_resume_reponse_explication:></p>
</li>
</ul>
[(#REM) ajouter les saisies supplementaires : extra et autre, a cet endroit ]
......
......@@ -60,6 +60,8 @@ $GLOBALS[$GLOBALS['idx_lang']] = array(
'editer_nouveau' => 'Nouveau formulaire',
'editer_redirige_url' => 'Adresse de redirection après validation',
'editer_redirige_url_explication' => 'Laissez vide si vous souhaitez rester sur la même page',
'editer_resume_reponse' => 'Affichage résumé de la réponse',
'editer_resume_reponse_explication' => 'Cette chaîne sera utilisée pour afficher un résumé de chaque réponse dans les listes. Les champs comme <tt>@input_1@</tt> seront remplacés comme indiqué par l\'aide mémoire ci-contre.',
'editer_titre' => 'Titre',
'erreur_autorisation' => 'Vous n’avez pas le droit d’éditer les formulaires du site.',
'erreur_base' => 'Une erreur technique est survenue durant l’enregistrement.',
......
<paquet
prefix="formidable"
categorie="communication"
version="2.6.6"
version="2.7.0"
etat="test"
compatibilite="[3.0.0;3.0.*]"
logo="images/formidable-64.png"
schema="0.6.3"
schema="0.6.4"
documentation="http://contrib.spip.net/Formidable-le-generateur-de-formulaires"
>
......
......@@ -12,6 +12,7 @@
<tr class="first_row">
<th class="statut" scope='col'>[(#TRI{statut,<span>#</span>,ajax})]</th>
<th class="date" scope='col'>[(#TRI{date,<:date:>,ajax})]</th>
<th class="resume" scope='col'></th>
<th class="auteur" scope='col'>[(#TRI{id_auteur,<:formidable:reponses_auteur:>,ajax})]</th>
<th class="id" scope='col'>[(#TRI{id_formulaires_reponse,<:info_numero_abbreviation:>,ajax})]</th>
</tr>
......@@ -20,8 +21,8 @@
<BOUCLE_reponses(FORMULAIRES_REPONSES){id_formulaire?}{id_formulaires_reponse?}{id_auteur?}{statut?}{recherche?}{tri #ENV{par,date},#GET{defaut_tri}}{pagination #ENV{nb,10}}>
<tr class="[(#COMPTEUR_BOUCLE|alterner{row_odd,row_even})]">
<td class="statut">[(#ID_FORMULAIRES_REPONSE|puce_changement_statut{#STATUT, #ID_FORMULAIRE, formulaires_reponse})]</td>
<td class="date">[(#DATE|affdate_jourcourt|concat{#DATE|affdate{", H:i"}})]
[<a href="[(#URL_ECRIRE{formulaires_reponse,id_formulaires_reponse=#ID_FORMULAIRES_REPONSE})]"><:formidable:reponses_voir_detail:></a>]</td>
<td class="date">[(#DATE|affdate_jourcourt|concat{#DATE|affdate{", H:i"}})]</td>
<td class="resume">[(#ID_FORMULAIRES_REPONSE|affiche_resume_reponse{#ID_FORMULAIRE}|sinon{[<a href="(#URL_ECRIRE{formulaires_reponse,id_formulaires_reponse=#ID_FORMULAIRES_REPONSE})"><:formidable:reponses_voir_detail:></a>]})]</td>
<td class="auteur">
<BOUCLE_auteur(AUTEURS){id_auteur}{tout}>
<a href="[(#ID_AUTEUR|generer_url_entite{auteur})]">#NOM</a>
......
......@@ -2,7 +2,7 @@
#SET{configurer,#ENV{configurer}|in_array{#LISTE{formulaire,champs,traitements,auteurs}}|?{#ENV{configurer},champs}}
<!--#extra-->
[(#GET{configurer}|in_array{#LISTE{traitements,champs}}|oui)
[(#GET{configurer}|in_array{#LISTE{formulaire,traitements,champs}}|oui)
#BOITE_OUVRIR{'','info'}
#INCLURE{fond=modeles/formulaire_aide_memoire, id_formulaire=#ID_FORMULAIRE}
#BOITE_FERMER
......
0% Chargement en cours ou .
You are about to add 0 people to the discussion. Proceed with caution.
Terminez d'abord l'édition de ce message.
Veuillez vous inscrire ou vous pour commenter