un formulaire de contact simplifié

This commit is contained in:
Pierre 2020-01-22 03:49:22 +01:00
parent 786cc89ab6
commit 3cd0afc7ff
2 changed files with 134 additions and 0 deletions

View file

@ -0,0 +1,32 @@
<div class="formulaire_spip formulaire_nous_contacter ajax" id="formulaire_nous_contacter#ENV{id}">
[<p class="reponse_formulaire reponse_formulaire_ok">(#ENV*{message_ok})</p>]
[<p class="reponse_formulaire reponse_formulaire_erreur">(#ENV*{message_erreur})</p>]
[(#ENV{editable})
<form method="post" action="#ENV{action}#formulaire_nous_contacter#ENV{id}">
[(#REM) declarer les hidden qui declencheront le service du formulaire parametre : url d'action ]
#ACTION_FORMULAIRE
<fieldset>
<div class="editer-groupe">
<div class="editer saisie_nom_message_auteur obligatoire[ (#ENV*{erreurs}|table_valeur{nom_message_auteur}|oui)erreur]">
[<span class="erreur_message">(#ENV*{erreurs}|table_valeur{nom_message_auteur})</span>]
<input type="text" class="text" name="nom_message_auteur" id="nom_message_auteur#ENV{id}" size="30" placeholder="Prénom et Nom"[(#HTML5) required="required"] />
</div>
<div class="editer saisie_email_message_auteur obligatoire[ (#ENV*{erreurs}|table_valeur{email_message_auteur}|oui)erreur]">
[<span class="erreur_message">(#ENV*{erreurs}|table_valeur{email_message_auteur})</span>]
<input[ (#HTML5|?{required="required" type="email" class="text email",type="text" class="text"})] name="email_message_auteur" id="email_message_auteur#ENV{id}" size="30" placeholder="Adresse e-mail"/>
</div>
<div class="editer saisie_texte_message_auteur obligatoire[ (#ENV*{erreurs}|table_valeur{texte_message_auteur}|oui)erreur]">
[<span class="erreur_message">(#ENV*{erreurs}|table_valeur{texte_message_auteur})</span>]
<textarea name="texte_message_auteur" id="texte_message_auteur#ENV{id}" rows="10" cols="60" placeholder="Message"[(#HTML5) required="required"]></textarea>
</div>
</div>
</fieldset>
[(#REM) Piege a robots spammeurs ]
<p style="display: none;">
<label for="nobot"><:antispam_champ_vide:></label>
<input type="text" class="text" name="nobot" id="nobot" value="#ENV{nobot}" size="10" />
</p>
<p class="boutons"><input type="submit" class="btn submit" name="valide" value="Envoyer >" /></p>
</form>
]
</div>

View file

@ -0,0 +1,102 @@
<?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($id_auteur) {
include_spip('inc/texte');
$valeurs = array(
'nom_message_auteur' => '',
'texte_message_auteur' => '',
'email_message_auteur' => '',
'nobot' => '',
);
// id du formulaire (pour en avoir plusieurs sur une meme page)
$valeurs['id'] = $id_auteur;
// passer l'id_auteur au squelette
$valeurs['id_auteur'] = $id_auteur;
return $valeurs;
}
function formulaires_nous_contacter_verifier_dist($id_auteur) {
$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($id_auteur) {
$adres = _request('email_message_auteur');
$nom = _request('nom_message_auteur');
$mail = 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($mail, $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);
}
}