Χρήστης:ArielGlenn/shortcuts.js
Σημείωση: μετά την δημοσίευση, ίσως χρειαστεί να παρακάμψετε την προσωρινή μνήμη του προγράμματος περιήγησής σας για να δείτε τις αλλαγές.
- Firefox / Safari: Κρατήστε πατημένο το Shift κάνοντας ταυτόχρονα κλικ στο κουμπί Ανανέωση ή πιέστε Ctrl-F5 ή Ctrl-R (⌘-R σε Mac)
- Google Chrome: Πιέστε Ctrl-Shift-R (⌘-Shift-R σε Mac)
- Internet Explorer / Edge: Κρατήστε πατημένο το Ctrl κάνοντας ταυτόχρονα κλικ στο κουμπί Ανανέωση, ή πιέστε Ctrl-F5
- Opera: Πιέστε Ctrl-F5.
//<pre><nowiki>
// directly from: 'http://en.wikipedia.org/w/index.php?title=User:Jsimlo/shortcuts.js'
// modified to accept external links
var shortcutsVersion = "1.1.0";
var shortcutsReleaseDate = "2007-02-03";
/***********************************************************
* INTERFACE
***********************************************************/
/**
* Starts a new section of links. Function for external use.
*/
function shortcutsStartSection (name)
{
shortcutsLinks[shortcutsLinks.length] = { 'name': name, 'links': new Array () };
}
/**
* Adds new link into the current section of links. Function for external use.
*/
function shortcutsAddLink (name, article)
{
var links = shortcutsLinks[shortcutsLinks.length - 1]['links'];
links[links.length] = { 'name': name, 'article': article };
}
/***********************************************************
* IMPLEMENTATION
***********************************************************/
/**
* Link maker.
* Creates and returns an li element with the desired link.
*/
function shortcutsMakeLink (name, url)
{
var ntxt = document.createTextNode (name);
var na = document.createElement ('a');
var nli = document.createElement ('li');
if (url.search(/^http/) == -1) {
na.setAttribute ('href', '/wiki/' + url);
}
else {
na.setAttribute ('href', url);
}
nli.setAttribute ('class', 'n-shortcut');
na.appendChild (ntxt);
nli.appendChild (na);
return nli;
}
/**
* Portlet maker.
* Creates and returns a portlet populated by list of links.
*/
function shortcutsMakePortlet (name, links)
{
var nportlet = document.createElement ('div');
var nh5 = document.createElement ('h5');
var ntit = document.createTextNode (name);
var nbody = document.createElement ('div');
var nul = document.createElement ('ul');
nportlet.setAttribute ('id', 'p-'+name);
if ( skin == 'vector' ) {
nportlet.setAttribute ('class', 'portal expanded');
nbody.setAttribute ('class', 'body');
nbody.setAttribute('style','display: block;');
}
else {
nportlet.setAttribute ('class', 'portlet');
nbody.setAttribute ('class', 'pBody');
}
nul.setAttribute ('id', 'p-'+name);
for (var i = 0; i < links.length; i++)
nul.appendChild (
shortcutsMakeLink (links[i]['name'], links[i]['article'])
);
nh5.appendChild (ntit);
nh5.setAttribute('tabindex', i);
nportlet.appendChild (nh5);
nbody.appendChild (nul);
nportlet.appendChild (nbody);
return nportlet;
}
/**
* Main function.
* Enumerates all non-empty sections, and adds new portlets beneath the old ones.
*/
function shortcutsMain ()
{
if ( skin == 'vector' ) {
var sidecol = document.getElementById ('mw-panel');
}
else {
var sidecol = document.getElementById ('column-one');
}
for (var i = 0; i < shortcutsLinks.length; i++)
if (shortcutsLinks[i]['links'].length > 0)
sidecol.appendChild (
shortcutsMakePortlet (shortcutsLinks[i]['name'], shortcutsLinks[i]['links'])
);
}
/**
* Initializes the onload events.
*/
function shortcutsInitialize ()
{
shortcutsInit ();
shortcutsMain ();
}
/***********************************************************
* INITIALIZATION
***********************************************************/
var shortcutsLinks = new Array ();
shortcutsStartSection (wgUserName ? wgUserName : 'shortcuts');
addOnloadHook (shortcutsInitialize);
//</nowiki></pre>