Forum CMS Made Simple FR

Version complète : [Résolu] MenuManager : la class "activ" ne s'affiche pas
Vous consultez actuellement la version basse qualité d’un document. Voir la version complète avec le bon formatage.
Citation :#~~~~~ DEBUT BLOC A NE PAS SUPPRIMER ~~~~~
#~ Version du CMS: #1.10.2
#~ Url du site : www.1max2jeux.fr
#~ Hébergeur / Soft : Hostpapa
#~ Informations Système :
#~ ----------------------------------------------
#~ Cms Version: 1.10.2
#~ Installed Modules:
#~ CMSMailer: 2.0.2
#~ CMSPrinting: 1.0
#~ FileManager: 1.2.0
#~ MenuManager: 1.7.7
#~ MicroTiny: 1.1.1
#~ ModuleManager: 1.5.3
#~ News: 2.12.3
#~ Search: 1.7
#~ ThemeManager: 1.1.4
#~ FormBuilder: 0.7.1
#~ Captcha: 0.4.5
#~ CGExtensions: 1.27.2
#~ NMS: 2.3.7
#~ TinyMCE: 2.9.4
#~ Config Information:
#~ php_memory_limit:
#~ process_whole_template: false
#~ output_compression: false
#~ max_upload_size: 64000000
#~ default_upload_permission: 664
#~ url_rewriting: internal
#~ page_extension:
#~ 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.3.8
#~ md5_function: On (Vrai)
#~ gd_version: 2
#~ tempnam_function: On (Vrai)
#~ magic_quotes_runtime: Off (Faux)
#~ E_STRICT: 0
#~ E_DEPRECATED: 0
#~ memory_limit: 64M
#~ max_execution_time: 30
#~ output_buffering: On
#~ safe_mode: Off (Faux)
#~ file_uploads: On (Vrai)
#~ post_max_size: 64M
#~ upload_max_filesize: 64M
#~ session_save_path: /tmp (1777)
#~ session_use_cookies: On (Vrai)
#~ xml_function: On (Vrai)
#~ Server Information:
#~ Server Api: cgi-fcgi
#~ Server Db Type: MySQL (mysql)
#~ Server Db Version: 5.1.56
#~ ----------------------------------------------
#~~~~~ FIN BLOC A NE PAS SUPPRIMER ~~~~~



Bonjour,

Le sujet est assez explicite, je n'arrive pas à afficher la class activ suite à la modification du fichier "cssmenu_ulshadow.tpl".

Voici le contenu de mon fichier :

Code :
[== Indéfini ==]
{* CSS classes used in this template:
#menuwrapper - The id for the <div> that the menu is wrapped in. Sets the width, background etc. for the menu.
#primary-nav - The id for the <ul>
.menuparent - The class for each <li> that has children.
.menuactive - The class for each <li> that is active or is a parent (on any level) of a child that is active. *}

{assign var='number_of_levels' value=10000}
{if isset($menuparams.number_of_levels)}
  {assign var='number_of_levels' value=$menuparams.number_of_levels}
{/if}

{if $count > 0}
<div id="menuwrapper">
<ul id="primary-nav">
{foreach from=$nodelist item=node}
{if $node->depth > $node->prevdepth}
  {repeat string='<ul class="unli">' times=$node->depth-$node->prevdepth}
{elseif $node->depth < $node->prevdepth}
  {repeat string='</li><li class="separator once" style="list-style-type: none;">&nbsp;</li></ul>' times=$node->prevdepth-$node->depth}
  </li>
  
{elseif $node->index > 0}</li>
{/if}
{if $node->depth==1 and $node->haschildren == false}<li class="menu{$node->hierarchy}"><a {elseif $node->parent == true or ($node->current == true and $node->haschildren == true)}
<li class="menuactive menuparent menu{$node->hierarchy}">
<a class="menuactive menuparent" {elseif $node->current == true}
<li class="menuactive">
<a class="menuactive" {elseif $node->haschildren == true}
<li class="menuparent menu{$node->hierarchy}">
<a class="menuparent" {elseif $node->type == 'sectionheader' and $node->haschildren == true}
<li class="sectionheader"><span class="sectionheader">{$node->menutext}</span> {elseif $node->type == 'separator'}
<li style="list-style-type: none;"> <hr class="menu_separator" />
{else}
<li>
<a {/if} {if $node->type != 'sectionheader' and $node->type != 'separator'}
{if $node->target}target="{$node->target}" {/if}
href="{$node->url}"><span>{$node->menutext}</span></a>
{/if}
{/foreach}
{repeat string='</li><li class="separator once" style="list-style-type: none;">&nbsp;</li></ul>' times=$node->depth-1}
</li>
</ul>
<div class="clearb"></div>
</div>
{/if}


