MediaWiki:Comments.js

维基新闻,自由的新闻源

注意:在发布之后,您可能需要清除浏览器缓存才能看到所作出的变更的影响。

  • Firefox或Safari:按住Shift的同时单击刷新,或按Ctrl-F5Ctrl-R(Mac为⌘-R
  • Google Chrome:Ctrl-Shift-R(Mac为⌘-Shift-R
  • Internet Explorer或Edge:按住Ctrl的同时单击刷新,或按Ctrl-F5
  • Opera:Ctrl-F5
 // see [[Wikinews:Commentary pages on news events]].
 // This script has some crappy hacks in it, and won't work as of current on other languages probably
 // ==========================================================================
 // MediaWiki interface button for Comments page based on [[commons:mediawiki:extra-tabs.js]].
 // Originally written by Dbenbenn, Avatar, Duesentrieb and Arnomane
 // Modified by bawolff for wikinews. fixed by darklama
 
 // Interface strings,
 tab_view_comment_on_article = '評論';
 
 // Switch for people that don't want the extra tabs.
 // var load_extratabs = false;
 // 本介面引入自英文版,修改時請小心,並建議參照英文版之改法。
 // Appends a new tab.
 function global_append_tab(action, name, where, id, title)
 {
   var tools = document.getElementById(where ? where : 'column-one');
   
   if (!where && tools)
     tools = tools.getElementsByTagName('div')[0].getElementsByTagName('ul')[0];
   if (!tools)
     return;
   
   var na = document.createElement('a').appendChild(document.createTextNode(name)).parentNode;
   
   if (typeof action == "string")
     na.setAttribute('href', action);
   else if (typeof action == "function")
     na.onclick = action;
   else
     return;
   
   var li = document.createElement('li').appendChild(na).parentNode;
   if (id) li.id = id;
   if (title) li.setAttribute("title", title);
   
   if (typeof id == "string") li.id = id;
   
   if (where)
     tools.parentNode.insertBefore(li, tools.nextSibling);
   else
     tools.appendChild(li);
 }
 
 function global_do_onload()
 {
   if (load_extratabs && load_extratabs == false)
     return;
   
   var title = mw.config.get('wgPageName');
   switch(mw.config.get('wgNamespaceNumber'))
   {
     case 1:
       title = title.replace(/^[^:]*:/, "");
     case 0:
       if (title === '首页')
         return;
       title = encodeURIComponent(title);
       global_append_tab(mw.config.get('wgArticlePath').replace("$1", "Comments:" + title), tab_view_comment_on_article, 'ca-talk', 'ca-comments');
       checkCommentaryPageExist("Comments:" + title);
       break;
   }
 }
 
 // Run a background check of api.php to see if the particular page exists,
 // so a non-existing comment page can be red, and an existing comment page
 // will look like a normal tab.
 
 function checkCommentaryPageExist(pageName) {
   var x;
   x = sajax_init_object();
   
   // do nothing if we can't check
   if (!x) {
     return;
   }
   
   x.open("GET", "//zh.wikinews.org/w/api.php?action=query&format=xml&titles=" + pageName, true);
   x.setRequestHeader("Pragma", "cache=yes");
   x.setRequestHeader("Cache-Control", "no-transform");
   x.onreadystatechange = function() {
     if (x.readyState == 4) {
       if (x.status == 200) {
         var xmldoc = x.responseXML;
         var xpage = xmldoc.getElementsByTagName('page');
         if (xpage.item(0).hasAttribute('missing')) { // is missing
           document.getElementById('ca-comments').className = 'new';
           document.getElementById('ca-comments').firstChild.setAttribute('href',
             mw.config.get('wgServer')+mw.config.get('wgScript')+ "?title=" + pageName + '&action=edit&preload=Wikinews:新聞事件評論/主體' +
             '&editintro=Wikinews:新聞事件評論/簡介');
         }
       }
     }
   };
   x.send(null);
 }