[Résolu]news : ajouter un imagePicker avec gestion CGSmartImage -
Jean le Chauve - 05/06/2012
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 :
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}
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é :
- {$entry->fieldsbyname.imagePicker}
- {$entry->fieldsbyname.imagePicker->value}
- {eval var=$entry->fieldsbyname.imagePicker}
- {$entry->imagePicker}
- {$entry->imagePicker->value}
- etc.
{$entry|print_r} m'affiche l'image.
Merci pour le coup de mains si vous trouvez l'astuce.
[Résolu]news : ajouter un imagePicker avec gestion CGSmartImage -
Jean le Chauve - 06/06/2012
J'ai enfin trouvé
Ajout d'un foreach supplémentaire : {foreach from=$entry->fields item='field'}
Code :
{foreach from=$entry->fields item='field'}
{if $entry->image neq ''}
{capture assign='photoarticle'}uploads/news/id{$entry->id}/{$entry->image}{/capture}
<a href="{$entry->moreurl}" title="{$entry->title|cms_escape:htmlall}" class="alignleft">
{CGSmartImage alias='miniature_news' src=$photoarticle alt=$entry->title class="alignleft"}</a>
{elseif $field->name == 'imagePicker' && $field->value neq ''}
{capture assign='photopicker'}{eval var=$field->value|replace:'<img src="':''|replace:'" alt="" />':''}
{/capture}
<a href="{$entry->moreurl}" title="{$entry->title|cms_escape:htmlall}" class="alignleft">
{CGSmartImage alias='miniature_news' src=$photopicker alt=$entry->title class="alignleft"}</a>
{/if}
{/foreach}
[Résolu]news : ajouter un imagePicker avec gestion CGSmartImage -
jissey - 06/06/2012
si tu ne nous laisse pas le temps de répondre, c'est pas rigolo... :p