MediaWiki:Gadget-statuses.js
Перейти к навигации
Перейти к поиску
Замечание: Чтобы после сохранения вступили в силу изменения стилей, перезагрузите файл //traditio.wiki/w/load.php?debug=false&lang=ru&modules=site&only=styles&skin=vector&*, если используете скин Vector, или //traditio.wiki/w/load.php?debug=false&lang=ru&modules=site&only=styles&skin=common&*, если используете скин Common.
Чтобы вступили в силу изменения скриптов, перезагрузите файл //traditio.wiki/w/load.php?debug=false&lang=ru&modules=site&only=scripts&skin=vector&*, если используете скин Vector, или //traditio.wiki/w/load.php?debug=false&lang=ru&modules=site&only=scripts&skin=common&*, если используете скин Common.
Гаджеты и импортируемые скрипты загружаются отдельными файлами.
/*
* Показ статусов в сетях связи:
*
* *) показывает значок статуса ICQ в шаблоне {{ICQ}}
*
* *) показывает значок статуса Skype в шаблоне {{Skype}}
*
* *) показывает консоль для отслеживания статуса игры Quake II
* на странице [[Quake II Deathmatch]]
*/
$(function(){
// ICQ status background
$('span.ICQ').each(function(){
var ICQURL = 'http://status.icq.com/online.gif?icq=' + this.id + '&img=5';
$(this).css({
'padding' : '0 0 0 20px',
'background-image': 'url(' + ICQURL + ')',
'background-repeat': 'no-repeat'
});
});
// Skype status
$('span.skypeTemplate').each(function(){
var $this = $(this);
var username = $this.find('span.skypeUserName').text();
// А теперь защита от взлома Традиции, совершаемого впрыскиванием левого кода.
// По адресу https://login.skype.com/account/signup-form сказано:
// What is my Skype Name?
// Your Skype Name is your unique username for Skype.
// It must be between 6-32 characters, start with a letter
// and contain only letters and numbers (no spaces or special characters).
if (username.match(/^[a-zA-Z][a-zA-Z01-9-]{5,31}$/) === null) return;
$this.html(
'<a href="skype:' + username + '?call" class="val-3"><img ' +
'src="http://mystatus.skype.com/smallicon/' + username + '" ' +
'width="16" height="16" alt="[Skype status]" title=""></a> ' +
'<a href="skype:' + username + '?call"><span class="skypeUserName">' +
username + '</span></a>'
);
});
// Quake II consoles
$('span.quake2traditio').each(function(){
var $this = $(this);
// проверяем, действительно ли указано имя сервера
// (защита от взлома Традиции, совершаемого впрыскиванием левого кода)
// имя.имя.имя...имя:порт, где имя == [a-zA-Z01-9][a-zA-Z01-9-]*
// а порт не обязателен
var TheText = $this.text();
if (TheText.match(/^([a-zA-Z01-9][a-zA-Z01-9-]*\.)+([a-zA-Z01-9][a-zA-Z01-9-]*)(:[1-9][01-9]*)?$/)
=== null)
{
// не сервер:
$this.html('<b>' + TheText + ' не является сервером Quake II</b>');
} else {
// сервер:
$this.html('<embed style="width: 100%;" height=388 type="application/x-q3plug-plugin" ' +
'name="' + TheText + '" color="#ffeedd" color2="#88ff88" game="Q2" ' +
'pluginspage="http://members.liwest.at/mb/q3plug" />');
} // конец проверки того, действительно ли указано имя сервера
});
});