Note de ce sujet :
  • Moyenne : 0 (0 vote(s))
  • 1
  • 2
  • 3
  • 4
  • 5
[Résolu] Eclairez moi sur les menus svp
#1
Citation :#~~~~~ DEBUT BLOC A NE PAS SUPPRIMER ~~~~~
#~ Version du CMS: 1.11.2.1
#~ Url du site :
#~ Hébergeur / Soft : perso
#~ Informations Système :
#~ site pas en ligne
#~~~~~ FIN BLOC A NE PAS SUPPRIMER ~~~~~



Bonjour a tous,
je suis nouveau sur ce forum ainsi que dans l'utilisation du CMS MadeSimple.
J'ai fait mon gabarit template + css, ca marche impec.
Par contre pour le menu, j'aimerai comprendre comment ca marche exactement.

Aujourd'hui en html j'ai mon code qui est comme ca :
Code :
[== HTML ==]
<nav>
                <ul class="sf-menu">
                    <li class="item1 active"><a href="#">Accueil</a></li>
                     <li class="item5"><a href="#">Activités</a></li>
                     <li class="item6"><a href="#">Facebook</a></li>
                     <li class="item7"><a href="#">Contact</a></li>
                </ul>
              
              </nav>

Il y a plusieurs class car j'ai différent image bouton. Il s'agit d'un simple menu horizontal.
Concrètement, comment je dois procéder pour faire mon menu avec MadeSimple ?

Merci par avance.
#2
Bonjour Flibouk, bienvenue sur le forum

Prenons le sujet par le bon bout. Tu as une image associée à chaque entrées du menu donc à chaque pages.

Est-ce que l'association est manuelle (telle image pour telle page) ou est elle automatisable (une page nommée "toto" sera toujours associée à une image nommée ./uploads/images/toto.png)

La seconde solution est plus simple a gérer et plus rapide en terme d’exécution car le système n'aura pas à devoir se souvenir de l'url d'image pour telle et telle page.

Prenons comme référence l'alias de la page, c'est un nom unique, donc aucun risque d'avoir 2 pages pointant vers une même image.

Ton menu affiché :
- Accueil
- Prenez Contact
- A propos

Tes alias de page :
- accueil
- contact
- about

Tes images :
- /uploads/images/accueil.png
- /uploads/images/contact.png
- /uploads/images/about.png


Imaginons un template de menu ultra simple : je ne gère que les pages de type contenu et que sur un seul niveau. Il faudra évidement extrapoler avec tes propres utilisations et pas utiliser mon code tel quel !!

Citation :<ul>
{foreach from=$nodelist item=node}
<li>Alias : {$node->alias}, Text du lien : <a href="{$node->url}">{$node->menutext}</a></li>
{/foreach}
</ul>

Ce que je vais faire c'est ajouter une classe à lien qui affichera une image bidon nommée /uploads/image/bidon.png


Citation :<ul>
{foreach from=$nodelist item=node}
<li>Alias : {$node->alias}, Text du lien : <a class='bidon' href="{$node->url}">{$node->menutext}</a></li>
{/foreach}
</ul>


et mon CSS :
Citation :a.bidon{
background: url([[root_url]]/uploads/images/bidon.png) no-repeat top left transparent;
}

Là j'ai tous mes menus avec une image standardisée. Maintenant je vais surcharger lien par lien selon son alias

Citation :<ul>
{foreach from=$nodelist item=node}
<li>Alias : {$node->alias}, Text du lien : <a class='bidon' href="{$node->url}" style="background-image:url({root_url}/uploads/images/{$node->alias}.png)">{$node->menutext}</a></li>
{/foreach}
</ul>

et là toutes les images sont surchargées en CSS directement node par node. Reste qu'il faut gérer là ou je n'ai pas encore d'image...

La suite tout de suite
#3
Tester si l'image existe. En Php c'est

if (file_exists($root_path.'/uplaods/images/'.$node->alias.'png'))

L'équivalent Smarty c'est donc

{if file_exists($root_path.'/uplaods/images/'.$node->alias.'png')}

Allez hop !


Citation :<ul>
{foreach from=$nodelist item=node}
<li>Alias : {$node->alias}, Text du lien : <a class='bidon' href="{$node->url}"
{if file_exists($root_path.'/uplaods/images/'.$node->alias.'png')}style="background-image:url({root_url}/uploads/images/{$node->alias}.png)"{/if}>{$node->menutext}</a></li>
{/foreach}
</ul>

et voilà fin de l'histoire, c'est automatique, ca trouve une image correspondante ou celle par défaut dans tous les cas
#4
Beau petit cours Bess Smile
Attention : {if file_exists($root_path.'/uplaods/images
{if file_exists($root_path.'/uploads/images.

Autre lien : http://www.cmsmadesimple.fr/forum/viewtopic.php?id=2680
#5
Ok j'ai compris le principe.
Merci beaucoup ! enfin surtout a BESS Wink
#6
une fois que t'as testé avec succès oublie pas [Résolu] dans le titre de ce topic Wink


Atteindre :


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