মিডিয়াউইকি:Gadget-siteNotice.js
লক্ষ্য করুন: প্রকাশ করার পর, পরিবর্তনগুলো দেখতে আপনাকে আপনার ব্রাউজারের ক্যাশে পরিষ্কার করার প্রয়োজন হতে পারে।
- ফায়ারফক্স / সাফারি: পুনরায় লোড-এ ক্লিক করার সময় শিফট টিপে ধরে রাখুন, অথবা হয় Ctrl-F5 বা Ctrl-R টিপুন (ম্যাকে ⌘-R টিপুন)
- গুগল ক্রোম: Ctrl-Shift-R (ম্যাকে ⌘-Shift-R) টিপুন
- এজ: Ctrl ধরে রাখা অবস্থায় Refresh-এ ক্লিক করুন, অথবা Ctrl-F5 টিপুন।
- অপেরা: Ctrl-F5 টিপুন।
/*
* siteNotice
* The contents of Mediawiki:Sitenotice are always exposed to search engines.
* This gadget fixes the problem.
* @author ykhwong
* Reference: https://gerrit.wikimedia.org/r/plugins/gitiles/mediawiki/extensions/DismissableSiteNotice/+/master/modules/ext.dismissableSiteNotice.js
*/
$(function () {
var cookieName = 'dismissNewSiteNotice';
var sitenoticeId = '';
var dismissStr = "";
var noticeGrpPage = 'টেমপ্লেট:সাইটনোটিশ';
function html2text(html) {
var tag = document.createElement('div');
tag.innerHTML = html;
return tag.innerText;
}
function getDivHtml(html, target) {
var tag = document.createElement('div');
tag.innerHTML = html;
return $(tag).find(target).html();
}
function getDivText(html, target) {
var tag = document.createElement('div');
tag.innerHTML = html;
return $(tag).find(target).text().trim();
}
function procDismiss() {
$("#siteNoticeLocal").prepend('<div class="mw-dismissable-notice-close2">' +
'<a tabindex="0" role="button"><img src="https://up.wiki.x.io/wikipedia/commons/thumb/4/4a/X-schliessen.svg/16px-X-schliessen.svg.png" title="' + dismissStr + '">' +
'</a></div>');
if (/^bn\.m\.wikipedia\.org/.test(window.location.host)) {
$("#siteNoticeLocal").css(
{ 'position': 'relative',
'padding': '12px',
'padding-right': '12px',
'padding-bottom': '15px',
'background-color': '#e8eeff',
'border': '1px solid #ccd9ff'
}
);
$(".mw-dismissable-notice-close2").css(
{
'position': 'relative',
'top': '0px',
'right': '0px',
'text-align': 'right',
'float': 'right'
}
);
} else {
$("#siteNoticeLocal").css(
{ 'padding-top': '5px',
'padding-bottom': '5px',
'background-color': '#e8eeff',
'border': '1px solid #ccd9ff',
'margin-bottom': '5px'
}
);
$(".mw-dismissable-notice-close2").css(
{
'position': 'relative',
'top': '0px',
'right': '7px',
'text-align': 'right',
'float': 'right'
}
);
}
$( '.mw-dismissable-notice-close2' )
.css( 'visibility', 'visible' )
.find( 'a' )
.on( 'click keypress', function ( e ) {
if (
e.type === 'click' ||
e.type === 'keypress' && e.which === 13
) {
$("#siteNoticeLocal").hide();
$.cookie( cookieName, sitenoticeId, {
expires: 30,
path: '/'
} );
}
});
}
if (/bot|googlebot|crawler|spider|robot|crawling/i.test(navigator.userAgent)) {
$("#siteNotice").html("");
$(".noprint").html("");
$(".mw-jump-link").html("");
} else {
var api = new mw.Api();
api.parse(
new mw.Title( noticeGrpPage )
).then( function( html ) {
var gadgetSiteNotice = "";
var gadgetAnonnotice = "";
html = html.replace("mw-parser-output", "mw-dismissable-notice");
gadgetSiteNotice = getDivHtml(html, "#gadgetSiteNotice");
gadgetAnonnotice = getDivHtml(html, "#gadgetAnonnotice");
sitenoticeId = getDivText(html, "#sitenoticeId");
dismissStr = getDivText(html, "#dismissLabel");
if (mw.config.get('wgUserName') !== null) {
if(/\S/.test(html2text(gadgetSiteNotice).trim())) {
// If the user has the notice dismissal cookie set, exit.
if ( $.cookie( cookieName ) !== sitenoticeId ) {
$("#siteNotice").append('<div id="siteNoticeLocal">' + gadgetSiteNotice + '</div>');
procDismiss();
}
}
return;
}
if (html2text(gadgetAnonnotice).trim().length === 0) {
return;
} else if (/^\s*-\s*$/.test(html2text(gadgetAnonnotice).trim())) {
if(/\S/.test(html2text(gadgetSiteNotice).trim())) {
// If the user has the notice dismissal cookie set, exit.
if ( $.cookie( cookieName ) !== sitenoticeId ) {
$("#siteNotice").append('<div id="siteNoticeLocal">' + gadgetSiteNotice + '</div>');
procDismiss();
}
}
} else {
$("#siteNotice").append('<div id="siteNoticeLocal">' + gadgetAnonnotice + '</div>');
procDismiss();
}
});
}
}());