05/06/2012, 23:16:22
Bonsoir,
Pour un client qui désire ajouter une image dans sa news et qu'elle soit automatiquement retravaillée par CGSmartImage, j'ai ajouté une définition de champ de type fichier comme AireLibre l'a gracieusement expliqué dans ce post
Ça fonctionne du tonnerre, mais ma cliente souhaite utiliser une image existant déjà sur le serveur. Il me faut donc lui donner accès à une boîte de dialogue de sélection d'image.
Je ne connais pas suffisamment l'api pour y arriver, j'ai donc créé une définition de champ de type "zone de texte" ce qui lui affiche le wysiwyg et son filepicker.
Tout marche nickel grâce à ce code dans le gabarit de détail de la news :Ok, tout se passe pour le mieux
Mais, là où ça se complique, c'est dans le gabarit du sommaire :mad:
Pas moyen de récupérer le champ imagePicker.
J'ai essayé :
Merci pour le coup de mains si vous trouvez l'astuce.
Pour un client qui désire ajouter une image dans sa news et qu'elle soit automatiquement retravaillée par CGSmartImage, j'ai ajouté une définition de champ de type fichier comme AireLibre l'a gracieusement expliqué dans ce post
Ça fonctionne du tonnerre, mais ma cliente souhaite utiliser une image existant déjà sur le serveur. Il me faut donc lui donner accès à une boîte de dialogue de sélection d'image.
Je ne connais pas suffisamment l'api pour y arriver, j'ai donc créé une définition de champ de type "zone de texte" ce qui lui affiche le wysiwyg et son filepicker.
Tout marche nickel grâce à ce code dans le gabarit de détail de la news :
Code :
[== Indéfini ==]
{* on regarde d'abord si une imagée a été envoyée par le champ de type fichier *}
{if $entry->fieldsbyname.Image->value neq ''}
{capture assign='photoarticle'}uploads/news/id{$entry->id}/{$entry->fieldsbyname.Image->value}{/capture}
<a href="{$photoarticle}" title="{$entry->title|cms_escape:htmlall}" class="alignleft zoom">
{CGSmartImage alias='news' src=$photoarticle alt=$entry->title class='bordure'}
<p class="textalignleft">Cliquez pour zoomer</p></a>
{* sinon une image venant du wysiwyg dont on ne conserve que le chemin *}
{elseif $entry->fieldsbyname.imagePicker->value neq ''}
{capture assign="picker"}
{$entry->fieldsbyname.imagePicker->value|replace:'<img src="':''|replace:'" alt="" />':''}
{/capture}
<a href="{$picker}" title="{$entry->title|cms_escape:htmlall}" class="alignleft zoom">
{CGSmartImage alias='news' src=$picker alt=$entry->title class='bordure'}
<p class="textalignleft">Cliquez pour zoomer</p></a>
{/if}
Mais, là où ça se complique, c'est dans le gabarit du sommaire :mad:
Pas moyen de récupérer le champ imagePicker.
J'ai essayé :
- {$entry->fieldsbyname.imagePicker}
- {$entry->fieldsbyname.imagePicker->value}
- {eval var=$entry->fieldsbyname.imagePicker}
- {$entry->imagePicker}
- {$entry->imagePicker->value}
- etc.
Merci pour le coup de mains si vous trouvez l'astuce.