Handleiding:Interface/Zijbalk

This page is a translated version of the page Manual:Interface/Sidebar and the translation is 100% complete.
Voorbeeld zijbalk
Zie ook: Handleiding Tab verwijderen

MediaWiki:Sidebar staat een gebruiker toe de navigatie-balk te wijzigen De navigatie-balk zorgt voor de links met de belangrijkste locaties in de wiki en biedt de beheerders een plaats om belangrijke links toe te voegen. De meeste wiki's zullen hier een link naar hun discussie-pagina plaatsen en ook links naar nuttige hulpmiddelen.

De Monobook en Vector skins plaatsen de navigatie-balk links bovenaan (rechts bovenaan de rechts-naar-links talen) samen met een zoekveld en hulpmiddelen, maar elke skin kan natuurlijk anders zijn. Deze zijbalk wordt NIET getoond aan gebruikers van de Mobiele website (bijv. de versie van de website aangemaakt door Extension:MobileFrontend / Skin:MinervaNeue , zie daarvoor de hook MobileMenu ).

Zijbalk aanpassen

Om de MediaWiki:Sidebar op een wiki aan te passen, moet u ingelogd zijn met het recht editinterface. Dat recht is standaard ingeschakeld bij een beheerder.[1]

U kunt de zijbalk benaderen door:

  • In de browset naar http://yourdomain/wiki/index.php?title=MediaWiki:Sidebar&action=edit te gaan.
  • In de zoekbalk intikken: MediaWiki:Sidebar
  • Bij Special:AllMessages, zoeken naar "side".

Voorbeeld met code toegevoegd in MediaWiki:Sidebar voor een zijbalk:

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

Met dit voorbeeld krijgt u als zijbalk:

 
Voorbeeld zijbalk
Als u een nieuwe pagina moet aanmaken, dan krijgt u in de editor de standaardinhoud te zien van de zijbalk. Om een MediaWiki:Sidebar pagina te kunnen aanmaken moet u de inhoud wijzigen voor het opslaan.

De navigatie-balk splitsen in secties

De navigatie-balk kan in secties worden gesplitst met elk een eigen kopje. Dat wordt gedaan door een ster toe te voegen.

Het kopje van een sectie is dan van het eerste-niveau element in de lijst (in het voorbeeld "navigation" en "new heading"). Als deze tekst overeenkomt met de naam van een interface bericht (een bestaande pagina met die titel in de MediaWiki namespace), dan wordt de tekst van die pagina gebruikt als label; anders wordt het kopje niet aangepast. Let op, het {{int:}} magische woord werkt hier niet: MediaWiki zoekt automatisch naar een te tonen vertaling en valt standaard terug op het standaardbericht.

In bovenstaand voorbeeld zijn * navigation en * new heading kopjes van een sectie.

Links aanmaken in de zijbalk

Links worden aangemaakt met twee sterren (twee-niveau lijstelementen). Bijvoorbeeld:

