User:Zppix/Test/MediaWiki:Gadget-CentralAuthInterlinkFixer.js: Difference between revisions
Content added Content deleted
(don't limit script-fix to <a> with class="new". Most links (like the "user@wikiname" links on Special:Log/rights) can't even have class="new") |
No edit summary |
||
Line 1: | Line 1: | ||
/** |
|||
// Fix links like User:Example@somewiki. Author: VasilievVV, with modifications by Kalan and attempted rewrite by Splarka |
|||
* Fix links like User:Example@somewiki on Special:Log and Special:Recentchanges |
|||
⚫ | |||
* @author VasilievVV, 2008-2010 |
|||
⚫ | |||
* @author Kalan, 2008 |
|||
⚫ | |||
* @author Splarka, 2008 |
|||
⚫ | |||
* @author Krinkle, 2012 |
|||
} else if(id == 'foundationwiki') { |
|||
*/ |
|||
return 'wikimediafoundation.org'; |
|||
/*global mw, $ */ |
|||
⚫ | |||
⚫ | |||
⚫ | |||
if (id === 'mediawikiwiki') { |
|||
return 'mediawiki.org'; |
|||
} else if (id === 'foundationwiki') { |
|||
⚫ | |||
⚫ | |||
⚫ | |||
⚫ | |||
⚫ | |||
⚫ | |||
idNoSpaces = idNoSpaces.replace(/wiki$/, '.wikipedia.org'); |
|||
⚫ | |||
⚫ | |||
} |
} |
||
⚫ | |||
if (wikimedia.test(id)) { |
|||
var docobj = document.getElementById('bodyContent') || document.getElementById('content') || document.getElementById('mw_content') || document.body |
|||
return id.replace(/ /g, '-').replace(/_/g, '-').replace(/wiki$/, '.wikimedia.org'); |
|||
var li = docobj.getElementsByTagName('li'); |
|||
⚫ | |||
for(var i = 0; i < li.length; i++) { |
|||
⚫ | |||
var a = li[i].getElementsByTagName('a'); |
|||
idNoSpaces = idNoSpaces |
|||
for(var j=0;j<a.length;j++) { |
|||
⚫ | |||
var atxt = getText(a[j]); |
|||
⚫ | |||
⚫ | |||
⚫ | |||
⚫ | |||
⚫ | |||
⚫ | |||
⚫ | |||
⚫ | |||
⚫ | |||
if (wiki == 'global') { |
|||
} |
|||
⚫ | |||
⚫ | |||
$('body li a').each(function (i, el) { |
|||
var bits, wiki, user, |
|||
$el = $(el), |
|||
⚫ | |||
⚫ | |||
⚫ | |||
⚫ | |||
⚫ | |||
⚫ | |||
⚫ | |||
} else { |
} else { |
||
var hostName = host(wiki) |
var hostName = host(wiki); |
||
if( |
if (hostName) { |
||
$el.attr('href', '//' + hostName + '/wiki/User:' + encodeURIComponent(user)); |
|||
} |
|||
} |
} |
||
if (wiki !== 'metawiki') { |
|||
$el.removeClass('new').addClass('extiw'); |
|||
⚫ | |||
$el.attr('title', txt); |
|||
} |
} |
||
}); |
|||
} |
|||
} |
} |
||
⚫ | |||
⚫ | |||
function getText(object) { |
|||
$(document).ready(fixCrosswikiLinks); |
|||
if (object.nodeType == 3) return object.nodeValue; |
|||
⚫ | |||
var i=0; |
|||
while(object.childNodes[i]) { |
|||
txt[txt.length] = getText(object.childNodes[i]); |
|||
⚫ | |||
} |
|||
return txt.join(''); |
|||
} |
} |