variable ENV dans TITRE newsletter

je veux tenter de résoudre un pb posé depuis un moment dans la discussion du plugin newsletter depuis septembre 2024 et sans solution.
La doc décrit la possibilité d’utiliser dans le TITRE de la newsletter une variable de contexte, dont la date de génération et de lui appliquer un filtre de date… ce qui permettrait d’avoir un titre genre « les nouveautés du 13 septembre », qui soit dans la nexsletter générée et idéalement stockée dans la table des newsletters…

sauf que ça ne fonctionne dans le titre… (ca fonctionne dans le chapeau ou le texte)
parcourant le code du plugin, mais je n’arrive pas à identifier où cela devrait se faire…

merci d’avance d’une piste…

Qu’as tu essayé précisément ?

As tu aussi essayé en insérant juste un modèle <datedujour|> qui renvoie la date ?

Peux tu préciser aussi tout le reste : ajouter un lien vers la discussion dont tu parles, vers la doc dont tu parles, éventuellement vers le code que tu dit avoir déjà examiné…

Je le fais régulièrement.
Je viens de retester : [(#ENV{date}|affdate)] dans le titre de l’infolettre me génère bien la date du jour dans l’objet du mail.

Je confirme également ce test : il s’agit bien d’écrire Les nouveautés du [(#ENV{date}|affdate)] dans le champ titre de la newsletter.

merci… donc peut-être si ca marche ailleurs c’est plutôt dans mon gabarit ?
mais j’ai le même résultat avec les squelettes de base newsletter, ceux de SC…

la discussion est Newsletters - SPIP-Contrib en septembre novembre 2024…

Mon environnement SPIP 4.4.6 , SoyezCréateurs Rebirth 6.5.0 Newsletter 3.2.1
Gabarit proposé par SC, retouché à la marge
en mettant dans le titre de la newsletter « La lettre hebdo du Vénissian [(#ENV{date}|affdate)] » j’obtiens dans la liste des lettres ?exec=newsletters:

et dans la lettre générée

oui j’ai essayé avec plusieurs balises dates
avec juste une variable @date@ ca fonctionne, mais il n’y a pas de possibilité de filtre, donc c’est pas terrible format date, heure…
de fait, une balise n’est pas interprétée dans le titre (elle l’est dans le chapeau ou le texte…)

Ha ça c’est normal, la balise de date n’est évaluée que lors de la génération du HTML par le plugin newsletters. Chez moi, par exemple, ça donne aussi « Lettre xxx du [(#ENV{date}|affdate)] », mais si je fais voir en ligne sur la newsletter j’ai bien une date

J’avais ouvert un ticket à propos d’un bug à ce sujet par ici Champ DATE pas à jour dans le contenu généré après publication (#10) · Issues · spip-contrib-extensions / newsletters · GitLab et tu pourras y lire l’explication de @cerdic à propos des dates dans les templates de newsletter.

Bonjour
Deux observations par chez moi (SPIP 4.4.6, Newsletters 3.2.1, PHP 8.2.17) :

  1. Quand je mets Mon Titre - [(#ENV{date}|affdate)] dans le champ TITRE de l’infolettre, à la lecture de l’infolettre reçue le titre affiché est : Mon Titre - [(#ENVdate|affdate)].
    Dans tmp\cache\newsletters je vois aussi que les { } qui encadrent « date » ont été supprimées : Mon titre - [(#ENVdate|affdate)]
    Par contre, cela fonctionne si je place [(#ENV{date}|affdate)] dans le head du squelette de mon infolettre : <title>[(#TITRE|textebrut)] - [(#ENV{date}|affdate)]</title>

  2. Quand je place [(#ENV{date}|affdate)] quelque part dans le « body » de l’infolettre, la date s’affiche bien mais :

  • le clic pour voir l’infolettre dans un navigateur affiche ensuite non pas la date d’envoi de l’infolettre, mais la date de la lecture de cette infolettre dans le navigateur.
  • dans mon courrielleur (Thunderbird), pas de pb la date affichée dans le body de l’infolettre reste celle de l’envoi.

merci, j’ai lu et je comprends que le pb était d’avoir la bonne date, selon qu’il y a ou pas une date_redac… et que c’est corrigé dans la 3.2.0.
cela dit, mon problème, (et de Helem), ce n’est pas le choix de la date, mais le fait d’interpréter ou pas la balise avec filtre affdate… dans le TITRE de la newsletter… ce que n’évoque pas cédric pour qui c’est interprété…

on a visiblement exactement le même problème… tu utilises SoyezCreateurs ?

C’est le plugin Titres typographiés qui casse le fonctionnement attendu.

Rien à voir avec SoyezCréateurs (si ce n’est que ce dernier nécessite le dit plugin fautif).

J’ai donc créé un ticket : Interprétation des balises cassée avec NewsLetter (#4) · Issues · spip-contrib-extensions / titres_typographies · GitLab

Alors pour ma part, je n’utilise pas le plugin « Titres typographiés » donc mon pb ne vient pas de là.
Nouveau test :

  • Dans le head de mon gabarit <title>[(#TITRE]</title> donc en enlevant le filtre « |textebrut »,
  • Dans le champ TITRE de l’info lettre : Mon titre [(#ENV{date}|affdate)]

J’obtiens :

  • L’affichage d’une erreur : « Filtre date non défini ».
  • La date n’est pas interprétée, et dans tmp/cache/newsletters je vois :
    <title>Mon titre [(#ENV<i>date</i>|affdate)]</title>

Le plugin Ortho-Typographie casse également le fonctionnement si on coche l’option Styler les mots en lettres capitales.

1 « J'aime »

Dans <title>Mon titre [(#ENV<i>date</i>|affdate)]</title> on voit qu’un zélé code typographe a remplacé les { ... } utilisés pour #ENV par des italiques

Et j’ai testé avec Les nouveautés du <html>[(#ENV{date}|affdate)]</html>

Et là, ça marche ! (ticket mis à jour : Interprétation des balises cassée avec NewsLetter (#4) · Issues · spip-contrib-extensions / titres_typographies · GitLab)

Donc, contournement possible : entourer la balise par <html></html>

:wink:

1 « J'aime »

Par contre, ça ne marche pas avec le gabarits de lettre spécifiques à SoyezCréateurs.

Ça fait partie des chantiers en attente de refondre ces gabarits.