** doel|link tekst
doel
Het doel van de link kan een naam van een interface bericht zijn (pagina in de MediaWiki namespace), een wiki pagina of een externe link. In alle gevallen kan de link intern, interwiki of extern zijn.[2]
Doe het volgende om het doel te bepalen:
  1. Zoek de tekst van het doel.
  2. Als er een bestaande of standaard interface bericht met die tekst is, gebruik de inhoud van dat bericht in plaats van de tekst van het doel.
  3. Als de uitvoer hiervan een geldige URL is (met http:// of een ander URL protocol), dan is het doel die URL.
  4. Als het geen URL is, wordt het gezien als een doel van een wikilink (linken naar die pagina of interwiki).
  5. Als de link uiteindelijk '-' zou worden dan wordt de regel verwijderd van de zijbalk. (Dit is handig bij het verwijderen van een link voor alle talen tegelijk door het wijzigen van het bericht met de link).
Voorbeelden:
  • "** portal-url|portal" gebruikt de tekst van MediaWiki:Portal-url (wat "Project:Community portal" bevat).
  • "** https://www.mediawiki.org|MediaWiki home" linkt naar https://www.mediawiki.org omdat dat een geldige URL is.
  • "** Special:RecentChanges|Recent changes" linkt naar Special:RecentChanges, omdat er geen interfacebericht is met die naam en het is geen geldige URL is.
  • "** w:Foo|Some interwiki page" linkt om dezelfde reden naar w:Foo.
link tekst
De tekst van de link kan de naam van een interface bericht (pagina in de MediaWiki namespace) of gewone tekst zijn.
  • Als de tekst van de link de naam is een bestaand of standaard interface-bericht, dan wordt de inhoud van dat bericht gebruikt. MediaWiki controleert op vertalingen. Als "nl" (Nederlands) de huidige taal is en de tekst is "forum", dan wordt er gezocht naar "forum/nl", als die er niet is wordt er op "forum" gezocht.
  • In het andere geval wordt de tekst van de link gebruikt.
  • De link tekst is hier NIET optioneel zoals bij normale wiki links. Als er geen linktekst is dan wordt de regel overgeslagen.
Voorbeelden:
  • ** Homepage|mainpage gebruikt MediaWiki:Mainpage (dat bevat "MediaWiki").
  • ** Special:Recentchanges|Recent changes gebruikt "Recent changes", omdat er geen interface-bericht is met die naam.

Volgorde secties (elementen)

Enkele skins staan toe dat de volgorde van sommige elementen wordt aangepast, zoals de zoekbalk, de hulpmiddelen en talen. Dat kan gedaan worden door het toevoegen van de sleutelwoorden SEARCH, TOOLBOX en LANGUAGES, aan MediaWiki:Sidebar met gebruik van de kop syntaxis.

Enkele skins als MonoBook ondersteunen niet langer de definitie van de plaats van het zoekelement, dat wordt geplaatst na de eerste sectie van de zijbalk. In dat geval, moet om het zoekelement bovenaan te zetten er een lege sectie bovenaan worden gedefinieerd. Bijvoorbeeld:

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

Enkele skins kunnen de eerste sectie verschillend tonen, of een element tussen de eerste twee secties inzetten.

Tooltips en Accesskey

Een tooltip is een bericht dat getoond wordt als de cursor op een pictogram, afbeelding, hyperlink of een ander element in een grafische gebruikersinterface gaat.

Als u een item toevoegt aan de zijbalk, dan heeft het geen "tooltip". Die kunt u wel toevoegen met:[3]

  • maak een wiki-pagina met de naam "MediaWiki:Tooltip-n-<id van het item>"
  • zet de tooltip in die pagina.

Een access key of accesskey maakt het de gebruiker mogelijk om met het toetsenbord te springen naar een specifieke plek van een webpagina.

Een accesskey kan ook worden aangemaakt met het volgende:

  • maak een wiki-pagina met de naam "MediaWiki:Accesskey-n-<id van het item>"
  • en zet de accesskey in die pagina.

Voorbeeld:

Vertalingen

U kunt de gebruikte teksten vertalen door de bijbehorende pagina's in de MediaWiki namespace te bewerken.

Voorbeeld: De tekst die het item "mainpage" zal vervangen,komt van de MediaWiki:Mainpage. Om deze tekst voor gebruikers te wijzigen/vertalen, die uw website bekijken in het Nederlands, kunt u die tekst gebruiken op de pagina MediaWiki:Mainpage/nl.

Zo kunt u eenvoudig de teksten vervangen met de MediaWiki interface.

NB MediaWiki zal standaard de inhoud voor pagina's gebruiken in de taal, die overeenkomt met de standaardtaal van uw wiki. Dus als uw wiki Nederlands gebruikt als standaardtaal, wijzig de MediaWiki:Mainpage/nl om een aangepaste pagina te tonen aan gebruikers die hun eigen taalinstelling niet zelf op een andere taal hebben gezet.

Voor geavanceerde vertaling, zie Help:Extension:Translate/Vertalen van ongestructureerde elementen .

Geavanceerde aanpassingen

De zijbalk kan volledig worden aanpast door het implementeren van JavaScript en Cascading Style Sheets en door het direct wijzigen van de PHP bestanden. Voordat u zoiets doet, bedenk wel dat:

  • JavaScript is fragiel: een gebruiker kan JavaScript uitschakelen en een script kan stuklopen in een andere webbrowser of met een ander uiterlijk (skin).
  • Het wijzigen van PHP-bestanden kan gemakkelijk onverwachte resultaten geven en u bent ze de volgende geïnstalleerde release weer kwijt.

Zijbalk en hoofdlogo verwijderen op MediaWiki:Sidebar

Om de zijbalk en het logo te verwijderen:

Maak de pagina MediaWiki:Sidebar leeg en sla de pagina op.

Voeg dan toe:

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

Dit verplaatst de hoofdtekst van uw wiki naar links.

De zijbalk,tabbladen en zoekoptie verwijderen

Zie ook: Handleiding Tab verwijderen

Verwijdert het logo en de hele zijbalk:

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

Verwijdert de werkbalk voor het zoeken:

#p-search { display:none; }

Verwijdert de tab "Overleg":

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

Verwijdert de tab voor de tab "Overleg", meest iets als "Pagina":

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

Berichten gebruikersinterface dwingen de inhoud te volgen

Enkele pagina's moeten soms de taal van de inhoud volgen, dat is bij meertalige websites. Hiervoor is de instelling $wgForceUIMsgAsContentMsg . Elk overschreven bericht moet dan expliciet worden aangegeven Voorbeeld: om de zijbalk naar de versies van de taal van de inhoud te laten wijzen vanaf de hoofdpagina en de portaalpagina, voeg het volgende toe

LocalSettings.php

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

Toevoegen/verwijderen delen hulpmiddelen (JavaScript)

Het deel met de hulpmiddelen komt links onder MediaWiki:Sidebar. De toolbox is een dynamisch element dat programmeermethodes nodig heeft als skin extensies, PHP (zie skins/MonoBook.php en aanmaken van een skin) of JavaScript.

De oplossing met JavaScript gebruikt User:{username}/common.js / MediaWiki:Common.js, beschikbaar voor MediaWiki 1.9+.

Configureer nu eenvoudig voor elke sectie welke link daarin getoond moet worden. Je kunt ook links overslaan.

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 ) {
		// laten we negeren wat er is gebeurd
		return;
	}
}

