„Benutzer:Fomafix/Gadget-redirecttitle.js“ – Versionsunterschied
Erscheinungsbild
Inhalt gelöscht Inhalt hinzugefügt
Überprüfe vor dem Verarbeiten, dass in der Antwort auch die Objekt-Struktur vorhanden ist. Sichere den ursprünglichen Titel in .data( 'title' ) http://api.jquery.com/data/, damit er nicht verloren geht und die Anfrage mehrfach ausgeführt werden k |
Variabe redirects eingespart |
||
| Zeile 8: | Zeile 8: | ||
"use strict"; |
"use strict"; |
||
$( function () { |
$( function () { |
||
var api = new mw.Api(), |
var api = new mw.Api(), target, targets = {}, titles = []; |
||
mw.util.$content |
|||
target, targets = {}, titles = [], |
|||
.find( 'a.mw-redirect' ) |
|||
.each( function ( index, object ) { |
|||
var title = $( object ).data( 'title' ) || object.title; |
var title = $( object ).data( 'title' ) || object.title; |
||
if ( targets[ title ] ) { |
if ( targets[ title ] ) { |
||
Version vom 1. Juli 2012, 21:46 Uhr
/*
* Dieses Gadget fügt bei Links auf Weiterleitungen das Weiterleitungsziel im Tooltip hinzu.
*/
mw.messages.set( 'redirect-title', '$1 → $2' );
/* If you just want the redirect destination as title use mw.messages.set( 'redirect-title', '$2' ); */
mw.loader.using( [ 'mediawiki.util', 'mediawiki.api' ], function () {
"use strict";
$( function () {
var api = new mw.Api(), target, targets = {}, titles = [];
mw.util.$content
.find( 'a.mw-redirect' )
.each( function ( index, object ) {
var title = $( object ).data( 'title' ) || object.title;
if ( targets[ title ] ) {
targets[ title ].push( object );
} else {
targets[ title ] = [ object ];
}
} );
for ( target in targets ) {
titles.push( target );
if ( titles.length >= 50 ) {
query( titles );
titles = [];
}
}
if ( titles.length > 0 ) {
query( titles );
}
function query( titles ) {
api.post( {
action: 'query',
titles: titles.join( '|' ),
redirects: true
}, {
ok: ok
} );
}
function ok( res ) {
if ( res.query && res.query.redirects ) {
$.each( res.query.redirects, function ( index, redirect ) {
$.each( targets[ redirect.from ], function ( index, object ) {
if ( ! $( object ).data( 'title' ) ) {
$( object ).data( 'title', object.title );
}
object.title = mw.msg( 'redirect-title', redirect.from, redirect.to );
} );
} );
}
}
} );
} );