|
Jonathan Marcopoulos
|
Mardi 16 Septembre 2008 6:12:22 pm
Au sujet du datatype "Object relation"
Bonjour à tous,
Je débute sur ez Publish, je suis donc confronté à des problématiques qui, je l'espère, vous seront plus familières, bien que mes recherches n'aient donné aucun résultat 
Voilà le topo :
Afin de pouvoir traduire le texte alternatif de mes images, sans avoir pour autant à envoyer une image par langue différente, j'ai rajouté un attribut my_alt_text à ma classe image, surchargé le template ezimage.tpl dans content/datatype/view, de sorte que ce soit mon nouvel attribut qui s'affiche en lieu et place de l'ancien.
J'avais besoin d'un attribut de type image dans une classe, mais lorsque je le choisis je n'ai pas accès à mon nouvel attribut my_alt_text, je ne sais plus quoi faire pour y parvenir.
Pour contourner ce problème, j'ai mis un attribut de type Object relation, auquel je lie dans mes objets les images dont j'ai besoin. Ce qui est sympa, c'est que je peux "en principe" jouir de mon attribut my_alt_text.
Ce qui ne l'est pas, c'est que j'ai du mal à utiliser cette relation et au final à afficher mon image ET mon attribut my_alt_text.
Lorqsue j'essaie d'afficher l'image formatée, je procède comme ça ;
{def $img=fetch(content, object, hash(object_id, $node.data_map.left_image2.content.current.data_map.image.contentobject_id))}
{attribute_view_gui attribute=$img.data_map.image}
left_image2 est l'attribut de type object relation de ma classe.
Dans ce cas là, l'image s'affiche, mais pas le texte alternatif...
J'ai également tenté des méthodes que je qualifierais moi-même de gitanes, mais elles n'ont rien donné.
Donc voici mes questions :
- J'ai peut-être appréhendé le problème d'une mauvaise façon... Auriez-vous des suggestions sur une meilleure analyse / résolution de mon problème de traduction de la balise alt ?
- Avez-vous une idée de la bonne façon de récupérer un objet, en l'occurence, une image, contenue dans un attribut de type object relation ?
Merci à ceux qui m'ont lu 
Edit :
Bon ben pour l'instant je fais comme ça ;
{def $img=fetch(content, object, hash(object_id, $node.data_map.left_image2.content.current.data_map.image.contentobject_id))}
<img src={$img.data_map.image.content.original.url|ezroot()} alt="{$node.data_map.left_image2.content.current.data_map.my_alt_text.content|wash}" title="{$node.data_map.left_image2.content.current.data_map.my_alt_text.content|wash}"/>
C'est crade mais ça marche... Vos suggestions sont toujours les bienvenues.
...
|