MediaWiki:Common.js
Catatan: Setelah menerbitkan, Anda mungkin perlu melewati tembolok peramban web Anda untuk melihat perubahan.
- Firefox/Safari: Tekan dan tahan Shift sembari mengeklik Reload, atau tekan Ctrl-F5 atau Ctrl-R (⌘-R di Mac)
- Google Chrome: Tekan Ctrl-Shift-R (⌘-Shift-R di Mac)
- Edge: Tahan Ctrl sembari mengeklik Refresh, atau tekan Ctrl-F5
/* Script Otomatis Artikel Terkait - Versi Pinter & Random */
$(document).ready(function() {
if (mw.config.get('wgIsArticle') && mw.config.get('wgAction') === 'view' && mw.config.get('wgNamespaceNumber') === 0) {
var categories = mw.config.get('wgCategories');
if (categories.length > 0) {
// Filter kategori tersembunyi/internal kalau ada
var cleanCats = categories.filter(function(cat) {
return !cat.match(/halaman|artikel|maintenance/i);
});
var targetCat = cleanCats.length > 0 ? cleanCats[0] : categories[0];
$.getJSON(mw.util.wikiScript('api'), {
action: 'query',
list: 'categorymembers',
cmtitle: 'Category:' + targetCat,
cmlimit: 50, // Kita ambil 50 data buat diacak di browser
format: 'json'
}, function(data) {
var members = data.query.categorymembers;
var currentTitle = mw.config.get('wgPageName').replace(/_/g, ' ');
// 1. Buang artikel yang lagi dibaca sekarang dari daftar
var filteredMembers = members.filter(function(item) {
return item.title !== currentTitle;
});
// 2. ACAK DAFTARNYA (Ini yang bikin "pinter")
filteredMembers.sort(function() { return 0.5 - Math.random(); });
// 3. Ambil 4 artikel teratas hasil acakan
var finalSelection = filteredMembers.slice(0, 4);
var html = '<div id="related-footer" style="clear:both; background-color: #f8f9fa; border: 1px solid #a2a9b1; padding: 15px; margin-top: 20px; border-radius: 5px;">';
html += '<h3 style="margin-top:0; border-bottom: 1px solid #a2a9b1; padding-bottom: 5px; font-size: 1.2em;">Halaman Terkait</h3><ul style="column-count: 2; list-style-type: none; margin: 10px 0 0 0; padding: 0;">';
var count = 0;
$.each(finalSelection, function(i, item) {
html += '<li style="margin-bottom: 8px;">• <a style="font-weight: bold; color: #0645ad;" href="' + mw.util.getUrl(item.title) + '">' + item.title + '</a></li>';
count++;
});
html += '</ul></div>';
if (count > 0) {
if ($('#catlinks').length) {
$('#catlinks').after(html);
} else {
$('#mw-content-text').after(html);
}
}
});
}
}
});