function CustomizeModificationsOfSidebar() {
	// voegt [[Special:CategoryTree|Special:CategoryTree]] toe aan de hulpmiddelen
	ModifySidebar( 'add', 'toolbox', 'CategoryTree', 'https://en.wikipedia.org/wiki/Special:CategoryTree' );
	// verwijdert [[Special:Upload|Special:Upload]] uit de hulpmiddelen
	ModifySidebar( 'remove', 'toolbox', 'Upload file', 'https://en.wikipedia.org/wiki/Special:Upload' );
}

jQuery( CustomizeModificationsOfSidebar );
Gebruik
function CustomizeModificationsOfSidebar() met worden aangepast voor het toevoegen of verwijderen van links in specifieke secties:
ModifySidebar( "action", "section", "name", "link" );
parameter waarde
action add een link toevoegen; remove een link verwijderen
section navigation, toolbox, languages maar ook een andere bestaande sectie aanpassen; de gegeven link zal worden toegevoegd aan of verwijderd van deze sectie
name bevat de tekst van de link
link bevat de URL van de link

Beperken aanpassingen van specifieke gebruikersgroepen

Als je het aanpassen van de links tot een bepaalde gebruikersgroep (bijv. 'bureaucraten) wilt beperken, wijzig:

jQuery( CustomizeModificationsOfSidebar );

naar

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

Voor het beperken van het doen van aanpassingen tot bepaalde IP-adressen i.p.v. een specifieke gebruikersgroep, gebruik:

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

Toevoegen/verwijderen delen hulpmiddelen (PHP)

U kunt in het bestand LocalSettings.php de hier beschreven hook toevoegen. Hiermee kunt u via MediaWiki:Sidebar de links wijzigen in het paneel hulpmiddelen (links verwijderen, de naam wijzigen) en aangepaste links toevoegen (bijv. de link "Recente wijzigingen" daar toevoegen in plaats van in het paneel navigatie).

Zijbalk inklappen/uitklappen voor alle gebruikers bij skin Monobook

Als u het skin Monobook gebruikt en niet de uitbreidbare menu-balk wil missen van bijv. de skin Vector, voeg de volgende code dan toe aan MediaWiki:Monobook.js van uw wiki.

/////////////////////////////////////////////////////////
// Code om de zijbalk uitbreidbaar te maken. 
// Gebruik deze code alleen in de skin Monobook. 
/////////////////////////////////////////////////////////

$( document ).ready( function() {
	// Zet de standaard uitbreidbare items bij de kopregel
	var defaultExpandItems = ['Navigation', 'Orga'];
	// De basisnaam van de cookies bepalen, deze bewaren de huidige status van de uitbreiding
	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' );
	// U kunt de parameter aanpassen die aangeeft hoe lang een cookie geldig blijft, standaard is die in deze code 7 dagen
	$.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' );
	// U kunt de parameter aanpassen die aangeeft hoe lang een cookie geldig blijft, standaard is die in deze code 7 dagen
	$.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 );
	}
}

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

