Manuel:Interface/Barre latérale

From mediawiki.org
This page is a translated version of the page Manual:Interface/Sidebar and the translation is 100% complete.
Exemple de barre latérale
Voir aussi : Supprimer les onglets

MediaWiki:Sidebar permet aux utilisateurs de modifier la barre de navigation. La barre de navigation propose des liens vers les emplacements les plus importants du wiki et fournit aux administrateurs de sites un endroit pour ajouter une collection permanente de liens. Par exemple, la plupart des wikis intègreront un lien vers la page de discussion de leur communauté et vers quelques outils utiles.

Les habillages Monobook et Vector placent la barre de navigation en haut à gauche (en haut à droite pour les langues de droite à gauche) suivie de la barre de recherche et de la boîte d'outils, mais le placement peut être différent avec d'autres habillages. Cette barre latérale n'est pas montrée aux utilisateurs du site Mobile. (Par exemple, la version du site produite par Extension:MobileFrontend / Skin:MinervaNeue utilise l'accroche MobileMenu pour cela).

Personnaliser la barre latérale

Pour personnaliser MediaWiki:Sidebar dans un wiki, vous devez d'abord être connecté avec un utilisateur ayant le droit editinterface - droit attribué par défaut aux administrateurs.[1]

Pour accéder à la MediaWiki:Sidebar vous pouvez soit :

  • Aller sur http://yourdomain/wiki/index.php?title=MediaWiki:Sidebar&action=edit dans votre navigateur
  • Entrer MediaWiki:Sidebar dans la barre de recherche, et valider avec la touche Entrée.
  • A partir de Special:AllMessages, chercher « side » .

Voici un exemple de code ajouté dans MediaWiki:Sidebar pour une barre latérale :

* navigation
** mainpage|Accueil
** Special:RecentChanges|Recent changes
* new heading
** portal-url|Forums
** https://www.mediawiki.org|MediaWiki home

Cette exemple produira la barre latérale suivante :

Exemple de barre latérale
Si vous devez créer une nouvelle page, elle vous sera présentée dans l'éditeur avec le contenu par défaut pour la barre latérale. Pour créer avec succès une page MediaWiki:Sidebar , vous aurez besoin de changer le contenu avant de sauvegarder.

Division de la barre de navigation en nouvelles sections

La barre de navigation peut être divisée en sections, chacune avec un nouveau titre qui lui est propre. Cela se fait en ajoutant un astérisque.

L'en-tête de chaque section est tiré de l'élément de liste de premier niveau ("navigation" et "new heading" dans l'exemple ci-dessus). Si ce texte correspond au nom d'un message d'interface (une page existante qui a ce titre dans l'espace de noms MediaWiki), alors le texte de la page est utilisé comme une étiquette; sinon, le titre de l'entête est utilisé tel quel. Notez bien que le mot magique {{int:}} ne fonctionne pas depuis qu'il est inutile : MediaWiki {{int:}} recherche automatiquement une traduction à afficher avant de se replier vers le message par défaut.

Dans l'exemple ci-dessus, * navigation et * new heading sont des titres de sections.

Créer des liens dans la barre latérale

Vous créez les liens avec deux astérisques (appelés éléments de liste de second niveau). Par exemple :

** cible|texte du lien
cible
La cible du lien peut être le nom d'un message d'interface (page dans l'espace de noms MediaWiki) ou d'une page wiki, ou un lien externe.

Dans les deux cas, le lien peut être interne, interwiki ou externe.[2]

Pour déterminer la cible, vous devez :
  1. Récupérer le texte cible.
  2. S'il existe un message d'interface existant ou par défaut avec ce nom, utilisez le contenu de ce message au lieu du texte cible.
  3. Si la sortie de l'étape précédente est une URL valide (commençant par http:// ou autre protocole d'URL), le lien pointera vers cette URL.
  4. Sinon, il le traitera comme la cible du lien d'un lien wiki (lien vers ce nom de page ou interwiki).
  5. Au cas où il finirait par être lié à '-', toute l'entrée est supprimée de la barre latérale. (Ceci est utile pour supprimer une entrée sur toutes les langues en changeant le message contenant le lien).
