[Résolu] Reporter le nom de la rubrique parent dans un sous-menu

Note de ce sujet :
  • Moyenne : 0 (0 vote(s))
  • 1
  • 2
  • 3
  • 4
  • 5
#1
Citation :#~~~~~ DEBUT BLOC A NE PAS SUPPRIMER ~~~~~
#~ Version du CMS: #1.10.3
#~ Url du site :
#~ Hébergeur / Soft : PHPNET
#~ Informations Système :
#~ Informations d'Installation du CMS
#~ Version du CMS 1.10.3
#~~~~~ FIN BLOC A NE PAS SUPPRIMER ~~~~~



Bonjour

j'ai sur mon site une barre de navigation horizontale qui comporte les principales rubriques. Le contenu de la rubrique s'affiche alors dans un menu latéral gauche. Jusque là, tout fonctionne à merveille mais je souhaiterais reporter le nom de la rubrique dans le sous-menu vertical.

J'ai cherché sur votre forum et les différentes aides, sans succès. Je suis allé également bidouiller dans le Menu Manager mais aucune option ne semble correspondre à ce que je souhaite.

Merci pour votre aide
#1
Citation :#~~~~~ DEBUT BLOC A NE PAS SUPPRIMER ~~~~~
#~ Version du CMS: #1.10.3
#~ Url du site :
#~ Hébergeur / Soft : PHPNET
#~ Informations Système :
#~ Informations d'Installation du CMS
#~ Version du CMS 1.10.3
#~~~~~ FIN BLOC A NE PAS SUPPRIMER ~~~~~



Bonjour

j'ai sur mon site une barre de navigation horizontale qui comporte les principales rubriques. Le contenu de la rubrique s'affiche alors dans un menu latéral gauche. Jusque là, tout fonctionne à merveille mais je souhaiterais reporter le nom de la rubrique dans le sous-menu vertical.

J'ai cherché sur votre forum et les différentes aides, sans succès. Je suis allé également bidouiller dans le Menu Manager mais aucune option ne semble correspondre à ce que je souhaite.

Merci pour votre aide
#2
Bonjour,

Pour le menu de gauche, je suppose que tu as utilisé le paramètre start_level="2" ?
www.web-ep.be - Développeur Web Freelance - Développeur/Intégrateur CMS Made Simple (création de sites, développement de modules/plugins/templates sur mesure), spécialisé dans les sites pour l'immobilier.
#2
Bonjour,

Pour le menu de gauche, je suppose que tu as utilisé le paramètre start_level="2" ?
www.web-ep.be - Développeur Web Freelance - Développeur/Intégrateur CMS Made Simple (création de sites, développement de modules/plugins/templates sur mesure), spécialisé dans les sites pour l'immobilier.
#3
Sinon pour solutionner ton problème, ce que je ferais est ajouter une seconde fois le tag {menu} avec comme template un nouveau template personnalisé nommé par exemple "template_menu_actif" :

Tu ajoutes le paramètre template au tag : {menu template="template_menu_actif"}.

Et dans le template que tu crées, tu filtres sur l'élément actuel, l'attribut $node->current.

Code :
[== XHTML ==]
{if $count > 0}
<ul>
{foreach from=$nodelist item=node}
{if $node->current == true}
  <li class="{$classes}"><a class="{$classes}" href="{$node->url}"><span>{$node->menutext}</span></a>
{/if}
{/foreach}
</ul>
{/if}

Je n'ai pas testé mais tu as une idée de la manière de procéder. A toi d'adapter le template en fonction de ton besoin. Si c'est juste pour afficher le titre du menu, {$node->menutext} est suffisant au sein du foreach.
www.web-ep.be - Développeur Web Freelance - Développeur/Intégrateur CMS Made Simple (création de sites, développement de modules/plugins/templates sur mesure), spécialisé dans les sites pour l'immobilier.
#3
Sinon pour solutionner ton problème, ce que je ferais est ajouter une seconde fois le tag {menu} avec comme template un nouveau template personnalisé nommé par exemple "template_menu_actif" :

Tu ajoutes le paramètre template au tag : {menu template="template_menu_actif"}.

Et dans le template que tu crées, tu filtres sur l'élément actuel, l'attribut $node->current.

Code :
[== XHTML ==]
{if $count > 0}
<ul>
{foreach from=$nodelist item=node}
{if $node->current == true}
  <li class="{$classes}"><a class="{$classes}" href="{$node->url}"><span>{$node->menutext}</span></a>
{/if}
{/foreach}
</ul>
{/if}

Je n'ai pas testé mais tu as une idée de la manière de procéder. A toi d'adapter le template en fonction de ton besoin. Si c'est juste pour afficher le titre du menu, {$node->menutext} est suffisant au sein du foreach.
www.web-ep.be - Développeur Web Freelance - Développeur/Intégrateur CMS Made Simple (création de sites, développement de modules/plugins/templates sur mesure), spécialisé dans les sites pour l'immobilier.
#4
Effectivement, j'ai utilisé les commandes suivantes pour afficher les 2 menus :

Menu horizontal : {menu template='accessible_simple_navigation.tpl' number_of_levels='1'}

Menu vertical : {menu template='accessible_simple_navigation.tpl' start_level='2' collapse='1'}

