Aan de totstandkoming van deze digitale encyclopedie wordt nog gewerkt.
MediaWiki:Common.js
/* JavaScript die hier wordt geplaatst heeft invloed op alle pagina's voor alle gebruikers, JL 6 aug. 2013 */ /*jslint browser: true, continue: true, sloppy: true, vars: true, plusplus: true*/ /*global mediaWiki, jQuery, importScript, jsMsg*/ (function (mw, $) { /** * Laad volglijst script */ if (mw.config.get('wgCanonicalSpecialPageName') === 'Watchlist') { importScript("MediaWiki:Common.js/watchlist.js"); } /** * Extra knopje in de monobook toolbar * * Gebaseerd op [[:en:Wikipedia:Tools/Editing tools]]. * Maintainers: [[:en:User:MarkS|User:MarkS]]?, [[:en:User:Voice of All|User:Voice of All]], [[:en:User:R. Koot|User:R. Koot]] */ if (mw.toolbar) { mw.toolbar.addButton({ 'imageFile': '//upload.wikimedia.org/wikipedia/commons/0/04/Button_array.png', 'speedTip': 'Voeg tabel in', 'tagOpen': '{| class="wikitable"\n|-\n', 'tagClose': "\n|}", 'sampleText': "! kop 1\n! kop 2\n! kop 3\n|-\n| rij 1, cel 1\n| rij 1, cel 2\n| rij 1, cel 3\n|-\n| rij 2, cel 1\n| rij 2, cel 2\n| rij 2, cel 3" }); } /** * Uitgelicht in andere talen * * Sterren voor interwikilinks van de [[Wikipedia:Etalage]]-artikelen van andere Wikipedia's. * Zie {{tl|Link FA}}. Overgenomen van [[:de:MediaWiki:Common.js]] * Om zetten: <code>window.enable_linkFA = false;</code> in [[Special:Mypage/common.js]]. * * @revision 2013-01-26 * @maintainer Krinkle */ function linkFA() { var i; if (window.enable_linkFA === false) { return; } // links are to replaced in p-lang only var pLang = document.getElementById('p-lang'); if (!pLang) { return; } var lis = pLang.getElementsByTagName('li'); for (i = 0; i < lis.length; i++) { var li = lis[i]; // alleen links met een Link FA-sjabloon if (!document.getElementById(li.className + '-fa')) { continue; } // Extra css-klasse zodat het effect verborgen kan worden met CSS li.className += ' FA'; // Verander titel li.title = 'Dit is een etalage-artikel in een andere taal.'; } } $(linkFA); /** * Goede artikelen in andere talen * * Sterren voor interwikilinks van de 'goede artikelen' van andere Wikipedia's. * Zie {{tl|Link GA}}. * Om zetten: <code>window.enable_linkGA = false;</code> in [[Special:Mypage/common.js]]. * * @revision 2013-01-26 * @maintainer Krinkle */ function linkGA() { var i; if (window.enable_linkGA === false) { return; } // links are to replaced in p-lang only var pLang = document.getElementById('p-lang'); if (!pLang) { return; } var lis = pLang.getElementsByTagName('li'); for (i = 0; i < lis.length; i++) { var li = lis[i]; // alleen links met een Link GA-sjabloon if (!document.getElementById(li.className + '-ga')) { continue; } // Extra css-klasse zodat het effect verborgen kan worden met CSS li.className += ' GA'; // Verander titel li.title = 'Dit is een goed artikel in een andere taal.'; } } $(linkGA); /** * Autotekst in uploadpagina voor bestanden * * Script voor Speciaal:Uploaden * Maintainers: [[:commons:User:Yonidebest]], [[:commons:User:Dschwen]] */ if (mw.config.get('wgCanonicalSpecialPageName') === 'Upload') { importScript('MediaWiki:Upload.js'); } /** * Meerdere sets speciale tekens * * Geeft menu in [[MediaWiki:Edittools]] waarmee meerdere sets speciale * tekens kunnen worden geraadpleegd. Zie ook [[MediaWiki:Onlyifediting.js]] */ if (mw.config.get('wgAction') === 'edit' || mw.config.get('wgAction') === 'submit') { importScript('MediaWiki:Onlyifediting.js'); } /** * NavFrame * * Van [[:en:MediaWiki:Common.js]] * Test if an element has a certain class * Description: Uses regular expressions and caching for better performance. * Maintainers: [[:en:User:Mike Dillon]], [[:en:User:R. Koot]], [[:en:User:SG]] */ var hasClass = (function () { var reCache = {}; return function (element, className) { return (reCache[className] || (reCache[className] = new RegExp("(?:\\s|^)" + className + "(?:\\s|$)"))).test(element.className); }; }()); /** * Collapsible tables * Allows tables to be collapsed, showing only the header. See [[:en:Wikipedia:NavFrame]]. * Maintainers: [[:en:User:R. Koot]] */ var autoCollapse = 2; var collapseCaption = 'verberg'; var expandCaption = 'toon'; function collapseTable(tableIndex) { var Button = document.getElementById('collapseButton' + tableIndex); var Table = document.getElementById('collapsibleTable' + tableIndex); var i; if (!Table || !Button) { return false; } var Rows = Table.getElementsByTagName('tr'); if (Button.firstChild.data === collapseCaption) { for (i = 1; i < Rows.length; i++) { Rows[i].style.display = 'none'; } Button.firstChild.data = expandCaption; } else { for (i = 1; i < Rows.length; i++) { Rows[i].style.display = Rows[0].style.display; } Button.firstChild.data = collapseCaption; } } function createCollapseButtons() { var tableIndex = 0; var NavigationBoxes = {}; var Tables = document.getElementsByTagName('table'); var i; for (i = 0; i < Tables.length; i++) { if (hasClass(Tables[i], 'collapsible')) { NavigationBoxes[tableIndex] = Tables[i]; Tables[i].setAttribute('id', 'collapsibleTable' + tableIndex); var Button = document.createElement('span'); var ButtonLink = document.createElement('a'); var ButtonText = document.createTextNode(collapseCaption); Button.style.styleFloat = 'right'; Button.style.cssFloat = 'right'; Button.style.fontWeight = 'normal'; Button.style.textAlign = 'right'; Button.style.width = "6em"; ButtonLink.setAttribute('id', 'collapseButton' + tableIndex); $(ButtonLink).data('mwCollapsibleTableIndex', tableIndex).click(function (e) { collapseTable($(this).data('mwCollapsibleTableIndex')); e.preventDefault(); }); ButtonLink.appendChild(ButtonText); Button.appendChild(document.createTextNode('[')); Button.appendChild(ButtonLink); Button.appendChild(document.createTextNode(']')); var Header = Tables[i].getElementsByTagName('tr')[0].getElementsByTagName('th')[0]; /* only add button and increment count if there is a header row to work with */ if (Header) { Header.insertBefore(Button, Header.childNodes[0]); tableIndex++; } } } for (i = 0; i < tableIndex; i++) { if (hasClass(NavigationBoxes[i], 'collapsed') || (tableIndex >= autoCollapse && hasClass(NavigationBoxes[i], 'autocollapse'))) { collapseTable(i); } } } $(createCollapseButtons); /** * Overige * * pickUpText(aParentElement) * similar to innerHTML, but only returns the text portions of the insides, excludes HTML * Overblijfsel van de RealTitle functie * Maintainers op enwiki: [[:en:User:Interiot|User:Interiot]], [[:en:User:Mets501|User:Mets501]] */ function pickUpText(aParentElement) { var str = ''; function pickUpTextInternal(aElement) { var child = aElement.firstChild; while (child) { // ELEMENT_NODE if (child.nodeType === 1) { pickUpTextInternal(child); // TEXT_NODE } else if (child.nodeType === 3) { str += child.nodeValue; } child = child.nextSibling; } } pickUpTextInternal(aParentElement); return str; } /** * SpecialSearchEnhanced * * Dit voegt twee externe zoekmachines toe aan Speciaal:Search * Het is een bewerking van fr:MediaWiki:Monobook.js * en en:MediaWiki:Common.js * wat gemaakt is door fr:User:Dake en de auteurs van * en:MediaWiki:Common.js onder de licentie GFDL * Deze functie is aangepast aan MWSearch. */ function SpecialSearchEnhanced() { var searchForm, searchBox; if (document.forms.powersearch) { searchForm = document.forms.powersearch; } if (document.forms.search) { searchForm = document.forms.search; } if (searchForm.lsearchbox) { searchBox = searchForm.lsearchbox; } else { searchBox = searchForm.search; } var searchValue = searchBox.value; var safeSearchValue = mw.html.escape(searchValue); var node = document.createElement('div'); var SearchEnhancedText = '<p/><br/>U kunt ook met onderstaande externe zoekmachines zoeken in Wikipedia. Deze kunnen resultaten opleveren die met de interne zoekmachine niet gevonden worden. Bij Google kunt u ook andere taalversies van Wikipedia selecteren.'; var googleSearch = '<p/><table width=100%><tr valign=top><td align=left>'; googleSearch += '<form method=get action="http://www.google.nl/search">'; googleSearch += '<input type=text name=q value="' + safeSearchValue + '">'; googleSearch += '<input type=hidden name=hl value=nl>'; googleSearch += ' <select name=sitesearch>'; googleSearch += '<option value="nl.wikipedia.org"> Nederlands </option>'; googleSearch += '<option value="en.wikipedia.org"> Engels </option>'; googleSearch += '<option value="de.wikipedia.org"> Duits </option>'; googleSearch += '<option value="fr.wikipedia.org"> Frans </option>'; googleSearch += '<option value="es.wikipedia.org"> Spaans </option>'; googleSearch += '<option value="pt.wikipedia.org"> Portugees </option>'; googleSearch += '<option value="it.wikipedia.org"> Italiaans </option>'; googleSearch += '<option value="sv.wikipedia.org"> Zweeds </option>'; googleSearch += '<option value="no.wikipedia.org"> Noors </option>'; googleSearch += '<option value="da.wikipedia.org"> Deens </option>'; googleSearch += '<option value="pl.wikipedia.org"> Pools </option>'; googleSearch += '<option value="fy.wikipedia.org"> Fries </option>'; googleSearch += '<option value="li.wikipedia.org"> Limburgs </option>'; googleSearch += '<option value="nds-nl.wikipedia.org"> Nedersaksisch </option>'; googleSearch += '<option value="vls.wikipedia.org"> West-Vlaams </option>'; googleSearch += '<option value="wikipedia.org"> Alle talen </option>'; googleSearch += '</select> <input type=submit value="Zoek met Google">'; googleSearch += '</form></td>'; var wikiwixSearch = '<td> </td><td align=right>'; wikiwixSearch += '<form method=get action="http://nl.wikiwix.com/">'; wikiwixSearch += '<input type=text name=action value="' + safeSearchValue + '">'; wikiwixSearch += ' <input type=submit value="Zoek met Wikiwix">'; wikiwixSearch += '</form></td>'; var yahooSearch = '<td> </td><td align=right>'; yahooSearch += '<form method=get action="http://nl.search.yahoo.com/search">'; yahooSearch += '<input type=text name=p value="' + safeSearchValue + '">'; yahooSearch += '<input type=hidden name=vs value=nl.wikipedia.org>'; yahooSearch += ' <input type=submit value="Zoek met Yahoo">'; yahooSearch += '</form></td></tr></table><br/>'; node.innerHTML = node.innerHTML + SearchEnhancedText + googleSearch + wikiwixSearch + yahooSearch; var nonefound = document.getElementById('nonefound'); if (nonefound) { nonefound.innerHTML = nonefound.innerHTML + '<div>' + node.innerHTML + '</div>'; } else { searchForm.parentNode.insertBefore(node, searchForm.nextSibling); } } if (mw.config.get('wgCanonicalSpecialPageName') === 'Search') { $(SpecialSearchEnhanced); } // ============================================================ // BEGIN Dynamisch inklapbare div // set up the words in your language var UitklapDivHide = 'Inklappen'; var UitklapDivShow = 'Uitklappen'; // shows and hides content of Uitklap divs // Parameters: // indexUitklapDiv: the index of Uitklap div to be toggled window.toggleUitklapDiv = function(indexUitklapDiv) { var UitklapToggle = document.getElementById('UitklapToggle' + indexUitklapDiv); var UitklapFrame = document.getElementById('UitklapFrame' + indexUitklapDiv); var UitklapChild; if (!UitklapFrame || !UitklapToggle) { return false; } // if shown now if (UitklapToggle.firstChild.data === UitklapDivHide) { for ( UitklapChild = UitklapFrame.firstChild; UitklapChild != null; UitklapChild = UitklapChild.nextSibling ) { if (UitklapChild.className === 'UitklapContent') { UitklapChild.style.display = 'none'; } if (UitklapChild.className === 'UitklapToggle') { UitklapChild.firstChild.data = UitklapDivShow; } } // if hidden now } else if (UitklapToggle.firstChild.data === UitklapDivShow) { for ( UitklapChild = UitklapFrame.firstChild; UitklapChild != null; UitklapChild = UitklapChild.nextSibling ) { if (UitklapChild.className === 'UitklapContent') { UitklapChild.style.display = 'block'; } if (UitklapChild.className === 'UitklapToggle') { UitklapChild.firstChild.data = UitklapDivHide; } } } } // adds show/hide-button to navigation bars function createUitklapDivToggleButton() { var indexUitklapDiv = 0; var i, u, UitklapFrame; // iterate over all < div >-elements for (i = 0; UitklapFrame = document.getElementsByTagName('div')[i]; i++) { // if found a navigation bar if (UitklapFrame.className === 'UitklapFrame' || UitklapFrame.className === 'UitklapFrameNoClear') { indexUitklapDiv++; var UitklapToggle = document.createElement('a'); UitklapToggle.className = 'UitklapToggle'; UitklapToggle.setAttribute('id', 'UitklapToggle' + indexUitklapDiv); $(UitklapToggle).data('mwUitklapFrameIndex', indexUitklapDiv).click(function (e) { toggleUitklapDiv($(this).data('mwUitklapFrameIndex')); e.preventDefault(); }); var UitklapToggleText = document.createTextNode(UitklapDivHide); UitklapToggle.appendChild(UitklapToggleText); // add NavToggle-Button as first div-element // in < div class="UitklapFrame" > UitklapFrame.insertBefore(UitklapToggle, UitklapFrame.firstChild); UitklapFrame.setAttribute('id', 'UitklapFrame' + indexUitklapDiv); } } for (u = 1; u <= indexUitklapDiv; u++) { toggleUitklapDiv(u); } } $(createUitklapDivToggleButton); // EIND Dynamisch inklapbare div // ============================================================ /** * Extraheer waarde uit de huidige of een gegeven adres * @deprecated since MediaWiki 1.17: Gebruik mw.util.getParamValue */ function getParamValue(paramName, url) { return mw.util.getParamValue(paramName, url); } /** * Load withJS & withCSS * * @source www.mediawiki.org/wiki/Snippets/Load_JS_and_CSS_by_URL * @rev 3 */ mw.loader.using( ['mediawiki.util', 'mediawiki.notify'], function () { var extraJS = mw.util.getParamValue( 'withJS' ); if ( extraJS ) { // Disallow some characters in file name if ( extraJS.match( /^MediaWiki:[^&<>=%#]*\.js$/ ) ) { importScript( extraJS ); // Dont use alert but the jsMsg system. Run jsMsg only once the DOM is ready. } else { $(document).ready( function() { mw.notify( 'Invalid javascript URL; only javascript pages from MediaWiki: space are allowed.', { title: 'Error' } ); } ); } } var extraCSS = mw.util.getParamValue( 'withCSS' ); if ( extraCSS ) { // Disallow some characters in file name if ( extraCSS.match( /^MediaWiki:[^&<>=%#]*\.css$/ ) ) { importStylesheet( extraCSS ); // Dont use alert but the jsMsg system. Run jsMsg only once the DOM is ready. } else { $(document).ready( function() { mw.notify( 'Invalid stylesheet URL; only stylesheet pages from MediaWiki: space are allowed.', { title: 'Error' } ); } ); } } } ); function loggedOutTalkPage() { var loggedOut = mw.util.addPortletLink('p-personal', '#', 'Niet aangemeld', 'pt-userpage', null, null, '#pt-login'); loggedOut.innerHTML = '<span style="color: gray;">Niet aangemeld</span>'; mw.util.addPortletLink('p-personal', '//nl.wikipedia.org/wiki/Special:MyTalk', 'Overlegpagina IP-adres', 'pt-mytalk', 'Overlegpagina IP-adres', 'n', '#pt-login'); mw.util.addPortletLink('p-personal', '//nl.wikipedia.org/wiki/Special:MyContributions', 'Bijdragen IP-adres', 'pt-mycontris', 'Bijdragen IP-adres', 'y', '#pt-login'); } mw.loader.using('mediawiki.user', function () { if (mw.user.anonymous()) { $(document).ready(loggedOutTalkPage); } }); // Bewerken en overleg bij een afbeelding op Commons linken naar Commons (kopie van de Duitse Wikipedia) if (mw.config.get('wgNamespaceNumber') === 6) { $(function () { if (window.keepLocalFileTabs) { return; } if (document.getElementById('ca-history')) { // Lokale beschrijving aanwezig? return; } if (!$('.sharedUploadNotice').length) { // Alleen doen bij afbeeldingen op Commons return; } var path = '//commons.wikimedia.org/wiki/'; var link, talk, edit; // Andere link voor overlegpagina // vector uses ca-image_talk talk = document.getElementById('ca-talk') || document.getElementById('ca-image_talk'); if (talk && $(talk).hasClass('new')) { link = talk.getElementsByTagName('a')[0]; link.href = path + 'File_talk:' + mw.util.wikiUrlencode(mw.config.get('wgTitle')) + '?uselang=' + mw.config.get('wgUserLanguage'); link.className += ' commonstab'; } // Bewerken link edit = document.getElementById('ca-edit') || document.getElementById('ca-viewsource'); if (edit) { link = edit.getElementsByTagName('a')[0]; link.href = path + 'File:' + mw.util.wikiUrlencode(mw.config.get('wgTitle')) + '?uselang=' + mw.config.get('wgUserLanguage') + '&action=edit'; link.className += ' commonstab'; link.firstChild.nodeValue = 'Bewerken'; } }); } /** * Icons on the top right of the article. * See also CSS * * @source: www.mediawiki.org/wiki/Snippets/Top_icons * @rev: 3 */ $(document).ready(function () { $('.Top_icon_raw') .removeClass('Top_icon_raw') .addClass('Top_icon_dynamic') .prependTo('#firstHeading'); }); /** * Gebruik 4 tildes zonder '--' voor ondertekening in de (oude) toolbar */ $(document).ready(function () { $( '#mw-editbutton-signature' ).unbind('click'); $( '#mw-editbutton-signature' ).click( function () { window.insertTags( '~~' + '~~' ); } ); }); /** * Gebruik 4 tildes zonder '--' voor ondertekening in de uitgebreide werkbalk */ $(document).ready(function () { $( '#wpTextbox1' ).bind( 'wikiEditor-toolbar-buildSection-main', function( event, section ) { section.groups.insert.tools.signature.action.options.pre = '~~'+'~~'; }); }); /** * Tijdelijke oplossing voor het probleem dat een paar items in het linkermenu niet in het Nederlands worden * weergegeven. * http://nl.wikipedia.org/w/index.php?title=Wikipedia:De_kroeg&oldid=37918851#Heuh.3F.21_Engelstalige_linkwoorden */ $(document).ready(function () { if (mw.config.get( 'wgUserLanguage' ) === "nl" || mw.config.get( 'wgUserId' ) == null ) { $("#n-Etalage>a").html("Etalage"); $("#n-Vind-een-artikel>a").html("Zoek een artikel"); $("#n-Snelcursus>a").html("Snelcursus"); } }); }(mediaWiki, jQuery));