Class : ID Admin
Posts : 1437
Registered on : 12/11/2007
Age : 28
Sex : Female
Offline Mail Www
|
Admettons que vous voulez par exemple que le lien "Membres" soit coloré différemment si vous vous trouvez sur la page Membres, que le lien "Règles" soit coloré différemment si on se trouve sur la page "Règles" et ainsi de suite, pour tous les liens du menu, voici une astuce que j'ai écrite en répondant à un membre sur le forum de support Connectix Boards.
Pour arriver à cela, il suffit d'utiliser un peu de PHP dans le template gérant le menu, pour afficher une classe CSS au lien correspondant à la page où l'on se trouve.
Cette astuce a été testée sur un forum Connectix Boards utilisant le skin Zephyr et le template Official
Voici d'abord la variable utilisée pour obtenir la position du visiteur :
$_SESSION['cb_user']->connected_position
Ainsi que la valeur pour chaque page où les liens du menu mènent :
index_showusers
index_connusers
index_search
index_rules
index_modpanel
En ordre : Membres, Connectés, Chercher, Règles, Modération
Après, ce qu'il reste est d'utiliser une condition pour afficher la classe CSS aux liens si la valeur de la variable correspond au lien.
Pour cela, avec Notepad++ (Windows) ou gedit/kate (Linux), on ouvre le fichier templates/Official/gen_contents.php (en remplaçant "Official" par le nom du template personnalisé s'il y a lieu).
Puis on cherche ce bloc de code :
<li><a href="<?php echo manage_url('index.php?act=members', 'forum-members.html'); ?>" id="hm_members"><span><?php echo lang('members'); ?></span></a></li>
<li><a href="<?php echo manage_url('index.php?act=cu', 'forum-connected.html'); ?>" id="hm_connected"><span><?php echo lang('connected_people'); ?></span></a></li>
<li><a href="<?php echo manage_url('index.php?act=src', 'forum-search.html'); ?>" id="hm_search"><span><?php echo lang('search'); ?></span></a></li>
<li><a href="<?php echo manage_url('index.php?act=rules', 'forum-rules.html'); ?>" id="hm_rules"><span><?php echo lang('rules'); ?></span></a></li>
<?php if ( $g_user_admin ): ?>
<li><a href="<?php echo manage_url('admin.php', 'forum-admin.html'); ?>" id="hm_admin"><span><?php echo lang('paneladmin'); ?></span></a></li>
<?php endif; ?>
<?php if ( $g_user_mod ): ?>
<li><a href="<?php echo manage_url('index.php?act=mods', 'forum-moderators.html'); ?>" id="hm_mods"><span><?php echo lang('modpanel'); ?><?php if ( isset($g_nbreports) && $g_nbreports > 0 ): ?> (<?php echo lang(array('item' => 'modpanel_nbreports','nb' => $g_nbreports)); ?>)<?php endif; ?></span></a></li>
Juste entre <a et href de chaque lien (excepté pour le lien Administration), on insère le bout de code suivant :
<?php if($_SESSION['cb_user']->connected_position == 'maposition'): ?>class="active" <?php endif; ?>
Ce qui donne par exemple pour la liste des membres :
<li><a <?php if($_SESSION['cb_user']->connected_position=='index_showusers'): ?>class="active" <?php endif; ?>href="<?php echo manage_url('index.php?act=members', 'forum-members.html'); ?>" id="hm_members"><span><?php echo lang('members'); ?></span></a></li>
Ce qui donne, une fois appliqué aux différents liens :
<li><a <?php if($_SESSION['cb_user']->connected_position=='index_showusers'): ?>class="active" <?php endif; ?>href="<?php echo manage_url('index.php?act=members', 'forum-members.html'); ?>" id="hm_members"><span><?php echo lang('members'); ?></span></a></li>
<li><a <?php if($_SESSION['cb_user']->connected_position=='index_connusers'): ?>class="active" <?php endif; ?>href="<?php echo manage_url('index.php?act=cu', 'forum-connected.html'); ?>" id="hm_connected"><span><?php echo lang('connected_people'); ?></span></a></li>
<li><a <?php if($_SESSION['cb_user']->connected_position=='index_search'): ?>class="active" <?php endif; ?>href="<?php echo manage_url('index.php?act=src', 'forum-search.html'); ?>" id="hm_search"><span><?php echo lang('search'); ?></span></a></li>
<li><a <?php if($_SESSION['cb_user']->connected_position=='index_rules'): ?>class="active" <?php endif; ?>href="<?php echo manage_url('index.php?act=rules', 'forum-rules.html'); ?>" id="hm_rules"><span><?php echo lang('rules'); ?></span></a></li>
<?php if ( $g_user_admin ): ?>
<li><a href="<?php echo manage_url('admin.php', 'forum-admin.html'); ?>" id="hm_admin"><span><?php echo lang('paneladmin'); ?></span></a></li>
<?php endif; ?>
<?php if ( $g_user_mod ): ?>
<li><a <?php if($_SESSION['cb_user']->connected_position=='index_modpanel'): ?>class="active" <?php endif; ?>href="<?php echo manage_url('index.php?act=mods', 'forum-moderators.html'); ?>" id="hm_mods"><span><?php echo lang('modpanel'); ?><?php if ( isset($g_nbreports) && $g_nbreports > 0 ): ?> (<?php echo lang(array('item' => 'modpanel_nbreports','nb' => $g_nbreports)); ?>)<?php endif; ?></span></a></li>
Ensuite, il ne reste qu'à assigner la couleur choisie à la nouvelle classe créée et donc, on ouvres le fichier style.css du skin choisi et on cherche ceci :
#headmenu li a {
color:white;
font-size:0.865em;
font-weight:bold;
}
(note : j'ai pris l'exemple de Zephyr)
Juste après, on rajoute ceci :
#headmenu li a.active {
color:#xxxxxx;
}
en remplaçant xxxxxx par le code hexa de la couleur choisie.
|