Если вы заметили ошибку, опечатку, или можете дополнить статью — правьте смело! Сначала необходимо зарегистрироваться (быстро и бесплатно). Затем нажмите кнопку «править» в верхней части страницы и внесите изменения. О том, как загружать иллюстрации, создавать новые статьи и о многом другом можно прочитать в справке.
MediaWiki:Common.js: различия между версиями
Материал из Товики — томской вики
Нет описания правки |
мНет описания правки |
||
Строка 299: | Строка 299: | ||
*/ | */ | ||
var mpTitle = " | var mpTitle = "Товики"; | ||
var isMainPage = (document.title.substr(0, document.title.lastIndexOf(" — ")) == mpTitle); | var isMainPage = (document.title.substr(0, document.title.lastIndexOf(" — ")) == mpTitle); | ||
var isDiff = (document.location.search && (document.location.search.indexOf("diff=") != -1 || document.location.search.indexOf("oldid=") != -1)); | var isDiff = (document.location.search && (document.location.search.indexOf("diff=") != -1 || document.location.search.indexOf("oldid=") != -1)); |
Версия от 22:01, 16 марта 2007
/* Execute function on page load ********************************************* * * Description: Wrapper around addOnloadHook() for backwards compatibility. * Will be removed in the near future. */ function addLoadEvent( f ) { addOnloadHook( f ); } /** Internet Explorer bug fix ************************************************** */ if (window.showModalDialog && document.compatMode && document.compatMode == "CSS1Compat") { var oldWidth; var docEl = document.documentElement; function fixIEScroll() { if (!oldWidth || docEl.clientWidth > oldWidth) doFixIEScroll(); else setTimeout(doFixIEScroll, 1); oldWidth = docEl.clientWidth; } function doFixIEScroll() { docEl.style.overflowX = (docEl.scrollWidth - docEl.clientWidth < 4) ? "hidden" : ""; } document.attachEvent("onreadystatechange", fixIEScroll); attachEvent("onresize", fixIEScroll); } /** Tooltips and access keys *************************************************** */ ta = new Object(); ta['pt-userpage'] = new Array('.','Моя страница пользователя'); ta['pt-anonuserpage'] = new Array('.','Страница пользователя для моего IP'); ta['pt-mytalk'] = new Array('n','Моя страница обсуждений'); ta['pt-anontalk'] = new Array('n','Страница обсуждений для моего IP'); ta['pt-preferences'] = new Array('','Мои настройки'); ta['pt-watchlist'] = new Array('l','Список страниц моего наблюдения'); ta['pt-mycontris'] = new Array('y','Список страниц, которые я редактировал'); ta['pt-login'] = new Array('o','Здесь можно зарегистрироваться в системе, но это необязательно'); ta['pt-anonlogin'] = new Array('o','Здесь можно зарегистрироваться в системе, но это необязательно'); ta['pt-logout'] = new Array('','Завершить зарегистрированный сеанс'); ta['ca-talk'] = new Array('t','Обсуждение статьи'); ta['ca-edit'] = new Array('e','Эту статью можно изменять. Перед сохранением изменений, пожалуйста, нажмите кнопку предварительного просмотра для визуальной проверки результата'); ta['ca-addsection'] = new Array('+','Добавить комментарий к обсуждению'); ta['ca-viewsource'] = new Array('e','Эта страница защищена от изменений, но вы можете посмотреть и скопировать её исходный текст'); ta['ca-history'] = new Array('h','Журнал изменений страницы'); ta['ca-protect'] = new Array('=','Защитить страницу от изменений'); ta['ca-unprotect'] = new Array('','Разрешить изменение страницы'); ta['ca-delete'] = new Array('d','Удалить эту страницу'); ta['ca-undelete'] = new Array('d','Восстановить исправления страницы, сделанные до того, как она была удалена'); ta['ca-move'] = new Array('m','Переименовать страницу'); ta['ca-nomove'] = new Array('','У вас не хватает прав, чтобы переименовать эту страницу'); ta['ca-watch'] = new Array('w','Добавить эту страницу в ваш список наблюдения'); ta['ca-unwatch'] = new Array('','Удалить эту страницу из вашего списка наблюдения'); ta['search'] = new Array('f','Искать это слово'); ta['p-logo'] = new Array('','Заглавная страница'); ta['n-mainpage'] = new Array('z','Перейти на заглавную страницу'); ta['n-portal'] = new Array('','О проекте, о том, что вы можете сделать, где что находится'); ta['n-currentevents'] = new Array('','Список текущих событий'); ta['n-recentchanges'] = new Array('r','Список последних изменений в Википедии'); ta['n-randompage'] = new Array('x','Посмотреть случайную страницу'); ta['n-help'] = new Array('','Справочник по Википедии'); ta['n-sitesupport'] = new Array('','Поддержите проект'); ta['t-whatlinkshere'] = new Array('j','Список всех страниц в Википедии, которые ссылаются на эту страницу'); ta['t-recentchangeslinked'] = new Array('k','Последние изменения в страницах, на которые ссылается эта страница'); ta['feed-rss'] = new Array('','Трансляция в RSS для этой страницы'); ta['feed-atom'] = new Array('','Трансляция в Atom для этой страницы'); ta['t-contributions'] = new Array('','Список страниц, которые изменял этот участник'); ta['t-emailuser'] = new Array('','Послать письмо этому участнику'); ta['t-upload'] = new Array('u','Загрузить изображения или мультимедиа-файлы'); ta['t-specialpages'] = new Array('q','Список служебных страниц'); ta['t-print']=new Array('', 'Версия без кнопок, пригодная для распечатки'); ta['t-permalink'] = new Array('', 'Ссылка на текущую версию этой статьи'); ta['ca-nstab-main'] = new Array('c','Содержание статьи'); ta['ca-nstab-user'] = new Array('c','Персональная страница участника'); ta['ca-nstab-media'] = new Array('c','Мультимедиа-файл'); ta['ca-nstab-special'] = new Array('','Это служебная страница, она недоступна для редактирования'); ta['ca-nstab-wp'] = new Array('a','Страница проекта'); ta['ca-nstab-image'] = new Array('c','Страница изображения'); ta['ca-nstab-mediawiki'] = new Array('c','Страница сообщения MediaWiki'); ta['ca-nstab-template'] = new Array('c','Страница шаблона'); ta['ca-nstab-help'] = new Array('c','Страница справки'); ta['ca-nstab-category'] = new Array('c','Страница категории'); ta['ca-nstab-Портал'] = new Array('c','Страница портала'); /** Interwiki links to featured articles *************************************** * * Описание: Ставит звёздочки для избранных иноязычных статей, а заодно и даёт картинку для статуса ICQ */ /** Dynamic Navigation Bars (experimental) ************************************* * */ // set up the words in your language var NavigationBarHide = ' [скрыть]'; var NavigationBarShow = ' [показать]'; // 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 = 3; // 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 (NavChild.className == 'NavPic') { NavChild.style.display = 'none'; } if (NavChild.className == '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 (NavChild.className == 'NavPic') { NavChild.style.display = 'block'; } if (NavChild.className == '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 for( var i=0; NavFrame = document.getElementsByTagName("div")[i]; i++ ) { // if found a navigation bar if (NavFrame.className == "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 (NavFrame.childNodes[j].className == "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 ); /** Collapsible tables ********************************************************* * * Description: Allows tables to be collapsed, show only the header. See * [[Wikipedia:NavFrame]]. */ var autoCollapse = 2; var collapseCaption = "скрыть"; var expandCaption = "показать"; function hasClass( element, className ) { var Classes = element.className.split( " " ); for ( var i = 0; i < Classes.length; i++ ) { if ( Classes[i] == className ) { return ( true ); } } return ( false ); } 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 = "left"; Button.style.cssFloat = "left"; Button.style.fontWeight = "normal"; Button.style.textAlign = "left"; 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]; 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 ); /** Main Page ******************************************************* <nowiki> * */ var mpTitle = "Товики"; var isMainPage = (document.title.substr(0, document.title.lastIndexOf(" — ")) == mpTitle); var isDiff = (document.location.search && (document.location.search.indexOf("diff=") != -1 || document.location.search.indexOf("oldid=") != -1)); if (isMainPage && !isDiff) { document.write('<style type="text/css">/*<![CDATA[*/ #contentSub, h1.firstHeading { display: none !important; } /*]]>*/</style>'); } /** "Technical restrictions" title fix ***************************************** */ // For pages that have something like Template:Lowercase, replace the title, but only if it is cut-and-pasteable as a valid wikilink. // (for instance [[iPod]]'s title is updated. <nowiki>But [[C#]] is not an equivalent wikilink, so [[C Sharp]] doesn't have its main title changed)</nowiki> // // The function looks for a banner like this: <nowiki> // <div id="RealTitleBanner"> <!-- div that gets hidden --> // <span id="RealTitle">title</span> // </div> // </nowiki>An element with id=DisableRealTitle disables the function. // similar to innerHTML, but only returns the text portions of the insides, excludes HTML function pickUpText(aParentElement) { var str = ""; function pickUpTextInternal(aElement) { var child = aElement.firstChild; while (child) { if (child.nodeType == 1) // ELEMENT_NODE pickUpTextInternal(child); else if (child.nodeType == 3) // TEXT_NODE str += child.nodeValue; child = child.nextSibling; } } pickUpTextInternal(aParentElement); return str; } var disableRealTitle = 0; // users can disable this by making this true from their monobook.js addOnloadHook(function() { try { var realTitleBanner = document.getElementById("RealTitleBanner"); if (realTitleBanner && !document.getElementById("DisableRealTitle") && !disableRealTitle) { var realTitle = document.getElementById("RealTitle"); if (realTitle) { var realTitleHTML = realTitle.innerHTML; realTitleText = pickUpText(realTitle); var isPasteable = 0; //var containsHTML = /</.test(realTitleHTML); // contains ANY HTML var containsTooMuchHTML = /</.test( realTitleHTML.replace(/<\/?(sub|sup|small|big)>/gi, "") ); // contains HTML that will be ignored when cut-n-pasted as a wikilink // calculate whether the title is pasteable var verifyTitle = realTitleText.replace(/^ +/, ""); // trim left spaces verifyTitle = verifyTitle.charAt(0).toUpperCase() + verifyTitle.substring(1, verifyTitle.length); // uppercase first character // if the namespace prefix is there, remove it on our verification copy. If it isn't there, add it to the original realValue copy. if (wgNamespaceNumber != 0) { if (wgCanonicalNamespace == verifyTitle.substr(0, wgCanonicalNamespace.length).replace(/ /g, "_") && verifyTitle.charAt(wgCanonicalNamespace.length) == ":") { verifyTitle = verifyTitle.substr(wgCanonicalNamespace.length + 1); } else { realTitleText = wgCanonicalNamespace.replace(/_/g, " ") + ":" + realTitleText; realTitleHTML = wgCanonicalNamespace.replace(/_/g, " ") + ":" + realTitleHTML; } } // verify whether wgTitle matches verifyTitle = verifyTitle.replace(/^ +/, "").replace(/ +$/, ""); // trim left and right spaces verifyTitle = verifyTitle.replace(/_/g, " "); // underscores to spaces verifyTitle = verifyTitle.charAt(0).toUpperCase() + verifyTitle.substring(1, verifyTitle.length); // uppercase first character isPasteable = (verifyTitle == wgTitle); var h1 = document.getElementsByTagName("h1")[0]; if (h1 && isPasteable) { h1.innerHTML = containsTooMuchHTML ? realTitleText : realTitleHTML; if (!containsTooMuchHTML) realTitleBanner.style.display = "none"; } document.title = realTitleText + " — Товики"; } } } catch (e) { /* Something went wrong. */ } }); /* Замена неправильного заголовка правильным by SergV ***************************************** */ // Все неправильные заголовки title_restr_alerts = ["trestrictions_replace", "trestrictions_alert"]; // Только шаблон title //title_restr_alerts = ["trestrictions_replace"]; function display_correct_title () { var title_restr_alert1, a1; if (document.getElementsByTagName && document.getElementById) { for(var i=0; i < title_restr_alerts.length; i++) { title_restr_alert1 = title_restr_alerts[i]; a1 = document.getElementById(title_restr_alert1); if(a1) { ct = document.getElementById("trestrictions_correct"); if(ct) { document.getElementsByTagName("h1")[0].innerHTML = ct.innerHTML; a1.style.display = "none"; document.getElementById("trestrictions_replaced").style.display = "block"; } break; } } } } addOnloadHook(display_correct_title); /* Другое ***************************************** */ 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="/w/index.php?title=MediaWiki:Onlyifediting.js&action=raw&ctype=text/javascript&dontcountme=s"></script>'); } }