MediaWiki:Common.js: Difference between revisions
Appearance
EkramHossen (talk | contribs) No edit summary |
EkramHossen (talk | contribs) No edit summary Tag: Reverted |
||
| Line 58: | Line 58: | ||
} | } | ||
} | } | ||
}); | |||
}); | |||
mw.loader.using('mediawiki.api', function () { | |||
$(document).ready(function () { | |||
// Override default search suggestions | |||
var $searchInput = $('#searchInput'); | |||
$searchInput.on('input', function () { | |||
var query = $searchInput.val(); | |||
if (query.length < 2) return; | |||
new mw.Api().get({ | |||
action: 'query', | |||
generator: 'prefixsearch', | |||
gpssearch: query, | |||
gpsnamespace: 0, | |||
gpslimit: 5, | |||
prop: 'pageimages', | |||
piprop: 'thumbnail', | |||
pithumbsize: 50, | |||
format: 'json' | |||
}).done(function (data) { | |||
var $resultsBox = $('#searchResultsBox'); | |||
if ($resultsBox.length === 0) { | |||
$resultsBox = $('<div id="searchResultsBox"></div>').css({ | |||
'position': 'absolute', | |||
'background': '#fff', | |||
'border': '1px solid #ccc', | |||
'z-index': 1000, | |||
'width': $searchInput.outerWidth() | |||
}).insertAfter($searchInput); | |||
} | |||
$resultsBox.empty(); | |||
if (data.query && data.query.pages) { | |||
var pages = Object.values(data.query.pages); | |||
pages.forEach(function (page) { | |||
var thumb = page.thumbnail ? page.thumbnail.source : 'https://upload.wikimedia.org/wikipedia/commons/6/65/No-Image-Placeholder.svg'; | |||
var $item = $('<div></div>').css({ | |||
'display': 'flex', | |||
'align-items': 'center', | |||
'padding': '5px', | |||
'cursor': 'pointer' | |||
}); | |||
var $img = $('<img>').attr('src', thumb).css({ | |||
'width': '40px', | |||
'height': '40px', | |||
'margin-right': '8px', | |||
'object-fit': 'cover' | |||
}); | |||
var $title = $('<span></span>').text(page.title); | |||
$item.append($img).append($title); | |||
$item.on('click', function () { | |||
window.location.href = mw.util.getUrl(page.title); | |||
}); | |||
$resultsBox.append($item); | |||
}); | |||
} | |||
}); | |||
}); | |||
// Hide results when clicking outside | |||
$(document).on('click', function (e) { | |||
if (!$(e.target).closest('#searchInput, #searchResultsBox').length) { | |||
$('#searchResultsBox').remove(); | |||
} | |||
}); | |||
}); | }); | ||
}); | }); | ||
Revision as of 00:05, 27 August 2025
var script = document.createElement("script");
script.setAttribute("async", "");
script.src = "https://www.googletagmanager.com/gtag/js?id=G-7H19MR0RZG";
document.head.appendChild(script);
window.dataLayer = window.dataLayer || [];
function gtag(){dataLayer.push(arguments);}
gtag('js', new Date());
gtag('config', 'G-7H19MR0RZG');
// Recently Added Profiles Widget
mw.loader.using('mediawiki.api').then(function () {
var api = new mw.Api();
api.get({
action: 'query',
list: 'recentchanges',
rcnamespace: 0, // Main namespace only
rctype: 'new',
rclimit: 5,
rcprop: 'title|timestamp',
format: 'json'
}).done(function (data) {
var container = document.getElementById('recent-pages');
if (!container) return;
var html = '<ul>';
data.query.recentchanges.forEach(function (page) {
var title = page.title;
var url = mw.util.getUrl(title);
html += '<li><a href="' + url + '">' + title + '</a></li>';
});
html += '</ul>';
container.innerHTML = html;
}).fail(function () {
var container = document.getElementById('recent-pages');
if (container) {
container.innerHTML = 'Unable to load recent pages.';
}
});
});
mw.loader.using('jquery', function () {
$(function () {
if (!$('#promo-banner').length) {
var promoContainer = $('<div id="promo-banner-container"></div>');
var promo = $('<div id="promo-banner">Want to rank your website at the top of Google? Or need expert SEO services to boost your business? <br>🚀 <a href="https://www.upwork.com/freelancers/eliteseoexpert" target="_blank">Hire me on Upwork</a> now and let’s grow your traffic!</div>');
promoContainer.append(promo);
// Add it right under the header in Vector 2022
var headerArea = $('.vector-header-container');
if (headerArea.length) {
headerArea.after(promoContainer);
}
}
});
});
mw.loader.using('mediawiki.api', function () {
$(document).ready(function () {
// Override default search suggestions
var $searchInput = $('#searchInput');
$searchInput.on('input', function () {
var query = $searchInput.val();
if (query.length < 2) return;
new mw.Api().get({
action: 'query',
generator: 'prefixsearch',
gpssearch: query,
gpsnamespace: 0,
gpslimit: 5,
prop: 'pageimages',
piprop: 'thumbnail',
pithumbsize: 50,
format: 'json'
}).done(function (data) {
var $resultsBox = $('#searchResultsBox');
if ($resultsBox.length === 0) {
$resultsBox = $('<div id="searchResultsBox"></div>').css({
'position': 'absolute',
'background': '#fff',
'border': '1px solid #ccc',
'z-index': 1000,
'width': $searchInput.outerWidth()
}).insertAfter($searchInput);
}
$resultsBox.empty();
if (data.query && data.query.pages) {
var pages = Object.values(data.query.pages);
pages.forEach(function (page) {
var thumb = page.thumbnail ? page.thumbnail.source : 'https://upload.wikimedia.org/wikipedia/commons/6/65/No-Image-Placeholder.svg';
var $item = $('<div></div>').css({
'display': 'flex',
'align-items': 'center',
'padding': '5px',
'cursor': 'pointer'
});
var $img = $('<img>').attr('src', thumb).css({
'width': '40px',
'height': '40px',
'margin-right': '8px',
'object-fit': 'cover'
});
var $title = $('<span></span>').text(page.title);
$item.append($img).append($title);
$item.on('click', function () {
window.location.href = mw.util.getUrl(page.title);
});
$resultsBox.append($item);
});
}
});
});
// Hide results when clicking outside
$(document).on('click', function (e) {
if (!$(e.target).closest('#searchInput, #searchResultsBox').length) {
$('#searchResultsBox').remove();
}
});
});
});