//Find username
var uservar= mw.config.get( 'wgRelevantUserName' );
var userparam='';
if (uservar) { userparam='name='+ encodeURIComponent(uservar) +'&'; }
var userIP=false;
if (uservar && uservar.match(/\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}/)) { userIP=true; }
//IP ranges
var range24 = '0.0.0.0/24';
var range16 = '0.0.0.0/16';
if (userIP === true) {
var base24 = uservar.substring(0,uservar.lastIndexOf('.'));
var base16 = base24.substring(0,base24.lastIndexOf('.'));
range24 = base24 + '.0/24';
range16 = base16 + '.0.0/16';
}
//Date formatting
var hitDate = new Date();
var hitMonth = hitDate.getMonth()+1; //Date() counts months from zero;
var hitDay = hitDate.getDate();
var MonthLeading0 = '';
if (hitMonth < 10) {MonthLeading0 = '0';}
else {MonthLeading0 = '';}
var DayLeading0 = '';
if (hitDay < 10) {DayLeading0 = '0';}
else {DayLeading0 = '';}
var YearMonth = hitDate.getFullYear() + MonthLeading0 + hitMonth;
var Year_Month_Day = hitDate.getFullYear() + '-' + MonthLeading0 + hitMonth + '-' + DayLeading0 + hitDay;
hitDate.setDate(hitDate.getDate() - 30); //form dates for prev month;
var hitMonth = hitDate.getMonth()+1; //Date() counts months from zero;
var hitDay = hitDate.getDate();
var MonthLeading0 = '';
if (hitMonth < 10) {MonthLeading0 = '0';}
else {MonthLeading0 = '';}
var DayLeading0 = '';
if (hitDay < 10) {DayLeading0 = '0';}
else {DayLeading0 = '';}
var Year_PrevMonth_Day = hitDate.getFullYear() + '-' + MonthLeading0 + hitMonth + '-' + DayLeading0 + hitDay;
// utility function
//Add sidebar menu function ('User:Anakin101/addPortlet.js')
function addPortlet(id, title, before) {
var copy = document.getElementById('p-tb');
var div = document.createElement('div');
div.setAttribute('id', id);
div.setAttribute('class', copy.getAttribute('class'));
div.innerHTML = '<h3>' + title + '</h3>';
var pBody = document.createElement('div');
pBody.setAttribute('class', copy.getElementsByTagName('div')[0].getAttribute('class'));
pBody.appendChild(document.createElement('ul'));
div.appendChild(pBody);
if (before && (before = document.getElementById(before))) {
copy.parentNode.insertBefore(div, before);
} else {
copy.parentNode.appendChild(div);
}
return pBody;
}
//end sidebar menu function
//navigation menu
$.when( mw.loader.using( [ 'mediawiki.util'] ), $.ready ).done( function () {
//Work in progress
mw.util.addPortletLink('p-navigation', 'http://en.wikipedia.org/wiki/User:Spinningspark/Work_in_progress', 'Work in progress', 'n-wip', 'Work in progress page', '', '');
//Maintenance templates
mw.util.addPortletLink('p-navigation', 'http://en.wikipedia.org/wiki/Wikipedia:Template_messages', 'Maintenance templates', 'n-usertemp', 'Maintenance templates', '', '');
mw.util.addPortletLink('p-navigation', 'http://en.wikipedia.org/wiki/User:Spinningspark/Useful_templates', 'My useful templates', 'n-mytemp', 'My useful templates', '', '');
mw.util.addPortletLink('p-navigation', 'http://en.wikipedia.org/wiki/Template:HD', 'Helpdesk templates', 'n-hd', 'Helpdesk templates', '', '');
});
//end navigation menu
//personal menu
//Coding and formatting
$.when( mw.loader.using( [ 'mediawiki.util'] ), $.ready ).done( function () {
mw.util.addPortletLink('p-personal', 'http://en.wikipedia.org/wiki/User:Spinningspark/Coding_and_formatting', 'Coding help', 'pt-coding', 'Go to Coding and formatting page', '', document.getElementById('pt-logout'));
});
//end personal menu
//content action tabs
//Is X an admin?
if( uservar) {
$.when( mw.loader.using( [ 'mediawiki.util'] ), $.ready ).done( function () {
mw.util.addPortletLink('p-cactions', 'http://en.wikipedia.org/w/index.php?title=Special:ListUsers&limit=1&username='+ encodeURIComponent( uservar), 'Admin?', 'ca-admin', 'Determine if user is an admin', '', '');
});
}
//end content action tabs
//interaction menu
//The name of this portlet is 'p-interaction' if user addition required in future
//end interaction menu
//toolbox additional tools
$.when( mw.loader.using( [ 'mediawiki.util'] ), $.ready ).done( function() {
mw.util.addPortletLink('p-tb', 'http://en.wikipedia.org/wiki/Special:Upload', 'Upload form', 't-upload_form', 'Go direct to upload form', '', document.getElementById('t-upload'));
mw.util.addPortletLink('p-tb', 'https://en.wikipedia.org/wiki/User:Spinningspark/Useful_tools', 'More tools', 't-more', 'Other useful tools', '', '');
});
//end toolbox additional tools
//Toolbox 2 Administration tools
$.when( mw.loader.using( [ 'mediawiki.util'] ), $.ready ).done( function() {
addPortlet('p-tb2', 'Admin tools', 'p-coll-print_export');
//Block user
if ( mw.config.get( 'wgNamespaceNumber' ) === 3 || mw.config.get( 'wgNamespaceNumber' ) === 2 ) {
mw.util.addPortletLink('p-tb2', '/wiki/Special:Block/'+uservar, 'Block user', 't-block', 'Block user', '', '');
}
//Wikiblame
mw.util.addPortletLink('p-tb2', 'http://wikipedia.ramselehof.de/wikiblame.php?article='+ encodeURIComponent(mw.config.get( 'wgPageName')), 'Wikiblame', 't-wikiblame', 'Go to Wikiblame tool', '', '');
//User contribution search
mw.util.addPortletLink('p-tb2', 'http://tools.wmflabs.org/usersearch/usersearch.py?name=Spinningspark&page='+encodeURIComponent(mw.config.get( 'wgPageName'))+'&server=enwiki&max=500', 'Contribs search', 't-contribsearch', 'Find user contributions on this page', '', '');
//Watchers
mw.util.addPortletLink('p-tb2', 'https://en.wikipedia.org/w/index.php?title='+encodeURIComponent(mw.config.get( 'wgPageName'))+'&action=info#mw-pageinfo-watchers', 'Watchers', 't-watchers', 'Numbers watching this page', '', '');
//Active watchers
mw.util.addPortletLink('p-tb2', 'http://toolserver.org/~dispenser/cgi-bin/watcher.py?page='+encodeURIComponent(mw.config.get( 'wgPageName')), 'Active watchers', 't-awatchers', 'Numbers watching this page', '', '');
//Unified login information
if(uservar){
mw.util.addPortletLink('p-tb2', 'http://toolserver.org/~quentinv57/sulinfo/'+ uservar, 'Unified login', 't-unified_login', 'Unified login statistics', '', '');
//User autoblock search
mw.util.addPortletLink('p-tb2', 'http://tools.wmflabs.org/xtools/autoblock/?u='+ encodeURIComponent(uservar), 'Autoblock search', 't-autoblock_search', 'User autoblock search', '', '');
}
//CIDR range contributions
mw.util.addPortletLink('p-tb2', 'https://tools.wmflabs.org/xtools/rangecontribs/?project=en.wikipedia.org&text='+range16 + '&limit=50&begin=' + Year_PrevMonth_Day, 'CIDR (X!tools)', 't-CIDR_range', 'CIDR range contributions tool', '', '');
//WikiChecker
mw.util.addPortletLink('p-tb2', 'http://en.wikichecker.com/', 'WikiChecker', 't-WikiChecker', 'WikiChecker main page', '', '');
});
//end toolbox 2
//Toolbox 3: Editing tools
$.when( mw.loader.using( [ 'mediawiki.util'] ), $.ready ).done( function() {
addPortlet('p-tb3', 'Editing tools', 'p-coll-print_export');
//WebCite
mw.util.addPortletLink('p-tb3', 'http://www.webcitation.org/archive', 'WebCite', 't-webcite', 'Web Citation archive tool', '', '');
//Bugzilla
mw.util.addPortletLink('p-tb3', 'https://bugzilla.wikimedia.org/', 'Bugzilla', 't-bugzilla', 'Bugzilla for MediaWiki', '', '');
mw.util.addPortletLink('p-tb3', 'https://tools.wmflabs.org/copyvios/?lang=en&project=wikipedia&title='+ encodeURIComponent( mw.config.get( 'wgPageName' ) ) +'&action=search&use_engine=1&use_links=1', 'Copyvio check', 't-copyvio', 'Earwig\'s copyvio tool', '', '');
});
//end toolbox 3
//Toolbox 4: Statistics
$.when( mw.loader.using( [ 'mediawiki.util'] ), $.ready ).done( function() {
addPortlet('p-tb4', 'Statistics', 'p-coll-print_export');
//User stats tools
if( uservar ) {
mw.util.addPortletLink('p-tb4', 'http://tools.wmflabs.org/supercount/index.php?user='+ encodeURIComponent( uservar ) +'&project=en.Wikipedia', 'User statistics', 't-user stats', 'User statistics', '', '');
mw.util.addPortletLink('p-tb4', 'http://en.wikichecker.com/user/?t='+ encodeURIComponent( uservar )+'&l=1000', 'WikiChecker user stats', 't-wcuser stats', 'User statistics', '', '');
}
//Admin statistics
mw.util.addPortletLink('p-tb4', 'https://tools.wmflabs.org/xtools/adminstats/', 'Administrator statistics', 't-adminstats', 'Admin action statistics', '', '');
//Page editing stats
mw.util.addPortletLink('p-tb4', 'http://vs.aka-online.de/cgi-bin/wppagehiststat.pl?page='+ encodeURIComponent( mw.config.get( 'wgPageName' ) ) , 'Page editing statistics', 't-pagestats', 'Page statistics', '', '');
mw.util.addPortletLink('p-tb4', 'http://en.wikichecker.com/article/?a='+ encodeURIComponent( mw.config.get( 'wgPageName' ) ) , 'WikiChecker page stats', 't-wcpagestats', 'Page statistics', '', '');
//Page creation counter
mw.util.addPortletLink('p-tb4', 'http://toolserver.org/~tparis/pages/index.php?'+userparam+'lang=en&wiki=wikipedia&namespace=0&redirects=noredirects', 'Page creation counter', 't-pagecreatecount', 'Users page creation count', '', '');
// Page hit counter
mw.util.addPortletLink('p-tb4', 'https://tools.wmflabs.org/pageviews/?project=en.wikipedia.org&start='+Year_PrevMonth_Day+'&end='+Year_Month_Day+'&pages='+ encodeURIComponent( mw.config.get( 'wgPageName' ) ) , 'Page hit counter', 't-pagehit', 'Page hit counter', '', '');
//Ngram viewer
mw.util.addPortletLink('p-tb4', 'https://books.google.com/ngrams', 'N-gram viewer', 't-ngram', 'Ngram viewer', '', '');
//Google correlate statistics
mw.util.addPortletLink('p-tb4', 'http://www.google.com/trends/correlate/', 'Correlation statistics', 't-correlation', 'Google correlate', '', '');
});
//end toolbox 4
//importScript('User:Mr.Z-man/closeAFD2.js'); //Now a gadget
//Page size function
importScript('User:Dr pda/prosesize.js');
importScript('User:PrimeHunter/Source links.js'); // What links here with transclusions removed
importScript('User:Evad37/duplinks-alt.js'); // Find duplicate wikilinks on a page