Note de ce sujet :
  • Moyenne : 0 (0 vote(s))
  • 1
  • 2
  • 3
  • 4
  • 5

Module News: afficher les "définitions de champs" suivant sommaire ou
#1

Citation :#~~~~~ NE PAS SUPPRIMER CE BLOC ~~~~~
#~ Version du CMS : 1.6.6
#~ Version du MLE si existante :
#~ Informations Système :
#~~~~~ NE PAS SUPPRIMER CE BLOC ~~~~~
Bonjour,

Dans le module "Articles", j'ai ajouté deux définitions de champs (des images).
Je souhaite afficher dans le sommaire de l'article uniquement l'image que j'appelle "vignette" dans ma définition.
Dans le détail de l'article je ne souhaite afficher que l'image que j'appelle "visuel" dans ma définition.

J'arrive effectivement à afficher uniquement "visuel" dans mon détail en m'y prenant comme ceci :

{if !empty($entry->visuel)}

<div id="image">
{if $field->type == 'file'}
{* this template assumes that every file uploaded is an image of some sort, because News doesn't distinguish *}
<img src="{$entry->file_location}/{$field->value}" width="516" height="397"/>
{else}
{$field->name}: {eval var=$field->value}
{/if}
</div><!-- image -->
{/if}

En revanche, si j'utilise ce code dans mon sommaire :

{if !empty($entry->vignette)}

{if $field->type == 'file'}
{* this template assumes that every file uploaded is an image of some sort, because News doesn't distinguish *}
<a href="{$entry->moreurl}" title="{$entry->title|cms_escape:htmlall}"><img src="{$entry->file_location}/{$field->value}"/></a>
{else}
{$field->name}: {eval var=$field->value}
{/if}

{/if}

j'ai un message d'erreur ": string(43) "Smarty error: eval: missing 'var' parameter" : string(43) "Smarty error: eval: missing 'var' parameter"

Je ne comprends pas trop pourquoi celà fontionne dans le détail et pas dans le sommaire? Un problème avec la boucle {foreach}?

Merci!
Répondre
#2

Parce que c'est {foreach from=$entry->fields item='field'} qui crée $field.
Il faut donc que tu déplaces le foreach avant $field.
Répondre
#3

Bonjour et merci pour ta réponse Jean Le Chauve!

J'ai essayé différentes solutions (oui le code pour moi se résume souvent à une partie de Tetris Smile ) mais sans succès... Voici le code complet (que je trouvais pourtant assez sexy dans Notepad)... qui ne donne rien! Je veux bien un petit coup de pouce, si ce n'est pas trop abuser!?

<!-- Start News Display Template -->

{foreach from=$items item=entry}

{foreach from=$entry->fields item='field'}
{if !empty($entry->vignette)}
{if $field->type == 'file'}
<a href="{$entry->moreurl}" title="{$entry->title|cms_escape:htmlall}"><img src="{$entry->file_location}/{$field->value}"/></a>
{else}
{$field->name}: {eval var=$field->value}
{/if}
{/if}
{/foreach}


{if $pagecount > 1}
<p>
{if $pagenumber > 1}
{$firstpage} {$prevpage} 
{/if}
{$pagetext} {$pagenumber} {$oftext} {$pagecount}
{if $pagenumber < $pagecount}
 {$nextpage} {$lastpage}
{/if}
</p>
{/if}
{/foreach}
<!-- End News Display Template -->

Merci!
Répondre
#4

Résolu ?
Répondre
#5

Non, j'avais laissé de côté entre temps (j'ai du bricoler un truc, je ne sais plus...), mais effectivement je pense que si je trouve une solution à cela, ce sera forcément utile. Donc je cherche et je reviens.
Répondre


Atteindre :


Utilisateur(s) parcourant ce sujet : 2 visiteur(s)