From 4ef782675ce02b7d9007f7787fb8920aba816860 Mon Sep 17 00:00:00 2001
From: "Committo,Ergo:sum" <esj@rezo.net>
Date: Thu, 30 Dec 2004 21:47:01 +0000
Subject: [PATCH] =?UTF-8?q?nouveau=20squelette=20des=20nouveaut=C3=A9s=20e?=
 =?UTF-8?q?n=20une=20seule=20passe=20et=20permettant=20des=20Headers=20SMT?=
 =?UTF-8?q?P=20(cf=20commentaires=20dans=20inc=5Fcron)?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 ecrire/inc_cron.php3 | 34 +++++++++++++---------
 nouveautes-dist.html | 67 +++++++++++++-------------------------------
 2 files changed, 40 insertions(+), 61 deletions(-)

diff --git a/ecrire/inc_cron.php3 b/ecrire/inc_cron.php3
index 3e14448684..41b193697d 100644
--- a/ecrire/inc_cron.php3
+++ b/ecrire/inc_cron.php3
@@ -196,30 +196,36 @@ function cron_mail($t) {
 
 	include_local("inc-calcul.php3");
 	$page= cherche_page('',
-				array('date' => date('Y-m-d H:i:s')),
+			    array('date' => date('Y-m-d H:i:s', $t),
+				  'jours_neuf' => $jours_neuf),
 				'nouveautes',
 				'',
 				lire_meta('langue_site'));
 	$page = $page['texte'];
 	if (substr($page,0,5) == '<'.'?php') {
-# ancienne version: squelette en PHP avec affections. 1 passe de +
-				unset ($mail_nouveautes);
-				unset ($sujet_nouveautes);
+# ancienne version: squelette en PHP avec affection des 2 variables ci-dessous
+# 1 passe de + à la sortie
+				$mail_nouveautes = '';
+				$sujet_nouveautes = '';
+				$headers = '';
 				eval ('?' . '>' . $page);
 	} else {
-# nouvelle version: squelette en mode texte, 1ere ligne = sujet
-# il faudrait ge'ne'raliser en produisant les Headers standars SMTP
-# a` passer en 4e argument de mail. Surtout utile pour le charset.
+# nouvelle version en une seule passe avec un squelette textuel:
+# 1ere ligne = sujet
+# lignes suivantes jusqu'a la premiere blanche: headers SMTP
+
 				$page = stripslashes($page);
-				$p = strpos($page,"\n");
-				$sujet_nouveautes = substr($page,0,$p);
-				$mail_nouveautes = ereg_replace('\$jours_neuf',
-								$jours_neuf,
-								substr($page,$p+1));
+				$p = strpos($page,"\n\n");
+				$s = strpos($page,"\n");
+				$headers = substr($page,$s+1,$p-$s);
+				$sujet_nouveautes = substr($page,0,$s);
+				$mail_nouveautes = substr($page,$p+2);
 	}
 
-	if ($mail_nouveautes)
-		envoyer_mail($adresse_neuf, $sujet_nouveautes, $mail_nouveautes);
+	$n = strlen($mail_nouveautes);
+	if ($n > 10)
+	  envoyer_mail($adresse_neuf, $sujet_nouveautes, $mail_nouveautes, '', $headers);
+	spip_log("$n nouveautes depuis $jours_neuf jours");
 	return 1;
 }
 
diff --git a/nouveautes-dist.html b/nouveautes-dist.html
index 10c565c687..89fcd0e0b0 100644
--- a/nouveautes-dist.html
+++ b/nouveautes-dist.html
@@ -1,63 +1,36 @@
-<?php
+[[(#NOM_SITE_SPIP|textebrut|texte_script)]] <:nouveautes|texte_script:>
+Reply-to: esj
 
-/**********************************************************/
-/* Ce squelette tres specifique est utilise pour creer    */
-/* l'envoi de l'annonce des nouveautes. Attention, il     */
-/* fonctionne entierement en php...                       */
-/**********************************************************/
+<B0>
+<:bonjour|texte_script:>
 
-unset($mail_nouveautes);
-
-$sujet_nouveautes = '[[(#NOM_SITE_SPIP|textebrut|texte_script)]] <:nouveautes|texte_script:>';
-
-//
-// Articles
-//
-<B_nv1>
-$mail_nouveautes = '
+<:texte_lettre_information|texte_script:> "[(#NOM_SITE_SPIP|textebrut|texte_script)]" (#URL_SITE_SPIP).
+<:texte_lettre_information_2|texte_script:> [(#HTTP_VARS{jours_neuf})] <:jours|texte_script:>.
 
+<BOUCLE0(AUTEURS){0,1}><B_nv1>
           <:nouveaux_articles|texte_script:>
           --------------------------
 
-';
 <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|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 .= '
+[** (#TITRE|textebrut|texte_script) **]
+[par (#LESAUTEURS|textebrut|texte_script)]
+[le (#DATE|affdate|texte_script)]
+
+[(#INTRODUCTION|textebrut|texte_script)]
 
+-> #URL_SITE_SPIP/#URL_ARTICLE
+
+</BOUCLE_nv1><B_nv2>
           
           <:nouvelles_breves|texte_script:>
           --------------------------
 
-';
 <BOUCLE_nv2(BREVES){age_relatif<=0}{par date}{inverse}{0,30}>
-	$mail_nouveautes .= '[* (#TITRE|textebrut|texte_script) *]';
-	$mail_nouveautes .= '[ - (#DATE|affdate|texte_script)]'."\n\n";
-	$mail_nouveautes .= '[(#INTRODUCTION|textebrut|texte_script)]'."\n\n";
-	$mail_nouveautes .= '-> #URL_SITE_SPIP/#URL_BREVE'."\n\n";
-</BOUCLE_nv2>
-
+[* (#TITRE|textebrut|texte_script) *]
+[ - (#DATE|affdate|texte_script)]
 
-//
-//	Ajouter l'entete
-//
-if ($mail_nouveautes) {
-	$mail_nouveautes = '<:bonjour|texte_script:>
-
-<:texte_lettre_information|texte_script:> "[(#NOM_SITE_SPIP|textebrut|texte_script)]" (#URL_SITE_SPIP).
-<:texte_lettre_information_2|texte_script:> '.$jours_neuf.' <:jours|texte_script:>.
+[(#INTRODUCTION|textebrut|texte_script)]
 
-' . $mail_nouveautes;
-}
+-> #URL_SITE_SPIP/#URL_BREVE
 
-?>
+</BOUCLE_nv2></BOUCLE0>
\ No newline at end of file
-- 
GitLab