MediaWiki:Common.js: Perbedaan antara revisi
Tidak ada ringkasan suntingan Tanda: Suntingan perangkat seluler Suntingan peramban seluler |
Tidak ada ringkasan suntingan Tanda: Suntingan perangkat seluler Suntingan peramban seluler |
||
| Baris 1.245: | Baris 1.245: | ||
}); | }); | ||
/* | /* ========================================================== | ||
🚀 MIPPEDIA DYNAMIC SHORTDESC BRIDGE (FIXED) | |||
Fungsi: Mengambil deskripsi spesifik per Judul & per Bahasa | |||
========================================================== */ | |||
(function($, mw) { | |||
"use strict"; | |||
// | // 1. Filter: Hanya jalan di halaman artikel yang sedang dibaca (bukan saat edit) | ||
var conf = mw.config.get([ | |||
'wgNamespaceNumber', | |||
'wgAction', | |||
'wgPageName', | |||
'wgIsMainPage' | |||
]); | |||
if (conf.wgNamespaceNumber !== 0 || conf.wgAction !== 'view' || conf.wgIsMainPage) return; | |||
$(document).ready(function() { | |||
var host = window.location.hostname; | |||
var currentTitle = conf.wgPageName; // Mengambil judul artikel aktif | |||
// 2. Deteksi Bahasa berdasarkan Subdomain | |||
var langKey = 'id'; | |||
if (host.indexOf('en.') !== -1) langKey = 'en'; | |||
if (host.indexOf('concise.') !== -1) langKey = 'concise'; | |||
// 3. Ambil data dari JSON Pusat (Mippedia Data) | |||
$.ajax({ | $.ajax({ | ||
url: 'https://data.mippedia.org/api.php', | url: 'https://data.mippedia.org/api.php', | ||
| Baris 1.259: | Baris 1.277: | ||
action: 'query', | action: 'query', | ||
prop: 'revisions', | prop: 'revisions', | ||
titles: | titles: 'MediaWiki:ShortDesc-Data.json', | ||
rvprop: 'content', | rvprop: 'content', | ||
format: 'json', | format: 'json', | ||
origin: '*' | origin: '*' | ||
}, | }, | ||
success: function( | dataType: 'jsonp', | ||
var pages = | success: function(res) { | ||
try { | |||
var | var pages = res.query.pages; | ||
var pageId = Object.keys(pages)[0]; | |||
if (pageId === "-1") return; | |||
var fullData = JSON.parse(pages[pageId].revisions[0]['*']); | |||
// | // 4. MENCARI DATA YANG COCOK DENGAN JUDUL ARTIKEL INI | ||
var myData = fullData[currentTitle]; | |||
var | |||
if ( | if (myData && myData[langKey]) { | ||
var finalDesc = | var finalDesc = myData[langKey]; | ||
// Set metadata untuk Extension ShortDescription agar terbaca sistem | |||
if (mw.config.exists('wgShortDescription')) { | |||
// | mw.config.set('wgShortDescription', finalDesc); | ||
if ( | |||
} | } | ||
// | // Render visual di bawah judul (First Heading) | ||
// Memastikan tidak duplikat jika script terpanggil dua kali | |||
$('#mippedia-dynamic-desc').remove(); | |||
$('.firstHeading').after( | |||
$('<div id="mippedia-dynamic-desc">') | |||
.text(finalDesc) | |||
.css({ | |||
'color': '#54595d', | |||
'font-size': '0.92em', | |||
'margin': '4px 0 15px 0', | |||
'font-style': 'italic', | |||
'border-bottom': '1px solid #eaecf0', | |||
'padding-bottom': '5px', | |||
'display': 'block' | |||
}) | |||
); | |||
} | } | ||
} catch (e) { | |||
console.error("Mippedia: Error matching title data."); | |||
} | } | ||
} | } | ||
}); | }); | ||
} | }); | ||
}); | })(jQuery, mediaWiki); | ||