Et voici le résultat dans mon code source :

Code :
[== HTML ==]
<ul id="primary-nav">
<li class="menu1">
<a href="http://www.1max2jeux.fr/">
<span>Accueil</span>
</a>
</li>
<li class="menu2">
<a href="http://www.1max2jeux.fr/index.php/animations">
</li>
<li class="menu3">
<a href="http://www.1max2jeux.fr/index.php/ventes">
<span>Ventes</span>
</a>
</li>
<li class="menu4">
<a href="http://www.1max2jeux.fr/index.php/services">
<span>Services</span>
</a>
</li>
<li class="menu5">
<a href="http://www.1max2jeux.fr/index.php/contact">
<span>Contact</span>
</a>
</li>
</ul>


J'aimerais une class supplémentaire qui me dise sur quelle page je suis (activ).
Est-ce que vous voyez d'où provient le souci dans mon fichier .tpl ?

Merci d'avance pour votre aide et bonne soirée (nuit) Smile
Code :
{if $node->depth==1 and $node->haschildren == false}<li class="menu{$node->hierarchy}"><a
sera toujours vrai puisque tes pages sont toutes du premier niveau et n'ont pas d'enfant, tu n'entreras jamais dans les autres conditions.
Donc, dans ton cas particulier, et si tu n'ajoutes pas d'enfants, de sectionheader ou de séparateur, ce code suffira :
Code :
{* CSS classes used in this template:
#menuwrapper - The id for the <div> that the menu is wrapped in. Sets the width, background etc. for the menu.
#primary-nav - The id for the <ul>
.menuactive - The class for each <li> that is active. *}
{assign var='number_of_levels' value=10000}
{if isset($menuparams.number_of_levels)}
  {assign var='number_of_levels' value=$menuparams.number_of_levels}
{/if}
{if $count > 0}
<div id="menuwrapper">
<ul id="primary-nav">
{foreach from=$nodelist item=node}
{if $node->index > 0}</li>
{/if}
{if $node->current == true}<li class="menuactive menu{$node->hierarchy}"><a
{else}
<li class="menu{$node->hierarchy}"><a
{/if}
href="{$node->url}"><span>{$node->menutext}</span></a>
{/if}
{/foreach}
{repeat string='</li><li class="separator once" style="list-style-type: none;">&nbsp;</li></ul>' times=$node->depth-1}
</li>
</ul>
<div class="clearb"></div>
</div>
{/if}
Attention, je n'ai pas testé, mais ça devrait être bon.
Bonjour,

Effectivement, j'avais laissé l'expression concernant la hiérarchie, qui n'a pas grande utilité dans mon cas (1 seul niveau ...).
En tout cas, merci beaucoup pour le code, il y a juste un {/if} en trop avant le {/foreach}, celui-ci étant supprimé, ça fonctionne à merveille !

Merci beaucoup Jean le Chauve et bonne journée Smile
(Je ne sais pas si c'est à moi de mettre "résolu ou si les admin s'en chargent ?..)

Voici le code fonctionnel si quelqu'un rencontre le même problème :

Code :
[== Indéfini ==]
{* CSS classes used in this template:
#menuwrapper - The id for the <div> that the menu is wrapped in. Sets the width, background etc. for the menu.
#primary-nav - The id for the <ul>
.menuactive - The class for each <li> that is active. *}


{assign var='number_of_levels' value=10000}
{if isset($menuparams.number_of_levels)}
  {assign var='number_of_levels' value=$menuparams.number_of_levels}
{/if}

{if $count > 0}
<div id="menuwrapper">
<ul id="primary-nav">
{foreach from=$nodelist item=node}
{if $node->index > 0}</li>
{/if}

{if $node->current == true}<li class="menuactive menu{$node->hierarchy}"><a
{else}
<li class="menu{$node->hierarchy}"><a
{/if}
href="{$node->url}"><span>{$node->menutext}</span></a>

{/foreach}
{repeat string='</li><li class="separator once" style="list-style-type: none;">&nbsp;</li></ul>' times=$node->depth-1}
</li>
</ul>
<div class="clearb"></div>
</div>
{/if}
As-toi de marquer [résolu] en éditant ton premier post.
Pense à le faire pour tes autres messages également résolus Wink
Tu peux les trouver en cliquant sur ton profil.
Merci beaucoup, voilà qui est fait Cool