Passage de variable dans différents templates avec attribute_view_gui pour du mailling

Vous devez être connecté pour utiliser le forum. Vous pouvez le faire ici.

Auteur Message

David P.

Mardi 24 Juin 2008 6:26:19 pm

Passage de variable dans différents templates avec attribute_view_gui pour du mailling

Bonjour à tous,

Mon titre n'est peut-être pas très clair! J'explique:
Je suis en train de développer un petit module de mailling qui me permettra d'envoyer le contenu d'un article par mail, en HTML. Dans mon template spécifique, j'utilise le node_id du contenu pour récupérer son titre, et le contenu de son body, résultant d'une saisie via l'editeur graphique par un rédacteur.

Ca donne ça dans mon template de mailling :
{def $node = fetch( 'content', 'node', hash( 'node_id', 267 ))}
<div id="contenu_article">
<h3> {attribute_view_gui attribute=$node.data_map.title} </h3>
<div class="body"> {attribute_view_gui attribute=$node.data_map.body} </div>
</div>

Ce body est au format ezxml. La fonction "attribute_view_gui " utilise donc les différents templates "link.tpl", "td.tpl", ezimage.tpl"... pour générer le HTML du body.

Mon problème :
Le mail est bien envoyé avec le contenu de l'article, mais les URL générées par link.tpl et ezimage.tpl sont des urls relatives, ce qui pose problème dans le contenu de mes mails (les images ne sont pas affichées) !!
Je voudrais que ces templates génèrent des URL absolue QUE DANS LE CAS du mailling, mais pas sur mon site web public.

Je cherche donc à faire passer une variable "in_mailling" pour gérer dans ces deux templates , soit des URL absolues pour du mailling, soit des url relatives sur mon site.

Comme indiqué dans la doc ( http://ez.no/doc/ez_publish/techn...ons/visualization/attribute_view_gui ), j'ai essayé de passer un paramètre à la fonction attribute_view_gui comme ceci :
{attribute_view_gui attribute=$node.object.data_map.file in_mailling='true'}

Mais je n'arrive pas à l'exploiter dans mes templates link.tpl et ezimage.tpl : {$in_mailling} n'affiche rien dans mon mail...

Quelqu'un à une idée à ce propos?
Comment puis-je définir une variable qui soit "globale" et accessible dans tous les templates appelés en cascade?

Merci de vos précieux conseils!

David P.

Mercredi 25 Juin 2008 12:08:55 pm

Re: Passage de variable dans différents templates avec attribute_view_gui pour du mailling

Après quelques tests, je conclue qu'on ne peut passer un paramètre avec attribute_view_gui que d'un template à un autre.
Si cet autre template utilise aussi attribute_view_gui (comme c'est souvent le cas avec les ezxml issues de Online Editor) le paramètre n'est pas transmis aux tempaltes suivants appelés.

Comment puis-je définir une variable depuis mon module php qui soit accessible à tous les templates utilisés ??

David P.

Mercredi 25 Juin 2008 4:19:24 pm

Re: Passage de variable dans différents templates avec attribute_view_gui pour du mailling

Pour l'instant, je n'ai pas trouvé mieux que d'utiliser une variable de session "in_mailling" que je détruis après parsing du template. Selon sa valeur, j'utilise l'opérateur de template ezurl() avec le paramètre full ou relative selon le cas.
...

eZ publish™ copyright © 1999-2008 eZ systems as