function signature_a_confirmer($id_article, $url_page, $nom, $mail, $site, $url, $msg, $lang, &$statut) { include_spip('inc/texte'); include_spip('inc/filtres'); // Si on est deja connecte et que notre mail a ete valide d'une maniere // ou d'une autre, on entre directement la signature dans la base, sans // envoyer d'email. Sinon email de verification if (isset($GLOBALS['visiteur_session']['statut']) and $GLOBALS['visiteur_session']['session_email'] == $GLOBALS['visiteur_session']['email'] and strlen($GLOBALS['visiteur_session']['email']) or isset($GLOBALS['visiteur_session']['email_confirme']) and $GLOBALS['visiteur_session']['session_email'] == $GLOBALS['visiteur_session']['email_confirme'] and strlen($GLOBALS['visiteur_session']['session_email'])) { // Si on est en ajax on demande a reposter sans ajax, car il faut // recharger toute la page pour afficher la signature refuser_traiter_formulaire_ajax(); $statut = 'publie'; // invalider le cache ! include_spip('inc/invalideur'); suivre_invalideur("id='article/{$id_article}'"); // message de reussite return _T('petitions:form_pet_signature_validee'); } // // Cas normal : envoi d'une demande de confirmation // $row = sql_fetsel('titre,lang', 'spip_articles', "id_article=" . intval($id_article)); $lang = lang_select($row['lang']); $titre = textebrut(typo($row['titre'])); if ($lang) { lang_select(); } if (!strlen($statut)) { $statut = signature_test_pass(); } if ($lang != $GLOBALS['meta']['langue_site']) { $url_page = parametre_url($url_page, "lang", $lang, '&'); } $url_page = parametre_url($url_page, 'var_confirm', $statut, '&') . "#sp{$id_article}"; $r = _T('petitions:form_pet_mail_confirmation', array('titre' => $titre, 'nom_email' => $nom, 'nom_site' => $site, 'url_site' => $url, 'url' => $url_page, 'message' => $msg)); $titre = _T('petitions:form_pet_confirmation') . " " . $titre; $envoyer_mail = charger_fonction('envoyer_mail', 'inc'); if ($envoyer_mail($mail, $titre, $r)) { return _T('petitions:form_pet_envoi_mail_confirmation', array('email' => $mail)); } return false; # erreur d'envoi de l'email }
function signature_a_confirmer($id_article, $url_page, $nom, $mail, $site, $url, $msg, $lang, &$statut) { // Si on est deja connecte et que notre mail a ete valide d'une maniere // ou d'une autre, on entre directement la signature dans la base, sans // envoyer d'email. Sinon email de verification if ( // Cas 1: on est loge et on signe avec son vrai email ( isset($GLOBALS['visiteur_session']['statut']) AND $GLOBALS['visiteur_session']['session_email'] == $GLOBALS['visiteur_session']['email'] AND strlen($GLOBALS['visiteur_session']['email']) ) // Cas 2: on a deja signe une petition, et on conserve le meme email OR ( isset($GLOBALS['visiteur_session']['email_confirme']) AND $GLOBALS['visiteur_session']['session_email'] == $GLOBALS['visiteur_session']['email_confirme'] AND strlen($GLOBALS['visiteur_session']['session_email']) ) ) { // Si on est en ajax on demande a reposter sans ajax, car il faut // recharger toute la page pour afficher la signature refuser_traiter_formulaire_ajax(); $statut = 'publie'; // invalider le cache ! include_spip('inc/invalideur'); suivre_invalideur("id='varia/pet$id_article'"); // message de reussite : en ajax, preciser qu'il faut recharger la page // pour voir le resultat return _T('form_pet_signature_validee'); } // // Cas normal : envoi d'une demande de confirmation // list($titre, $url_page) = signature_langue($id_article, $url_page); if (!strlen($statut)) $statut = signature_test_pass(); list($sujet, $corps) = signature_demande_confirmation($id_article, $url_page, $nom, $site, $url, $msg, $titre, $statut); $envoyer_mail = charger_fonction('envoyer_mail','inc'); if ($envoyer_mail($mail, $sujet, $corps)) return _T('form_pet_envoi_mail_confirmation',array('email'=>$mail)); return false; # erreur d'envoi de l'email }