Vous n'êtes pas identifié(e).

Annonce

ATTENTION

  • Prenez le temps de rechercher si quelqu'un n'a pas déjà proposé une solution à votre problème. Sur le forum français et sur le wiki
  • Pensez à mettre à jour votre version de CMS Made Simple. Nous ne faisons de support que sur LA dernière version de CMS Made Simple.
  • Renseignez impérativement le formulaire de nouveau message de manière la plus complète que possible. Dans votre CMS utiliser le menu Administration du site/Informations du système en haut Vue au format texte. Ces informations demandées nous permettent de mieux vous aider
  • Ajoutez [Résolu] au début du titre de votre 1er message lorsqu'une solution a été trouvée.

#1 17/02/2010 16:27:14

Jean le Chauve
Sa Seigneurie le Chauve, Comte du domaine .be
Lieu : Bruxelles
Inscription : 13/12/2007
Messages : 4 687
Site Web

Utilisation de {page_image} : une image spécifique par page

Lors de la création d'une page, les options vous permettent de définir une image (aussi une vignette ou thumbnail).
Vous collez cette balise {page_image} dans le contenu de la page.
Cette balise affiche le nom et l'extension de cette image, mais pas l'image en elle-même.
Une autre manière de récupérer le nom de ce fichier est : {$content_obj->GetPropertyValue('image')} mais c'est plus long wink.

Pour afficher l'image, vous devez l'inclure dans une balise html <img />.
Ainsi je devrai écrire ce code :

<img src="uploads/images/{page_image}" alt="{page_image}" class="taClasse" />

C'est assez fastidieux si l'on désire que cela se fasse pour toutes les pages qui doivent contenir une image.
Comment automatiser tout cela ?

Je voudrais que si une page contient une image, elle s'affiche, sinon il ne se passe rien.
Il faut donc travailler dans le gabarit et non plus dans le content.
Logiquement, tu dois faire ceci : {if (!empty({page_image}))} <img... />{/if}
Mais, tu reçois alors une erreur, tu ne peux pas placer des accolades dans une accolade.
Donc, je vais utiliser la fonction capture de smarty pour modifier la syntaxe (bye bye {}).

Cette fonction va récupérer la valeur de {page_image} et la placer dans un attribut de smarty que je récupère avec $smarty.capture.image (j'aurais pu remplacer image par n'importe quel autre nom).
Voilà, notre condition peut maintenant se faire :

{capture name='image'}{page_image}{/capture}
{if ($smarty.capture.image ne '')}
<img src="uploads/images/{page_image}" alt="{page_image}" class="taClasse" />
{/if}

J'aurais pu également écrire ceci : {if (!empty($smarty.capture.image))} ou {if ($smarty.capture.image != '')}
Pour smarty "ne" signifie not equal, et "eq" signifie equal (équivalent).
Have fun smile

Hors ligne

 

#2 17/02/2010 16:29:41

bess
Administrateur
Lieu : Rennes
Inscription : 16/12/2008
Messages : 6 094
Site Web

Hors ligne

#3 17/02/2010 16:30:49

Jean le Chauve
Sa Seigneurie le Chauve, Comte du domaine .be
Lieu : Bruxelles
Inscription : 13/12/2007
Messages : 4 687
Site Web

Re : Utilisation de {page_image} : une image spécifique par page

C'est l'explication d'une tag + une astuce. Il faudrait un raccourci wink.
Le mieux serait de la placer dans l'aide de la balise (qui est un peu courte...)

Dernière modification par Jean le Chauve (17/02/2010 16:34:28)

Hors ligne

#4 06/09/2012 15:22:50

Ouik
Modérateur
Lieu : Bourgogne
Inscription : 08/01/2008
Messages : 1 047
Site Web

Re : Utilisation de {page_image} : une image spécifique par page

AHHHHH ! J'ai cherché la doc de cette balise qui est plus que succincte. J'en suis arrivé à la même conclusion qu'il fallait l'inclure dans une balise <img>.
 
Je ne comprends pas que cette balise n'insère pas automatiquement l'image elle-même directement, ça me semble bien plus logique, pas vous ?

Hors ligne

#5 06/09/2012 15:28:29

bess
Administrateur
Lieu : Rennes
Inscription : 16/12/2008
Messages : 6 094
Site Web

Hors ligne

#6 06/09/2012 15:30:23

Ouik
Modérateur
Lieu : Bourgogne
Inscription : 08/01/2008
Messages : 1 047
Site Web

Re : Utilisation de {page_image} : une image spécifique par page

jolie image  lol

Hors ligne

#7 06/09/2012 16:26:56

Jean le Chauve
Sa Seigneurie le Chauve, Comte du domaine .be
Lieu : Bruxelles
Inscription : 13/12/2007
Messages : 4 687
Site Web

Re : Utilisation de {page_image} : une image spécifique par page

Ce ne serait pas des plus efficace qu'elle insère la tag <img ; imagine, ce qui est des plus probable, que tu désires l'intégrer avec CGSmartImage, tu serais obligés de nettoyer tout le code avec une regex... n'oublie pas que c'est un noob qui va uploader cette image, et donc, avec un poids sans doute incompatible avec le net.

Dernière modification par Jean le Chauve (06/09/2012 16:28:03)

Hors ligne

#8 06/09/2012 16:40:30

Ouik
Modérateur
Lieu : Bourgogne
Inscription : 08/01/2008
Messages : 1 047
Site Web

Re : Utilisation de {page_image} : une image spécifique par page

En effet, je n'avais pas songé à ces possibilités.
En l'occurrence pour mon projet actuel, j'aurais trouvé plus pratique de pouvoir insérer directement l'image ainsi (il n'y a pas d'interaction utilisateur).

Hors ligne

#9 06/09/2012 16:53:05

Jean le Chauve
Sa Seigneurie le Chauve, Comte du domaine .be
Lieu : Bruxelles
Inscription : 13/12/2007
Messages : 4 687
Site Web

Re : Utilisation de {page_image} : une image spécifique par page

Tu confortes mon explication. L'utilisateur n'a de toutes façons qu'une interaction : uploader l'image ; c'est toi qui insères la tag dans le gabarit (et cela te laisse le choix de l'utiliser comme bon te semble).

Hors ligne

Pied de page des forums

  Flux Rss Twitter FaceBook