On peut désormais contacter plusieurs destinataires en même temps avec le formulaire de contact.

La config de plugin permet de désigner plusieurs destinataires par défaut.
Les contacts individuels des groupes continuent de fonctionner avec un array à la place d'un id_auteur.
La page Nous contacter est remaniée.
This commit is contained in:
Pierre 2020-12-04 00:27:31 +01:00
parent 370b8f5afd
commit be1e10e290
4 changed files with 26 additions and 18 deletions

View file

@ -1,7 +1,7 @@
<div class="container mt-3"> <div class="container mt-3">
<BOUCLE_principale(AUTEURS){tout}{id_auteur=#ENV{id_auteur}}> <BOUCLE_principale(AUTEURS){tout}{id_auteur=#ENV{id_auteur}}{0,1}>
<h2>Contacter #NOM</h2> <h2>Contacter #NOM</h2>
[<div class='mt-3 mb-3'>Téléphone : (#TELEPHONE) [ou (#TELEPHONE2)]</div>] [<div class='mt-3 mb-3'>Téléphone : (#TELEPHONE) [ou (#TELEPHONE2)]</div>]
#FORMULAIRE_NOUS_CONTACTER{#ID_AUTEUR} #FORMULAIRE_NOUS_CONTACTER{#ARRAY{0,#ID_AUTEUR}}
</BOUCLE_principale> </BOUCLE_principale>
</div> </div>

View file

@ -1,13 +1,18 @@
<section class="container section-top section-bottom"> <section class="container section-top section-bottom">
<div class="cadre-blanc"> <div class="cadre-blanc row">
<h1 class="col-12">Nous contacter</h1>
<div class='col-12 col-md-6'>
[(#FORMULAIRE_NOUS_CONTACTER{#CONFIG{balint/Tid_destinataires}})]
</div>
<div class='col-12 col-md-6'>
<BOUCLE_presentation(ARTICLES){grigri=contact}{0,1}{! par date}> <BOUCLE_presentation(ARTICLES){grigri=contact}{0,1}{! par date}>
<h1 class="#EDIT{titre}">#TITRE</h1>
<div class="#EDIT{texte}"> <div class="#EDIT{texte}">
#TEXTE #TEXTE
</div> </div>
</BOUCLE_presentation> </BOUCLE_presentation>
<BOUCLE_contact(AUTEURS){id_auteur=#CONFIG{balint/id_contact}}{0,1}{tout}> </div>
#FORMULAIRE_NOUS_CONTACTER{#ID_AUTEUR}
</BOUCLE_contact>
</div> </div>
</section> </section>

View file

@ -83,7 +83,7 @@
<fieldset> <fieldset>
<legend><i class="fas fa-users"></i> Destinataire du formulaire de contact</legend> <legend><i class="fas fa-users"></i> Destinataire du formulaire de contact</legend>
<select id="id_contact" name="id_contact" class="chosen"> <select id="id_contact" name="Tid_destinataires[]" class="chosen" multiple>
<option value="">&nbsp;</option> <option value="">&nbsp;</option>
<BOUCLE_auteurs(AUTEURS){tous}{par nom}> <BOUCLE_auteurs(AUTEURS){tous}{par nom}>
<option value="#ID_AUTEUR" [(#ID_AUTEUR|=={#ENV{id_contact}}|oui) selected]>#NOM</option> <option value="#ID_AUTEUR" [(#ID_AUTEUR|=={#ENV{id_contact}}|oui) selected]>#NOM</option>

View file

@ -15,7 +15,7 @@ if (!defined('_ECRIRE_INC_VERSION')) {
return; return;
} }
function formulaires_nous_contacter_charger_dist($id_auteur) { function formulaires_nous_contacter_charger_dist($Tdestinataires) {
include_spip('inc/texte'); include_spip('inc/texte');
$valeurs = array( $valeurs = array(
'nom_message_auteur' => '', 'nom_message_auteur' => '',
@ -26,14 +26,14 @@ function formulaires_nous_contacter_charger_dist($id_auteur) {
); );
// id du formulaire (pour en avoir plusieurs sur une meme page) // id du formulaire (pour en avoir plusieurs sur une meme page)
$valeurs['id'] = $id_auteur; $valeurs['id'] = intval($Tdestinataires[0]);
// passer l'id_auteur au squelette // passer les id_destinataires au squelette
$valeurs['id_auteur'] = $id_auteur; $valeurs['Tdestinataires'] = $Tdestinataires;
return $valeurs; return $valeurs;
} }
function formulaires_nous_contacter_verifier_dist($id_auteur) { function formulaires_nous_contacter_verifier_dist($Tdestinataires) {
$erreurs = array(); $erreurs = array();
include_spip('inc/filtres'); include_spip('inc/filtres');
@ -66,11 +66,14 @@ function formulaires_nous_contacter_verifier_dist($id_auteur) {
return $erreurs; return $erreurs;
} }
function formulaires_nous_contacter_traiter_dist($id_auteur) { function formulaires_nous_contacter_traiter_dist($Tdestinataires) {
$adres = _request('email_message_auteur'); $adres = _request('email_message_auteur');
$nom = _request('nom_message_auteur'); $nom = _request('nom_message_auteur');
$mail = sql_getfetsel('email','spip_auteurs','id_auteur=' . intval($id_auteur)); $Tmails = array();
foreach ($Tdestinataires as $id_auteur){
$Tmails[] = sql_getfetsel('email','spip_auteurs','id_auteur=' . intval($id_auteur));
}
$sujet = '[' . supprimer_tags(extraire_multi($GLOBALS['meta']['nom_site'])) . '] ' $sujet = '[' . supprimer_tags(extraire_multi($GLOBALS['meta']['nom_site'])) . '] '
. 'Nouveau message de ' . $nom; . 'Nouveau message de ' . $nom;
@ -91,7 +94,7 @@ function formulaires_nous_contacter_traiter_dist($id_auteur) {
), ),
); );
if ($envoyer_mail($mail, $sujet, $corps)) { if ($envoyer_mail($Tmails, $sujet, $corps)) {
$message = _T('form_prop_message_envoye'); $message = _T('form_prop_message_envoye');
return array('message_ok' => $message); return array('message_ok' => $message);