「MediaWiki:Common.js」の版間の差分

出典: へっぽこ実験ウィキ『八百科事典(アンサイクロペディア)』
ナビゲーションに移動 検索に移動
(Partial quotation : add LinkFA function from MediaWiki:Monobook.js Rev.June 13,2007,11:57(JST))
(呪文は発動させましょう)
174行目: 174行目:
 
}
 
}
 
}
 
}
  +
function LinkFA()
 
  +
// LinkFA
{
 
  +
// 言語間リンクに秀逸マークをつける [[Template:Link FA]]の動作関連
 
function LinkFA()
 
{
 
var a, b;
 
var a, b;
 
// iterate over all <span>-elements
 
// iterate over all <span>-elements
193行目: 196行目:
 
}
 
}
 
}
 
}
}
+
}
  +
addOnloadHook(LinkFA);
   
 
// Titlehack Hack
 
// Titlehack Hack

2008年7月23日 (水) 22:55時点における版

/* ここに書いたスクリプトは全ての外装に反映されます */
/* ツール: [http://ja.uncyclopedia.info/index.php?title=-&action=raw&smaxage=0&gen=js reload cache]*/

 // 外装変更 
 // 1) 新しい外装を追加するページ名と名前空間を正確に記入する.
 //    (記事名のスペースはアンダースコア(_)に置換)
 //    2つ目のパラメタはファイル名(MediaWiki:Skin/記事名.css の場合は省略可)
 //     ex.1 ("Name Space:Page Name": "")
 //     ex.2 ("Name Space:Page Name": "Name Space:Page Name.css")
 //         上記2例は等価である.別名の場合は以下のようにする
 //     ex.3 ("Name Space:Page Name": "Hoge.css")
 //
 // 2) MediaWiki:Skin/Name_Space:Page_Name.cssを作成し、新しいCSSを記入する.
 
 skin = {
    "Uncyclopedia:アンディクショナリー": "Dict.css",
    "Uncyclopedia:アンディクショナリー/あ行": "Dict.css",
    "Uncyclopedia:アンディクショナリー/か行": "Dict.css",
    "Uncyclopedia:アンディクショナリー/さ行": "Dict.css",
    "Uncyclopedia:アンディクショナリー/た行": "Dict.css",
    "Uncyclopedia:アンディクショナリー/な行": "Dict.css",
    "Uncyclopedia:アンディクショナリー/は行": "Dict.css",
    "Uncyclopedia:アンディクショナリー/ま行": "Dict.css",
    "Uncyclopedia:アンディクショナリー/や行": "Dict.css",
    "Uncyclopedia:アンディクショナリー/ら行": "Dict.css",
    "Uncyclopedia:アンディクショナリー/わ行": "Dict.css",
    "Uncyclopedia:アンディクショナリー/ん": "Dict.css",
    "Uncyclopedia:アンディクショナリー/アルファベット": "Dict.css",
    "Uncyclopedia:アンディクショナリー/数字・記号": "Dict.css",
    "Uncyclopedia:今日の単語" : "Dict.css",
    "メインページ" : "Main Page.css",
    "UnNews:バ科ニュース" : "Main Page.css",
    "あああああああああ!": "Aaaa.css",
    "ニヒリズム": "Nihilism.css",
    "MediaWiki/Format_All": "Format All.css",
    "MediaWiki/メインページ": "Format All.css",
    "MediaWiki/Deleted": "Format All.css"
 //行の最後にコンマを入れること!!(最後の行を除く)
 }
 
 var skinName;
 if (skin[wgPageName] != undefined) {
    skinName = (skin[wgPageName].length > 0) ? skin[wgPageName] : wgPageName + '.css';
       document.write('<style type="text/css">/*<![CDATA[*/ @import "/index.php?title=MediaWiki:Skin/' + skinName + '&action=raw&ctype=text/css"; /*]]>*/</style>');
 }

 // 読み込み時のイベントに登録(スクリプト共有)
 function addLoadEvent(func) 
 {
    if (window.addEventListener) 
       window.addEventListener("load", func, false);
    else if (window.attachEvent) 
       window.attachEvent("onload", func);
 }

 // ============================================================ 
 // BEGIN Dynamic Navigation Bars (experimantal)
 // 元はドイツ語版ウィキペディアらしい
 /* アンサイクロペディアでの管理人: {{User|えふ氏}} */
 
 // set up the words in your language
 var NavigationBarHide = '[隠す]';
 var NavigationBarShow = '[表示]';

 var NODE_TYPE_ELEMENT_NODE = 1;

 // shows and hides content and picture (if available) of navigation bars
 // Parameters:
 //     indexNavigationBar: the index of navigation bar to be toggled
 //     reset: if true, reset the NavContent show/hide to initial state
 function toggleNavigationBar(indexNavigationBar, reset)
 {
    var NavToggle = document.getElementById("NavToggle" + indexNavigationBar);
    var NavFrame = document.getElementById("NavFrame" + indexNavigationBar);
 
    if (!NavFrame || !NavToggle) {
        return false;
    }

    var display, toggleText;
    if (reset) {
        var showDefault = NavFrame.className.match(/\bshowDefault\b/) != null;
        display = showDefault ? "block" : "none";
        toggleText = showDefault ? NavigationBarHide : NavigationBarShow;
        }
    else {
        switch (NavToggle.firstChild.data) {
                case NavigationBarHide :
                     display = 'none';
                     toggleText = NavigationBarShow;
                     break;
                case NavigationBarShow :
                     display = 'block';
                     toggleText = NavigationBarHide;
                     break;
                default :
                     return false;
        }
    }

    for (
            var NavChild = NavFrame.firstChild;
            NavChild != null;
            NavChild = NavChild.nextSibling
         ) {
         if (NavChild.nodeType != NODE_TYPE_ELEMENT_NODE) {
             continue;
         }
         if (NavChild.className.match(/\bNav(?:\Pic|Content)\b/)) {
             NavChild.style.display = display;
         }
    }
    NavToggle.firstChild.data = toggleText;
 }
 
 // adds show/hide-button to navigation bars
 function createNavigationBarToggleButton()
 {
    var indexNavigationBar = 0;
    // iterate over all < div >-elements
    for(
            var i=0; 
            NavFrame = document.getElementsByTagName("div")[i]; 
            i++
        ) {
        // if found a navigation bar
        if (NavFrame.className.match(/\bNavFrame\b/)) {
            indexNavigationBar++;
            var NavToggle = document.createElement("a");
            NavToggle.className = 'NavToggle';
            NavToggle.setAttribute('id', 'NavToggle' + indexNavigationBar);
            NavToggle.setAttribute('href', 'javascript:toggleNavigationBar(' + indexNavigationBar + ');');
            
            var NavToggleText = document.createTextNode(NavigationBarHide);
            NavToggle.appendChild(NavToggleText);
            // Find the NavHead and attach the toggle link (Must be this complicated because Moz's firstChild handling is borked)
            for(
              var j=0; 
              j < NavFrame.childNodes.length; 
              j++
            ) {
              var childNode = NavFrame.childNodes[j];
              if (childNode.nodeType == NODE_TYPE_ELEMENT_NODE && childNode.className.match(/\bNavHead\b/) ) {
                childNode.appendChild(NavToggle);
              }
            }
            NavFrame.setAttribute('id', 'NavFrame' + indexNavigationBar);
            toggleNavigationBar(indexNavigationBar, true);
        }
    } 
 }

 addOnloadHook(createNavigationBarToggleButton);
 
 // END Dynamic Navigation Bars
 // ============================================================




  // ([[:en:MediaWiki:Common.js]]より輸入)
  /** Username replace function ([[template:USERNAME]]) *******************************
  * Inserts user name into <span id="insertusername"></span>
  * By [[wikia:User:Splarka|Splarka]] 
  */
 addOnloadHook(UserNameReplace);
 
  function UserNameReplace() {
  if(typeof(disableUsernameReplace) != 'undefined' && disableUsernameReplace) return;
     for(var i=0; UserName = document.getElementsByTagName("span")[i]; i++) {
         if ((document.getElementById('pt-userpage'))&&(UserName.getAttribute('id') == "insertusername")) {
             UserName.innerHTML = wgUserName;
         }
     }
  }

