Skip to content
Extraits de code Groupes Projets
Valider 12c151e3 rédigé par Maïeul's avatar Maïeul
Parcourir les fichiers

Merge branch 'issue34'.

Close #35, close #36
fix #32, fix #34
parents 3eb7f100 9ac7de4c
Branches master
Aucune étiquette associée trouvée
Aucune requête de fusion associée trouvée
......@@ -129,6 +129,7 @@ function formidable_declarer_tables_objets_sql($tables) {
'id_formulaires_reponse' => 'bigint(21) NOT NULL',
'id_formulaire' => 'bigint(21) NOT NULL default 0',
'date' => "datetime NOT NULL default '0000-00-00 00:00:00'",
'date_envoi' => "datetime NOT NULL default '0000-00-00 00:00:00'",
'ip' => "varchar(255) NOT NULL default ''",
'id_auteur' => 'bigint(21) NOT NULL default 0',
'cookie' => "varchar(255) NOT NULL default ''",
......@@ -136,6 +137,7 @@ function formidable_declarer_tables_objets_sql($tables) {
'statut' => "varchar(10) NOT NULL default ''",
'maj' => 'timestamp'
),
'champs_versionnes' => array('date_envoi'),
'key' => array(
'PRIMARY KEY' => 'id_formulaires_reponse',
'KEY id_formulaire' => 'id_formulaire',
......
......@@ -104,6 +104,10 @@ function formidable_upgrade($nom_meta_base_version, $version_cible) {
$maj['0.17.1'] = array(
array('sql_alter','TABLE spip_formulaires_reponses CHANGE variable_php variable_php VARCHAR(255) NOT NULL default ""')
);
$maj['0.20.0'] = array(
array('sql_alter','TABLE spip_formulaires_reponses ADD column `date_envoi` datetime NOT NULL default "0000-00-00 00:00:00" AFTER `date`'),
array('sql_update', 'spip_formulaires_reponses', array('date_envoi' => 'date')),
);
include_spip('base/upgrade');
maj_plugin($nom_meta_base_version, $version_cible, $maj);
}
......
......@@ -43,6 +43,9 @@ $GLOBALS[$GLOBALS['idx_lang']] = array(
'creer_dossier_formulaire_erreur_impossible_ecrire' => 'Impossible d’écrire dans le @dossier@, nécessaire pour stocker les fichiers. Vérifier les droits d’accès.',
'creer_dossier_formulaire_erreur_possible_lire_exterieur' => 'Il est possible de lire à distance le contenu du dossier @dossier@. Ceci est problématique en terme de confidentialité des données.',
// D
'date_envoi' => 'Date d\'envoi',
// E
'echanger_formulaire_forms_importer' => 'Forms & Tables (.xml)',
'echanger_formulaire_wcs_importer' => 'W.C.S. (.wcs)',
......@@ -236,6 +239,7 @@ $GLOBALS[$GLOBALS['idx_lang']] = array(
'traiter_email_destinataires_courriel_label' => 'Destinataires du courriel',
'traiter_email_envoyeur_courriel_label' => 'Expéditeur·trice du courriel',
'traiter_email_horodatage' => 'Formulaire "@formulaire@" posté le @date@ à @heure@.',
'traiter_email_horodatage_modif_reponse' => 'Formulaire "@formulaire@" posté le @date@ à @heure@ (modifiant la réponse envoyée le @date_precedente@ à @heure_precedente@).',
'traiter_email_message_erreur' => 'Une erreur est survenue lors de l’envoi du courriel.',
'traiter_email_message_ok' => 'Votre message a bien été envoyé par courriel.',
'traiter_email_option_activer_accuse_label_case' => 'Envoyer aussi un courriel à l’adresse de l’expediteur·trice avec un message de confirmation.',
......@@ -275,6 +279,8 @@ Cette option n’est conservée que pour compatibilité ascendante. Elle n’app
'traiter_email_option_sujet_accuse_label' => 'Sujet de l’accusé de réception',
'traiter_email_option_sujet_explication' => 'Construisez le sujet à l’aide des @raccourcis@. Si vous ne mettez rien, le sujet sera construit automatiquement.',
'traiter_email_option_sujet_label' => 'Sujet du courriel',
'traiter_email_option_sujet_modif_reponse_label_case' => 'Lorsqu\'une réponse a été modifiée, l\'indiquer en suffixe du sujet',
'traiter_email_option_sujet_modif_reponse_label' => 'Modification de réponse',
'traiter_email_option_sujet_valeurs_brutes_label' => 'Valeurs brutes',
'traiter_email_option_sujet_valeurs_brutes_label_case' => 'Le courriel est destiné à un robot et non pas à un·e humain·e. Dans le sujet du message, mettre les valeurs brutes (compréhensibles par des robots) des champs et non pas les valeurs interprétées (compréhensible par des humain·e·s).',
'traiter_email_option_texte_accuse_explication' => 'Construisez le texte à l’aide des @raccourcis@. Si vous ne mettez rien, c’est le message de retour du formulaire qui sera utilisé.',
......@@ -285,6 +291,7 @@ Cette option n’est conservée que pour compatibilité ascendante. Elle n’app
'traiter_email_sujet' => '@nom@ vous a écrit.',
'traiter_email_sujet_accuse' => 'Merci de votre réponse.',
'traiter_email_sujet_courriel_label' => 'Sujet du courriel',
'traitement_email_sujet_courriel_modif_reponse' => '[Modification d\'une réponse]',
'traiter_email_titre' => 'Envoyer par courriel',
'traiter_email_url_enregistrement' => 'Vous pouvez gérer l’ensemble des réponses <a href="@url@">sur cette page</a>.',
'traiter_email_url_enregistrement_precis' => 'Vous pouvez voir cette réponse <a href="@url@">sur cette page</a>.',
......
......@@ -2,7 +2,14 @@
<p>
#SET{date, #VAL{d/m/Y}|date}
#SET{heure, #VAL{H:i:s}|date}
<:formidable:traiter_email_horodatage{formulaire=#ENV*{titre}, date=#GET{date}, heure=#GET{heure}}:>
[(#ENV{envoi_precedent}|non)
<:formidable:traiter_email_horodatage{formulaire=#ENV*{titre}, date=#GET{date}, heure=#GET{heure}}:>
]
[(#ENV{envoi_precedent}|oui)
#SET{heure_precedente,#ENV{envoi_precedent}|affdate{H:i:s}}
#SET{date_precedente,#ENV{envoi_precedent}|affdate{H:i:s}}
<:formidable:traiter_email_horodatage_modif_reponse{formulaire=#ENV*{titre}, date=#GET{date}, heure=#GET{heure}, heure_precedente=#GET{heure_precedente}, date_precedente=#GET{date_precedente}}:>
]
<br/>
#SET{url, #SELF{&,true}|url_absolue}
<:formidable:traiter_email_page{url=#GET{url}}:>
......
......@@ -5,7 +5,7 @@
etat="stable"
compatibilite="[3.1.0;3.2.*]"
logo="images/formidable-64.png"
schema="0.17.1"
schema="0.20.0"
documentation="https://contrib.spip.net/Formidable-le-generateur-de-formulaires"
>
<nom>Formidable</nom>
......
......@@ -30,6 +30,12 @@
[(#DATE|affdate_jourcourt|concat{#DATE|affdate{", H:i"}})]
</div>
</div>
<div class="champ afficher contenu_date_envoi[ (#DATE_ENVOI*|strlen|?{'',vide})]">
<div class='label'><:formidable:date_envoi:></div>
<div dir='#LANG_DIR'>
[(#DATE_ENVOI|affdate_jourcourt|concat{#DATE_ENVOI|affdate{", H:i"}})]
</div>
</div>
<div class="champ afficher contenu_maj[ (#MAJ*|strlen|?{'',vide})]">
<div class='label'><:formidable:reponse_maj:></div>
<div dir='#LANG_DIR'>
......
......@@ -11,7 +11,7 @@
<thead>
<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="date_envoi" scope='col'>[(#TRI{date_envoi,<:formidable:date_envoi:>,ajax})]</th>
<th class="resume" scope='col'></th>
<th class="auteur" scope='col'>[(#TRI{id_auteur,<:formidable:reponses_auteur:> / <:formidable:reponses_ip:>,ajax})]</th>
<th class="id" scope='col'>[(#TRI{id_formulaires_reponse,<:info_numero_abbreviation:>,ajax})]</th>
......@@ -21,7 +21,7 @@
<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"}})]</td>
<td class="date_somission">[(#DATE_ENVOI|affdate_jourcourt|concat{#DATE_ENVOI|affdate{", H:i"}})]</td>
<td class="resume">[<a href="[(#URL_ECRIRE{formulaires_reponse,id_formulaires_reponse=#ID_FORMULAIRES_REPONSE})]">(#ID_FORMULAIRES_REPONSE|affiche_resume_reponse{#ID_FORMULAIRE}|sinon{<:formidable:reponses_voir_detail:>})</a>]</td>
<td class="auteur">
<BOUCLE_auteur(AUTEURS){id_auteur}{tout}>
......
......@@ -158,6 +158,11 @@ function traiter_email_dist($args, $retours) {
if (!isset($sujet) or !$sujet) {
$sujet = _T('formidable:traiter_email_sujet', array('nom'=>$nom_envoyeur));
}
if (isset($options['champ_sujet_modif_reponse']) and $options['champ_sujet_modif_reponse'] and $retours['modification_reponse']) {
$sujet = $sujet.' '._T('formidable:traitement_email_sujet_courriel_modif_reponse');
}
$sujet = filtrer_entites($sujet);
// Mais quel va donc être le fond ?
......@@ -189,6 +194,7 @@ function traiter_email_dist($args, $retours) {
'valeurs' => $valeurs,
'masquer_liens' => $options['masquer_liens'],
'ip' => $options['activer_ip']?$GLOBALS['ip']:'',
'envoi_precedent' => $retours['envoi_precedent'],
'courriel_envoyeur' => $courriel_envoyeur,
'nom_envoyeur' => filtrer_entites($nom_envoyeur)
)
......
......@@ -21,6 +21,12 @@ options:
nom: 'champ_sujet'
label: '<:formidable:traiter_email_option_sujet_label:>'
explication: '<:formidable:traiter_email_option_sujet_explication:>'
-
saisie: 'case'
options:
nom: 'champ_sujet_modif_reponse'
label: '<:formidable:traiter_email_option_sujet_modif_reponse_label:>'
label_case: '<:formidable:traiter_email_option_sujet_modif_reponse_label_case:>'
-
saisie: 'case'
options:
......
......@@ -77,6 +77,7 @@ function traiter_enregistrement_dist($args, $retours) {
'variable_php' => $variable_php,
'ip' => $args['options']['ip'] == 'on' ? $GLOBALS['ip'] : '',
'date' => 'NOW()',
'date_envoi' => 'NOW()',
'statut' => $statut
)
);
......@@ -90,13 +91,18 @@ function traiter_enregistrement_dist($args, $retours) {
$retours['modification_reponse'] = false;// signaler aux traitements qu'il s'agit d'une nouvelle réponse
} else { // si c'est une modif de réponse existante
// simple mise à jour du champ maj de la table spip_formulaires_reponses
$envoi_precedent = sql_getfetsel('date_envoi','spip_formulaires_reponses', "id_formulaires_reponse = $id_formulaires_reponse");
sql_updateq(
'spip_formulaires_reponses',
array('maj' => 'NOW()'),
array(
'maj' => 'NOW()',
'date_envoi' => 'NOW()',
),
"id_formulaires_reponse = $id_formulaires_reponse"
);
//effacer les fichiers existant
formidable_effacer_fichiers_reponse($id_formulaire, $id_formulaires_reponse);
$retours['envoi_precedent'] = $envoi_precedent;
$retours['modification_reponse'] = true;// signaler aux traitements qui viendraient après qu'il s'agit d'une modif
}
// Si l'id n'a pas été créé correctement alors erreur
......
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