Revision as of 19:20, 2 August 2005 view sourceLupin (talk | contribs)19,513 edits that wasn't right... let's try this← Previous edit |
Latest revision as of 14:34, 9 February 2021 view source Xaosflux (talk | contribs)Edit filter managers, Autopatrolled, Bureaucrats, Importers, Interface administrators, Oversighters, Administrators83,870 edits expand directions |
(124 intermediate revisions by 18 users not shown) |
Line 1: |
Line 1: |
|
|
var popScript = '//en.wikipedia.org/search/?action=raw&ctype=text/javascript&title=MediaWiki:Gadget-popups.js'; |
|
//////////////////////////////////////////////////////////////////// |
|
|
|
var popStyleSheet = '//en.wikipedia.org/search/?action=raw&ctype=text/css&title=MediaWiki:Gadget-navpop.css'; |
|
// Popup stuff |
|
|
|
if ( window.localCSS ) { popStyleSheet = 'http://localhost:8080/js/navpop.css'; } |
|
//////////////////////////////////////////////////////////////////// |
|
|
|
|
|
|
|
function popups_importScriptURI(url) { |
|
document.write('<script type="text/javascript" src="/search/?title=User:Lupin/overlib.js&action=raw&ctype=text/javascript&dontcountme=s"></script>'); |
|
|
|
var s = document.createElement('script'); |
|
|
|
|
|
s.setAttribute('src',url); |
|
document.write('<script type="text/javascript" src="/search/?title=User:Lupin/md5.js&action=raw&ctype=text/javascript&dontcountme=s"></script>'); |
|
|
|
s.setAttribute('type','text/javascript'); |
|
|
|
|
|
document.getElementsByTagName('head').appendChild(s); |
|
// we're not set up for interwiki stuff yet - only affect en links |
|
|
|
return s; |
|
|
|
|
var re=/*:\/\/en\.wikipedia\.org\/w(iki\/|\/index\.php\?title=)(*)/ |
|
|
var exceptions=/(title=|\/)Special:/ |
|
|
var contributions=/(title=|\/)Special:Contributions&target=(.*)/ |
|
|
var talk=/Talk:/i |
|
|
var titlebase='http://en.wikipedia.org/search/?title='; |
|
|
|
|
|
function wikiLink(article, action, text) { |
|
|
hint = myDecodeURI(article + '&action=' + action); |
|
|
return titledWikiLink(article, action, text, hint); |
|
|
} |
|
} |
|
|
|
|
|
|
function popups_importStylesheetURI(url) { |
|
function titledWikiLink(article, action, text, title) { |
|
|
|
return document.createStyleSheet ? document.createStyleSheet(url) : popups_appendCSS('@import "' + url + '";'); |
|
base = titlebase + article; |
|
|
url = base + '&action=' + action; |
|
|
if (title == null || title == '') |
|
|
hint = '' |
|
|
else |
|
|
hint = 'title="' + title + '"'; |
|
|
|
|
|
return '<a href="' + url + '"' + hint + '>' + text + '</a>'; |
|
|
} |
|
} |
|
|
|
|
|
function specialLink(article, specialpage, text) { |
|
function popups_appendCSS(text) { |
|
|
var s = document.createElement('style'); |
|
base = titlebase + 'Special:'+specialpage; |
|
|
|
s.type = 'text/css'; |
|
url = base + '&target=' + article; |
|
|
|
s.rel = 'stylesheet'; |
|
hint = myDecodeURI(specialpage+':'+article) ; |
|
|
|
if (s.styleSheet) s.styleSheet.cssText = text //IE |
|
return '<a href="' + url + '" title="' + hint + '">' + text + '</a>'; |
|
|
|
else s.appendChild(document.createTextNode(text + '')) //Safari sometimes borks on null |
|
|
document.getElementsByTagName('head').appendChild(s); |
|
|
return s; |
|
} |
|
} |
|
|
|
|
|
|
popups_importStylesheetURI(popStyleSheet); |
|
function talkPage(article) { |
|
|
|
popups_importScriptURI(popScript); |
|
if (article.indexOf('Talk:') > -1 || article.indexOf('talk:') > -1 ) |
|
|
return null; |
|
|
|
|
|
i=article.indexOf(':'); |
|
|
if (i == -1) return 'Talk:'+article; |
|
|
else return article.substring(0,i)+'_talk:' + article.substring(i+1); |
|
|
|
|
|
} |
|
|
|
|
|
function userName(article) { |
|
|
i=article.indexOf('User'); |
|
|
j=article.indexOf(':'); |
|
|
if (i != 0 || j < -1) return null; |
|
|
k=article.indexOf('/'); |
|
|
if (k==-1) return article.substring(j+1); |
|
|
else return article.substring(j+1,k); |
|
|
} |
|
|
|
|
|
function isInNamespace(article, namespace) { |
|
|
i=article.indexOf(namespace+':'); |
|
|
j=article.indexOf(namespace+'_talk:'); |
|
|
if (i == -1 && j == -1) return false; |
|
|
return true; |
|
|
} |
|
|
|
|
|
function stripNamespace(article) { |
|
|
// this isn't very sophisticated |
|
|
// it just removes everything up to the final : |
|
|
ret = article; |
|
|
i=null; |
|
|
while ( i != -1 ) { |
|
|
i=ret.indexOf(':'); |
|
|
ret=ret.substring(i+1); |
|
|
} |
|
|
return ret; |
|
|
} |
|
|
|
|
|
function imageHTML(article) { |
|
|
if (isInNamespace(article, 'Image')) { |
|
|
stripped=stripNamespace(article); |
|
|
hash=hex_md5(myDecodeURI(stripped)); |
|
|
pathcpt=hash.substring(0,1) + '/' + hash.substring(0,2) + '/'; |
|
|
imgurl="http://upload.wikimedia.org/wikipedia/en/" + pathcpt + stripped; |
|
|
} |
|
|
else imgurl=null; |
|
|
|
|
|
ret=''; |
|
|
|
|
|
if (imgurl != null) { |
|
|
ret += '<img src="' + imgurl + '" width=60 align="right" valign="top"></img>'; |
|
|
} |
|
|
|
|
|
return ret; |
|
|
} |
|
|
|
|
|
function contribsLink(article, text) { |
|
|
return specialLink(userName(article), 'Contributions', text); |
|
|
} |
|
|
|
|
|
kateBase='http://kohl.wikimedia.org/~kate/cgi-bin/count_edits?dbname=enwiki&user=' |
|
|
|
|
|
function kateLink(article, text) { |
|
|
return '<a href="' + kateBase + userName(article) + '" title="' |
|
|
+ text + '">' + text + '</a>'; |
|
|
} |
|
|
|
|
|
var decodeExtras = new Array (); |
|
|
decodeExtras = {from: '%2C', to: ',' }; |
|
|
decodeExtras = {from: '_', to: ' ' }; |
|
|
|
|
|
function myDecodeURI (str) { |
|
|
ret=decodeURI(str); |
|
|
for ( i=0; i<decodeExtras.length; ++i) { |
|
|
from=decodeExtras.from; |
|
|
to=decodeExtras.to; |
|
|
ret=ret.split(from).join(to); |
|
|
} |
|
|
return ret; |
|
|
} |
|
|
|
|
|
// defaults |
|
|
var dpopupDelay=2; |
|
|
var dpopupFgColor='#CCCCFF'; |
|
|
var dpopupBgColor='#333399'; |
|
|
|
|
|
var popupDelay; |
|
|
var popupFgColor; |
|
|
var popupBgColor; |
|
|
|
|
|
var dremoveTitles=true; |
|
|
var removeTitles; |
|
|
|
|
|
function mouseOverWikiLink() { |
|
|
a=this; |
|
|
h=a.href; |
|
|
|
|
|
var contribs=contributions.exec(h); |
|
|
if (contribs != null) { |
|
|
article='User:'+contribs; |
|
|
} else { |
|
|
var m=re.exec(h); |
|
|
article=m; |
|
|
} |
|
|
|
|
|
hint=a.originalTitle; |
|
|
if (hint == '' || hint == null) |
|
|
hint = myDecodeURI(article); |
|
|
|
|
|
html=''; |
|
|
|
|
|
html +=imageHTML(article); |
|
|
html +='<b>'+titledWikiLink(article, 'view', myDecodeURI(article),hint)+'</b>'; |
|
|
if (userName(article) != null) { |
|
|
html += ' ' + contribsLink(article, 'contribs'); |
|
|
html += ' ' + kateLink(article, 'count'); |
|
|
} |
|
|
html += '<br>' + wikiLink(article, 'edit', 'edit'); |
|
|
html += ' ' + wikiLink(article, 'history', 'history'); |
|
|
html += ' (' + wikiLink(article, 'unwatch', 'un') + ')'; |
|
|
html += '' + wikiLink(article, 'watch', 'watch'); |
|
|
t=talkPage(article); |
|
|
if (t != null) html += ' ' + wikiLink(t, 'view', 'talk') + |
|
|
' ' + wikiLink(t, 'edit', 'editTalk'); |
|
|
html += '<br>' + specialLink(article, 'Whatlinkshere', 'whatLinksHere'); |
|
|
html += ' ' + specialLink(article, 'Recentchangeslinked', 'relatedChanges'); |
|
|
|
|
|
if (popupDelay==null) popupDelay=dpopupDelay; |
|
|
if (popupFgColor==null) popupFgColor=dpopupFgColor; |
|
|
if (popupBgColor==null) popupBgColor=dpopupBgColor; |
|
|
|
|
|
overlib(html, STICKY, MOUSEOFF, WRAP, CELLPAD, 5, |
|
|
OFFSETX, 2, OFFSETY, 2, DELAY, popupDelay*1000, |
|
|
FGCOLOR, popupFgColor, BGCOLOR, popupBgColor); |
|
|
} |
|
|
|
|
|
function setupTooltips() { |
|
|
var anchors=document.getElementsByTagName('A'); |
|
|
var s=''; |
|
|
|
|
|
if (removeTitles==null) removeTitles=dremoveTitles; |
|
|
|
|
|
for (i=0; i<anchors.length; ++i) |
|
|
{ |
|
|
a=anchors; |
|
|
h=a.href; |
|
|
var contribs=contributions.exec(h); |
|
|
var exc=exceptions.exec(h); |
|
|
var m=re.exec(h); |
|
|
if (contribs != null || (exc == null && m != null) ) { |
|
|
a.onmouseover=mouseOverWikiLink; |
|
|
a.onmouseout=function () { if ( o3_showingsticky == 0 ) cClick(); } |
|
|
if (removeTitles) { |
|
|
a.originalTitle=a.title; |
|
|
a.title=''; |
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
if ( typeof mw !== 'undefined' ) { |
|
//////////////////////////////////////////////////////////////////// |
|
|
|
mw.loader.using( , function() { |
|
// Run things |
|
|
|
var k = 'User:Lupin/popups.js', |
|
//////////////////////////////////////////////////////////////////// |
|
|
|
t = 'Information: You are importing User:Lupin/popups.js' + |
|
|
' into your User:USERNAME/common.js or User:USERNAME/<skin>.js!\n' + |
|
|
'This script is unmaintained. Please remove this inclusion and enable the Navigation popups Gadget in the preferences of your account instead.', |
|
|
x = mw.storage.get( k ); |
|
|
|
|
|
|
if ( !x ) { |
|
if (window.addEventListener) |
|
|
|
mw.storage.set( k, 1 ); |
|
window.addEventListener("load",setupTooltips,false); |
|
|
|
alert( t ); |
|
else if (window.attachEvent) |
|
|
|
} else { |
|
window.attachEvent("onload",setupTooltips); |
|
|
|
x++; |
|
else { |
|
|
|
mw.storage.set( k, x ); |
|
window._old_ABCD_onload = window.onload; |
|
|
window.onload = function() { |
|
if ( x % 25 === 0 ) { |
|
|
mw.notify( t ); |
|
window._old_ABCD_onload(); |
|
|
|
} |
|
setupTooltips(); |
|
|
} |
|
} |
|
|
}); |
|
} |
|
} |