diff --git a/ecrire/config-fonctions.php3 b/ecrire/config-fonctions.php3 index 18fa1220b6203bd14fdc9e707445430299e87bf7..5c9d79f9daf860dc714d513447b4ed192be039c0 100644 --- a/ecrire/config-fonctions.php3 +++ b/ecrire/config-fonctions.php3 @@ -341,7 +341,7 @@ if (tester_mail()) { $jours_neuf=lire_meta("jours_neuf"); if ($envoi_now) - envoyer_mail_quoi_de_neuf('force'); + spip_query("DELETE FROM spip_meta WHERE nom='majnouv'"); echo "<TR><TD> </TD></TR>"; echo "<TR><TD BGCOLOR='#EEEECC' BACKGROUND='img_pack/rien.gif'><B><FONT FACE='Verdana,Arial,Helvetica,sans-serif' SIZE=3>Annonce des nouveautés</FONT></B></TD></TR>"; diff --git a/ecrire/inc_filtres.php3 b/ecrire/inc_filtres.php3 index b1ceaeec56e117feeb9f66ee63083961a6bd4ffe..eb88cd7864cdb04463157a1ede19a7cfabbda5b5 100644 --- a/ecrire/inc_filtres.php3 +++ b/ecrire/inc_filtres.php3 @@ -22,6 +22,12 @@ function entites_html($texte) { } +function entites_date($date) { // specifique : pour envoyer une date par mail + $date = ereg_replace("û", "\xfb", $date); + $date = ereg_replace("é", "\xe9", $date); + return $date; +} + // Enleve le numero des titres numerotes ("1. Titre" -> "Titre") function supprimer_numero($texte) { $texte = ereg_replace("^[[:space:]]*[0-9]+[.)".chr(176)."][[:space:]]+", "", $texte); @@ -379,13 +385,8 @@ function saison($numdate) { return affdate_base($numdate, 'saison'); } -function affdate($numdate, $corriger_entites = false) { - $date = affdate_base($numdate, 'entier'); - if ($corriger_entites) { // special pour le mail... - $date = ereg_replace("û", "\xfb", $date); - $date = ereg_replace("é", "\xe9", $date); - } - return $date; +function affdate($numdate) { + return affdate_base($numdate, 'entier'); } function affdate_court($numdate) { diff --git a/ecrire/inc_mail.php3 b/ecrire/inc_mail.php3 index 459f048dba9de99ea19fa009753db90a1ace9720..4d165cb2b50368a24d5a22ca50eef01e5bcee1a9 100644 --- a/ecrire/inc_mail.php3 +++ b/ecrire/inc_mail.php3 @@ -156,6 +156,7 @@ function envoyer_mail_proposition($id_article) { } } +/* function envoyer_mail_nouveautes($majnouv) { $jours_neuf = lire_meta("jours_neuf"); $adresse_site = lire_meta("adresse_site"); @@ -222,6 +223,6 @@ function envoyer_mail_quoi_de_neuf($force=false) { ecrire_meta('majnouv', time()); ecrire_metas(); envoyer_mail_nouveautes($majnouv); -} +} */ ?> diff --git a/inc-public-global.php3 b/inc-public-global.php3 index 9b9fed5d92a596c0ae42f4e577db86aaef42de1c..4b3abc78def941d77e9bed8f21fe808c75703479 100644 --- a/inc-public-global.php3 +++ b/inc-public-global.php3 @@ -384,9 +384,29 @@ if (lire_meta("activer_statistiques") != "non") { // if ($db_ok) { $majnouv = lire_meta('majnouv'); - if ((lire_meta('quoi_de_neuf')=='oui') AND ($jours_neuf=lire_meta('jours_neuf')) AND (email_valide(lire_meta('adresse_neuf'))) AND ((time() - $majnouv) > 3600*24*$jours_neuf)) { - include_ecrire('inc_mail.php3'); - envoyer_mail_quoi_de_neuf(); + if ((lire_meta('quoi_de_neuf')=='oui') AND ($jours_neuf=lire_meta('jours_neuf')) AND (email_valide($adresse_neuf = lire_meta('adresse_neuf'))) AND ((time() - $majnouv) > 3600*24*$jours_neuf)) { + + // lock && indication du prochain envoi + ecrire_meta('majnouv', time()); + ecrire_metas(); + + // preparation mail : date de reference au format MySQL pour l'age_relatif du squelette (grrr) + if ($majnouv) + $date = $majnouv; + else + $date = time() - 3600*24*$jours_neuf; + unset ($mail_nouveautes); + $fond = 'nouveautes'; + $delais = 0; + $contexte_inclus['date'] = date('Y-m-d H:i:s', $date); + include(inclure_fichier($fond, $delais, $contexte_inclus)); + + // envoi + if ($mail_nouveautes) { + include_ecrire('inc_mail.php3'); + $nom_site_spip = lire_meta('nom_site_spip'); + envoyer_mail($adresse_neuf, "[$nom_site_spip] Les nouveautes", $mail_nouveautes); + } } } diff --git a/nouveautes-dist.html b/nouveautes-dist.html new file mode 100644 index 0000000000000000000000000000000000000000..70e8a0ef706ee7452ed1278431c0ab06e2816bfe --- /dev/null +++ b/nouveautes-dist.html @@ -0,0 +1,62 @@ +<?php + +/**********************************************************/ +/* Ce squelette tres specifique est utilise pour creer */ +/* l'envoi de l'annonce des nouveautes. Attention, il */ +/* fonctionne entierement en php... */ +/**********************************************************/ + +unset($mail_nouveautes); + +// +// Articles +// +<B_nv1> +$mail_nouveautes = ' + + ----------------- + NOUVEAUX ARTICLES + ----------------- + +'; +<BOUCLE_nv1(ARTICLES){age_relatif>=0}{par date}{inverse}{0,30}> + $mail_nouveautes .= '[** (#TITRE|textebrut|texte_script) **]'; + $mail_nouveautes .= "\n"; + $mail_nouveautes .= '[par (#LESAUTEURS|textebrut|texte_script)] '; + $mail_nouveautes .= '[le (#DATE|affdate|entites_date|texte_script)]'."\n\n"; + $mail_nouveautes .= '[(#INTRODUCTION|textebrut|texte_script)]'."\n\n"; + $mail_nouveautes .= '-> #URL_SITE_SPIP/#URL_ARTICLE'."\n\n"; +</BOUCLE_nv1> + +// +// Breves +// +<B_nv2> +$mail_nouveautes .= ' + + ---------------- + NOUVELLES BREVES + ---------------- + +'; +<BOUCLE_nv2(BREVES){age_relatif>=0}{par date}{inverse}{0,30}> + $mail_nouveautes .= '[* (#TITRE|textebrut|texte_script) *]'; + $mail_nouveautes .= '[ - (#DATE|affdate|entites_date|texte_script)]'."\n\n"; + $mail_nouveautes .= '[(#INTRODUCTION|textebrut|texte_script)]'."\n\n"; + $mail_nouveautes .= '-> #URL_SITE_SPIP/#URL_BREVE'."\n\n"; +</BOUCLE_nv2> + + +// +// Ajouter l'entete +// +if ($mail_nouveautes) { + $mail_nouveautes = "Bonjour, + +Voici la lettre d'information du site \"#NOM_SITE_SPIP\" (#URL_SITE_SPIP), +qui recense les articles et les br\xe8ves publi\xe9s depuis $joursneuf jours. + +" . $mail_nouveautes; + } + +?>