// LinkFA
// 言語間リンクに秀逸マークをつける [[Template:Link FA]]の動作関連
 function LinkFA() 
 {
   var a, b;
   // iterate over all <span>-elements
   for(var i=0; a = document.getElementsByTagName("span")[i]; i++) {
      // if found a AdQ span
      if(a.className == "FA") {
         // iterate over all <li>-elements
         for(var j=0; b = document.getElementsByTagName("li")[j]; j++) {
            // if found a FA link
            if(b.className == "interwiki-" + a.id) {
               b.style.padding = "0 0 0 16px";
               b.style.backgroundImage = "url('http://upload.wikimedia.org/wikipedia/ja/6/60/LinkFA-star.png')";
               b.style.backgroundRepeat = "no-repeat";
               b.title = "この記事は秀逸な記事に選ばれています";
            }
         }
      }
   }
 }
 addOnloadHook(LinkFA);

// Titlehack Hack
// Sitenoticeを [非表示] にすると[[Template:タイトル]]がずれるバグを修正する。
//  MediaWiki側の仕様が変更されると、この関数にも修正が必要になる場合があります。
//  困ったときは、[[Template:タイトル]]の id="dummySitenotice" という部分を削除すれば、この機能は無効になります。
//
//  実タイトルとタイトルハックをDOMツリー上で置き換えてもいいんだけど、何かセキュリティホールの元になりそうで恐い。
//  なので、Sitenoticeが非表示設定の場合のみ、ダミーSitenoticeも非表示にして位置調整する。

 function titlehackhack() {
     if (wgUserName != null && cookieValue == siteNoticeID) {
         var dummy = document.getElementById("dummySitenotice");
         if (dummy != null) {
             dummy.parentNode.removeChild(dummy);
         }
     }
 }

 addOnloadHook(titlehackhack);