Connectix Boards

Bienvenue, vous n'êtes pas connecté. ( Se connecter - S'enregistrer )

Dernière version sortie: 0.8.4!
Venez tester la version 1.0 beta :)

RSS >  lien actif
victor27 #1 17/09/2009 - 13h07

Groupe : Nouveau
Messages : 2
Enregistré le : 29/08/2009

Hors ligne

Bonjour à tous,

Je souhaiterais faire apparaître d'une couleur différente le lien de la page sur laquelle je me trouve (membres, personnes connectées, etc...)

Je n'ai pas de problème avec le css ni pour créer ce type de comportement en html mais mes connaissances en PHP sont plus que limitées.

Je n'ai pas trouvé d'exemple sur ce forum et je ne suis pas non plus parvenu à adapter au forum des tutos trouvés ici et là sur Internet.

L'un de vous serait-il en mesure de me donner un exemple concret (un code type et son emplacement dans les fichiers concernés).

Merci d'avance,

Victor
Ishimaru Chiaki #2 18/09/2009 - 06h24

Groupe : Doc-rédacteur
Messages : 800
Enregistré le : 12/03/2008

Hors ligne Site Web

Bonjour Victor et bienvenue sur Connectix Boards.

Je viens d'examiner le code et de faire des tests pour pouvoir te répondre, puisqu'effectivement, je pense que c'est la première fois que quelqu'un demande ça ici.

Oui, c'est possible en utilisant 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.

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 ton Notepad++ (je te le conseille fortement si tu n'as que le vieux bloc-notes - si t'es sous Windows premièrement), ouvre le fichier templates/Official/gen_contents.php (tu peux remplacer Official par le nom de ton template personnalisé si tu en as un).

Puis 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), tu insère le bout de code suivant :
<?php if($_SESSION['cb_user']->connected_position == 'maposition'): ?>class="active" <?php endif; ?>

Ce qui te 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 te reste à assigner ta couleur à la nouvelle classe créée et donc, tu ouvres le fichier style.css de ton skin et tu cherches ceci :
#headmenu li a {

    color:white;

    font-size:0.865em;

    font-weight:bold;

}

(note : j'ai pris l'exemple de Zephyr)

Juste après, tu rajoutes ceci :
#headmenu li a.active {
    color:#xxxxxx;
}

en remplaçant xxxxxx par le code hexa de ta couleur.
Besoin de volontaires pour les tests du support IPv6 dans la future version 0.8.5 !
Plus d'informations ici

Mon fil Twitter
victor27 #3 18/09/2009 - 07h48

Groupe : Nouveau
Messages : 2
Enregistré le : 29/08/2009

Hors ligne

Bonjour Ishimaru Chiaki

Je viens de tester ton code en faisant des simples "copier / coller" et il fonctionne nickel. C'est exactement ce que je cherchais à faire.

Je n'ai plus qu'à adapter le css.

Merci beaucoup pour ton aide et ta réactivité.

@+

Victor
Ce message a été édité par victor27 le 19/09/2009 à 00h38.

 >  Réponse rapide

Composez votre message

 >  Informations du forum

1 personne(s) présente(s) durant une période de 15 minutes (0 membre(s) et 1 invité(s)).