Авто-обновление страницы вики-активности[]
var ajaxIndicator = 'http://images.wikia.com/dev/images/8/82/Facebook_throbber.gif',
ajaxTimer,
ajaxRefresh = 60000,
refreshText = 'Авто-Обновление',
refreshHover = 'Включить авто-обновление страницы',
doRefresh = true;
if ( !window.ajaxPages ) {
var ajaxPages = new Array ("Служебная:RecentChanges", "Служебная:WikiActivity", "Служебная:NewFiles");
}
if ( !window.ajaxCallAgain ) {
var ajaxCallAgain = [];
}
if( typeof AjaxRCRefreshText == "string" ) {
refreshText = AjaxRCRefreshText;
}
if( typeof AjaxRCRefreshHoverText == "string" ) {
refreshHover = AjaxRCRefreshHoverText;
}
Кнопка "purge"[]
importScriptPage( 'PurgeButton/code.js', 'dev' ); // Кнопка очистки кэша страницы
var PurgeButtonText = 'Обновить';
Изображения в профайлах[]
var img = {};
img["Jormun"] = ['<img src="http://images.wikia.com/elderscrolls/ru/images/9/9a/Odaviing_profile.png?uselang=ru" width="250px" height="150px">'];
if (typeof img[wgTitle] != "undefined") {
$('<div style="position:absolute; left:580px; top: 53px;">' + img[wgTitle] + '</div>').appendTo('.masthead-info');
}
Викификатор[]
function addWikifButton() {
var toolbar = document.getElementById('toolbar')
if (!toolbar) return
var i = document.createElement('img')
i.src = 'http://upload.wikimedia.org/wikisource/ru/d/d1/Button-wikifikator.png'
i.alt = i.title = 'викификатор'
i.onclick = Wikify
i.style.cursor = 'pointer'
toolbar.appendChild(i)
}
if (wgAction == 'edit' || wgAction == 'submit') {
importScriptURI('http://ru.wikipedia.org/w/index.php?title=MediaWiki:Wikificator.js&action=raw&ctype=text/javascript')
addOnloadHook(addWikifButton)
}
Стандартное описание правок[]
//вызов функции вставки кнопок быстрого описания правки при загрузке страницы
addOnloadHook(SummaryButtons)
//список кнопок
function SummaryButtons(){
var wpSummary = document.getElementById('wpSummary')
if (!wpSummary || (wpSummary.form.wpSection && wpSummary.form.wpSection.value == 'new')) return
wpSummaryBtn = document.createElement('span') //global var
wpSummaryBtn.id = 'userSummaryButtonsA'
// +Рекомендация
var wpSummaryBtnRec = document.createElement('i');
wpSummaryBtnRec.appendChild(document.createTextNode('Пожалуйста, если вы не торопитесь, опишите вашу правку:'));
wpSummaryBtnRec.appendChild(document.createElement('br'));
wpSummaryBtn.appendChild(wpSummaryBtnRec);
wpSummary.parentNode.insertBefore(wpSummaryBtn, wpSummary.nextSibling);
wpSummary.parentNode.insertBefore(document.createElement('br'), wpSummary.nextSibling);
addSumButton('новости', 'новости', 'Учтены последние новости');
addSumButton('викификация', 'викификация', 'Произведена викификация');
addSumButton('частичная викификация', 'частичная викификация', 'Была нажата одна кнопочка');
addSumButton('правила', 'правила', 'Согласно правил');
addSumButton('оформление', 'оформление', 'Оформление');
addSumButton('стиль', 'стилевые правки', 'Стилевые правки');
addSumButton('грамматика', 'грамматика', 'Поправлена орфография/пунктуация');
addSumButton('категоризация', 'категоризация', 'Изменены/добавлены категории');
addSumButton('шаблон', 'шаблон', 'Добавлен/изменён шаблон');
addSumButton('дополнение', 'дополнение', 'Добавлены новые сведения');
addSumButton('уточнение', 'уточнение', 'Уточнение');
addSumButton('иллюстрирование', 'иллюстрирование', 'Размещена/изменена иллюстрация');
addSumButton('обновление', 'обновление сведений', 'Обновлены устаревшие сведения');
addSumButton('разметка', 'правка разметки', 'Изменение разметки');
addSumButton('лишнее', 'лишнее', 'Действительно лишнее');
addSumButton('интервики', 'интервики', 'Интервики тоже нужны');
addSumButton('замена изображения', 'замена изображения', 'Замена изображения');
addSumButton('шаблонофикация', 'шаблонофикация', 'шаблонофикация');
addSumButton('ашыпки', 'ашыпки', 'Обнаружены ошибки');
addSumButton('сомнения', 'сомнения', 'Сомнения по статье');
addSumButton('другая ссылка', 'другая ссылка', 'Замена ссылки');
}
//код вставки кнопок быстрого описания
function addSumButton(name, text, title) {
var btn = document.createElement('a');
btn.appendChild(document.createTextNode(name));
btn.title = title;
btn.onclick = function(){insertSummary(text)};
wpSummaryBtn.appendChild(btn);
wpSummaryBtn.appendChild(document.createTextNode(' '));
}
//код вставки описания
function insertSummary(text) {
var wpSummary = document.getElementById('wpSummary')
if (wpSummary.value.indexOf(text) != -1) return
if (wpSummary.value.match(/[^,; \/]$/)) wpSummary.value += ','
if (wpSummary.value.match(/[^ ]$/)) wpSummary.value += ' '
wpSummary.value += text
}
Кнопка "Наверх"[]
//Created by Noemon from Dead Space Wiki, translate from ru.elderscrolls.wikia
function hideFade () {
// hide #backtotop first
$( "#backtotop" ).hide ();
// fade in #backtotop
$( function () {
$( window ).scroll( function () {
if ( $( this ).scrollTop () > ButtonStart ) {
$( '#backtotop' ).fadeIn ();
} else {
$( '#backtotop' ).fadeOut ();
}
});
});
}
function goToTop (){
// scroll body to 0px on click
$( 'body,html' ).animate ({
scrollTop: 0
}, ScrollSpeed );
return false;
}
function addBackToTop () {
if( skin == 'oasis' ) {
$('<li id="backtotop" style="position: absolute; right:20px; top:0px; border:none;"><button type="button" value="Наверх" onClick="goToTop();">Наверх</button></li>').appendTo('#WikiaBarWrapper .toolbar > .tools');
hideFade ();
}
}
var ButtonStart = 800;
var ScrollSpeed = 600;
if( !window.BackToTop ) {
$( document ).ready( function () {
addBackToTop ();
});
}
var BackToTop = true; // prevent duplication
Рандомный фон[]
/* "Случайный" фон для вики */
function randomBack () {
var opts = [ /* тут вставляем url адреса фоновых картинок, берём их в кавычки и проставляем через запятую */];
if (wgPageName=='Main_Page') {
$('body').css('background-image','url(' + opts[0] + ')');
$('body').css('background-size','120%');
}
else
$('body').css('background-image','url(' + opts[Math.floor((opts.length-1)*Math.random()+1)] + ')');
}
$(randomBack)
Сворачивающаяся галерея[]
<div = HiddenGallery>{{{1}}}</div>
var showCount = 9;
$('.wikia-gallery').each(function () {
if (($(this).children().size() + 2) > showCount) {
var CurrentGallery = $(this);
$(this).children('.wikia-gallery-item').slice(showCount).hide();
$(this).children('.wikia-gallery-item').last().after($('<center><button class="wikia-button">Показать/скрыть</button><br></center>').click(function () {
CurrentGallery.children('.wikia-gallery-item').slice(showCount).slideToggle('slow');
}));
}
});
Табличка у участника на профайле[]
// Код написан: Rappy_4187 для elderscrolls.
$(function() {
var rights = {};
rights["имя участника"] = ["текст"];
if (typeof rights[wgTitle] != "undefined") {
// remove old rights
$('.UserProfileMasthead .masthead-info span.tag').remove();
for( var i=0, len=rights[wgTitle].length; i < len; i++) {
// add new rights
$('<span class="tag">' + rights[wgTitle][i] +
'</span>').appendTo('.masthead-info hgroup');
}
}
});
Картинка в профайл[]
var img = {};
img["имя участника"] = ['<img src="адрес картинки" width="110px" height="150px">'];
if (typeof img[wgTitle] != "undefined") {
$('<div style="position:absolute; left:630px; top: 38px;">' + img[wgTitle] + '</div>').appendTo('.masthead-info');
}
Часы[]
var refreshDate;
function showTime() {
var now = new Date(),
hh = now.getHours(),
mm = now.getMinutes(),
ss = now.getSeconds(),
time = ( hh < 10 ? '0' + hh : hh ) + ':' + ( mm < 10 ? '0' + mm : mm ) + ':' + ( ss < 10 ? '0' + ss : ss );
$('#showdate').empty().append('<span class="barDate" style="text-transform: uppercase;"><a style="color:#FFF;font-family:\'Futura\', \'Gill Sans\', \'Helvetica Neue\',\'Trebuchet MS\', sans-serif" title="Purge the server cache and update the contents of this page." href="' + wgArticlePath.replace('$1', wgPageName.replace(/ /g, '_')) + '?action=purge">' + time + '</a></span>');
window.clearTimeout(refreshDate);
refreshDate = window.setTimeout(showTime, 1000);
}
$(document).ready(function() {
if (skin == 'oasis')
$('<li id="displayTimer"><span id="showdate"></span></li>').appendTo('#AccountNavigation');
else
$('#p-personal ul').prepend('<li><span id="showdate"></span></li>');
showTime();
refreshDate = window.setTimeout(showTime, 1000);
$('#displayTimer').css({ color: '#FFF', fontWeight: 'normal', fontSize: '10px', letterSpacing: '2px', marginLeft: '3px' })
});
Effects:
importArticle({
type: "script",
articles: [
"MediaWiki:Snow.js"
],
});
Таймер[]
// Таймер
// *****************************************************
// * Experimental javascript countdown timer (Splarka) *
// * Version 0.0.3 *
// *****************************************************
//
// Usage example:
// <span class="countdown" style="display:none;">
// Only <span class="countdowndate">January 01 2007 00:00:00 PST</span> until New years.
// </span>
// <span class="nocountdown">Javascript disabled.</span>
function updatetimer(i) {
var now = new Date();
var then = timers[i].eventdate;
var diff = count = Math.floor((then.getTime() - now.getTime()) / 1000);
// catch bad date strings
if (isNaN(diff)) {
timers[i].firstChild.nodeValue = '** ' + timers[i].eventdate + ' **';
return;
}
// determine plus/minus
if (diff < 0) {
diff = -diff;
var tpm = '';''
} else {
var tpm = '';''
}
// Calculate the diff - Modified by Eladkse
if ((diff % 60) == 1) {
left = (diff % 60) + ' секунды';
} else {
left = (diff % 60) + ' секунда';
}
diff = Math.floor(diff / 60);
if (diff > 0) {
if ((diff % 60) == 1) {
left = (diff % 60) + ' минута, и ' + left;
} else {
left = (diff % 60) + ' минут, и ' + left;
}
}
diff = Math.floor(diff / 60);
if (diff > 0) {
if ((diff % 24) == 1) {
left = (diff % 24) + ' час, ' + left;
} else {
left = (diff % 24) + ' часов, ' + left;
}
}
diff = Math.floor(diff / 24);
if (diff > 0) {
if (diff == 1) {
left = diff + ' день, ' + left;
} else {
left = diff + ' дней, ' + left;
}
}
timers[i].firstChild.nodeValue = tpm + left;
// a setInterval() is more efficient, but calling setTimeout()
// makes errors break the script rather than infinitely recurse
timeouts[i] = setTimeout('updatetimer(' + i + ')', 1000);
}
function checktimers() {
//hide 'nocountdown' and show 'countdown'
var nocountdowns = getElementsByClassName(document, 'span', 'nocountdown');
for (var i in nocountdowns) nocountdowns[i].style.display = 'none'
var countdowns = getElementsByClassName(document, 'span', 'countdown');
for (var i in countdowns) countdowns[i].style.display = 'inline'
//set up global objects timers and timeouts.
timers = getElementsByClassName(document, 'span', 'countdowndate'); //global
timeouts = new Array(); // generic holder for the timeouts, global
if (timers.length == 0) return;
for (var i in timers) {
timers[i].eventdate = new Date(timers[i].firstChild.nodeValue);
updatetimer(i); //start it up
}
}
addOnloadHook(checktimers);
Сложный таймер[]
//Сложный таймер
importArticles({
type: "script",
articles: ["w:c:ru.sword-art-online:MediaWiki:RepeatableTimer.js"]
});
Поделиться[]
importScriptPage('SocialIcons/code.js','dev');
Дополнительные кнопки на панели редактирования исходного кода[]
mwCustomEditButtons[mwCustomEditButtons.length] = {
"imageFile": "url картинки для кнопки",
"speedTip": "Текст при наведении",
"tagOpen": "открывающий элемент",
"tagClose": "закрывающий элемент",
"sampleText": "Текст между элементами по умолчанию"
};