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

change(ui): pour le traitement email, proposer d'abord de choisir le type...

change(ui): pour le traitement email, proposer d'abord de choisir le type d'email qu'on envoie, puis les règles

fix: #198
parent 326882dd
Aucune branche associée trouvée
Aucune étiquette associée trouvée
Aucune requête de fusion associée trouvée
......@@ -133,6 +133,9 @@ function formidable_upgrade($nom_meta_base_version, $version_cible) {
$maj['1.4.2'] = [
['formidable_creer_secret'],
];
$maj['1.5.0'] = [
['formidable_traitement_email_activer_responsable']
];
include_spip('base/upgrade');
maj_plugin($nom_meta_base_version, $version_cible, $maj);
......@@ -451,6 +454,26 @@ function formidable_vider_tables($nom_meta_base_version) {
effacer_meta($nom_meta_base_version);
}
/**
* Cocher la case `activer_responsable` pour le traitement email
* suite à la migration de l'UI de ce traitement
**/
function formidable_traitement_email_activer_responsable(): void {
include_spip('base/abstract_sql');
include_spip('formidable_fonctions');
include_spip('inc/formidable');
$res = sql_select('id_formulaire, traitements', 'spip_formulaires', '`traitements` LIKE ' . sql_quote('%email%'));
while ($row = sql_fetch($res)) {
$traitements = formidable_deserialize($row['traitements']);
if (isset($traitements['email'])) {
$traitements['email']['activer_responsable'] = 'on';
}
$traitements = formidable_serialize($traitements);
sql_updateq('spip_formulaires', ['traitements' => $traitements], ['id_formulaire =' . $row['id_formulaire']]);
}
}
/**
* Identifier toutes les saisies en base
**/
......
......@@ -240,14 +240,14 @@ $GLOBALS[$GLOBALS['idx_lang']] = array(
'titre_cadre_raccourcis' => 'Raccourcis',
'titre_formulaires_archives' => 'Archives',
'titre_formulaires_poubelle' => 'À la poubelle',
'traiter_email_option_activer_accuse_explication' => 'Pour envoyer un courriel à l\'internaute, définissez d\'abord son adresse (ci-dessus).',
'titre_reponses' => 'Réponses',
'traitement_email_sujet_courriel_modif_reponse' => '[Modification d’une réponse]',
'traitements_actives' => 'Traitements activés',
'traitements_avertissement_creation' => 'Les modifications sur les champs du formulaire ont été enregistrées avec succès. Vous pouvez maintenant définir quels traitements seront effectués lors de l’utilisation du formulaire.',
'traitements_avertissement_modification' => 'Les modifications sur les champs du formulaire ont été enregistrées avec succès. <strong>Certains traitements doivent peut-être être reconfigurés en conséquence.</strong>',
'traitements_choisis' => 'Choix des traitements',
'traiter_email_AR_label' => 'Accusé de réception',
'traiter_email_accuse_explication_texte' => 'Pour activer la fonctionnalité d’accusé de réception, vous devez au préalable définir un expéditeur.',
'traiter_email_AR_label' => 'À l\'internaute',
'traiter_email_contenu_courriel_label' => 'Contenu du courriel',
'traiter_email_description' => 'Envoyer par courriel les résultats du formulaire',
'traiter_email_destinataires_courriel_label' => 'Destinataires du courriel',
......@@ -257,12 +257,14 @@ $GLOBALS[$GLOBALS['idx_lang']] = array(
'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 un accusé de réception à l’internaute',
'traiter_email_option_activer_responsable_label_case' => 'Envoyer un courriel à un·e ou plusieurs responsable(s)',
'traiter_email_responsable_label' => 'Au(x) responsable(s)',
'traiter_email_quoi_label' => 'Que faire ?',
'traiter_email_option_activer_ip_label_case' => 'Envoyer l’adresse IP de l’internaute aux destinataires',
'traiter_email_option_courriel_envoyeur_accuse_explication' => 'Précisez le courriel utilisé pour envoyer l’accusé de réception. Si vous ne mettez rien, ce sera l’adresse email du webmestre.',
'traiter_email_option_courriel_envoyeur_accuse_label' => 'Adresse d’envoi de l’accusé de réception',
'traiter_email_option_destinataires_champ_form_attention' => 'Cette option est déconseillée, car elle constitue un appel au SPAM.
<br />- Pour envoyer à des membres de l’équipe de rédaction du site, utiliser l’option « Destinataire » (plus haut).
<br />- Pour envoyer à la personne qui remplit le formulaire, configurer l’accusé de réception (plus bas).
<br />- Pour envoyer à la personne qui remplit le formulaire, activer l\'option « Envoyer un courriel à l\'internaut » (plus haut).
<br />
Cette option n’est conservée que pour compatibilité ascendante. Elle n’apparaît pas sur les nouveaux formulaires.
',
......@@ -276,8 +278,9 @@ Cette option n’est conservée que pour compatibilité ascendante. Elle n’app
'traiter_email_option_destinataires_selon_champ_explication' => 'Permet d’indiquer des destinataires en fonction de la valeur d’un champ.
Indiquer le champ, sa valeur, et le ou les courriels concernés (séparés par une virgule) suivant ce format, tel que : "@selection_1@/choix1 : mail@example.tld". Vous pouvez indiquer plusieurs tests, en revenant à la ligne entre chaque test.',
'traiter_email_option_destinataires_selon_champ_label' => 'Destinataires en fonction d’un champ',
'traiter_email_option_envoyeur_courriel_explication' => 'Choisissez le champ qui contiendra l’adresse d’envoi.',
'traiter_email_option_envoyeur_courriel_label' => 'Adresse d’envoi',
'traiter_email_option_envoyeur_courriel_explication' => 'Choisissez le champ qui contient l’adresse de la personne qui remplit le formulaire.',
'traiter_email_option_envoyeur_courriel_label' => 'Adresse de l\'internaute',
'traiter_email_generalite_label' => 'Réglages généraux',
'traiter_email_option_envoyeur_nom_explication' => 'Construisez ce nom à l’aide des @raccourcis@ (cf. l’aide mémoire). Si vous ne mettez rien, ce sera le nom du site.',
'traiter_email_option_envoyeur_nom_label' => 'Nom d’envoi',
'traiter_email_option_exclure_champs_email_explication' => 'Si vous souhaitez que certains champs ne s’affichent pas dans les emails envoyés (par exemple des champs cachés), il suffit de les définir ici, séparés par une virgule. Si vous excluez un fieldset, l’ensemble de ses sous champs seront exclus.',
......
......@@ -5,7 +5,7 @@
etat="stable"
compatibilite="[4.0.0-alpha;4.2.*]"
logo="formidable.svg"
schema="1.4.2"
schema="1.5.0"
documentation="https://contrib.spip.net/Formidable-le-generateur-de-formulaires"
>
<nom>Formidable</nom>
......@@ -46,7 +46,7 @@
<pipeline nom="ajouter_menus" inclure="formidable_pipelines.php" />
<necessite nom="spip_bonux" compatibilite="[3.3.8;[" />
<necessite nom="saisies" compatibilite="[5.1.0;[" />
<necessite nom="saisies" compatibilite="[5.3.0;[" />
<necessite nom="verifier" compatibilite="[1.12.0;[" />
<necessite nom="yaml" compatibilite="[1.5.2;[" />
<necessite nom="facteur" compatibilite="[3.6.2;[" />
......
......@@ -2,196 +2,222 @@
titre: '<:formidable:traiter_email_titre:>'
description: '<:formidable:traiter_email_description:>'
options:
-
saisie: 'case'
options:
nom: 'modification_reponse'
label_case: '<:formidable:traiter_email_option_modification_reponse_label_case:>'
conteneur_class: 'pleine_largeur'
-
saisie: 'fieldset'
options:
nom: 'sujet'
label: '<:formidable:traiter_email_sujet_courriel_label:>'
nom: 'generalite'
label: '<:formidable:traiter_email_generalite_label:>'
saisies:
-
saisie: 'input'
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:>'
nom: 'modification_reponse'
label_case: '<:formidable:traiter_email_option_modification_reponse_label_case:>'
conteneur_class: 'pleine_largeur'
-
saisie: 'case'
saisie: 'champ'
options:
nom: 'champ_sujet_valeurs_brutes'
label_case : '<:formidable:traiter_email_option_sujet_valeurs_brutes_label_case:>'
explication : '<:formidable:traiter_email_option_sujet_valeurs_brutes_explication:>'
conteneur_class: 'pleine_largeur'
nom: 'champ_courriel'
label: '<:formidable:traiter_email_option_envoyeur_courriel_label:>'
explication: '<:formidable:traiter_email_option_envoyeur_courriel_explication:>'
forcer_type: ['input','email']
env: true
-
saisie: 'fieldset'
options:
nom: 'contenu'
label: '<:formidable:traiter_email_contenu_courriel_label:>'
nom: 'quoi'
label: '<:formidable:traiter_email_quoi_label:>'
saisies:
-
saisie: 'textarea'
options:
nom: 'exclure_champs_email'
label: '<:formidable:traiter_email_option_exclure_champs_email_label:>'
explication: '<:formidable:traiter_email_option_exclure_champs_email_explication:>'
placeholder: "input_3,selection_2"
conteneur_class: 'pleine_largeur'
rows: 4
-
saisie: 'case'
options:
nom: 'pj'
conteneur_class: 'pleine_largeur'
label_case: '<:formidable:traiter_email_option_pj_label:>'
explication: '<:formidable:traiter_email_option_pj_explication:>'
-
saisie: 'case'
options:
nom: 'masquer_liens'
conteneur_class: 'pleine_largeur'
label_case: '<:formidable:traiter_email_option_masquer_liens_label_case:>'
-
saisie: 'case'
options:
nom: 'activer_ip'
nom: 'activer_responsable'
conteneur_class: 'pleine_largeur'
label_case: '<:formidable:traiter_email_option_activer_ip_label_case:>'
defaut: 'on'
label_case: '<:formidable:traiter_email_option_activer_responsable_label_case:>'
-
saisie: 'case'
options:
nom: 'masquer_champs_vides'
conteneur_class: 'pleine_largeur'
label_case: '<:formidable:traiter_email_option_masquer_champs_vide_label_case:>'
-
saisie: 'fieldset'
options:
nom: 'destinataires'
label: '<:formidable:traiter_email_destinataires_courriel_label:>'
saisies:
-
saisie: 'champ'
options:
nom: 'champ_destinataires'
label: '<:formidable:traiter_email_option_destinataires_label:>'
explication: '<:formidable:traiter_email_option_destinataires_explication:>'
forcer_type: [destinataires,hidden]
type_choix: 'checkbox'
env: true
-
saisie: 'input'
options:
nom: 'destinataires_plus'
label: '<:formidable:traiter_email_option_destinataires_plus_label:>'
explication: '<:formidable:traiter_email_option_destinataires_plus_explication:>'
verifier:
type: 'email'
-
saisie: 'textarea'
options:
nom: 'destinataires_selon_champ'
label: '<:formidable:traiter_email_option_destinataires_selon_champ_label:>'
explication: '<:formidable:traiter_email_option_destinataires_selon_champ_explication:>'
placeholder: "@selection_1@/choix1 : mail1@example.tld, mail2@example.tld"
nom: 'activer_accuse'
conteneur_class: 'pleine_largeur'
rows: 4
label_case: '<:formidable:traiter_email_option_activer_accuse_label_case:>'
afficher_si: '@traitements[email][champ_courriel]@'
-
# conservé pour des raisons historiques, mais ne devrait pas exister (on a l'accusé de réception pour cela). C'est pourquoi on ne l'affiche que si cela existait déjà avant, mais on peut plus créer de nouveaux formulaires avec cette option.
saisie: 'champ'
saisie: 'explication'
options:
nom: 'champ_courriel_destinataire_form'
label: '<:formidable:traiter_email_option_destinataires_champ_form_label:>'
explication: '<:formidable:traiter_email_option_destinataires_champ_form_explication:>'
attention: '<:formidable:traiter_email_option_destinataires_champ_form_attention:>'
afficher_si: '@traitements[email][champ_courriel_destinataire_form]@!=""'
env: true
nom: 'activer_accuse_explication'
texte: '<:formidable:traiter_email_option_activer_accuse_explication:>'
afficher_si: '!@traitements[email][champ_courriel]@'
-
saisie: 'fieldset'
options:
nom: 'envoyeur'
label: '<:formidable:traiter_email_envoyeur_courriel_label:>'
nom: 'responsable'
afficher_si: '@traitements[email][activer_responsable]@'
onglet: 'on'
label: '<:formidable:traiter_email_responsable_label:>'
saisies:
-
saisie: 'champ'
options:
nom: 'champ_courriel'
label: '<:formidable:traiter_email_option_envoyeur_courriel_label:>'
explication: '<:formidable:traiter_email_option_envoyeur_courriel_explication:>'
env: true
-
saisie: 'case'
options:
nom: 'activer_vrai_envoyeur'
label_case: '<:formidable:traiter_email_option_vrai_envoyeur_label:>'
explication: '<:formidable:traiter_email_option_vrai_envoyeur_explication:>'
-
saisie: 'input'
options:
nom: 'champ_nom'
label: '<:formidable:traiter_email_option_envoyeur_nom_label:>'
explication: '<:formidable:traiter_email_option_envoyeur_nom_explication:>'
saisie: 'fieldset'
options:
nom: 'sujet'
label: '<:formidable:traiter_email_sujet_courriel_label:>'
saisies:
-
saisie: 'input'
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:
nom: 'champ_sujet_valeurs_brutes'
label_case : '<:formidable:traiter_email_option_sujet_valeurs_brutes_label_case:>'
explication : '<:formidable:traiter_email_option_sujet_valeurs_brutes_explication:>'
conteneur_class: 'pleine_largeur'
-
saisie: 'fieldset'
options:
nom: 'contenu'
label: '<:formidable:traiter_email_contenu_courriel_label:>'
saisies:
-
saisie: 'textarea'
options:
nom: 'exclure_champs_email'
label: '<:formidable:traiter_email_option_exclure_champs_email_label:>'
explication: '<:formidable:traiter_email_option_exclure_champs_email_explication:>'
placeholder: "input_3,selection_2"
conteneur_class: 'pleine_largeur'
rows: 4
-
saisie: 'case'
options:
nom: 'pj'
conteneur_class: 'pleine_largeur'
label_case: '<:formidable:traiter_email_option_pj_label:>'
explication: '<:formidable:traiter_email_option_pj_explication:>'
-
saisie: 'case'
options:
nom: 'masquer_liens'
conteneur_class: 'pleine_largeur'
label_case: '<:formidable:traiter_email_option_masquer_liens_label_case:>'
-
saisie: 'case'
options:
nom: 'activer_ip'
conteneur_class: 'pleine_largeur'
label_case: '<:formidable:traiter_email_option_activer_ip_label_case:>'
-
saisie: 'case'
options:
nom: 'masquer_champs_vides'
conteneur_class: 'pleine_largeur'
label_case: '<:formidable:traiter_email_option_masquer_champs_vide_label_case:>'
-
saisie: 'fieldset'
options:
nom: 'destinataires'
label: '<:formidable:traiter_email_destinataires_courriel_label:>'
saisies:
-
saisie: 'champ'
options:
nom: 'champ_destinataires'
label: '<:formidable:traiter_email_option_destinataires_label:>'
explication: '<:formidable:traiter_email_option_destinataires_explication:>'
forcer_type: [destinataires,hidden]
type_choix: 'checkbox'
env: true
-
saisie: 'input'
options:
nom: 'destinataires_plus'
label: '<:formidable:traiter_email_option_destinataires_plus_label:>'
explication: '<:formidable:traiter_email_option_destinataires_plus_explication:>'
verifier:
type: 'email'
-
saisie: 'textarea'
options:
nom: 'destinataires_selon_champ'
label: '<:formidable:traiter_email_option_destinataires_selon_champ_label:>'
explication: '<:formidable:traiter_email_option_destinataires_selon_champ_explication:>'
placeholder: "@selection_1@/choix1 : mail1@example.tld, mail2@example.tld"
conteneur_class: 'pleine_largeur'
rows: 4
-
# conservé pour des raisons historiques, mais ne devrait pas exister (on a l'accusé de réception pour cela). C'est pourquoi on ne l'affiche que si cela existait déjà avant, mais on peut plus créer de nouveaux formulaires avec cette option.
saisie: 'champ'
options:
nom: 'champ_courriel_destinataire_form'
label: '<:formidable:traiter_email_option_destinataires_champ_form_label:>'
explication: '<:formidable:traiter_email_option_destinataires_champ_form_explication:>'
attention: '<:formidable:traiter_email_option_destinataires_champ_form_attention:>'
afficher_si: '@traitements[email][champ_courriel_destinataire_form]@!=""'
env: true
-
saisie: 'fieldset'
options:
nom: 'envoyeur'
label: '<:formidable:traiter_email_envoyeur_courriel_label:>'
saisies:
-
saisie: 'case'
options:
nom: 'activer_vrai_envoyeur'
label_case: '<:formidable:traiter_email_option_vrai_envoyeur_label:>'
explication: '<:formidable:traiter_email_option_vrai_envoyeur_explication:>'
-
saisie: 'input'
options:
nom: 'champ_nom'
label: '<:formidable:traiter_email_option_envoyeur_nom_label:>'
explication: '<:formidable:traiter_email_option_envoyeur_nom_explication:>'
-
saisie: 'fieldset'
options:
nom: 'AR'
label: '<:formidable:traiter_email_AR_label:>'
afficher_si: '@traitements[email][activer_accuse]@ && @traitements[email][champ_courriel]@'
onglet: 'on'
saisies:
-
saisie: 'explication'
options:
nom: 'accuse_explication'
afficher_si: '@traitements[email][champ_courriel]@==""'
texte: '<:formidable:traiter_email_accuse_explication_texte:>'
-
saisie: 'case'
options:
nom: 'activer_accuse'
conteneur_class: 'pleine_largeur'
label_case: '<:formidable:traiter_email_option_activer_accuse_label_case:>'
afficher_si: '@traitements[email][champ_courriel]@!=""'
-
saisie: 'input'
options:
nom: 'sujet_accuse'
label: '<:formidable:traiter_email_option_sujet_accuse_label:>'
explication: '<:formidable:traiter_email_option_sujet_explication:>'
afficher_si: '@traitements[email][activer_accuse]@!=""'
-
saisie: 'textarea'
options:
nom: 'texte_accuse'
label: '<:formidable:traiter_email_option_texte_accuse_label:>'
explication: '<:formidable:traiter_email_option_texte_accuse_explication:>'
afficher_si: '@traitements[email][activer_accuse]@!=""'
rows: 4
-
saisie: 'case'
options:
nom: 'masquer_valeurs_accuse'
label_case: '<:formidable:traiter_email_option_masquer_valeurs_accuse_label_case:>'
afficher_si: '@traitements[email][activer_accuse]@!=""'
-
saisie: 'input'
options:
nom: 'courriel_envoyeur_accuse'
label: '<:formidable:traiter_email_option_courriel_envoyeur_accuse_label:>'
explication: '<:formidable:traiter_email_option_courriel_envoyeur_accuse_explication:>'
afficher_si: '@traitements[email][activer_accuse]@!=""'
-
saisie: 'input'
options:
nom: 'nom_envoyeur_accuse'
label: '<:formidable:traiter_email_option_nom_envoyeur_accuse_label:>'
explication: '<:formidable:traiter_email_option_nom_envoyeur_accuse_explication:>'
afficher_si: '@traitements[email][activer_accuse]@!=""'
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