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

[Résolu] Récupération d'un {content_image} depuis un gabarit de menu
#5

Edit : Merci pour vos réponses, je composé ce message sans avoir vu vos retours.

Non, le "scope de définition" de cette balise smarty est limité au rendu de la page elle même, dans le système de rendu des gabarits de pages uniquement et non dans le rendu des menus.

La présence de cette donnée est aussi contextuelle au gabarit de page.

Je ne sais pas si je suis assez claire, un exemple sera plus parlant Smile


Partons du principe que je souhaite disposer d'une image dans mon gabarit de page "normal" :


Code :
[== PHTML / Smarty ==]
{process_pagedata}
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" >
<head>
<title>{sitename} - {title}</title>
{metadata}
{stylesheet}
</head>
<body>

{*    Ici, je ne fait que déclarer mon content_image pour qu'il soit détecter par CMSMS
    et qu'il soit possible de choisir son image dans les pages utilisant ce gabarit
    En assignant son contenu inutilisé à une variable qui ne sera pas appelée
    dans ce template... *}
{content_image block='imagemenu' label='Image dans le menu (53 x 35 pixels)' dir='images/images_menu' assign='notused'}

<!-- start header -->
<div id="header">
  <h1>{sitename}</h1>
</div>
<!-- end header -->

<!-- start menu -->
<div id="menu">
  {menu}
</div>
<!-- end menu -->

<!-- start content -->
<div id="content">
  <h1>{title}</h1>
  {content}
</div>
<!-- end content -->

</body>
</html>

Je souhaite ensuite utiliser l'image que l'administrateur de la page aura choisi dans la boucle de rendu du menu.
Pour se faire je dois accéder aux informations suivante sur le $node en cours de la boucle dans le gabarit de menu :

- Le nom du gabarit utilisé par la page (Afin de conditionner l'appel de cette image qui ne sera pas forcement présente dans les autres gabarits de pages !)
- La valeur du {content_image block="imagemenu"}

Dans mon de menu j'aurais quelque chose de ce style :

Code :
[== HTML ==]
{if $count > 0}
<ul>
    {foreach from=$nodelist item=node}
    <li>
        {*    C'est ici que j'ai besoin de récupérer la valeur de mon content_image
            si le noeud correspond bien à une page concernée par mon gabarit de page "normal" *}
        {if ($node->gabarit == 'normal'}
        <img src="{$node->content_image['imagemenu']}" alt="" />
        {*    La syntax des 2 lignes du dessus est un exmple de ce que j'aimerais pouvoir utiliser,
            c'est complètement faux faux bien-sûr, aucun tableau $node->content_image ou propriété $node->gabarit n'existe ! *}
        <a href="{$node->url}"><span>{$node->menutext}</span></a>
        {/if}
    </li>
    {/foreach}
</ul>
{/if}
Sujet fermé


Messages dans ce sujet

Atteindre :


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