MediaWiki:Common.js: Unterschied zwischen den Versionen
Zur Navigation springen
Zur Suche springen
(Die Seite wurde neu angelegt: →Jedes JavaScript hier wird für alle Benutzer für jede Seite geladen.: // Verwendung von OpenStreetMap in Wikipedia. // (c) 2008 by Magnus Manske // Released und...) |
Keine Bearbeitungszusammenfassung |
||
Zeile 1: | Zeile 1: | ||
/* Jedes JavaScript hier wird für alle Benutzer für jede Seite geladen. */ | /* Jedes JavaScript hier wird für alle Benutzer für jede Seite geladen. */ | ||
/** | |||
* star logo for featured articles in other languages, | |||
* see Template:Link_FA and MediaWiki:Common.css | |||
*/ | |||
addOnloadHook(function() { | |||
// early exit when disabled | |||
if (!linkFA_enabled) return; | |||
// skins need to be treated differently | |||
if (skin == "monobook" || skin == "simple") { | |||
newer(); | |||
} | |||
else if (skin == "cologneblue" || skin == "nostalgia" || skin == "standard") { | |||
older(); | |||
} | |||
/** skin == "monobook" || skin == "simple" */ | |||
function newer() { | |||
// links are to replaced in p-lang only | |||
var pLang = document.getElementById("p-lang"); | |||
if (!pLang) return; | |||
var lis = pLang.getElementsByTagName("li"); | |||
for (var i = 0; i < lis.length; i++) { | |||
var li = lis[i]; | |||
// only links with a corresponding Link_FA template are interesting | |||
if (!document.getElementById(li.className + "-fa")) continue; | |||
// additional class so the template can be hidden with CSS | |||
li.className += " FA"; | |||
// change title | |||
li.title = linkFA_description; | |||
} | |||
} | |||
/** skin == "cologneblue" || skin == "nostalgia" || skin == "standard" */ | |||
function older() { | |||
// these root elements can contain FA-links | |||
var rootIds = new Array("topbar", "footer"); | |||
for (var i=0; i<rootIds.length; i++) { | |||
var rootId = rootIds[i]; | |||
var root = document.getElementById(rootId); | |||
if (!root) continue; | |||
// if the root exists, try to decorate all the links within | |||
var links = root.getElementsByTagName("a"); | |||
for (var j=0; j<links.length; j++) { | |||
var link = links[j]; | |||
decorate(link); | |||
} | |||
} | |||
} | |||
/** id necessary, modify a link to show the FA-star (older) */ | |||
function decorate(link) { | |||
// exit if not a FA-link | |||
var lang = link.title.split(":")[0]; // not precise enough | |||
var fa = document.getElementById("interwiki-" + lang + "-fa"); | |||
if (!fa) return; | |||
// possible problem owing the standard skin: "Link FA" template is transcluded with a non-interwiki parameter, for example "Special" | |||
// result: links to special pages in the topbar and/or footer might also be marked as a Featured Article | |||
// build an image-node for the FA-star | |||
var img = document.createElement("img"); | |||
img.setAttribute("src", linkFA_bullet); | |||
img.setAttribute("alt", linkFA_description); | |||
img.setAttribute("style", linkFA_style); | |||
// decorate the link with the image | |||
link.appendChild(img); | |||
link.appendChild(link.removeChild(link.firstChild)); | |||
link.setAttribute("title", linkFA_description); | |||
} | |||
}); | |||
// Verwendung von OpenStreetMap in Wikipedia. | // Verwendung von OpenStreetMap in Wikipedia. |
Version vom 16. Dezember 2008, 19:06 Uhr
/* Jedes JavaScript hier wird für alle Benutzer für jede Seite geladen. */
/**
* star logo for featured articles in other languages,
* see Template:Link_FA and MediaWiki:Common.css
*/
addOnloadHook(function() {
// early exit when disabled
if (!linkFA_enabled) return;
// skins need to be treated differently
if (skin == "monobook" || skin == "simple") {
newer();
}
else if (skin == "cologneblue" || skin == "nostalgia" || skin == "standard") {
older();
}
/** skin == "monobook" || skin == "simple" */
function newer() {
// links are to replaced in p-lang only
var pLang = document.getElementById("p-lang");
if (!pLang) return;
var lis = pLang.getElementsByTagName("li");
for (var i = 0; i < lis.length; i++) {
var li = lis[i];
// only links with a corresponding Link_FA template are interesting
if (!document.getElementById(li.className + "-fa")) continue;
// additional class so the template can be hidden with CSS
li.className += " FA";
// change title
li.title = linkFA_description;
}
}
/** skin == "cologneblue" || skin == "nostalgia" || skin == "standard" */
function older() {
// these root elements can contain FA-links
var rootIds = new Array("topbar", "footer");
for (var i=0; i<rootIds.length; i++) {
var rootId = rootIds[i];
var root = document.getElementById(rootId);
if (!root) continue;
// if the root exists, try to decorate all the links within
var links = root.getElementsByTagName("a");
for (var j=0; j<links.length; j++) {
var link = links[j];
decorate(link);
}
}
}
/** id necessary, modify a link to show the FA-star (older) */
function decorate(link) {
// exit if not a FA-link
var lang = link.title.split(":")[0]; // not precise enough
var fa = document.getElementById("interwiki-" + lang + "-fa");
if (!fa) return;
// possible problem owing the standard skin: "Link FA" template is transcluded with a non-interwiki parameter, for example "Special"
// result: links to special pages in the topbar and/or footer might also be marked as a Featured Article
// build an image-node for the FA-star
var img = document.createElement("img");
img.setAttribute("src", linkFA_bullet);
img.setAttribute("alt", linkFA_description);
img.setAttribute("style", linkFA_style);
// decorate the link with the image
link.appendChild(img);
link.appendChild(link.removeChild(link.firstChild));
link.setAttribute("title", linkFA_description);
}
});
// Verwendung von OpenStreetMap in Wikipedia.
// (c) 2008 by Magnus Manske
// Released under GPL
function openStreetMapInit () {
c = document.getElementById ( 'coordinates' ) ;
if ( !c ) return ;
a = c.getElementsByTagName ( 'a' ) ;
geohack = 0 ;
for ( i = 0 ; i < a.length ; i++ ) {
h = a[i].href ;
if ( !h.match(/geohack/) ) continue ;
geohack = 1 ;
break ;
}
if ( geohack == 0 ) return ;
na = document.createElement ( 'a' ) ;
na.href = '#' ;
na.onclick = openStreetMapToggle ;
na.appendChild ( document.createTextNode ( 'OSM' ) ) ;
// c.appendChild ( document.createElement ( 'br' ) )
c.appendChild ( document.createTextNode ( '(' ) ) ;
c.appendChild ( na ) ;
c.appendChild ( document.createTextNode ( ') ' ) ) ;
}
function openStreetMapToggle () {
c = document.getElementById ( 'coordinates' ) ;
if ( !c ) return ;
cs = document.getElementById ( 'contentSub' ) ;
osm = document.getElementById ( 'openstreetmap' ) ;
if ( cs && osm ) {
cs.removeChild ( osm ) ;
return ;
}
a = c.getElementsByTagName ( 'a' ) [0] ;
h = a.href ;
h = h.split('params=')[1] ;
i = document.createElement ( 'iframe' ) ;
url = 'http://tools.wikimedia.de/~magnus/ol/wp_poi.php?title=' + wgTitle ;
url += '&language=' + wgUserLanguage ;
url += '¶ms=' + h ;
i.id = 'openstreetmap' ;
i.style.width = '100%' ;
i.style.height = '300px' ;
i.style.clear = 'both' ;
i.src = url ;
cs.appendChild ( i ) ;
}
addOnloadHook(openStreetMapInit);