MediaWiki:Common.js — различия между версиями
Материал из S.T.A.L.K.E.R. Inside Wiki
Neo (обсуждение | вклад) |
Neo (обсуждение | вклад) м (поправлены таблицы) |
||
Строка 2: | Строка 2: | ||
/* <code javascript> */ | /* <code javascript> */ | ||
− | + | function addLoadEvent( f ) { addOnloadHook( f ); } | |
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | /** | + | |
− | + | /******************************* Import module ************************************************************* | |
− | + | ||
* | * | ||
* Description: Includes a raw wiki page as javascript or CSS, | * Description: Includes a raw wiki page as javascript or CSS, | ||
Строка 25: | Строка 15: | ||
+ encodeURIComponent(page.replace(' ','_')) | + encodeURIComponent(page.replace(' ','_')) | ||
+ '&action=raw&ctype=text/javascript&dontcountme=s'; | + '&action=raw&ctype=text/javascript&dontcountme=s'; | ||
− | if (lang) url = 'http://' + lang + '. | + | /*if (lang)*/ url = 'http://' + /*lang +*/ 'stalkerin.gameru.net/wiki' + url; |
var s = document.createElement('script'); | var s = document.createElement('script'); | ||
s.src = url; | s.src = url; | ||
Строка 32: | Строка 22: | ||
} | } | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | /** Tooltips and access keys *************************************************** | + | /********************************* Tooltips and access keys *************************************************** |
− | + | */ | |
ta = new Object(); | ta = new Object(); | ||
ta["t-print"] = new Array("","Версия без кнопок, пригодная для распечатки"); | ta["t-print"] = new Array("","Версия без кнопок, пригодная для распечатки"); | ||
ta["t-permalink"] = new Array("","Ссылка на текущую версию этой статьи"); | ta["t-permalink"] = new Array("","Ссылка на текущую версию этой статьи"); | ||
− | + | /********************************* hasClass from en-wiki ****************************************************** | |
− | + | */ | |
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
var hasClass = (function () { | var hasClass = (function () { | ||
Строка 104: | Строка 39: | ||
})(); | })(); | ||
− | /** Collapsible tables ********************************************************* | + | |
+ | |||
+ | /*************************************** Collapsible tables ********************************************************* | ||
* | * | ||
* Description: Allows tables to be collapsed, showing only the header. See | * Description: Allows tables to be collapsed, showing only the header. See | ||
Строка 299: | Строка 236: | ||
addOnloadHook( createNavigationBarToggleButton ); | addOnloadHook( createNavigationBarToggleButton ); | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | /** Делаем ссылку "править" для нулевой секции *****************************************<nowiki> | + | /****************************** Делаем ссылку "править" для нулевой секции *****************************************<nowiki> |
*/ | */ | ||
var disable_zero_section = 0; | var disable_zero_section = 0; | ||
Строка 332: | Строка 250: | ||
title = encodeURIComponent (title); | title = encodeURIComponent (title); | ||
− | body.innerHTML = '<div class="editsection" id="ca-edit-0">[<a href="http:// | + | body.innerHTML = '<div align="right" class="editsection" id="ca-edit-0">[<a href="http://stalkerin.gameru.net/wiki/index.php?title=' + title + '&action=edit&section=0">править</a>]</div>' + body.innerHTML; |
} | } | ||
} | } | ||
Строка 340: | Строка 258: | ||
/*</nowiki>*/ | /*</nowiki>*/ | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | /* | + | /************************************ Другое ***************************************** |
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
*/ | */ | ||
window.przyciskiOpisDone = false; | window.przyciskiOpisDone = false; | ||
var auto_comment = 0; | var auto_comment = 0; | ||
− | /* подгрузка файла со скриптами для редактирования ***************************************** | + | /************************ подгрузка файла со скриптами для редактирования ***************************************** |
*/ | */ | ||
if (document.URL.indexOf("action=edit") > 0 || document.URL.indexOf("action=submit") > 0) | if (document.URL.indexOf("action=edit") > 0 || document.URL.indexOf("action=submit") > 0) | ||
Строка 501: | Строка 270: | ||
if (wgCanonicalNamespace != "Special") | if (wgCanonicalNamespace != "Special") | ||
{ | { | ||
− | document.write('<script type="text/javascript" src="/ | + | document.write('<script type="text/javascript" src="/wiki/index.php?title=MediaWiki:Onlyifediting.js&action=raw&ctype=text/javascript&dontcountme=s"></script>'); |
} | } | ||
} | } | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
/* </code> */ | /* </code> */ |
Версия 11:35, 3 июня 2007
//Скрипт выполняющийся на каждой странице, доступен для изменения только сисопам. Если вы хотите внести изменения, пишите на странице обсуждения, либо на e-mail [[S.T.A.L.K.E.R._Inside_Wiki:Администраторы|тех. админа]]. /* <code javascript> */ function addLoadEvent( f ) { addOnloadHook( f ); } /******************************* Import module ************************************************************* * * Description: Includes a raw wiki page as javascript or CSS, * used for including user made modules. */ function importScript(page, lang) { var url = wgScriptPath + '/index.php?title=' + encodeURIComponent(page.replace(' ','_')) + '&action=raw&ctype=text/javascript&dontcountme=s'; /*if (lang)*/ url = 'http://' + /*lang +*/ 'stalkerin.gameru.net/wiki' + url; var s = document.createElement('script'); s.src = url; s.type='text/javascript'; document.getElementsByTagName('head')[0].appendChild(s); } /********************************* Tooltips and access keys *************************************************** */ ta = new Object(); ta["t-print"] = new Array("","Версия без кнопок, пригодная для распечатки"); ta["t-permalink"] = new Array("","Ссылка на текущую версию этой статьи"); /********************************* hasClass from en-wiki ****************************************************** */ var hasClass = (function () { var reCache = {}; return function (element, className) { return (reCache[className] ? reCache[className] : (reCache[className] = new RegExp("(?:\\s|^)" + className + "(?:\\s|$)"))).test(element.className); }; })(); /*************************************** Collapsible tables ********************************************************* * * Description: Allows tables to be collapsed, showing only the header. See * [[Wikipedia:NavFrame]]. * Maintainers: [[User:R. Koot]] */ var autoCollapse = 2; var collapseCaption = "скрыть"; var expandCaption = "показать"; function collapseTable( tableIndex ) { var Button = document.getElementById( "collapseButton" + tableIndex ); var Table = document.getElementById( "collapsibleTable" + tableIndex ); if ( !Table || !Button ) { return false; } var Rows = Table.getElementsByTagName( "tr" ); if ( Button.firstChild.data == collapseCaption ) { for ( var i = 1; i < Rows.length; i++ ) { Rows[i].style.display = "none"; } Button.firstChild.data = expandCaption; } else { for ( var i = 1; i < Rows.length; i++ ) { Rows[i].style.display = Rows[0].style.display; } Button.firstChild.data = collapseCaption; } } function createCollapseButtons() { var tableIndex = 0; var NavigationBoxes = new Object(); var Tables = document.getElementsByTagName( "table" ); for ( var i = 0; i < Tables.length; i++ ) { if ( hasClass( Tables[i], "collapsible" ) ) { NavigationBoxes[ tableIndex ] = Tables[i]; Tables[i].setAttribute( "id", "collapsibleTable" + tableIndex ); var Button = document.createElement( "span" ); var ButtonLink = document.createElement( "a" ); var ButtonText = document.createTextNode( collapseCaption ); Button.style.styleFloat = "right"; Button.style.cssFloat = "right"; Button.style.fontWeight = "normal"; Button.style.textAlign = "right"; Button.style.width = "6em"; ButtonLink.setAttribute( "id", "collapseButton" + tableIndex ); ButtonLink.setAttribute( "href", "javascript:collapseTable(" + tableIndex + ");" ); ButtonLink.appendChild( ButtonText ); Button.appendChild( document.createTextNode( "[" ) ); Button.appendChild( ButtonLink ); Button.appendChild( document.createTextNode( "]" ) ); var Header = Tables[i].getElementsByTagName( "tr" )[0].getElementsByTagName( "th" )[0]; /* only add button and increment count if there is a header row to work with */ if (Header) { Header.insertBefore( Button, Header.childNodes[0] ); tableIndex++; } } } for ( var i = 0; i < tableIndex; i++ ) { if ( hasClass( NavigationBoxes[i], "collapsed" ) || ( tableIndex >= autoCollapse && hasClass( NavigationBoxes[i], "autocollapse" ) ) ) { collapseTable( i ); } } } addOnloadHook( createCollapseButtons ); /** Dynamic Navigation Bars (experimental) ************************************* * * Description: See [[Wikipedia:NavFrame]]. * Maintainers: UNMAINTAINED */ // set up the words in your language var NavigationBarHide = '[' + collapseCaption + ']'; var NavigationBarShow = '[' + expandCaption + ']'; // set up max count of Navigation Bars on page, // if there are more, all will be hidden // NavigationBarShowDefault = 0; // all bars will be hidden // NavigationBarShowDefault = 1; // on pages with more than 1 bar all bars will be hidden var NavigationBarShowDefault = autoCollapse; // shows and hides content and picture (if available) of navigation bars // Parameters: // indexNavigationBar: the index of navigation bar to be toggled function toggleNavigationBar(indexNavigationBar) { var NavToggle = document.getElementById("NavToggle" + indexNavigationBar); var NavFrame = document.getElementById("NavFrame" + indexNavigationBar); if (!NavFrame || !NavToggle) { return false; } // if shown now if (NavToggle.firstChild.data == NavigationBarHide) { for ( var NavChild = NavFrame.firstChild; NavChild != null; NavChild = NavChild.nextSibling ) { if ( hasClass( NavChild, 'NavPic' ) ) { NavChild.style.display = 'none'; } if ( hasClass( NavChild, 'NavContent') ) { NavChild.style.display = 'none'; } } NavToggle.firstChild.data = NavigationBarShow; // if hidden now } else if (NavToggle.firstChild.data == NavigationBarShow) { for ( var NavChild = NavFrame.firstChild; NavChild != null; NavChild = NavChild.nextSibling ) { if (hasClass(NavChild, 'NavPic')) { NavChild.style.display = 'block'; } if (hasClass(NavChild, 'NavContent')) { NavChild.style.display = 'block'; } } NavToggle.firstChild.data = NavigationBarHide; } } // adds show/hide-button to navigation bars function createNavigationBarToggleButton() { var indexNavigationBar = 0; // iterate over all < div >-elements var divs = document.getElementsByTagName("div"); for( var i=0; NavFrame = divs[i]; i++ ) { // if found a navigation bar if (hasClass(NavFrame, "NavFrame")) { 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++ ) { if (hasClass(NavFrame.childNodes[j], "NavHead")) { NavFrame.childNodes[j].appendChild(NavToggle); } } NavFrame.setAttribute('id', 'NavFrame' + indexNavigationBar); } } // if more Navigation Bars found than Default: hide all if (NavigationBarShowDefault < indexNavigationBar) { for( var i=1; i<=indexNavigationBar; i++ ) { toggleNavigationBar(i); } } } addOnloadHook( createNavigationBarToggleButton ); /****************************** Делаем ссылку "править" для нулевой секции *****************************************<nowiki> */ var disable_zero_section = 0; function edit_zero_section() { var body = document.getElementById ('bodyContent'); if (disable_zero_section != 1 && body.innerHTML.match ('class="editsection"')) { var title = document.title.substr (0, document.title.lastIndexOf (' — ')); if (typeof encodeURIComponent == 'function') title = encodeURIComponent (title); body.innerHTML = '<div align="right" class="editsection" id="ca-edit-0">[<a href="http://stalkerin.gameru.net/wiki/index.php?title=' + title + '&action=edit&section=0">править</a>]</div>' + body.innerHTML; } } addOnloadHook(edit_zero_section); /*</nowiki>*/ /************************************ Другое ***************************************** */ window.przyciskiOpisDone = false; var auto_comment = 0; /************************ подгрузка файла со скриптами для редактирования ***************************************** */ if (document.URL.indexOf("action=edit") > 0 || document.URL.indexOf("action=submit") > 0) { if (wgCanonicalNamespace != "Special") { document.write('<script type="text/javascript" src="/wiki/index.php?title=MediaWiki:Onlyifediting.js&action=raw&ctype=text/javascript&dontcountme=s"></script>'); } } /* </code> */