MediaWiki:Common.js: Difference between revisions
Appearance
No edit summary Tags: Mobile edit Mobile web edit |
No edit summary Tags: Mobile edit Mobile web edit |
||
| Line 2: | Line 2: | ||
🚀 MIPPEDIA DATA BUTTON ONLY (Otomatis - English Bridge Version) | 🚀 MIPPEDIA DATA BUTTON ONLY (Otomatis - English Bridge Version) | ||
Hanya memunculkan tombol jika data tersedia di pusat. | Hanya memunculkan tombol jika data tersedia di pusat. | ||
Mendukung | Mendukung pencarian pintar berbasis Interlanguage Links (EN -> ID). | ||
========================================================== */ | ========================================================== */ | ||
$(document).ready(function() { | $(document).ready(function() { | ||
var pageName = mw.config.get('wgPageName | var pageName = mw.config.get('wgPageName'); | ||
var namespace = mw.config.get('wgNamespaceNumber'); | var namespace = mw.config.get('wgNamespaceNumber'); | ||
var dataDomain = 'https://data.mippedia.org'; | var dataDomain = 'https://data.mippedia.org'; | ||
| Line 11: | Line 11: | ||
// Jalankan hanya di namespace artikel resmi | // Jalankan hanya di namespace artikel resmi | ||
if (namespace === 0) { | if (namespace === 0) { | ||
var | // Otak Pintar: Ambil daftar link bahasa lain yang ada di artikel ini | ||
var langLinks = mw.config.get('wgLanguageLinks'); | |||
var targetDataPage = ''; | |||
if (langLinks && langLinks.length > 0) { | |||
// Cari apakah ada link yang mengarah ke bahasa Indonesia (id) | |||
for (var i = 0; i < langLinks.length; i++) { | |||
if (langLinks[i].lang === 'id') { | |||
// Ketemu! Ambil judul artikel versi Bahasa Indonesianya | |||
targetDataPage = langLinks[i].title.replace(/\s+/g, '_'); | |||
var | break; | ||
} | |||
} | } | ||
} | |||
// Fallback: Jika artikel belum dihubungkan ke bahasa Indonesia, pakai nama aslinya | |||
if (!targetDataPage) { | |||
targetDataPage = pageName; | |||
} | |||
// Cek langsung ke Mippedia Data menggunakan nama halaman Indonesia/aslinya | |||
$.ajax({ | $.ajax({ | ||
url: dataDomain + '/api.php', | url: dataDomain + '/api.php', | ||
data: { | data: { | ||
action: 'query', | action: 'query', | ||
titles: | titles: targetDataPage, | ||
format: 'json', | format: 'json', | ||
origin: '*' | origin: '*' | ||
| Line 62: | Line 53: | ||
} | } | ||
// Jika | // Jika data valid ditemukan di pusat, munculkan tombol melayang | ||
if (isExist) { | if (isExist) { | ||
injectFloatingDataBtn( | injectFloatingDataBtn(targetDataPage, dataDomain); | ||
} | } | ||
} | } | ||
Revision as of 14:13, 27 May 2026
/* ==========================================================
🚀 MIPPEDIA DATA BUTTON ONLY (Otomatis - English Bridge Version)
Hanya memunculkan tombol jika data tersedia di pusat.
Mendukung pencarian pintar berbasis Interlanguage Links (EN -> ID).
========================================================== */
$(document).ready(function() {
var pageName = mw.config.get('wgPageName');
var namespace = mw.config.get('wgNamespaceNumber');
var dataDomain = 'https://data.mippedia.org';
// Jalankan hanya di namespace artikel resmi
if (namespace === 0) {
// Otak Pintar: Ambil daftar link bahasa lain yang ada di artikel ini
var langLinks = mw.config.get('wgLanguageLinks');
var targetDataPage = '';
if (langLinks && langLinks.length > 0) {
// Cari apakah ada link yang mengarah ke bahasa Indonesia (id)
for (var i = 0; i < langLinks.length; i++) {
if (langLinks[i].lang === 'id') {
// Ketemu! Ambil judul artikel versi Bahasa Indonesianya
targetDataPage = langLinks[i].title.replace(/\s+/g, '_');
break;
}
}
}
// Fallback: Jika artikel belum dihubungkan ke bahasa Indonesia, pakai nama aslinya
if (!targetDataPage) {
targetDataPage = pageName;
}
// Cek langsung ke Mippedia Data menggunakan nama halaman Indonesia/aslinya
$.ajax({
url: dataDomain + '/api.php',
data: {
action: 'query',
titles: targetDataPage,
format: 'json',
origin: '*'
},
dataType: 'jsonp',
success: function(res) {
if (res && res.query && res.query.pages) {
var pages = res.query.pages;
var isExist = false;
for (var id in pages) {
if (parseInt(id) > 0) {
isExist = true;
break;
}
}
// Jika data valid ditemukan di pusat, munculkan tombol melayang
if (isExist) {
injectFloatingDataBtn(targetDataPage, dataDomain);
}
}
}
});
}
function injectFloatingDataBtn(name, domain) {
if ($('#mippedia-data-btn').length) return;
var $btn = $('<a>', {
id: 'mippedia-data-btn',
href: domain + '/wiki/' + encodeURIComponent(name),
target: '_blank',
style: 'position: absolute; right: 10px; top: -32px; background: #36c; color: #fff; padding: 4px 10px; border-radius: 4px; font-weight: bold; font-size: 10px; text-decoration: none; z-index: 1000; box-shadow: 0 2px 4px rgba(0,0,0,0.1);',
text: 'DATA'
});
var $target = $('.page-actions-menu, .mw-editsection-visualeditor, #ca-edit, .minerva__tab-container').first();
if ($target.length) {
$target.css('position', 'relative').append($btn);
} else {
$('#firstHeading').css('position', 'relative').append($btn);
}
}
});