J'ai mis en pratique ta réponse mais au final, j’obtiens le nom de la page que je suis en train de consulter. Je ne vois pas comment lui dire de remonter d'un niveau pour aller chercher la rubrique correspondante.

Dans tous les cas merci pour ce premier conseil.
#4
Effectivement, j'ai utilisé les commandes suivantes pour afficher les 2 menus :

Menu horizontal : {menu template='accessible_simple_navigation.tpl' number_of_levels='1'}

Menu vertical : {menu template='accessible_simple_navigation.tpl' start_level='2' collapse='1'}

J'ai mis en pratique ta réponse mais au final, j’obtiens le nom de la page que je suis en train de consulter. Je ne vois pas comment lui dire de remonter d'un niveau pour aller chercher la rubrique correspondante.

Dans tous les cas merci pour ce premier conseil.
#5
Effectivement ma réponse n'est pas exacte !

Peux-tu me confirmer qu'il ne te faut que libellé du menu de la page parente à celle affichée ?
www.web-ep.be - Développeur Web Freelance - Développeur/Intégrateur CMS Made Simple (création de sites, développement de modules/plugins/templates sur mesure), spécialisé dans les sites pour l'immobilier.
#5
Effectivement ma réponse n'est pas exacte !

Peux-tu me confirmer qu'il ne te faut que libellé du menu de la page parente à celle affichée ?
www.web-ep.be - Développeur Web Freelance - Développeur/Intégrateur CMS Made Simple (création de sites, développement de modules/plugins/templates sur mesure), spécialisé dans les sites pour l'immobilier.
#6
Regarde peut-être ici : http://wiki.cmsmadesimple.org/index.php/....27s_alias

Tu dois normalement remplacer $currentContent->Alias(); par $currentContent->MenuText();

Tu dois copier le code adapté à ton besoin dans une balise utilisateur.
www.web-ep.be - Développeur Web Freelance - Développeur/Intégrateur CMS Made Simple (création de sites, développement de modules/plugins/templates sur mesure), spécialisé dans les sites pour l'immobilier.
#6
Regarde peut-être ici : http://wiki.cmsmadesimple.org/index.php/....27s_alias

Tu dois normalement remplacer $currentContent->Alias(); par $currentContent->MenuText();

Tu dois copier le code adapté à ton besoin dans une balise utilisateur.
www.web-ep.be - Développeur Web Freelance - Développeur/Intégrateur CMS Made Simple (création de sites, développement de modules/plugins/templates sur mesure), spécialisé dans les sites pour l'immobilier.
#7
Ok merci Heriquet j'ai réussi à mettre cela en pratique avec ta piste.
#7
Ok merci Heriquet j'ai réussi à mettre cela en pratique avec ta piste.
#8
Super ! Bonne continuation !
www.web-ep.be - Développeur Web Freelance - Développeur/Intégrateur CMS Made Simple (création de sites, développement de modules/plugins/templates sur mesure), spécialisé dans les sites pour l'immobilier.
#8
Super ! Bonne continuation !
www.web-ep.be - Développeur Web Freelance - Développeur/Intégrateur CMS Made Simple (création de sites, développement de modules/plugins/templates sur mesure), spécialisé dans les sites pour l'immobilier.
#9
Cool si le sujet est résolu Smile Juste une autre piste pour ceux qui repasseraient ici : le module CGSimpleSmarty propose toute une série de petite fonctions utilisables directement dans Smarty, par exemple :

Code :
[== HTML / Smarty ==]
L'alias de la page racine est {$cgsimple->get_root_alias()}

On peut aussi récupérer le titre de la page :
Code :
[== HTML / Smarty ==]
Le titre de cette page est {$cgsimple->get_page_title()}

Et on combine :
Code :
{$cgsimple->get_root_alias('', 'root_alias')}
Titre de la page parent : {$cgsimple->get_page_title($root_alias)}

Voilà, et je ferme la discussion Wink

Edit : commentez si vous le souhaitez, on fermera après
#9
Cool si le sujet est résolu Smile Juste une autre piste pour ceux qui repasseraient ici : le module CGSimpleSmarty propose toute une série de petite fonctions utilisables directement dans Smarty, par exemple :

Code :
[== HTML / Smarty ==]
L'alias de la page racine est {$cgsimple->get_root_alias()}

On peut aussi récupérer le titre de la page :
Code :
[== HTML / Smarty ==]
Le titre de cette page est {$cgsimple->get_page_title()}

Et on combine :
Code :
{$cgsimple->get_root_alias('', 'root_alias')}
Titre de la page parent : {$cgsimple->get_page_title($root_alias)}

Voilà, et je ferme la discussion Wink

Edit : commentez si vous le souhaitez, on fermera après
#10
Toujours bon à savoir ! Je connaissais pas. Merci !
www.web-ep.be - Développeur Web Freelance - Développeur/Intégrateur CMS Made Simple (création de sites, développement de modules/plugins/templates sur mesure), spécialisé dans les sites pour l'immobilier.
#10
Toujours bon à savoir ! Je connaissais pas. Merci !
www.web-ep.be - Développeur Web Freelance - Développeur/Intégrateur CMS Made Simple (création de sites, développement de modules/plugins/templates sur mesure), spécialisé dans les sites pour l'immobilier.
#11
De rien Wink Je ferme le sujet, bonne continuation
#11
De rien Wink Je ferme le sujet, bonne continuation


Atteindre :


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