משתמש:Mikimik/js/customizeBars.js
מראה
הערה: לאחר הפרסום, ייתכן שיהיה צורך לנקות את זיכרון המטמון (cache) של הדפדפן כדי להבחין בשינויים.
- פיירפוקס / ספארי: להחזיק את המקש Shift בעת לחיצה על טעינה מחדש (Reload) או ללחוץ על צירוף המקשים Ctrl-F5 או Ctrl-R (במחשב מק: ⌘-R).
- גוגל כרום: ללחוץ על צירוף המקשים Ctrl-Shift-R (במחשב מק: ⌘-Shift-R).
- אדג': להחזיק את המקש Ctrl בעת לחיצה על רענן (Refresh) או ללחוץ על צירוף המקשים Ctrl-F5.
// customize the Sidebar. written by [[User:Mikimik]]
function mkCustomizeSidebar()
{
try {
if ( arguments.callee != mkCustomizeSidebar ) return; // if local function was reloaded let the newer function run
//--- // modify tool box on user and talk page
var contributions = document.getElementById("t-contributions");
if ( contributions )
{
if ( wgTitle == wgUserName && document.getElementById("t-blockip") ) document.getElementById("t-blockip").parentNode.removeChild ( document.getElementById("t-blockip") );
contributions.insertBefore ( document.createTextNode(wgUserLanguage == "he" ? "מקומי: " : "local: "), contributions.firstChild );
var item = contributions.getElementsByTagName("a")[0];
item.replaceChild ( document.createTextNode(wgUserLanguage == "he" ? "תרומות" : "contribs"), item.firstChild );
contributions.appendChild ( document.createTextNode(", ") );
var username = item.href.substring(item.href.lastIndexOf("/") + 1);
item = document.createElement("a");
item.href = "/w/index.php?title=Special:Log&type=upload&user=" + username;
item.appendChild ( document.createTextNode(wgUserLanguage == "he" ? "העלאות" : "uploads") );
item.title = wgUserLanguage == "he" ? "רשימת ההעלאות של משתמש זה" : "View the list of uploads of this user";
contributions.appendChild ( item );
contributions.appendChild ( document.createTextNode(", ") );
item = document.createElement("a");
item.href = "http://toolserver.org/~soxred93/count/index.php?name=" + username +
"&lang=" + wgContentLanguage + "&wiki=" + wgServer.replace(/^.+\.(.+)\.org$/,"$1");
item.appendChild ( document.createTextNode(wgUserLanguage == "he" ? "סטטיסטיקות" : "stats") );
item.title = wgUserLanguage == "he" ? "סטטיסטיקות של משתמש זה" : "View statistics of this user";
contributions.appendChild ( item);
contributions.appendChild ( document.createElement("br") );
contributions.appendChild ( document.createTextNode(wgUserLanguage == "he" ? "גלובלי: " : "global: ") );
item = document.createElement("a");
item.href = "http://toolserver.org/~vvv/sulutil.php?user=" + username;
item.appendChild ( document.createTextNode(wgUserLanguage == "he" ? "הרשאות" : "flags") );
item.title = wgUserLanguage == "he" ? "ההרשאות של משתמש זה בכל מיזמי ויקי": "View the flags of this user in all wikis";
contributions.appendChild ( item );
contributions.appendChild ( document.createTextNode(", ") );
item = document.createElement("a");
item.href = "http://toolserver.org/~luxo/contributions/contributions.php?user=" + username + "&lang=en";
item.appendChild ( document.createTextNode(wgUserLanguage == "he" ? "תרומות" : "contribs") );
item.title = wgUserLanguage == "he" ? "התרומות של משתמש זה בכל מיזמי ויקי" : "View the list of contributions of this user in all wikis";
contributions.appendChild ( item );
item = document.getElementById("t-emailuser");
if ( item )
if ( wgTitle == wgUserName ) item.parentNode.removeChild ( item );
else if ( wgUserLanguage == "he" ) item.getElementsByTagName("a")[0].replaceChild ( document.createTextNode("דואר אלקטרוני"), item.getElementsByTagName("a")[0].firstChild );
}
//---
var navbox = document.getElementById("p-navigation");
if ( !navbox ) return; // should never happen
var navlist = navbox.getElementsByTagName("ul")[0];
if ( !navlist ) return; // should never happen
var searchbox = document.getElementById("p-search");
if ( searchbox && searchbox.nextSibling != navbox ) // move the search box before the navigation box
{
searchbox.parentNode.removeChild ( searchbox );
navbox.parentNode.insertBefore ( searchbox, navbox );
}
var combox = document.getElementById("p-community");
if ( combox ) // move all links in the community box (if it exists) to the navigation box
{
for ( var item = combox.getElementsByTagName("li")[0] ; item ; item = combox.getElementsByTagName("li")[0] )
{
item.parentNode.removeChild ( item );
navlist.appendChild ( item );
}
combox.style.display = "none";
}
var item = document.getElementById("n-village-pump"); // move village-pump link to the end of the nav box (possibly already there)
if ( item )
{
item.parentNode.removeChild ( item );
navlist.appendChild ( item );
}
item = document.getElementById("t-specialpages"); // move specialpages link to the end of the nav box
if ( item )
{
item.parentNode.removeChild ( item );
navlist.appendChild ( item );
}
item = document.getElementById("pt-watchlist"); // duplicate "my watchlist" link to the navigation box
if ( item )
{
item = item.cloneNode(true);
item.id = "n-watchlist";
navlist.insertBefore ( item, navlist.firstChild );
}
//--- // display page version number instead of permanent link
if ( !wgCurRevisionId ) return; // if there's no revision ID then this is a special page
item = document.getElementById("t-permalink"); // קישור קבוע
if ( item )
{
var displayedRevision = item.getElementsByTagName("a")[0].href.match(/&oldid=(\d+)/)[1]; // displayed version number
while ( item.hasChildNodes() ) item.removeChild ( item.firstChild );
}
else
{
var versionInfo = document.getElementById("mw-diff-ntitle1"); // get displayed version info from diff view
if ( !versionInfo ) return;
var displayedRevision = versionInfo.getElementsByTagName("a")[0].href.match(/&oldid=(\d+)/)[1]; // displayed version number
var toolbox = document.getElementById("p-tb");
if ( !toolbox ) return; // should never happen
var toollist = toolbox.getElementsByTagName("ul")[0];
if ( !toollist ) return; // should never happen
item = document.createElement("li");
toollist.appendChild ( item );
}
if ( displayedRevision == wgCurRevisionId )
{
var span = document.createElement("span");
span.appendChild ( document.createTextNode(wgCurRevisionId) );
span.title = wgUserLanguage == "he" ? "גרסה אחרונה" : "last revision";
item.appendChild ( span );
}
else
{
var span = document.createElement("span");
span.appendChild ( document.createTextNode("(" + displayedRevision + ")") );
span.title = wgUserLanguage == "he" ? "הגרסה המוצגת" : "displayed revision";
item.appendChild ( span );
item.appendChild ( document.createTextNode(" ") );
var CurRevEdit = document.createElement("a");
CurRevEdit.href = "/w/index.php?title=" + encodeTextToWikiURL(wgPageName) + "&action=edit";
CurRevEdit.appendChild ( document.createTextNode(wgCurRevisionId) );
CurRevEdit.title = wgUserLanguage == "he" ? "עריכת הגרסה האחרונה" : "edit the last revision";
item.appendChild ( CurRevEdit );
}
}
catch (e)
{
return; // lets just ignore what's happened
}
}
$ ( mkCustomizeSidebar );
// add links to the personal bar. written by [[User:Mikimik]]
function mkCustomizePersonalbar()
{
try {
if ( arguments.callee != mkCustomizePersonalbar ) return; // if local function was reloaded let the newer function run
gModifyList ("add", "p-personal", (wgUserLanguage == "he" ? "דפי משנה" : "subpages"), "/wiki/" + encodeTextToWikiURL("Special:PrefixIndex/User:" + wgUserName), "pt-subpages", "דפי המשנה שלי");
if ( wgServer.indexOf("he.wikipedia") != -1 ) // if local wiki is hebrew wikipedia
{
gModifyList ("add", "p-personal", "JS", "/wiki/" + encodeTextToWikiURL("Special:PrefixIndex/User:" + wgUserName + "/js"), "pt-js", "JS");
var liNode = gModifyList ("add", "p-personal", "בקשות ממפעילים", "/wiki/" + encodeTextToWikiURL("ויקיפדיה:בקשות ממפעילים"), "pt-sysoprequests", "בקשות ממפעילים");
if ( wgPageName == "ויקיפדיה:בקשות_ממפעילים" ) liNode.className = "active";
}
if ( wgContentLanguage != "he" ) return; // add scanboxes only on hebrew projects
var sandbox = wgContentLanguage == "he" ? "ארגז_חול" : "sandbox";
var liNode = gModifyList ("add", "p-personal", (wgUserLanguage == "he" ? "תזכורות" : "reminders"), "/w/index.php?title=" + encodeTextToWikiURL("User:" + wgUserName + "/" + sandbox) + "&action=edit", "pt-reminders", "התזכורות שלי");
if ( wgPageName == wgFormattedNamespaces[2] + ":" + wgUserName + "/" + sandbox ) liNode.className = "active";
for ( var i = 1 ; i <= 3 ; i++ )
{
var liNode = gModifyList ("add", "p-personal", "--"+i+"--", "/w/index.php?title=" + encodeTextToWikiURL("User:" + wgUserName + "/" + sandbox + i) + "&action=edit", "pt-sandbox" + i, sandbox.replace(/_/g," ") + " - " + i);
if ( wgPageName == wgFormattedNamespaces[2] + ":" + wgUserName + "/" + sandbox + i ) liNode.className = "active";
}
}
catch (e)
{
return; // lets just ignore what's happened
}
}
$ ( mkCustomizePersonalbar );
/* ---- general function to add (remove) an item to (from) a list */
function gModifyList ( action, section, name, link, id, title, before )
{
try {
if ( action == "add" )
{
var node = document.getElementById(section)
.getElementsByTagName("ul")[0];
if ( link )
{
var aNode = document.createElement("a");
aNode.href = link;
}
else var aNode = document.createElement("span");
if ( title ) aNode.title = title;
aNode.appendChild (document.createTextNode(name));
var liNode = document.createElement("li");
if ( id ) liNode.id = id;
liNode.appendChild (aNode);
if ( before ) node.insertBefore ( liNode, document.getElementById(before) );
else node.appendChild ( liNode );
return liNode;
}
if ( action == "remove" )
{
if ( id )
{
var node = document.getElementById (id);
node.parentNode.removeChild (node);
return node;
}
else
{
var items = document.getElementById(section)
.getElementsByTagName("li");
for ( var i = 0 ; i < items.length ; i++ )
if ( ( items[i].getElementsByTagName("a")[0].innerHTML == name ) ||
( items[i].getElementsByTagName("a")[0].href == link ) ||
( items[i].getElementsByTagName("a")[0].title == title ) )
{
items[i].parentNode.removeChild(items[i]);
return items[i];
}
}
}
return null;
}
catch(e)
{
return null; // lets just ignore what's happened
}
}