09/09/2010, 21:24:46
Bonjour, j'ai un menu cascade qui fonctionne bien, installé avec jquery.
Je veux maintenant laisser le sous menu ouvert lorsque celui-ci est actif. Je dois donc attribuer à ce sous menu une classe "open".
Voici le code de mon menu. Quand mon sous menu est ouvert, il lui faudrait la class "sousmenu open".
Je peux attribuer une variable open à mes pages de sous menu lorsques celle-ci sont ouvertes.
Voici aussi la structure html de mon menu:
Merci à l'avance pour votre aide
Je veux maintenant laisser le sous menu ouvert lorsque celui-ci est actif. Je dois donc attribuer à ce sous menu une classe "open".
Voici le code de mon menu. Quand mon sous menu est ouvert, il lui faudrait la class "sousmenu open".
Je peux attribuer une variable open à mes pages de sous menu lorsques celle-ci sont ouvertes.
Code :
{assign var='open' value='1'}
Code :
{if $count > 0}
<ul class="menu">
{foreach from=$nodelist item=node}
{if $node->depth > $node->prevdepth}
{* à ce point, je vérifie si open et si oui, la class="sousmenu open" et sinon, la class="sousmenu"
Je sais pas trop comment faire. J'ai essayé des trucs (if isset($open)) mais je n'arrive pas au résultat souhaité.*}
{repeat string='<ul class="sousmenu">' 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->type == 'sectionheader'}
<li class="toggle">
<a class="toggle"
{else}
<li>
<a {/if}
{if $node->sectionheader == true}
href=""><span>{$node->menutext}</span></a>
{elseif $node->haschildren == true and $node->sectionheader == false}
href="{$node->url}">{$node->menutext}</a>
{elseif $node->type != 'sectionheader' and $node->type != 'separator'}
{if $node->target}target="{$node->target}" {/if}
href="{$node->url}">{$node->menutext}</a>
{elseif $node->type == 'sectionheader'}
><span class="sectionheader">{$node->menutext}</span></a>
{/if}
{/foreach}
{repeat string='</li></ul>' times=$node->depth-1}
</li>
</ul>
{/if}
Voici aussi la structure html de mon menu:
Code :
<ul class="menu">
<li>lien 1</li>
<li>lien 2 (entête de section)
<ul class="sousmenu">
<li>lien 2.1</li>
<li>lien 2.2</li></ul></li>
<li>lien 3</li>
<li>lien 4 (entête de section)
<ul class="sousmenu">
<li>lien 4.1</li>
<li>lien 4.2</li></ul></li>
<li>lien 1</li>
</ul>
Merci à l'avance pour votre aide
Citation :#~~~~~ NE PAS SUPPRIMER CE BLOC ~~~~~
#~ Version du CMS: 1.8.0
#~ Nom de l'hébergeur :
#~ Informations Système :
#~ Cms Version: 1.8
#~ Installed Modules:
#~ CMSMailer: 2.0
#~ FileManager: 1.0.2
#~ MenuManager: 1.6.5
#~ ModuleManager: 1.4
#~ News: 2.10.6
#~ nuSOAP: 1.0.1
#~ Printing: 1.1.0
#~ Search: 1.6.5
#~ ThemeManager: 1.1.1
#~ TinyMCE: 2.7.2
#~ FormBuilder: 0.6.2
#~ jQuery: 0.0.5
#~ CGSimpleSmarty: 1.4.5
#~ Config Information:
#~ php_memory_limit: 64M
#~ process_whole_template: false
#~ output_compression: false
#~ max_upload_size: 30000000
#~ default_upload_permission: 664
#~ url_rewriting: mod_rewrite
#~ page_extension: .html
#~ query_var: page
#~ image_manipulation_prog: GD
#~ auto_alias_content: true
#~ locale:
#~ default_encoding: utf-8
#~ admin_encoding: utf-8
#~ set_names: true
#~ Php Information:
#~ phpversion: 5.2.9
#~ md5_function: On (Vrai)
#~ gd_version: 2
#~ tempnam_function: On (Vrai)
#~ magic_quotes_runtime: Off (Faux)
#~ E_STRICT: 0
#~ memory_limit: 64M
#~ max_execution_time: 30
#~ output_buffering: On
#~ safe_mode: Off (Faux)
#~ file_uploads: On (Vrai)
#~ post_max_size: 8M
#~ upload_max_filesize: 2M
#~ session_save_path: /tmp (1777)
#~ session_use_cookies: On (Vrai)
#~ xml_function: On (Vrai)
#~ Server Information:
#~ Server Api: cgi
#~ Server Db Type: MySQL (mysql)
#~ Server Db Version: 5.0.91
#~~~~~ NE PAS SUPPRIMER CE BLOC ~~~~~
C'est en forgeant que l'on devient forgeron !