MediaWiki:Gadget-donate.js
Перейти к навигации
Перейти к поиску
Замечание: Возможно, после публикации вам придётся очистить кэш своего браузера, чтобы увидеть изменения.
- Firefox / Safari: Удерживая клавишу Shift, нажмите на панели инструментов Обновить либо нажмите Ctrl+F5 или Ctrl+R (⌘+R на Mac)
- Google Chrome: Нажмите Ctrl+Shift+R (⌘+Shift+R на Mac)
- Internet Explorer / Edge: Удерживая Ctrl, нажмите Обновить либо нажмите Ctrl+F5
- Opera: Нажмите Ctrl+F5.
/*
* Кампания по сбору пожертвований
* Автор — Saint Johann, 21 марта 2014 года
* Повышение безопасности, комменты — Урахара, 31 мая 2026 года
*/
(function($, mw) {
'use strict';
// Проверка существования глобальных переменных (безопасность)
if (typeof wgPageName === 'undefined' || typeof wgNamespaceNumber === 'undefined') {
return;
}
// Оригинальное условие
if (wgPageName != 'Циклопедия:Обращение 2018' && wgNamespaceNumber == '0') {
var donate = $('<div>', {class: 'donate'}),
donate_toggle;
// Проверка существования #top (улучшение надёжности)
if (!$('#top').length) {
return;
}
$('#top').after(
donate.append(
$('<div>', {class: 'donate-about'}).append(
$('<p>').text('Циклопедия была создана как инклюзионистский википроект, где можно писать нейтральные в истинном смысле этого слова научно-популярные статьи на любые, в том числе — необычные, темы. За 7 лет проект добился значительных успехов:')
)
).append(
$('<ul>', {class: 'donate-stats'})
.append($('<li>').html('<small>более</small> <b>64 000</b> статей,'))
.append($('<li>').html('<small>до</small> <b>50 000</b> посещений за сутки и'))
.append($('<li>').html('<small>около</small> <b>1,6 млн</b> просмотров за месяц.</li>'))
).append(
$('<div>', {class: 'donate-why'})
.append($('<p>').html('Но возрастающая популярность требует и большей оплаты, поэтому мы обращаемся к вам с просьбой о материальной помощи. Нам необходимо собрать <big><b>50 000</b> <span class="donate-rub">Р</span></big> для продолжения стабильного обслуживания технической части.'))
.append(
$('<div>', {class: 'donate-btn'}).append(
$('<a>', {
href: '/wiki/Циклопедия:Обращение 2018',
id: 'js-donate-btn'
}).text('Прочитать полное обращение')
)
)
).append(
$('<div>', {class: 'donate-how'}).append(
$('<span>').text('Пожертвуйте проекту:')
.append($('<img>', {
alt: 'WebMoney (WMR / WMZ)',
src: '//i.imgur.com/pPStTEY.png',
title: 'WebMoney (WMR / WMZ)'
}))
.append($('<img>', {
alt: 'Яндекс.Деньги',
src: '//i.imgur.com/9RqzUsf.gif',
title: 'Яндекс.Деньги'
}))
.append($('<img>', {
alt: 'Qiwi',
src: '//i.imgur.com/qIz4RpT.png',
title: 'Qiwi'
}))
.append($('<img>', {
alt: 'Paypal',
src: '//i.imgur.com/iyzliF0.png',
title: 'Paypal'
}))
).append(donate_toggle = $('<button>', {class: 'donate-toggle'}))
)
);
// Логика localStorage
if (localStorage.getItem('donate') != '0') {
donate_toggle.addClass('donate-close').attr('id', 'js-donate-close').text('×');
} else {
donate.addClass('donate_hided');
donate_toggle.addClass('donate-open').attr('id', 'js-donate-open').text('↑');
}
// Безопасный переход с проверкой на XSS
$(document).on('click', '.donate-about, .donate-stats, .donate-why, .donate-how span', function() {
var href = $('#js-donate-btn').attr('href');
// Защита от javascript: и data: протоколов
if (href && !/^(javascript|data|vbscript):/i.test(href.trim())) {
window.location = href;
}
return false;
});
// Обработчики закрытия/открытия
$(document).on('click', '#js-donate-close', function() {
$('.donate').addClass('donate_hided');
$(this).attr({
class: 'donate-toggle donate-open',
id: 'js-donate-open'
}).text('↑');
localStorage.setItem('donate', '0');
});
$(document).on('click', '#js-donate-open', function() {
$('.donate').removeClass('donate_hided');
$(this).attr({
class: 'donate-toggle donate-close',
id: 'js-donate-close'
}).text('×');
localStorage.setItem('donate', '1');
});
}
})(jQuery, mediaWiki);