Valider a6a9d557 rédigé par Fil's avatar Fil
Parcourir les fichiers

Le critère {age_mail_nouv}fait son entrée. Il permet de composer proprement, sans le vilain hack d'avant, le mail nouveautés, mais aussi d'afficher dans un squelettes les articles parus depuis le dernier mail nouveautés (va savoir pourquoi...)

Par ailleurs #DATE_NOUVEAUTES permet d'afficher la date du dernier envoi.

(c) James aka Kliké
parent 7bef789e
Chargement en cours
Chargement en cours
Chargement en cours
Chargement en cours
+16 −3
Numéro de ligne d'origine Numéro de ligne de diff Ligne de diff
@@ -414,7 +414,13 @@ function parser_boucle($texte, $id_parent) {
						}
						else if ($col == 'age_relatif') {
							$date_prec = "($"."date)";
							$col = "(LEAST((TO_DAYS('$date_prec')-TO_DAYS($table.$col_date)),(DAYOFMONTH('$date_prec')-DAYOFMONTH($col_date))+30.4368*(MONTH('$date_prec')-MONTH($table.$col_date))+365.2422*(YEAR('$date_prec')-YEAR($table.$col_date))))";
							$col = "(LEAST((TO_DAYS('$date_prec')-TO_DAYS($table.$col_date)),(DAYOFMONTH('$date_prec')-DAYOFMONTH($table.$col_date))+30.4368*(MONTH('$date_prec')-MONTH($table.$col_date))+365.2422*(YEAR('$date_prec')-YEAR($table.$col_date))))";
							$col_table = '';
						}
						else if ($col == 'age_mail_nouv') {
							$datenouv = lire_meta('date_envoi') ? lire_meta('date_envoi') : time() - 3600*24*lire_meta('jours_neuf');
							$datenouv = date('Y-m-d H:i:s', $datenouv);
							$col = "(LEAST((TO_DAYS('$datenouv')-TO_DAYS($table.$col_date)),(DAYOFMONTH('$datenouv')-DAYOFMONTH($table.$col_date))+30.4368*(MONTH('$datenouv')-MONTH($table.$col_date))+365.2422*(YEAR('$datenouv')-YEAR($table.$col_date))))";
							$col_table = '';
						}
						else if ($col == 'age_redac') {
@@ -820,7 +826,7 @@ function parser($texte) {
		'ID_ARTICLE', 'ID_RUBRIQUE', 'ID_BREVE', 'ID_FORUM', 'ID_PARENT', 'ID_SECTEUR', 'ID_DOCUMENT', 'ID_TYPE',
		'ID_AUTEUR', 'ID_MOT', 'ID_SYNDIC_ARTICLE', 'ID_SYNDIC', 'ID_SIGNATURE', 'ID_GROUPE',
		'TITRE', 'SURTITRE', 'SOUSTITRE', 'DESCRIPTIF', 'CHAPO', 'TEXTE', 'PS', 'NOTES', 'INTRODUCTION', 'MESSAGE',
		'DATE', 'DATE_REDAC', 'DATE_MODIF', 'INCLUS',
		'DATE', 'DATE_REDAC', 'DATE_MODIF', 'DATE_NOUVEAUTES', 'INCLUS',
		'LESAUTEURS', 'EMAIL', 'NOM_SITE', 'LIEN_TITRE', 'URL_SITE', 'LIEN_URL', 'NOM', 'BIO', 'TYPE', 'PGP',
		'FORMULAIRE_ECRIRE_AUTEUR', 'FORMULAIRE_FORUM', 'FORMULAIRE_SITE', 'PARAMETRES_FORUM', 'FORMULAIRE_RECHERCHE', 'RECHERCHE', 'FORMULAIRE_INSCRIPTION', 'FORMULAIRE_SIGNATURE',
		'LOGO_MOT', 'LOGO_RUBRIQUE', 'LOGO_RUBRIQUE_NORMAL', 'LOGO_RUBRIQUE_SURVOL', 'LOGO_AUTEUR', 'LOGO_SITE',  'LOGO_BREVE', 'LOGO_BREVE_RUBRIQUE',  'LOGO_DOCUMENT', 'LOGO_ARTICLE', 'LOGO_ARTICLE_RUBRIQUE', 'LOGO_ARTICLE_NORMAL', 'LOGO_ARTICLE_SURVOL',
@@ -877,7 +883,7 @@ function parser($texte) {
	}

	// Dates : ajouter le vidage des dates egales a 00-00-0000
	$c = array('DATE', 'DATE_REDAC', 'DATE_MODIF');
	$c = array('DATE', 'DATE_REDAC', 'DATE_MODIF', 'DATE_NOUVEAUTES');
	reset($c);
	while (list(, $val) = each($c)) {
		$champs_traitement[$val][] = 'vider_date';
@@ -1341,6 +1347,13 @@ function calculer_champ($id_champ, $id_boucle, $nom_var)
		$code = "propre('- ')";
		break;

	case 'DATE_NOUVEAUTES':
		if (lire_meta('quoi_de_neuf') == 'oui' AND lire_meta('date_envoi'))
			$code = "date('Y-m-d H:i:s', lire_meta('date_envoi'))";
		else
			$code = "'0000-00-00'";
		break;

	case 'URL_ARTICLE':
		$code = "generer_url_article(\$contexte['id_article'])";
		break;
+5 −8
Numéro de ligne d'origine Numéro de ligne de diff Ligne de diff
@@ -215,7 +215,7 @@ if ($admin_ok AND !$flag_preserver AND !$flag_boutons_admin) {

$majnouv = lire_meta('majnouv');
if (!$timeout AND lire_meta('quoi_de_neuf') == 'oui' AND $jours_neuf = lire_meta('jours_neuf')
	AND $adresse_neuf = lire_meta('adresse_neuf') AND (time() - $majnouv) > 3600 * 24 * $jours_neuf) {
	AND $adresse_neuf = lire_meta('adresse_neuf') AND (time() - $majnouv) > 3600 * 24 * $jours_neuf) { //lire_meta('date_envoi') ? lire_meta('date_envoi') : $majnouv
	include_ecrire('inc_connect.php3');
	if ($db_ok) {
		// lock && indication du prochain envoi
@@ -229,22 +229,19 @@ if (!$timeout AND lire_meta('quoi_de_neuf') == 'oui' AND $jours_neuf = lire_meta
		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;
		// preparation mail
		unset ($mail_nouveautes);
		unset ($sujet_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');
			ecrire_meta('date_envoi', lire_meta('majnouv'));
			ecrire_metas();
			spip_log("envoi mail nouveautes");
			include_ecrire('inc_mail.php3');
			envoyer_mail($adresse_neuf, $sujet_nouveautes, $mail_nouveautes);
		} else
			spip_log("envoi mail nouveautes : pas de nouveautes");
+2 −2
Numéro de ligne d'origine Numéro de ligne de diff Ligne de diff
@@ -21,7 +21,7 @@ $mail_nouveautes = '
          -----------------

';
<BOUCLE_nv1(ARTICLES){age_relatif<=0}{par date}{inverse}{0,30}>
<BOUCLE_nv1(ARTICLES){age_mail_nouv<=0}{par date}{inverse}{0,30}>
	$mail_nouveautes .= '[** (#TITRE|textebrut|texte_script) **]';
	$mail_nouveautes .= "\n";
	$mail_nouveautes .= '[par (#LESAUTEURS|textebrut|texte_script)] ';
@@ -41,7 +41,7 @@ $mail_nouveautes .= '
          ----------------

';
<BOUCLE_nv2(BREVES){age_relatif<=0}{par date}{inverse}{0,30}>
<BOUCLE_nv2(BREVES){age_mail_nouv<=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";