Browse Source

Nouvelle solution à #58 : plus de case à cocher. Chaque traitement

décide s'il affiche ou pas son message spécifique, en connaissant par
ailleur le message general.

Up de y.
Fix #58 (again !)
pull/71/head v4.12.0
Maïeul 2 years ago
parent
commit
afd577db25
  1. 5
      base/formidable_tables.php
  2. 9
      formidable_administrations.php
  3. 9
      formulaires/editer_formulaire.php
  4. 10
      formulaires/formidable.php
  5. 1
      lang/formidable_fr.php
  6. 4
      paquet.xml
  7. 5
      traiter/email.php
  8. 5
      traiter/enregistrement.php

5
base/formidable_tables.php

@ -63,8 +63,8 @@ function formidable_declarer_tables_objets_sql($tables) {
'texte_creer_associer' => 'formidable:liens_creer_associer',
'texte_ajouter' => 'formidable:liens_ajouter',
'champs_editables' => array('titre', 'identifiant', 'descriptif', 'css', 'message_retour', 'afficher_message_ok_traitements', 'saisies', 'traitements', 'public','apres','url_redirect','resume_reponse'),
'champs_versionnes' => array('titre', 'identifiant', 'descriptif', 'css', 'message_retour', 'saisies', 'afficher_message_ok_traitements', 'traitements', 'public','apres','url_redirect','resume_reponse'),
'champs_editables' => array('titre', 'identifiant', 'descriptif', 'css', 'message_retour', 'saisies', 'traitements', 'public','apres','url_redirect','resume_reponse'),
'champs_versionnes' => array('titre', 'identifiant', 'descriptif', 'css', 'message_retour', 'saisies', 'traitements', 'public','apres','url_redirect','resume_reponse'),
'field' => array(
'id_formulaire' => 'bigint(21) NOT NULL',
'identifiant' => 'varchar(200)',
@ -72,7 +72,6 @@ function formidable_declarer_tables_objets_sql($tables) {
'descriptif' => 'text',
'css' => 'varchar(255) not null default ""',
'message_retour' => "text NOT NULL default ''",
'afficher_message_ok_traitements' => 'varchar(2) NOT NULL default ""',
'saisies' => "longtext NOT NULL default ''",
'traitements' => "text NOT NULL default ''",
'public' => "enum('non', 'oui') DEFAULT 'non' NOT NULL",

9
formidable_administrations.php

@ -117,10 +117,17 @@ function formidable_upgrade($nom_meta_base_version, $version_cible) {
array('maj_tables', array('spip_formulaires_liens')),
array('formidable_verifier_liens_vu'),
);
// Ajouter un champ masquer_retour_traitements pour les formulaires
// Ajouter un champ afficher_message_ok_traitements pour les formulaires
$maj['1.3.0'] = array(
array('maj_tables', array('spip_formulaires')),
);
// Et le supprimer après car on a trouvé mieux. Cf discussion https://git.spip.net/spip-contrib-extensions/formidable/issues/58
if (lire_config($nom_meta_base_version) == '1.3.0') {
$maj['1.4.0'] = array(
array('sql_alter', 'TABLE spip_formulaires DROP afficher_message_ok_traitements'
)
);
}
include_spip('base/upgrade');
maj_plugin($nom_meta_base_version, $version_cible, $maj);

9
formulaires/editer_formulaire.php

@ -45,15 +45,6 @@ function formulaires_editer_formulaire_saisies() {
'previsualisation' => 'oui',
)
),
array(
'saisie' => 'case',
'options' => array(
'nom' => 'afficher_message_ok_traitements',
'label_case' => '<:formidable:afficher_message_ok_traitements_label_case:>',
'conteneur_class' => 'pleine_largeur',
'afficher_si' => '@message_retour@',
),
),
array(
'saisie' => 'textarea',
'options' => array (

10
formulaires/formidable.php

@ -352,7 +352,6 @@ function formulaires_formidable_traiter_dist($id, $valeurs = array(), $id_formul
$formulaire = sql_fetsel('*', 'spip_formulaires', 'id_formulaire = ' . $id_formulaire);
$saisies = unserialize($formulaire['saisies']);
$traitements = unserialize($formulaire['traitements']);
$afficher_message_ok_traitements = $formulaire['afficher_message_ok_traitements'];
// On passe les traitements en pipelines, pour s'assurer de l'ordre le cas échéant
$traitements = pipeline(
@ -370,6 +369,8 @@ function formulaires_formidable_traiter_dist($id, $valeurs = array(), $id_formul
$retours['formidable_afficher_apres'] = $formulaire['apres'];
$retours['id_formulaire'] = $id_formulaire;
// Indiquer aux traitements s'il y un message de retour general. Par sécurité, on trim. Voir https://git.spip.net/spip-contrib-extensions/formidable/issues/58
$formulaire['message_retour'] = trim($formulaire['message_retour']);
// Si on a une redirection valide
if ($url_redirect) {
@ -428,17 +429,14 @@ function formulaires_formidable_traiter_dist($id, $valeurs = array(), $id_formul
'id_formulaire' => $id_formulaire,
'valeurs' => $valeurs,
'id_formulaires_reponse' => $id_formulaires_reponse,
'forcer_modif' => $forcer_modif
'forcer_modif' => $forcer_modif,
'retour_general' => $formulaire['message_retour']
),
$retours
);
// Collecter les messages de retour afin de les formater correctement par la suite
if (
!empty($retours['message_ok'])
and (
$afficher_message_ok_traitements
or !$formulaire['message_retour']
)
) {
$messages_ok .= wrap($retours['message_ok'],'<div class="message_retour_traitement message_retour_'.$type_traitement.'">');
}

1
lang/formidable_fr.php

@ -12,7 +12,6 @@ $GLOBALS[$GLOBALS['idx_lang']] = array(
'activer_pages_label' => 'Activer les pages publiques des formulaires',
'admin_reponses_auteur' => 'Les personnes qui gèrent des formulaires peuvent modifier les réponses',
'admin_reponses_auteur_explication' => 'Par défaut, il n’y a que les admins qui peuvent modifier les réponses apportées à un formulaire (à la poubelle, publiée, proposé à l’évaluation). Cette option permet à la personne qui gère un formulaire d’en modifier le statut (au risque de fausser d’éventuelles statistiques).',
'afficher_message_ok_traitements_label_case' => 'Afficher les messages de retour spécifiques à chaque traitement',
'analyse_avec_reponse' => 'Réponses non-vide',
'analyse_exclure_champs_explication' => 'Mettre le nom des champs à exclure dans l’analyse, séparés par des <code>|</code>. Ne pas mettre les <code>@</code>.',
'analyse_exclure_champs_label' => 'Champs à exclure de l’analyse',

4
paquet.xml

@ -1,11 +1,11 @@
<paquet
prefix="formidable"
categorie="communication"
version="4.11.0"
version="4.12.0"
etat="stable"
compatibilite="[3.1.0;3.2.*]"
logo="images/formidable-64.png"
schema="1.3.0"
schema="1.4.0"
documentation="https://contrib.spip.net/Formidable-le-generateur-de-formulaires"
>
<nom>Formidable</nom>

5
traiter/email.php

@ -330,9 +330,10 @@ function traiter_email_dist($args, $retours) {
$erreur_envoi = true;
}
}
if (!$erreur_envoi) {
$retours['message_ok'] = _T('formidable:traiter_email_message_ok');
if (!$args['message_retour_general']) {// Si jamais message de retour general, ne pas mettre le message de retour spécifique. Cf https://git.spip.net/spip-contrib-extensions/formidable/issues/58
$retours['message_ok'] = _T('formidable:traiter_email_message_ok');
}
} else {
if (isset($retours['message_erreur'])) {
$retours['message_erreur'] .= "\n"._T('formidable:traiter_email_message_erreur');

5
traiter/enregistrement.php

@ -161,8 +161,9 @@ function traiter_enregistrement_dist($args, $retours) {
$insertions
);
}
$retours['message_ok'] = _T('formidable:traiter_enregistrement_message_ok');
if (!$args['message_retour_general']) {// Si jamais message de retour general, ne pas mettre le message de retour spécifique. Cf https://git.spip.net/spip-contrib-extensions/formidable/issues/58
$retours['message_ok'] = _T('formidable:traiter_enregistrement_message_ok');
}
$retours['id_formulaires_reponse'] = $id_formulaires_reponse;
}

Loading…
Cancel
Save