# Handboek MediaWiki/Monobook.js

De MediaWiki kan met verschillende skins (uiterlijk) worden bekeken. De volgende skins zijn er:
* Monobook (de standaard)
* Keuls blauw
* Nostalgie
* Simple
* MySkin
* Standaard
* Chick
Het grootste gedeelte van de MediaWiki-softwaregebruikers werkt met monobook, daarom wordt hier de monobook.js behandeld. Het hier vertelde kan ook op de andere skins worden toegepast, maar het is mogelijk dat het dan iets anders werkt.

## js

js staat voor javascript. Javascript is een scripttaal die wordt gebruikt om browsers te vertellen hoe ze zaken moeten weergeven.
De gebruikte javascript bestaat uit meerdere lagen:
* de in de MediaWiki gedefinieerde code
* De in de common.js gedefineerde code. Deze geldt voor alle gebruikers en kan alleen gewijzigd worden door een moderator/sysop.
* de in de MediaWiki:Monobook.js gedefinieerde code, die geldt voor alle monobookskin-gebruikers (de overgrote meerderheid). Deze code kan alleen gewijzigd worden door een moderator/sysop.
* de in de monobook.js gedefineerde code. Dit is de code die door de gebruiker zelf kan worden gemaakt. Geeft daarvoor in het zoekvenster in "Gebruiker:JouwNaam/monobook.js", of klik hier. Deze pagina kan alleen worden gewijzigd door Gebruiker:JouwNaam en een moderator/sysop.
De programmering die hieronder wordt gegeven is toepasbaar in de MediaWiki:Monobook.js en in de Gebruiker:JouwNaam/monobook.js

## Eerste stap, een knopje onder het bewerkingsscherm

Laten we eerst eens een functie definiëren die een extra button onder het bewerkingsscherm plakt, die automatisch een waarschuwing geeft aan een vandaliserende anonieme gebruiker. Hiervoor moet het overleg van de anonieme gebruiker in het bewerkingsscherm open staan.
Eerst wordt er een functie aangemaakt met de naam ws (voor waarschuwing), die de acties die de knop bij aanklikken moet uitvoeren:
* document.editform.wpTextbox1.value is het bewerkingsscherm; {{ws}} zet het waarschuwingssjabloon in het scherm (let op de gehele inhoud van het bewerkingsscherm wordt gewist).
* document.editform.wpSummary.value is het samenvattingsboxje onder het bewerkingsscherm. Hier wordt de samenvatting gevuld met de letters ws (afkorting voor waarschuwing).
* document.editform.wpMinoredit.checked is het checkboxje onder de samenvatting. Hier wordt false meegegeven, dus niet als een kleine wijziging.
Nu moeten we nog een functie definiëren die de knop ook op het scherm zet:
* met str = wordt de regel gedefinieerd met het type button, met de opschrift ws (value), met het verbinden van het uitvoeren van de functie ws bij het klikken en de klasse is subbutt, hetgeen wil zeggen dat het direct onder het bewerkingsscherm wordt neergezet ????
* De tweede if-regel wordt uitgevoerd, wanneer de actie edit is gegeven (dus als op bewerk wordt gedrukt), daarna wordt de functie addButtons aangeroepen.
* addEventListener is een functie uit de MediaWiki-software.

## Een tabje boven het artikelscherm

Het is soms wel handig om de pagina opnieuw te kunnen laden, dat wil zeggen om de cache te legen. Dit kan je doen door boven het artikelscherm te plaatsen (dus naast module, overleg, bewerk, geschiedenis etcetera).
Eerst maken we een procedure addPurge aan:
* addlilink is de procedure die de tab toevoegt
Dan moet de functie addPurge nog worden geladen. Dat gaat met myLoadFuncs:

## Een link in de linkerkantlijn

Met de bovenstaande functie addlilink kan ook de linkerkantlijn worden bewerkt. Men kan bijvoorbeeld directe links naar handige pagina's opnemen:
Voeg de functie addToolBoxLinks toe aan bovenstaande functie myLoadFuncs.
* De linkerkantlijn wordt gedefinieerd met tb
* De kop boven het artikel wordt gedefinieerd met tabs
* Het persoonlijke deel wordt gedefineerd met ta

## Andere teksten bij het persoonlijk deel rechtsboven

Normaliter staat er boven aan mijn voorkeuren en mijn bijdragen, etcetera. Deze tekst kan best korter en die zou je dus kunnen vervangen bijvoorbeeld door voorkeuren en bijdragen, etcetera. Daarvoor kan men volgende functie gebruiken:
Voeg de functie changeLinks toe aan bovenstaande functie myLoadFuncs.