Page 1 of 1
Problème sur menu
Posted: Sun Sep 14, 2008 10:28 am
by will83
Bonjour tout le monde!
J'ai un petit soucis sur la réalisation de mon menu. J'aimerai qu'il ai un comportement un peu spécial.
Mon site est composé (pour le moment) de 5 grandes catégories accessible via un menu horizontal sur ma home et toutes mes autres pages.
J'aimerai un deuxième menu, vertical celui-ci, qui ne liste que les éléments contenus dans ma catégorie principale (le menu horizontal permettant d'accéder aux autres catégories (et seulement lui).
Je n'arrive pas du tout à mettre ma théorie en pratique, je trouve le menumanager assez compliqué.
Vous avez une idée?
Merci d'avance.
PS: j'aimerai partir de la base simple_navigation, parce que je ne désire pas de menu déroulant.
Re: Problème sur menu
Posted: Sun Sep 14, 2008 3:00 pm
by will83
Salut, j'ai trouvé la solution grace à la doc et au "Generic Sub Menu".
Enfin presque.
Cette solution m'affiche l'arborescence complète à partir du niveau 0 (ou à partir de ma catégorie).
Admettons l'arbo suivante:
1 - Catégorie
1.1 - First
1.2 - Second
1.3 - Third
1.3.1 - First third
1.3.2 - Second third
J'aimerai pouvoir supprimer "1 - catégorie" de mon menu pour pouvoir l'afficher ailleurs (il faudra que je trouve aussi une manière de le récupérer).
Et biensur, je n'y arrive pas, malgré de nombreux essais.
Je pense que la solution se trouve la balise utilisateur utilisée par le menu
Code: Select all
# Name: hierarchy
global $gCms;
$pos = $gCms->variables['position'];
$base = explode('.', $pos);
$smarty->assign('h_toplevel', $base[0] * 1);
$smarty->assign('h_parent', $base[ (count($base) > 1) ? count($base)-2 : 0 ] * 1);
$smarty->assign('h_this', $base[count($base)-1] * 1);
J'ai essayé les 3 h_xxx, et aucun ne fait ce dont j'ai besoin.
Quelqu'un a-t-il une idée de la modif à apporter pour supprimer le tout premier niveau et conserver le même fonctionnement sur le reste? De même, pour récupérer ce même niveau ailleurs dans mon template de menu?
Merci beaucoup.
Re: Problème sur menu
Posted: Mon Sep 15, 2008 3:18 pm
by Pierre M.
will83 wrote:
...un menu horizontal sur ma home et toutes mes autres pages.
J'aimerai un deuxième menu, vertical celui-ci, qui ne liste que les éléments contenus dans ma catégorie principale (le menu horizontal permettant d'accéder aux autres catégories (et seulement lui)....
Bonjour,
je crois que dans les exemples du contenu de démonstration d'une brave 1.4.1 on trouve quelque chose comme vous décrivez. A partir de ces exemples, trifouillez sans crainte les paramètres des balises {menu ...} (voyez l'aide dans l'admin) et vous arriverez à vos fins (via start, collapse, siblings etc). N'hésitez pas à revenir ici poser des questions précises sur des appels {menu ceci=cela}.
Pierre M.
Re: Problème sur menu
Posted: Thu Sep 18, 2008 1:34 pm
by athena_pallas
Hello,
J'ai ça dans un
aide-mémoire
Comme tu as déjà le tag hierarchy défini, tu crées simplement un menu que tu appelles "menu-lateral", dans lequel tu colles ce code :
Code: Select all
{if $count > 0}
<ul>
{foreach from=$nodelist item=node}
{if $node->depth > $node->prevdepth}
{repeat string="<ul>" times=$node->depth-$node->prevdepth}
{elseif $node->depth < $node->prevdepth}
{repeat string="</li></ul>" times=$node->prevdepth-$node->depth}
</li>
{elseif $node->index > 0}</li>
{/if}
{if $node->current == true}
{* *}
<li>{$node->menutext}
{elseif $node->parent == true}
<li>
<a href="{$node->url}"
{if $node->accesskey != ''}
accesskey="{$node->accesskey}"
{/if}
{if $node->tabindex != ''}
tabindex="{$node->tabindex}"
{/if}
{if $node->titleattribute != ''}
title="{$node->titleattribute}"
{/if}
>
{$node->menutext}
</a>
{elseif $node->type == 'sectionheader'}
<li >{$node->menutext}
{elseif $node->type == 'separator'}
<li class="separator" style="list-style-type: none;"> <hr />
{else}
<li><a href="{$node->url}"{if $node->accesskey != ''} accesskey="{$node->accesskey}"{/if}{if $node->tabindex != ''} tabindex="{$node->tabindex}"{/if}{if $node->titleattribute != ''} title="{$node->titleattribute}"{/if}{if $node->target != ''} target="{$node->target}"{/if}>{$node->menutext}</a>
{/if}
{/foreach}
{repeat string="</li></ul>" times=$node->depth-1}</li>
</ul>
{/if}
et dans ton template : tu mets ça :
Code: Select all
{hierarchy}
{cms_module module='menumanager' start_element=$h_this template='menu-lateral' collapse='0'}
{hierarchy}
{menu template="menu-lateral" start_level=$h_this number_of_levels="1"}
Ca le fait ? c'est ce que j'ai utilisé sur wagralim.be
Re: Problème sur menu
Posted: Sun Sep 21, 2008 12:38 am
by will83
En fait, c'est pas vraiment ce qu'il me faut, même si on s'en rapproche beaucoup.
En fait, j'ai juste besoin que ma catégorie soit le titre de mon menu et que les enfants soient affichés.
Admettons qu'un de ces enfants contienne lui aussi des enfants, si je le sélectionne, cette page passe en titre (sans lien) et les enfants s'affichent au dessous (comme sur le niveau précédent).
Un peu compliqué à expliquer
Et je n'arrive pas du tout à faire ca, meme si ton exemple est excellent. Il faut que je fasse tourner mon cerveau, mais je suis perdu, et j'ai une sainte horreur de la récurrence!
Si vous avez encore des idées! Merci beaucoup en tous cas
Re: Problème sur menu
Posted: Sun Sep 21, 2008 9:39 am
by athena_pallas
Salut,
tu as été voir sur le site que je donne en exemple (wagralim) ?
Il me semble que cela fait bien ce que tu souhaites.
Quand tu prends les projets (par exemple), ta catégorie projets devient le titre de ton menu (regarde le bloc rouge à droite) et les différents projets (les enfants) apparaissent en dessous, etc.
En quoi est-ce que cela ne te satisfait pas ?.
Re: Problème sur menu
Posted: Mon Sep 22, 2008 3:56 pm
by will83
Oui j'ai été voir ton site (qui au passage m'a l'air super bien fait).
Le menu, comme je te l'ai dis, se rapproche vraiment beaucoup de ce dont j'ai besoin à la différence près qu'il ne fais pas la différence entre page "avec" et "sans enfants".
En allant sur "Le Pôle", si je clique ensuite sur "objectifs", mon menu s'appelle alors "Objectifs" alors qu'il ne contient pas d'enfants.
J'aimerai que le fonctionnement soit le même, mais qu'il considère en plus, la paternité.
Je ne suis pas dev à la base. Beaucoup de flash et de graphisme, et de l'intégration. Dès qu'il s'agit de programmation, je suis pommé.
Donc je ne sais pas précisément quel code utiliser pour faire ce menu parent/enfants.
Merci pour ton aide!
Re: Problème sur menu
Posted: Mon Sep 22, 2008 4:06 pm
by will83
J'ai oublié quelques détails.
Si je sélectionne une page sans enfants, mon menu ne change pas (les pages sur le même niveau sont toujours affichées --> pour des raisons pratiques), et le titre du menu porte toujours sur le nom du niveau supérieur.
Si je sélectionne une page avec des enfants, mon menu change pour afficher cette page en titre et ses enfants en dessous et récursivement.
C'est déjà compliqué à expliquer, alors à coder, j'imagine! Faut vraiment être balaise!