Les avertissements suivants se sont produits :
Warning [2] Undefined array key 0 - Line: 1640 - File: showthread.php PHP 8.2.18 (Linux)
File Line Function
/inc/class_error.php 153 errorHandler->error
/showthread.php 1640 errorHandler->error_callback
/showthread.php 915 buildtree




Note de ce sujet :
  • Moyenne : 0 (0 vote(s))
  • 1
  • 2
  • 3
  • 4
  • 5
[Résolu] Couleur spécifique pour menu
#1
Citation :#~~~~~ NE PAS SUPPRIMER CE BLOC ~~~~~
#~ Version du CMS: 1.9.2
#~ Nom de l'hébergeur : localhost
#~ Informations Système :
#~ ----------------------------------------------
#~ Cms Version: 1.9.2
#~ Installed Modules:
#~ * CMSMailer: 2.0
#~ * FileManager: 1.0.3
#~ * MenuManager: 1.7.4
#~ * ModuleManager: 1.4
#~ * News: 2.11
#~ * nuSOAP: 1.0.2
#~ * Printing: 1.1.1
#~ * Search: 1.6.8
#~ * ThemeManager: 1.1.3
#~ * TinyMCE: 2.8.2
#~ Config Information:
#~ * php_memory_limit:
#~ * process_whole_template: false
#~ * output_compression: false
#~ * max_upload_size: 14000000
#~ * default_upload_permission: 664
#~ * url_rewriting: none
#~ * 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.0
#~ * md5_function: On (Vrai)
#~ * gd_version: 2
#~ * tempnam_function: On (Vrai)
#~ * magic_quotes_runtime: Off (Faux)
#~ * E_STRICT: 0
#~ * E_DEPRECATED: 0
#~ * memory_limit: 256M
#~ * max_execution_time: 90
#~ * output_buffering: 1
#~ * safe_mode: Off (Faux)
#~ * file_uploads: On (Vrai)
#~ * post_max_size: 16M
#~ * upload_max_filesize: 14M
#~ * session_save_path: c:/wamp/tmp (0777)
#~ * session_use_cookies: On (Vrai)
#~ * xml_function: On (Vrai)
#~ Server Information:
#~ * Server Api: apache2handler
#~ * Server Db Type: MySQL (mysql)
#~ * Server Db Version: 5.1.36
#~ ----------------------------------------------
#~~~~~ NE PAS SUPPRIMER CE BLOC ~~~~~



Bonjour,

J'ai cherché en vain, ici et ailleurs, une solution élégante à ce petit problème. Je m'explique, j'utilise le template Forrester légèrement modifié.
J'ai un menu principal composé de 5 onglets tout en haut de pages. Chaque onglet a deux états différents avec une image correspondante gérée via ma feuille de style. Ce menu est contrôlé par "menu-haut.tpl" qui n'est qu'une adaptation sommaire du "minimal template". Le voici:
Code :
{if $count > 0}
<ul class="clearfix">
{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 class="currentpage{$node->hierarchy|truncate:1}"><a href="{$node->url}" {if $node->target ne ""} target="{$node->target}"{/if}> {$node->menutext} </a>


{elseif $node->type == 'sectionheader'}
<li class="sectionheader">{$node->menutext}

{elseif $node->type == 'separator'}
<li style="list-style-type: none;"> <hr class="separator" />

{else}
<li class="onglet{$node->hierarchy|truncate:1}"><a href="{$node->url}"{if $node->target ne ""} target="{$node->target}"{/if}> {$node->menutext} </a>

{/if}

{/foreach}

{repeat string="</li></ul>" times=$node->depth-1}</li>
</ul>
{/if}

Sur le côté droit de ma page j'ai un menu de "sous-rubrique" de niveau 2 appelé de façon classique. Puis j'ai un troisième menu, juste en dessous de mon bandeau (header). Ce dernier fonctionne avec la syntaxe items=page1,page2,page3
En fonction de l'onglet du menu du haut qui est actif , je souhaite que la couleur de ce troisième menu dont voici le code change.
Code :
<ul class="clearfix">
{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><a href="{$node->url}" class="currentpage"{if $node->target ne ""} target="{$node->target}"{/if}> {$node->menutext} </a>

{elseif  $node->depth == 1 and $node->type != 'sectionheader' and $node->type != 'separator'}
<li class="activeparent"> <a href="{$node->url}" {if $node->target ne ""} target="{$node->target}"{/if}> {$node->menutext} </a>

{elseif $node->type == 'sectionheader'}
<li class="sectionheader">{$node->menutext}

{elseif $node->type == 'separator'}
<li style="list-style-type: none;"> <hr class="separator" />

{else}
<li><a href="{$node->url}"{if $node->target ne ""} target="{$node->target}"{/if}> {$node->menutext} </a>

{/if}

{/foreach}

{repeat string="</li></ul>" times=$node->depth-1}</li>
</ul>
{/if}

Problème, je ne sais pas comment tester et récupérer la "hierarchie" de l'onglet actuel (celui enfoncé en haut de page).
Pour faire imagé et simple j'espère: voici une arborescence factice

1 fruits
1.1 pommes
1.2 bananes
1.3 poires

2 légumes
2.1 carottes
2.2 navets
2.3 haricots

3 Viandes
3.1 veau
3.2 agneau
3.4 boeuf

4 Dessert
5 Entremets
6 Entrées
7 Trou normand

si une des pages catégorie 1 est cochée, je veux que mon troisième menu soit d'une couleur, si catégorie 2 d'une autre couleur etc. Le troisième menu étant appelé de la façon suivante:
Code :
{menu template="menupetit" items="dessert,entremets,entrees,trou-normand"}
PHP j'ai des bases, CSS aussi, mais Smarty c'est un peu plus neuf.
Merci de votre aide, j'ai été un peu long non ?
Win 10 pro 64 - CMSMS 2.2.19 - grincheux parfois...


Messages dans ce sujet

Atteindre :


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