Zum Inhalt springen

„MediaWiki:Gadget-osm.js“ – Versionsunterschied

aus Wikipedia, der freien Enzyklopädie
Inhalt gelöscht Inhalt hinzugefügt
K Leerung, nun in der MediaWiki:Common.js
Entlinkt (Diskussion | Beiträge)
Zurück zur Einbindung als Gadget, damit es abschaltbar ist; Code von https://de.wikipedia.org/w/index.php?title=MediaWiki_Diskussion:Common.js&diff=133326043&oldid=133074804
Zeile 1: Zeile 1:
/**
* Verwendung von OpenStreetMap in Wikipedia.
* (c) 2008 by Magnus Manske, Released under GPL
*/
mw.loader.using( [ 'mediawiki.util' ], function() { $( function() {
var c = $( '#coordinates' );
if ( !c.length ) {
return;
}

var a = c.find( 'a' );
var geohack = false;
for (var i = 0; i < a.length; i++) {
var h = a[i].href;
if (!h.match(/geohack/)) continue;
if (h.match(/skyhack/)) continue;
if (h.match(/_globe:/)) continue; // no OSM for moon, mars, etc
geohack = true;
break;
}
if ( !geohack ) {
return;
}

var separator = $( document.createElement( 'span' ) );
separator.text( ' | ' );
separator.attr( 'class', 'noprint coordinates-separator' );
c.append( separator );
var img = $( document.createElement( 'img' ) );
img.attr( {
'src': '/media/wikipedia/commons/thumb/c/c9/OpenStreetMapLogo.png/17px-OpenStreetMapLogo.png',
'width': '17px',
'height': '17px'
} );
var a = $( document.createElement( 'a' ) );
a.attr( {
'href': '#',
'title': 'Zeige Koordinaten auf einer Karte von OpenStreetMap',
'class': 'noprint osm-icon-coordinates'
} );
a.click( function () {
var c = $( '#coordinates' );
if ( !c.length) {
return;
}
var cs = $( '#contentSub' );
var osm = $( '#openstreetmap' );

if ( cs.length && osm.length ) {
if ( osm.css( 'display' ) === 'none' ) {
osm.css( 'display', 'block' );
} else {
osm.css( 'display', 'none' );
}
return false;
}

var found_link = false;
var a = c.find( 'a' );
var h;
for (var i = 0; i < a.length; i++) {
h = a[i].href;
if (!h.match(/geohack/)) continue;
found_link = true;
break;
}
if ( !found_link ) {
return; // No geohack link found
}

h = h.split('params=')[1];

var url = '//tools.wmflabs.org/wiwosm/osm-on-ol/kml-on-ol.php?lang=de&uselang='
+ mw.util.rawurlencode( mw.config.get( 'wgUserLanguage' ) )
+ '&params=' + h
+ '&title=' + mw.util.wikiUrlencode( mw.config.get( 'wgTitle' ) );

var iframe = $( document.createElement( 'iframe' ) );
iframe.attr( 'id', 'openstreetmap' );
iframe.css({
'width': '100%',
'height': '350px',
'clear': 'both'
});
iframe.attr( 'src', url );
cs.append( iframe );
return false;
});
a.append( img );
c.append( a );
})});

Version vom 22. August 2014, 17:23 Uhr

/**
 * Verwendung von OpenStreetMap in Wikipedia.
 * (c) 2008 by Magnus Manske, Released under GPL
 */
mw.loader.using( [ 'mediawiki.util' ], function() { $( function() {
	var c = $( '#coordinates' );
	if ( !c.length ) {
		return;
	}

	var a = c.find( 'a' );
	var geohack = false;
	for (var i = 0; i < a.length; i++) {
		var h = a[i].href;
		if (!h.match(/geohack/)) continue;
		if (h.match(/skyhack/)) continue;
		if (h.match(/_globe:/)) continue; // no OSM for moon, mars, etc
		geohack = true;
		break;
	}
	if ( !geohack ) {
		return;
	}

	var separator = $( document.createElement( 'span' ) );
	separator.text( ' | ' );
	separator.attr( 'class', 'noprint coordinates-separator' );
	c.append( separator );
	var img = $( document.createElement( 'img' ) );
	img.attr( {
		'src': '/media/wikipedia/commons/thumb/c/c9/OpenStreetMapLogo.png/17px-OpenStreetMapLogo.png',
		'width': '17px',
		'height': '17px'
	} );
	var a = $( document.createElement( 'a' ) );
	a.attr( {
		'href': '#',
		'title': 'Zeige Koordinaten auf einer Karte von OpenStreetMap',
		'class': 'noprint osm-icon-coordinates'
	} );
	a.click( function () {
		var c = $( '#coordinates' );
		if ( !c.length) {
			return;
		}
		var cs = $( '#contentSub' );
		var osm = $( '#openstreetmap' );

		if ( cs.length && osm.length ) {
			if ( osm.css( 'display' ) === 'none' ) {
				osm.css( 'display', 'block' );
			} else {
				osm.css( 'display', 'none' );
			}
			return false;
		}

		var found_link = false;
		var a = c.find( 'a' );
		var h;
		for (var i = 0; i < a.length; i++) {
			h = a[i].href;
			if (!h.match(/geohack/)) continue;
			found_link = true;
			break;
		}
		if ( !found_link ) {
			return; // No geohack link found
		}

		h = h.split('params=')[1];

		var url = '//tools.wmflabs.org/wiwosm/osm-on-ol/kml-on-ol.php?lang=de&uselang='
			+ mw.util.rawurlencode( mw.config.get( 'wgUserLanguage' ) )
			+ '&params=' + h
			+ '&title=' + mw.util.wikiUrlencode( mw.config.get( 'wgTitle' ) );

		var iframe = $( document.createElement( 'iframe' ) );
		iframe.attr( 'id', 'openstreetmap' );
		iframe.css({
			'width': '100%',
			'height': '350px',
			'clear': 'both'
		});
		iframe.attr( 'src', url );
		cs.append( iframe );
		return false;
	});
	a.append( img );
	c.append( a );
})});