MediaWiki:Common.js: Perbedaan antara revisi
Tampilan
Tidak ada ringkasan suntingan Tanda: Dikembalikan Suntingan perangkat seluler Suntingan peramban seluler |
Tidak ada ringkasan suntingan Tanda: Dikembalikan Suntingan perangkat seluler Suntingan peramban seluler |
||
| Baris 1: | Baris 1: | ||
/* Script Otomatis Artikel Terkait - | /* Script Otomatis Artikel Terkait - Versi Pinter & Random */ | ||
$(document).ready(function() { | $(document).ready(function() { | ||
if (mw.config.get('wgIsArticle') && mw.config.get('wgAction') === 'view' && mw.config.get('wgNamespaceNumber') === 0) { | if (mw.config.get('wgIsArticle') && mw.config.get('wgAction') === 'view' && mw.config.get('wgNamespaceNumber') === 0) { | ||
| Baris 5: | Baris 5: | ||
var categories = mw.config.get('wgCategories'); | var categories = mw.config.get('wgCategories'); | ||
if (categories.length > 0) { | if (categories.length > 0) { | ||
var targetCat = categories[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'), { | $.getJSON(mw.util.wikiScript('api'), { | ||
| Baris 11: | Baris 15: | ||
list: 'categorymembers', | list: 'categorymembers', | ||
cmtitle: 'Category:' + targetCat, | cmtitle: 'Category:' + targetCat, | ||
cmlimit: | cmlimit: 50, // Kita ambil 50 data buat diacak di browser | ||
format: 'json' | format: 'json' | ||
}, function(data) { | }, function(data) { | ||
| Baris 17: | Baris 21: | ||
var currentTitle = mw.config.get('wgPageName').replace(/_/g, ' '); | var currentTitle = mw.config.get('wgPageName').replace(/_/g, ' '); | ||
// | // 1. Buang artikel yang lagi dibaca sekarang dari daftar | ||
var html = '<div id="related-footer" style="clear:both; background-color: #f8f9fa; border: 1px solid #a2a9b1; padding: 15px; margin-top: 20px;">'; | var filteredMembers = members.filter(function(item) { | ||
html += '<h3 style="margin-top:0; border-bottom: 1px solid #a2a9b1; padding-bottom: 5px;">Halaman Terkait</h3><ul style="column-count: 2; list-style-type: none; margin: 10px 0 0 0; padding: 0;">'; | 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; | var count = 0; | ||
$.each( | $.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++; | |||
}); | }); | ||
| Baris 32: | Baris 44: | ||
if (count > 0) { | if (count > 0) { | ||
if ($('#catlinks').length) { | if ($('#catlinks').length) { | ||
$('#catlinks').after(html); | $('#catlinks').after(html); | ||
} else { | } else { | ||
$('#mw-content-text').after(html); | $('#mw-content-text').after(html); | ||
} | } | ||
Revisi per 9 April 2026 19.43
/* 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);
}
}
});
}
}
});