Breedte zijbalk in Monobook skin (CSS)

U kunt de breedte van de zijbalk wijzigen door de volgende CSS toe te voegen aan MediaWiki:Monobook.css

NB: dit is een artikel', niet een bestand. Dit past de breedte aan naar 15em, de positie van de acties en de breedte van de portlet moeten circa 1 em kleiner zijn, vandaar dat in het voorbeeld voor 14 em is gekozen.

/* breedte zijbalk verhogen */
#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; }

Wijzigen inhoud zijbalk, wanneer ingelogd (PHP)

Installeer en configureer de extensie DynamicSidebar .

Parser functies in zijbalk

Alhoewel het niet echt wordt aanbevolen ondersteunt de zijbalk parser-functies (zoals ParserFunctions ), wat geeft dat ** buiten de parser-functie is, deze bevat niet meerdere regels. Voorbeeld:

*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}}

werkt. Het volgende werkt 'niet, omdat de parser-functie meerdere regels bevat:

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

Probleemoplossing

Wijzigingen worden niet getoond

MediaWiki gebruikt de cache zodra het kan, wat tot gevolg kan hebben dat wijzigingen in de navigatie-balk niet zichtbaar worden. Purging van de cache van de betreffende pagina's zou dit moeten verhelpen. Om de cache in een keer te wissen, wijzig het bestand LocalSettings.php of wis de tabel objectcache in uw database (mogelijk moet u beide doen).

Zet $wgUseDatabaseMessages ook op true. Als uw links geen | bevatten, dan worden ze niet getoond, door deze code in Skin.php: if ( strpos( $line, '|' ) !== false ) {

Als je een gebruiker of een gemiddelde beheerder bent dan kunt u de bovenstaande wijzigingen niet doen die hierboven beschreven staan. Als het purgen ook niet werkt dan kun je in de voorvertoning soms toch wijzigen zien in de CSS (zeker al het je eigen CSS is). Voorbeeld, als je de breedte van de zijbalk aanpast, de padding of de margins. Het kan even duren na het opslaan voordat wijzigingen actief worden. Als het na verloop van tijd neem dan contact op met de wiki, de wiki farm of de sysop.

Kleine letters link labels

Als de links niet als bedoeld zijn in het gebruik van hoofdletter, probeer dan spaties toe te voegen rond het teken |, voorbeeld:

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

Secties verdwijnen of tonen onverwachte inhoud

Als een sectie niet wordt getoond of onverwachte inhoud heeft, controleer dan of de kopregel de naam van een interface bericht is door te zoeken op Special:AllMessages. Als dat zo is, gebruik dan een ander kopregel, of maak een ander interface bericht.

Als je bijvoorbeeld "Sidebar" als kopregel wilt gebruiken, maar dan het interface bericht "MediaWiki:Sidebar-header" dat alleen "Sidebar" bevat. Gebruik dan als kopregel * sidebar-header.

Secties worden niet getoond als er geen links zijn van het formaat ** target | link tekst (bijvoorbeeld wanneer het doel is vergeten).

Defecte links na updaten Special:Version

Dit zal elke keer gebeuren als er een nieuwere vertaling is voor een item op de zijbalk in uw taal. Men kan elke keer doorverwijzingen toevoegen maar de betere oplossing is om de eigen zijbalk namen van items te gebruiken in plaats van de huidige vertalingen van MediaWiki proberen te volgen.

Zie ook

References

  1. (Lees Manual:User rights voor het toekennen van rechten aan groepen of gebruikers.) Gebruik een link naar een pagina op uw wiki, maar vervang de titel van die pagina (bijv. Main_Page) in de URL-regel door MediaWiki:Sidebar rn laad die pagina, als het goed is wordt nu de zijbalk getoond. (Bij gebruik van lange URL's kan de syntaxis //yourdomain/yourwiki/index.php?title=MediaWiki:Sidebar&action=edit zijn.) Indien de inhoud van de zijbalk al is gewijzigd, klik dan op een bewerk/wijzig link, in het andere geval zult u de pagina moeten aanmaken.
  2. In bepaalde gevallen (zoals link met het teken "&") is een interface bericht nodig. Het doel kan niet afhankelijk gemaakt worden van de voorkeurstaal van de interface.
  3. http://www.kaarebmikkelsen.dk/?p=174