User:Barticus88/dpl.js
From Wikipedia, the free encyclopedia
Note: After saving, you have to bypass your browser's cache to see the changes. In Internet Explorer and Firefox, hold down the Ctrl key and click the Refresh or Reload button. Opera users have to clear their caches through Tools→Preferences, see the instructions for Opera. Konqueror and Safari users can just click the Reload button.
/* {{TOCright}} This script was originally written for the needs of [[Wikipedia:Disambiguation pages with links|Disambiguation pages with links]], hence the name. I have decided to "Class B" this script in favor of a generalized WhatLinksHere enhancement script called <code>[[User:Barticus88/WhatLinksHere.js]]</code>. ==Randall Bart's whatlinkshere select script== by Randall Bart [[User:Barticus88]] version 1.1 GPL GFDL February 2007 version 1.0 GPL GFDL January 2007 Derived from Agentsoo/dpl.js On What links here pages, this script adds this line to your toolbox: Mode: DPL T P R W U Each selection mode filters the list of pages Hover over each letter to get a description When selection mode is activated, a yellow banner appears at the top and bottom of the page, with the mode description and counts, eg Select Mode: Redirect (11 shown/687 hidden) == Selection funcs == */ function getValueOf(varName) {defaultize(varName); return eval(varName);}; function sel_mode_DPL (linkHTML) { return !(linkHTML.toLowerCase().indexOf( '</a> (redirect page' ) == -1 && ( linkHTML.indexOf( 'href="/wiki/Talk:' ) != -1 || linkHTML.indexOf( 'href="/wiki/Category_talk:' ) != -1 || linkHTML.indexOf( 'href="/wiki/Template_talk:' ) != -1 || linkHTML.indexOf( 'href="/wiki/Image_talk:' ) != -1 || linkHTML.indexOf( 'href="/wiki/Portal_talk:' ) != -1 || linkHTML.indexOf( 'href="/wiki/Wikipedia:' ) != -1 || linkHTML.indexOf( 'href="/wiki/Wikipedia_talk:' ) != -1 || linkHTML.indexOf( 'href="/wiki/User:' ) != -1 || linkHTML.indexOf( 'href="/wiki/User_talk:' ) != -1 ) ) } function sel_mode_Template (linkHTML) { return linkHTML.indexOf( 'href="/wiki/Template:' ) != -1 } function sel_mode_Portal (linkHTML) { return linkHTML.indexOf( 'href="/wiki/Portal:' ) != -1 || linkHTML.indexOf( 'href="/wiki/Template:' ) != -1 || linkHTML.indexOf( 'href="/wiki/Category:' ) != -1 || linkHTML.indexOf( 'href="/wiki/Image:' ) != -1 } function sel_mode_User (linkHTML) { return linkHTML.indexOf( 'href="/wiki/User:' ) != -1 || linkHTML.indexOf( 'href="/wiki/User_talk:' ) != -1 } function sel_mode_Wiki (linkHTML) { return linkHTML.indexOf( 'href="/wiki/Wikipedia:' ) != -1 || linkHTML.indexOf( 'href="/wiki/Wikipedia_talk:' ) != -1 } function sel_mode_Redir (linkHTML) { return linkHTML.toLowerCase().indexOf( '</a> (redirect page' ) != -1 } /* ==Da Main func== */ function select_pages(select_this, mode_name){ body = document.getElementById('bodyContent'); if( !body ){ return; } banner = document.getElementById('dpl_banner') if (banner && banner.innerHTML.indexOf(mode_name) != -1) { open(document.URL, "_self"); //refresh the page return; } lists = body.getElementsByTagName( "ul" ); for( j=0; j<lists.length; j++ ){ lists[j].style.listStyleType = 'decimal'; } links = body.getElementsByTagName( "li" ); dpl_in = 0; dpl_ex = 0; for( i=0; i<links.length; i++ ){ if( select_this(links[i].innerHTML) ) { links[i].style.display = ''; // clear prior style dpl_in++; } else { links[i].style.display = 'none'; // hide dpl_ex++; } } window.wlhCt = window.wlhCt || 0; window.wlhCt ++; banner_text = "Select Mode: " + mode_name + " (" + dpl_in.toFixed() + " shown/" + dpl_ex.toFixed() + " hidden)"; if (banner) { banner.innerHTML = banner_text; banner = document.getElementById('dpl_footer'); banner.innerHTML = banner_text; }else{ banner = document.createElement("div"); banner.id = "dpl_banner"; banner.style.backgroundColor = "yellow"; banner.style.fontSize = 'larger'; banner.innerHTML = banner_text; body.insertBefore(banner,body.childNodes[0]); body = document.getElementById('footer'); if( !body ){ return; } banner = document.createElement("div"); banner.id = "dpl_footer"; banner.style.backgroundColor = "yellow"; banner.style.fontSize = 'larger'; banner.innerHTML = banner_text; body.insertBefore(banner,body.childNodes[0]); } }/* end function select_pages ==Da toolbox fiddler== */ function addCountLinks(){ if (!document.URL.match('Special:Whatlinkshere')) { return; } // only add toolbox link on 'whatlinkshere' pages target = document.getElementById('p-tb').getElementsByTagName( "ul" ); if( target.length == 0 ){ return; } //no toolbox to hook into target = target[0]; newTool = document.createElement("li"); target.appendChild( newTool ); function ptool(btn,func,desc){ return '<a href="" onclick="select_pages(sel_mode_' + func + ',\'' + desc + '\');return false;" title="' + desc + '"> ' + btn + ' </a>' } newTool.innerHTML = 'Mode:' + ptool ('DPL', 'DPL', 'Main Space and Template') + ptool ('T', 'Template', 'Template Only') + ptool ('P', 'Portal', 'Portal, Template, Category, Image') + ptool ('R', 'Redir', 'Redirect') + ptool ('W', 'Wiki', 'Wikipedia') + ptool ('U', 'User', 'User and User Talk') ; } addOnloadHook(addCountLinks);