Benutzer:PDD/extra-tabs.js

aus Wikipedia, der freien Enzyklopädie
Zur Navigation springen Zur Suche springen

Hinweis: Leere nach dem Veröffentlichen den Browser-Cache, um die Änderungen sehen zu können.

  • Firefox/Safari: Umschalttaste drücken und gleichzeitig Aktualisieren anklicken oder entweder Strg+F5 oder Strg+R (⌘+R auf dem Mac) drücken
  • Google Chrome: Umschalttaste+Strg+R (⌘+Umschalttaste+R auf dem Mac) drücken
  • Edge: Strg+F5 drücken oder Strg drücken und gleichzeitig Aktualisieren anklicken
 /* <pre><nowiki> Top of Javascript */
 /* tooltips and access keys */ 
 // ==========================================================================
 // BEGIN: MediaWiki interface button definition for Duesentrieb's image tools:
 // "Check usage", "User image gallery", "Orphaned images of user" and 
 // "Untagged images of user".
 // If you are located at an "Image:" you get the "check usage" tab, if you
 // are at a "User:" page you get the "gallery", "orphans" and "untagged" tab.
 // If you are on other pages these tabs do not get shown. These functions are
 // enabled in Wikimedia Commons by default via [[Mediawiki:Monobook.js]] and
 // its local language subpages.
 // This script has been tested with Konqueror 3.5 and Firefox 1.5 and other
 // browsers including Opera and Internet Explorer have been reported to work
 // as well. If you enhance or change this template please test it previous to
 // editing here in your local monobook.js with as many as possible browsers
 // (in order not to clash with the function names here change in your local
 // monobook.js all "global_" to "local_").
 // Be aware that the global JavaScripts do not get updated by the Wikimedia
 // servers that fast after saving them.
 
 // written by Dbenbenn, Avatar, Duesentrieb and Arnomane
 
 // Switch for people that don't want the extra tabs.
 if (load_extratabs == true)
 {
 
 // Translations (variables for internationalisation and localisation):
 
 // project
 var tab_project = 'de.wikipedia.org';
 
 // namespace names
 var tab_ns_image = 'Bild:';
 var tab_ns_imagetalk = 'Bild_Diskussion:';
 var tab_ns_user = 'Benutzer:';
 var tab_ns_usertalk = 'Benutzer_Diskussion:';
 var tab_ns_category = 'Kategorie:';
 var tab_ns_special = 'Spezial:';
 
 // Interface strings, get defined in the localised Mediawiki:Monobook.js/<ISO-Code>
 var tab_check_usage = 'Nutzung';
 var tab_categorize = 'Kategorisieren';
 var tab_log = 'Log';
 var tab_gallery = 'Galerie';
 var tab_orphans = 'Waisen';
 var tab_untagged = 'Lizenzlose';
 var tab_tree = 'Baum';
 var tab_catscan = 'CatScan';
 var tab_blocklog = 'Sperrlog';
 var tab_wikipedia = "en";  //this tabname is not likely to change depending on namespace
 
 // Appends a new tab.
 function global_append_tab(url, name)
 {
   var na = document.createElement('a');
   na.setAttribute('href', url);  
  
   var txt = document.createTextNode(name);
   na.appendChild(txt);
  
   var li = document.createElement('li');
   li.appendChild(na);
 
   // Grab the element we want to append the tab and append the tab to it.
   var c1 = document.getElementById('column-one');
   var tabs = c1.getElementsByTagName('div')[0].getElementsByTagName('ul')[0];
   tabs.appendChild(li);
 }
 
 // Gets the article lemma, with the namespace and with sub pages.
 function global_get_tidy_title()
 {
   // get the article link from the label 'ca-edit' out of the document text.
   var editlk = document.getElementById('ca-edit');
 
   // If a page is write protected (for that user, a sysop will always have 'ca-edit')
   // we need 'ca-viewsource' as 'ca-edit' does not exist there.
   if (editlk == null)
   {
     editlk = document.getElementById('ca-viewsource');
   }
 
   // editlk will still be null on a Special page.  Now we try the ca-article tab.
   if (editlk == null)
   {
     editlk = document.getElementById('ca-article');
   }
 
   editlk = editlk.getElementsByTagName('a')[0].href;
 
   // If we found the ca-edit or ca-viewsource tab, the link will have title=.
   // If we found the ca-article tab (on a Special page) it won't.
   if (editlk.indexOf('title=') >= 0)
   {
     // Cut everything up to "title=" from the start and everything past "&action=edit"
     // from the end.
     editlk = editlk.substring(editlk.indexOf('title=') + 6, editlk.indexOf('&'));
   }
   else
   {
     // Cut everything up to "/wiki/" from the start.
     editlk = editlk.substring(editlk.indexOf('/wiki/') + 6);
   }
 
   return editlk;
 }
 
 function global_add_image_tabs(imagetitle)
 {
   imagetitle = imagetitle.substring(imagetitle.indexOf(':') + 1); // strip off "Image:" namespace
 
   global_append_tab('http://tools.wikimedia.de/~daniel/WikiSense/CheckUsage.php?i=' + imagetitle + '&w=_100000', tab_check_usage);
 
   global_append_tab('http://tools.wikimedia.de/~daniel/WikiSense/CommonSense.php?i=' + imagetitle + '&go-clean=yes' , tab_categorize);
 
 global_append_tab('/w/index.php?title=' + tab_ns_special + 'Log&page=' + tab_ns_image + imagetitle, tab_log);
 
   // Add an "unthumb" link.  For Image:123px-Foo, links to Image:Foo.
   if (imagetitle.match(/^\d+px-/)) {
     imagetitle = imagetitle.substring(imagetitle.indexOf("px-") + 3);
     global_append_tab('/wiki/Image:' + imagetitle, 'unthumb');
   }
 
 // Add a tab going to enwiki
 global_append_tab('http://'+tab_wikipedia+'.wikipedia.org/wiki/Image:' + imagetitle, tab_wikipedia);
 
 }
  
 function global_add_user_tabs(username)
 {
   username = username.substring(username.indexOf(':') + 1); // strip off namespaces like "User:"
 
   username = username.replace(/\/.*$/, ''); //removing subpages from the link
 
   global_append_tab('http://tools.wikimedia.de/~daniel/WikiSense/Gallery.php?&wiki=' + tab_project + '&img_user_text=' + username , tab_gallery);
   global_append_tab('http://tools.wikimedia.de/~daniel/WikiSense/OrphanImages.php?wiki=' + tab_project + '&img_user_text=' + username , tab_orphans);
   global_append_tab('http://tools.wikimedia.de/~daniel/WikiSense/UntaggedImages.php?wiki=' + tab_project + '&img_user_text=' + username , tab_untagged);
 }
 
 function global_add_category_tabs(category)
 {
   category = category.substring(category.indexOf(':') + 1); // strip off "Category:" namespace
 
   //global_append_tab('http://tools.wikimedia.de/~daniel/WikiSense/CategoryTree.php?wiki=' + tab_project + '&cat=' + category , tab_tree);
   global_append_tab('http://tools.wikimedia.de/~daniel/WikiSense/CategoryIntersect.php?wiki=' + tab_project + '&basecat=' + category , tab_catscan);
 }
 
 // On Special:Contributions, we add the user tabs just like for a user page.
 // On Special:Blockip, we add a blocklog tab.
 function global_add_special_tabs(title)
 {
   if (title.indexOf(tab_ns_special + 'Blockip') == 0)
   {
     var username = document.getElementsByName('wpBlockAddress')[0].defaultValue;
 
     if (username != '')
     {
       global_append_tab('/w/index.php?title=' + tab_ns_special + 'Log&type=block&page=' + tab_ns_user + username, tab_blocklog);
     }
   }
   else if (title.indexOf(tab_ns_special + 'Contributions') == 0)
   {
     var username = document.getElementById('contentSub').getElementsByTagName('a')[0].firstChild.nodeValue;
     global_add_user_tabs(tab_ns_user + username);
   }
 }
  
 function global_do_onload()
 {
     // extract the namespace
     var title = global_get_tidy_title();
 
     if (title.indexOf(tab_ns_image) == 0 || title.indexOf(tab_ns_imagetalk) == 0)
     {
       global_add_image_tabs(title);
     }
     else if (title.indexOf(tab_ns_user) == 0 || title.indexOf(tab_ns_usertalk) == 0)
     {
       global_add_user_tabs(title);
     }
     else if (title.indexOf(tab_ns_category) == 0)
     {
       global_add_category_tabs(title);
     }
     else if (title.indexOf(tab_ns_special) == 0)
     {
       global_add_special_tabs(title);
     }
 }
 
 $(document).ready(global_do_onload);
 
 }
 // END: MediaWiki interface button definition for Duesentrieb's image tools.
 // ========================================================================
 /* Bottom of Javascript </nowiki></pre> */