function action_editer_signatures_relance($id_article) { include_spip('formulaires/signature'); include_spip('inc/texte'); $url = generer_url_entite_absolue($id_article, 'article','','',true); list($titre, $url) = signature_langue($id_article, $url); $envoyer_mail = charger_fonction('envoyer_mail','inc'); $query = sql_select('*', 'spip_signatures', "id_article=$id_article AND NOT (statut='publie' OR statut='poubelle') AND date_time < DATE_SUB(NOW(), INTERVAL 1 DAY)", 'ad_email'); $n = 0; while ($r = sql_fetch($query)) { list($sujet, $corps) = signature_demande_confirmation($id_article, $url, $r['nom_email'], $r['nom_site'], $r['url_site'], $r['message'], $titre, $r['statut']); if ($envoyer_mail($mail, $sujet, $corps)) $n++; } spip_log("$n signatures relancees pour $titre"); }
function signatures_edit_mail($id_article, $ad_email, $row) { $email = attribut_html($ad_email); if (email_valide($ad_email)) { if ($row['statut'] != 'publie' AND autoriser('modererpetition', 'article', $id_article)) { include_spip('formulaires/signature'); $url = generer_url_entite_absolue($id_article, 'article','','',true); list($titre, $url) = signature_langue($id_article, $url); list($sujet, $corps) = signature_demande_confirmation($id_article, $url, $row['nom_email'], $row['nom_site'], $row['url_site'], $row['message'], $titre, $row['statut']); include_spip('inc/filtres'); $sujet = rawurlencode(filtrer_entites($sujet)); $corps = rawurlencode(filtrer_entites($corps)); $corps = "?subject=$sujet&body=$corps"; } else $corps = ''; $email = "<a href=\"mailto:$ad_email$corps\">$email</a>"; } return "<div class='ad_email'><span class='spip_x-small'>" ._T('info_adresse_email') ."</span> " . $email . "</div>\n"; }
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 }