MediaWiki:Gadget-menu-index.js
Fra Villmark
(Forskjeller mellom versjoner)
Admin (Diskusjon | bidrag)
(Ny side: // <pre> // // An API-call to get a short list of pages, starting with the one you are on. // by no:User:Stigmj // function indexBox() { var testobj = document.getElementById('tag-no…)
(Ny side: // <pre> // // An API-call to get a short list of pages, starting with the one you are on. // by no:User:Stigmj // function indexBox() { var testobj = document.getElementById('tag-no…)
Nåværende revisjon fra 22. jul 2009 kl. 23:43
// <pre>
//
// An API-call to get a short list of pages, starting with the one you are on.
// by [[:no:User:Stigmj]]
//
function indexBox() {
var testobj = document.getElementById('tag-noindex');
if (!testobj) {
var url = wgServer + wgScriptPath + '/api.php?action=query&format=json&callback=indexBoxCB&list=allpages&apfilterredir=nonredirects&apnamespace=' + wgNamespaceNumber + '&apfrom=' + wgTitle + '&aplimit=6';
importScriptURI(url);
var prevurl = wgServer + wgScriptPath + '/api.php?action=query&format=json&callback=indexBoxPrevCB&list=allpages&apdir=descending&apfilterredir=nonredirects&apnamespace=' + wgNamespaceNumber + '&apfrom=' + wgTitle + '&aplimit=5';
importScriptURI(prevurl);
}
}
//
// A short callbackfunction to generate a dynamic index above the "navigation" menu in Monobook
// by [[:no:User:Stigmj]]
//
function indexBoxCB(obj) {
if (obj['query']) {
var itemlist = obj['query']['allpages'];
// Create the container
var idxobj = document.createElement('div');
idxobj.setAttribute('class', 'generated-sidebar portlet');
idxobj.setAttribute('id', 'p-index');
// Create the header of the container
var idxhdr = document.createElement('h5');
idxhdr.appendChild(document.createTextNode('indeks'));
// Create the body of the container
var idxbody = document.createElement('div');
idxbody.setAttribute('class', 'pBody');
// Create the unnumbered list, which goes into the body
var ul = document.createElement('ul');
for (var i=0; i<itemlist.length; i++) {
// Create the list-elements
var li = document.createElement('li');
li.setAttribute('id', 'idx-li-' + i);
if (i==0) {
var a = document.createTextNode(itemlist[i]['title']);
} else {
var a = document.createElement('a');
a.setAttribute('href', wgServer + '/wiki/' + itemlist[i]['title']);
a.appendChild(document.createTextNode(itemlist[i]['title']));
}
li.appendChild(a);
// Attach the list-element to the unnumbered list
ul.appendChild(li);
}
// Attach the unnumbered list to the body
idxbody.appendChild(ul);
// Attach the header to the container
idxobj.appendChild(idxhdr);
// Attach the body to the container
idxobj.appendChild(idxbody);
var portlets = 'column-one';
if (skin == 'modern') { portlets = 'mw_portlets' }
var colobj = document.getElementById(portlets);
var navobj = document.getElementById('p-navigation');
// Insert the index-container before the navigation-container
colobj.insertBefore(idxobj, navobj);
// Check to see if dynamic menus are in use
if (typeof wgGadgetDynamicMenus != 'undefined') {
// Call up the rearranging
importScript('MediaWiki:Gadget-dynamic-menus-test.js')
}
}
}
function indexBoxPrevCB(obj) {
if (obj['query']) {
var itemlist = obj['query']['allpages'];
// Find the container
var idxbody = document.getElementById('p-index');
// Find the list
idxbody = idxbody.getElementsByTagName( "ul" )[0];
var ul = idxbody;
// Find the first li-item in the list
idxbody = idxbody.getElementsByTagName( "li" )[0];
for (var i=1; i<itemlist.length; i++) {
// Create the list-elements
var li = document.createElement('li');
li.setAttribute('id', 'idx-li-' + i);
var a = document.createElement('a');
a.setAttribute('href', wgServer + '/wiki/' + itemlist[i]['title']);
a.appendChild(document.createTextNode(itemlist[i]['title']));
li.appendChild(a);
// Attach the list-element to the unnumbered list
ul.insertBefore(li, idxbody);
idxbody = li;
}
}
}
var isDiff = (document.location.search && (document.location.search.indexOf("diff=") != -1 || document.location.search.indexOf("oldid=") != -1));
if (wgNamespaceNumber>=0 && !isDiff && wgAction != 'edit' && wgAction != 'submit' && (skin == 'monobook' || skin == 'modern' || skin == 'chick')) {
addOnloadHook(indexBox);
}
// </pre>