Exemples :
  • "** portal-url|portal" utilise le texte de MediaWiki:Portal-url (contenant « Project:Community portal »).
  • "** https://www.mediawiki.org|MediaWiki home" pointe vers https://www.mediawiki.org si c'est une URL valide.
  • "** Special:RecentChanges|Recent changes" pointe vers Special:RecentChanges, parce qu'il n'existe pas de message d'interface de ce nom et que cela n'est pas une URL valide.
  • "** w:Foo|Some interwiki page" pointe vers w:Foo pour la même raison.
texte du lien
Le texte du lien peut être le nom d'un message d'interface (page dans l'espace de noms MediaWiki) ou un texte brut.
  • Si le texte du lien est le nom d’un message d’interface existant ou par défaut, le contenu de ce message sera utilisé. MediaWiki vérifiera les versions localisées; par exemple, si la langue actuelle est fr (français) et que le lien texte est le message d’interface "forum", il vérifiera pour "forum/fr" avant d’utiliser "forum".
  • Sinon, le texte du lien est utilisé comme cible tel quel.
  • Notez que le texte du lien n'est pas optionnel comme dans les liens wiki normaux. Si le texte du lien est manquant, l’élément est ignoré.
Exemples :
  • ** Homepage|mainpage utilise MediaWiki:Mainpage (qui contient « MediaWiki » ).
  • ** Special:Recentchanges|Recent changes utilise « Recent changes » , parce qu'il n'existe pas de message d'interface avec ce nom.

Ordre des sections (éléments)

Certains habillages vous permettent de personnaliser l'ordre de certains éléments particuliers, tels que la barre de recherche, la boîte à outils, ou les langues. Ceci peut être fait en ajoutant respectivement à MediaWiki:Sidebar les mots-clés spéciaux SEARCH, TOOLBOX et LANGUAGES, et en suivant la syntaxe des titres.

Néanmoins certains habillages comme MonoBook ne prennent plus en charge le positionnement de l'élément de recherche et celui-ci est mis juste à la suite de la première section de la barre latérale à la place. Dans ce cas, pour déplacer l'élément à chercher vers le haut, la solution de contournement est de définir une section de tête qui soit vide. Par exemple :

* empty section
* navigation
** mainpage|mainpage
** Special:Recentchanges|Recent changed
* new heading
** portal-url|portal
** https://www.mediawiki.org|MediaWiki home

Notez que certains habillages peuvent afficher la première section de manière différente, ou placer certains éléments entre la première et la seconde section (si elle existe).

Infobulle et clé d'accès

Une bulle d'information (infobulle, tooltip) est un message qui apparaît quand un curseur est positionné sur une icône, une image, un hyperlien, ou tout autre élément d'une interface utilisateur graphique.

Si vous ajoutez un élément dans la barre latérale, il n'aura pas « d'info-bulle ». Mais vous pouvez en créer une ainsi :[3]

  • créer une page wiki nommée "MediaWiki:Tooltip-n-<id of the item>"
  • et mettez l’infobulle sur cette page.

Une clé d'accès (access key ou accesskey) permet à l'utilisateur d'un ordinateur d'aller directement à une partie spécifique d'une page web via le clavier.

Les clés d'accès (accesskey) peuvent aussi être créées en de cette façon :

  • créer une page wiki appelée "MediaWiki:Accesskey-n-<identifiant de l'élément>"
  • et écrivez l'accesskey dans cette page.

Exemple :

Traductions

Vous pouvez traduire les chaînes que vous utilisez en modifiant les pages correspondantes dans l'espace de noms MediaWiki.

Exemple: la chaîne qui va remplacer l'élément nommé « mainpage », est prise de MediaWiki:Mainpage. Pour initialiser/modifier ce texte pour les utilisateurs qui affichent votre wiki en allemand, vous pouvez mettre le texte approprié sur la page MediaWiki:Mainpage/de.

De cette manière vous pouvez facilement traduire ces textes via l'interface MediaWiki.

Veuillez noter que MediaWiki utilisera par défaut le contenu de la page de la barre latérale dans la cette langue, qui correspond à la langue par défaut de votre wiki. Donc, si votre wiki par exemple utilise le français comme langue par défaut, éditez MediaWiki: Mainpage/fr afin d'afficher une barre latérale modifiée à tous les utilisateurs qui n'ont pas modifié leur configuration de langue et à tous les utilisateurs anonymes.

Pour des traductions plus avancées, voir see Aide:Extension:Traduction/Traduction d'éléments non structurés .

Personnalisation avancée

La barre latérale peut être entièrement personnalisée en implémentant JavaScript ou les feuilles de style en cascade (CSS), ou en modifiant directement les fichiers PHP. Avant d’utiliser ces méthodes, notez que :

  • JavaScript est fragile : il ne fonctionnera pas avec les utilisateurs qui ont désactivé JavaScript, et les scripts échouent souvent avec les différents navigateurs ou les habillages.
  • Modifier les fichiers PHP peut facilement causer des erreurs inattendues, et vos modifications seront perdues lors de la prochaine mise à jour, sauf si vous remodifiez manuellement les nouveaux fichiers.

Supprimer la barre latérale et le logo principal sur MediaWiki:Sidebar

Pour supprimer complètement la barre latérale et le logo :

Effacez le contenu de la page MediaWiki:Sidebar puis sauvegardez.

Puis ajoutez :

#column-content { margin: 0 0 1em 0; }
#content { margin: 0 0 0 0; }
#p-cactions { left: .1em; }

Ceci déplace le texte principal de votre wiki vers la gauche.

Supprimer complètement la barre latérale, les onglets et la barre de recherche

Voir aussi : Supprimer les onglets

Supprimer le logo et la barre latérale complète :

#p-logo, .generated-sidebar, #p-lang, #p-tb  { display:none; }

Supprimer la barre de recherche :

#p-search { display:none; }

Supprimer l'onglet de discussion :

#ca-talk { display:none!important; }

Supprimer l'onglet de la page :

#ca-nstab-main { display:none!important; }

Forcer les messages de l'interface utilisateur à suivre la contenu

Certaines pages doivent parfois suivre la langue du contenu, en particulier pour les sites multilingues. Cela peut être contrôlé avec le paramètre $wgForceUIMsgAsContentMsg . Chaque message remplacé de cette manière doit être explicitement indiqué, par exemple pour permettre à la barre latérale de se lier aux versions fournies par la langue du contenu de la page principale et de la page de portail, ajoutez les éléments suivants à

LocalSettings.php

code
$wgForceUIMsgAsContentMsg = [ 'mainpage', 'portal-url' ];

Ajouter ou supprimer des sections de boîte à outils (JavaScript)

La boîte à outils apparait à gauche sous MediaWiki:Sidebar. La boîte à outils est un élément dynamique nécessitant des méthodes de programmation telles que des extensions d'habillage, du PHP (voir skins/MonoBook.php et créer un nouvel habillage) ou du JavaScript.

Les solutions en JavaScript utilisent User:{username}/common.js / MediaWiki:Common.js, disponible pour MediaWiki 1.9+.

Maintenant configurez simplement quel lien doit apparaître dans quelle section. Vous pouvez aussi supprimer certains liens si vous le désirez.

code

function ModifySidebar( action, section, name, link ) {
	try {
		switch ( section ) {
			case 'languages':
				var target = 'p-lang';
				break;
			case 'toolbox':
				var target = 'p-tb';
				break;
			case 'navigation':
				var target = 'p-navigation';
				break;
			default:
				var target = 'p-' + section;
				break;
		}

		if ( action == 'add' ) {
			var node = document.getElementById( target )
							   .getElementsByTagName( 'div' )[0]
							   .getElementsByTagName( 'ul' )[0];

			var aNode = document.createElement( 'a' );
			var liNode = document.createElement( 'li' );

			aNode.appendChild( document.createTextNode( name ) );
			aNode.setAttribute( 'href', link );
			liNode.appendChild( aNode );
			liNode.className = 'plainlinks';
			node.appendChild( liNode );
		}

		if ( action == 'remove' ) {
			var list = document.getElementById( target )
							   .getElementsByTagName( 'div' )[0]
							   .getElementsByTagName( 'ul' )[0];

			var listelements = list.getElementsByTagName( 'li' );

			for ( var i = 0; i < listelements.length; i++ ) {
				if (
					listelements[i].getElementsByTagName( 'a' )[0].innerHTML == name ||
					listelements[i].getElementsByTagName( 'a' )[0].href == link
				)
				{
					list.removeChild( listelements[i] );
				}
			}
		}


	} catch( e ) {
		// ignorer simplement ce qui vient d'arriver
		return;
	}
}

function CustomizeModificationsOfSidebar() {
	// ajouter [[Special:CategoryTree|Special:CategoryTree]] à la boîte à outils
	ModifySidebar( 'add', 'toolbox', 'CategoryTree', 'https://en.wikipedia.org/wiki/Special:CategoryTree' );
	// supprimer [[Special:Upload|Special:Upload]] de la boîte à outils
	ModifySidebar( 'remove', 'toolbox', 'Upload file', 'https://en.wikipedia.org/wiki/Special:Upload' );
}

jQuery( CustomizeModificationsOfSidebar );
Utilisation
function CustomizeModificationsOfSidebar() doit être personnalisé pour ajouter ou supprimer des liens dans les sections spécifiques :
ModifySidebar( "action", "section", "name", "link" );
paramètre valeur
action add pour ajouter un lien; remove pour supprimer un lien
section navigation, toolbox, languages mais aussi tout autre section personnalisée existante; le lien donné sera ajouté à ou supprimé de cette section
name contient le texte du lien
link contient l'URL du lien

Restreindre les modifications à des groupes spécifiques d'utilisateurs

Si vous voulez restreindre la modification des liens à un groupe particulier d'utilisateurs (par exemple les bureaucrates), modifiez :

jQuery( CustomizeModificationsOfSidebar );

en

if ( mw.config.get( 'wgUserGroups', [] ).indexOf( 'bureaucrat' ) !== -1 ) {
	jQuery( CustomizeModificationsOfSidebar );
}

Pour restreindre les modifications à des adresses IP au lieu d'un groupe spécifique d'utilisateurs, utilisez :

if ( mw.config.get( 'wgUserGroups', [] ).indexOf( 'user' ) === -1 ) {
	jQuery( CustomizeModificationsOfSidebar );
}

Ajouter ou supprimer les sections de la boîte à outils (PHP)

Vous pouvez ajouter dans votre fichier LocalSettings.php l'accroche décrite sur cette page. Avec cela, vous pouvez modifier via MediaWiki:Sidebar les liens dans le panneau de la boîte à outils (supprimer certains liens, changer leur nom) et ajouter des liens personnalisés (par exemple, ajouter le lien « Modifications récentes » à la place du panneau de navigation).

Rendre la barre latérale développable/repliable à tous les utilisateurs (habillage Monobook seulement)

Si vous utilisez l'habillage Monobook et ne voulez pas perdre la barre de menu extensible qui se trouve par exemple dans l'habillage Vector, collez le code suivant dans MediaWiki:Monobook.js de votre wiki.

/////////////////////////////////////////////////////////
// Extrait de code pour rendre votre barre latérale extensible. 
// Utilisez ce code UNIQUEMENT pour l'habillage Monobook. 
/////////////////////////////////////////////////////////

$( document ).ready( function() {
	// déclare les éléments extensibles par défaut d'après leur titre
	var defaultExpandItems = ['Navigation', 'Orga'];
	// déclare le nom de base des cookies, qui sauvegardent l'état courant de l'expansion
	var expandCookieName = 'disdance_project_wiki_nav_expanded_';

var maxHeights = [];
	var expandeds = [];
	var labels = [];
	initNav();
});

function initNav() {
	$( '#p-logo' ).css({'position': 'relative', 'display': 'block'});
	$( '.generated-sidebar h5,#p-tb h5 ').each( function( i ) {
		var id = $( this ).parent().attr( 'id' );
		maxHeights[id] = $( this ).next( 'div' ).height();
		var str = $( this ).html();
		labels[id] = str;

if ( $.cookie( expandCookieName + id ) == 'false' ) {
			expandeds[id] = false;
			minimize( $( this ) );
		} else if ( $.cookie( expandCookieName + id ) == 'true' ) {
			expandeds[id] = true;
			maximize( $( this ) );
		} else if ( defaultExpandItems.indexOf( str ) == -1 ) {
			expandeds[id] = false;
			minimize( $( this ) );
		} else {
			expandeds[id] = true;
			maximize( $( this ) );
		}
		$( this ).css({'cursor': 'pointer'});
		$( this ).click( toggleNav );
	} );
}

function minimize( target ) {
	var id = $( target ).parent().attr( 'id' );
	// Fixer la durée de conservation du cookie : 7 jours (modifiable)
	$.cookie( expandCookieName + id, 'false', { expires: 7} );
	var str = labels[id] + '  ►';
	$( target ).next( 'div' ).animate({'height': '0px'});
	$( target ).html( str );
}

function maximize( target ) {
	var id = $( target ).parent().attr( 'id' );
	// Fixer la durée de conservation du cookie : 7 jours (modifiable)
	$.cookie( expandCookieName + id, 'true', { expires: 7} );
	var str = labels[id] + '  ▼';
	var newHeight = maxHeights[id];
	$( target ).next( 'div' ).animate({'height': newHeight + 'px'});
	$( target ).html( str );
}

function toggleNav( e ) {
	var id = $(e.target ).parent().attr( 'id' );
	expandeds[id] = !expandeds[id];
	if( expandeds[id] == true ) {
		maximize( e.target );
	} else {
		minimize( e.target );
	}
}

///////////////////////////////////////////////////////
///////////////////////////////////////////////////////

Barre latérale avec l'habillage Monobook (CSS)

Vous pouvez modifier la largeur de votre barre latérale en ajoutant les règles CSS suivantes à votre MediaWiki:Monobook.css

notez qu'il s'agit d'un article, et non pas d'un fichier. Cela modifie la largeur à 15em, la position des actions et la largeur du portlet doivent être égales ou inférieures, je les ai donc définies à 14em dans cet exemple.

/* augmenter la largeur de la barre latérale */
#column-content { margin-left: -15em; }
#column-content #content { margin-left: 15em; }
#p-logo a, #p-logo a:hover { width: 15em; }
#p-cactions { left: 14.5em; }
.portlet { width: 14em; }
#column-content { margin-left: -14em; }
#content.mw-body { margin-left: 14em; }

Modifier le contenu de la barre latérale une fois connecté (PHP)

Installer et configurer l'extension DynamicSidebar .

Fonctions d'analyse de la barre latérale

Bien que cela ne soit pas exactement recommandé, la barre latérale prend en charge les fonctions d’analyse (telles que ParserFunctions ) à condition que le ** soit en dehors de la fonction d’analyse, et que la fonction d'analyse ne s'étende pas sur plusieurs lignes. Par exemple :

*Heading
**{{#ifeq:{{NAMESPACE}}|User|Page-to-link-to{{!}}text-to-show-on-user-page}}
**{{#ifeq:{{NAMESPACE}}|Talk|Another-Page-to-link-to{{!}}text-to-show-on-talk-page}}

fonctionne. Néanmoins ce qui suit ne fonctionnera pas parce que la fonction d'analyse étend les lignes multiples :

*Heading
{{#ifeq:1|1|
**foo{{!}}
bar
|
**baz{{!}}fred
}}

Résolution des problèmes

Modifications n'apparaissant pas

MediaWiki met automatiquement en cache le contenu de manière agressive lorsque c'est possible, ce qui entraîne souvent la persistance de la barre de navigation après les modifications. Purger la mémoire cache des pages affectées devrait corriger la situation. Pour effectuer une purge en masse de tous les caches à la fois, faire un touch du fichier LocalSettings.php ou tronquez (truncate) la table objectcache de votre base de données (vous pouvez avoir à faire les deux).

Vous devez aussi avoir $wgUseDatabaseMessages initialisé à true. De plus, si vos liens ne comportent pas de | , ils ne s'afficheront pas à cause de la ligne de code suivante dans Skin.php : if ( strpos( $line, '|' ) !== false ) {

Si vous êtes un utilisateur ou un administrateur moyen du wiki, vous ne pourrez pas faire les choses avancées ci-dessus pour que les modifications apparaissent. Si purger ne fonctionne pas non plus, vous pourrez parfois toujours voir les modifications CSS immédiatement dans l'aperçu (en particulier lorsque vous modifiez votre CSS personnel). Par exemple; changer la largeur de la barre latérale, le remplissage ou les marges. Les modifications peuvent toutefois prendre un certain temps après la sauvegarde. Si rien ne s'affiche alors, vous devrez peut-être contacter l'administrateur système du wiki global, ou la ferme de wikis.

Etiquettes de liens en minuscules

Si vos liens ne sont pas mis en majuscules comme vous l'espérez, essayez d'ajouter des espaces de chaque côté du caractère barre verticale; par exemple :

** http://www.example.com/download.php?file=44555 | Download

Des sections disparaissent ou affichent un contenu incohérent

Si une section n'affiche pas ou affiche un contenu inattendu, vérifiez que le texte de l'en-tête n'est pas le nom d'un message d'interface en recherchant Special:AllMessages. Si c'est le cas, utilisez un texte d'en-tête différent ou créez un nouveau message d'interface et utilisez-le.

Par exemple, si vous voulez utiliser « Sidebar » comme texte pour le titre, créez le message d'interface « MediaWiki:Sidebar-header » contenant simplement « Sidebar » . Puis utilisez * sidebar-header comme titre.

Les sections ne sont pas affichées s'il n'y a pas de liens de la forme ** cible | texte du lien (c'est à dire quand la cible a été oubliée).

Liens cassés après une mise à jour Special:Version

Cela se produira, par exemple, à chaque fois qu'il y aura de nouvelles traductions pour les éléments de la barre latérale de la langue de votre site. On pourrait ajouter de nouvelles pages de redirection à chaque fois, mais une meilleure solution serait d’utiliser ses propres noms d’éléments de la barre latérale au lieu d’essayer de garder une trace des traductions actuelles de MediaWiki.

Voir aussi

References

  1. (Pour plus d'informations sur l'attribution d'une autorisation à des groupes ou des utilisateurs, voir Manuel:Droits utilisateurs .) Lorsque vous utilisez un lien vers une page sur votre wiki, mais que vous remplacez le titre de votre page (par exemple Main_Page) dans la barre d'URL/addresse par MediaWiki:Sidebar et que vous chargez cette page - vous devez maintenant voir le contenu actuel de la barre latérale (il se peut que vous deviez utiliser la syntaxe //yourdomain/yourwiki/index.php?title=MediaWiki:Sidebar&action=edit si vous utilisez des URLs longues). Si le contenu de la barre latérale a déjà été modifié, vous pouvez simplement cliquer sur le lien Editer ou Editer le source , sinon vous pourriez avoir à créer la page d'abord en cliquant sur Créer ou Créer le source.
  2. Dans certains cas (comme les liens avec le caractère « &  »), un message d'interface est nécessaire. La cible du lien ne peut pas dépendre de la langue de l'interface définie dans les préférences.
  3. http://www.kaarebmikkelsen.dk/?p=174