Le menu navigation

'''ATTENTION : cette page correspond aux versions antérieures à la 1.5.0

''' Le menu navigation est le premier menu sous le logo, dans la colonne de gauche. Il est facile à modifier. En effet, dans le fichier includes/DefaultSetting.php, on trouve le tableau (array) php qui le gère. IL suffit de recopier ce tableau dans LocalSettings.php (à la fin)

 $wgNavigationLinks = array (
        array( 'text'=>'mainpage',      'href'=>'mainpage' ),
        array( 'text'=>'portal',        'href'=>'portal-url' ),
        array( 'text'=>'currentevents', 'href'=>'currentevents-url' ),
        array( 'text'=>'recentchanges', 'href'=>'recentchanges-url' ),
        array( 'text'=>'randompage',    'href'=>'randompage-url' ),
        array( 'text'=>'help',          'href'=>'helppage' ),
        array( 'text'=>'sitesupport',   'href'=>'sitesupport-url' ),
 );

Si on veut supprimer une ligne, on la supprime et c'est tout, elle disparaît. Si on veut la modifier, c'est un peu plus subtil.

Il ne faut pas modifier la partir située après 'text' (par exemple mainpage car ce n'est pas une constante. Ce texte est remplacé par le texte qui se trouve dans le fichier de traduction (langages/LanguageXX.php).

De la même façon il ne faut pas toucher au texte situé après href, qui est remplacé par celui du fichier de traduction.

Par exemple, en faisant :

 grep -r sitesupport *

On trouve (entre autre), dans LanguageFr.php

 "sitesupport"   => "Participer en faisant un don"

Qui est le texte affiché (et c'est là qu'on peut le modifier)

Et dans Language.php (le fichier par défaut)

 languages/Language.php:'sitesupport-url' => 'Project:Site support'

Et en effet, la version française conserve le nom de page par défaut Project:Site support?, qui, d'ailleurs, renvoie sur dodin.org:Site_support? (en tout cas ici). J'ai rien Compris lol !!!!!!!!

Monobook.php

Tous les menus sont définis en php dans Monobook.php. Il suffit de chercher

 <pre><h5><?php $this->msg('navigation') ?></h5></pre>

Pour trouver où. Juste au dessus vous avez la définition du logo. Examinons l'affichage du menu de navigation, même si ce n'est pas là que nous allons le modifier (voirt ci-dessus). Le code complet est le suivant :

<div class="portlet" id="p-nav">
<h5><?php $this->msg('navigation') ?></h5>
<div class="pBody">
  <ul>
    <?php foreach($this->data['navigation_urls'] as $navlink) { ?>
    <li id="<?php echo htmlspecialchars($navlink['id'])
      ?>"><a href="<?php echo htmlspecialchars($navlink['href']) ?>"><?php
      echo htmlspecialchars($navlink['text']) ?></a></li><?php } ?>
  </ul>
</div>

C'est du html parsemé de php. Je ne connais rien à php, mais j'ai déjà programmé avec d'autres langages et il n'y a rien de sorcier. le <h5> donne le titre du menu, les ul et li les puces de la liste. Il y a fort à parier que la classe pBody donne le cadre du menu :-).

Une fois ça compris, l'aide de mediawiki donne la clé :

 <?php $this->msgWiki( 'MenuNavigation' ) ?>

L'explication officielle se trouve ici, mais elle n'est pas super facile. Je vais donc vous donner la mienne.

Ajouter son propre menu

La ligne clé est donc celle déjà donnée :

 <?php $this->msgWiki( 'MenuNavigation' ) ?>

On l'utilise en l'insérant dans le code, en dehors des balises php, par exemple juste après un </php>.

Mais avant de faire ça, il faut créer la page 'MenuNavigation'. Ici ce n'est plus une variable, c'est une vrai page, mais dans l'espace-nom (Namespace) "MediaWiki". Les espaces-nom par défaut, se trouvent dans Language.php et Namespace.php. Il est possible d'en créer d'autres, mais ce n'est pas notre préoccupation du moment.

Les pages de l'espace-nom MediaWiki sont spéciales en ce qu'elles ne peuvent être créées que par l'utilisateur "WikiSysop", dont le mot de passe vous a été demandé à la création de votre mediawiki (il est possible de créer d'autres administrateurs, c'est hors de propos ici). Connectez-vous donc en wikiSysop.

Allez donc dans n'importe quelle page, par exemple votre page personnelle et créez <nowiki>MediaWiki:MenuNavigation?</nowiki>, MenuNavigation étant bien entendu un nom à votre choix. Ça vous donne ça MediaWiki:MenuNavigation?.

Ouvrez cette page et mettez-y les liens qui doivent faire partie de votre menu. Si vous y mettez du texte, il sera aussi affiché.

Vous allez maintenant insérer la ligne clé ci-dessus dans le code, par exemple au milieu du code de navigation, juste après le /ul et juste avant le /div. Sauvegardez le fichier (au fait, vous en avez fait une copie de sauvegarde, avant de l'éditer ?).

Vous devez voir votre modification si vous mettez à jour la page (attention au cache de Mozilla !)

Enjoliver

Il n'est pas très difficile (suivez les div /div) de voir où se situent à la suite du menu de navigation les menus recherche et options.

Il est donc sans doute préférable de mettre votre propre menu tout en bas de la page, dans le menu outils ou sous le menu outils.

Si vous voulez le mettre dessous, profitez-en pour l'encadrer en recopiant les bonnes lignes :

<div class="pBody">
<?php $this->msgWiki( 'MenuNavigation' ) ?>
</div>

La meilleure place c'est entre deux /div (l'un indique la fin de la colonne, l'autre la fin de la page)

Modifier le menu navigation

Depuis la version 1.5, la page spéciale

[[MediaWiki:Sidebar]]

permet de modifier le menu navigation