F-d-ration_de_groupes/formulaires/nous_contacter.php
Pierre be1e10e290 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.
2020-12-04 00:27:31 +01:00

106 lines
3.3 KiB
PHP

<?php
/***************************************************************************\
* SPIP, Systeme de publication pour l'internet *
* *
* Copyright (c) 2001-2020 *
* Arnaud Martin, Antoine Pitrou, Philippe Riviere, Emmanuel Saint-James *
* *
* Ce programme est un logiciel libre distribue sous licence GNU/GPL. *
* Pour plus de details voir le fichier COPYING.txt ou l'aide en ligne. *
\***************************************************************************/
if (!defined('_ECRIRE_INC_VERSION')) {
return;
}
function formulaires_nous_contacter_charger_dist($Tdestinataires) {
include_spip('inc/texte');
$valeurs = array(
'nom_message_auteur' => '',
'texte_message_auteur' => '',
'email_message_auteur' => isset($GLOBALS['visiteur_session']['email']) ?
$GLOBALS['visiteur_session']['email'] : '',
'nobot' => '',
);
// id du formulaire (pour en avoir plusieurs sur une meme page)
$valeurs['id'] = intval($Tdestinataires[0]);
// passer les id_destinataires au squelette
$valeurs['Tdestinataires'] = $Tdestinataires;
return $valeurs;
}
function formulaires_nous_contacter_verifier_dist($Tdestinataires) {
$erreurs = array();
include_spip('inc/filtres');
if (!$adres = _request('email_message_auteur')) {
$erreurs['email_message_auteur'] = _T('info_obligatoire');
} elseif (!email_valide($adres)) {
$erreurs['email_message_auteur'] = _T('form_prop_indiquer_email');
} else {
include_spip('inc/session');
session_set('email', $adres);
}
if (!$nom = _request('nom_message_auteur')) {
$erreurs['nom_message_auteur'] = _T('info_obligatoire');
} elseif (!(strlen($nom) > 3)) {
$erreurs['nom_message_auteur'] = _T('forum:forum_attention_trois_caracteres');
}
if (!$texte = _request('texte_message_auteur')) {
$erreurs['texte_message_auteur'] = _T('info_obligatoire');
} elseif (!(strlen($texte) > 10)) {
$erreurs['texte_message_auteur'] = _T('forum:forum_attention_dix_caracteres');
}
if (_request('nobot')) {
$erreurs['message_erreur'] = _T('pass_rien_a_faire_ici');
}
return $erreurs;
}
function formulaires_nous_contacter_traiter_dist($Tdestinataires) {
$adres = _request('email_message_auteur');
$nom = _request('nom_message_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'])) . '] '
. 'Nouveau message de ' . $nom;
$texte = _request('texte_message_auteur');
$texte .= "\n-- $nom";
$texte .= "\n-- $adres";
$texte .= "\n\n-- " . _T('envoi_via_le_site') . ' '
. supprimer_tags(extraire_multi($GLOBALS['meta']['nom_site']))
. ' (' . $GLOBALS['meta']['adresse_site'] . "/) --\n";
$envoyer_mail = charger_fonction('envoyer_mail', 'inc');
$corps = array(
'texte' => $texte,
'repondre_a' => $adres,
'headers' => array(
"X-Originating-IP: " . $GLOBALS['ip'],
),
);
if ($envoyer_mail($Tmails, $sujet, $corps)) {
$message = _T('form_prop_message_envoye');
return array('message_ok' => $message);
} else {
$message = _T('pass_erreur_probleme_technique');
return array('message_erreur' => $message);
}
}