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.246: | Baris 1.246: | ||
/* ========================================================== | /* ========================================================== | ||
🚀 MIPPEDIA | 🚀 MIPPEDIA AUTO-INJECTOR FOR SHORTDESCRIPTION EXTENSION | ||
Fungsi: | Fungsi: Otomatis menyuntikkan data ke fungsi {{SHORTDESC}} | ||
========================================================== */ | ========================================================== */ | ||
(function($, mw) { | (function($, mw) { | ||
"use strict"; | "use strict"; | ||
// | // Konfigurasi dasar | ||
var conf = mw.config.get([ | var conf = mw.config.get(['wgNamespaceNumber', 'wgAction', 'wgPageName', 'wgIsMainPage']); | ||
if (conf.wgNamespaceNumber !== 0 || conf.wgAction !== 'view' || conf.wgIsMainPage) return; | if (conf.wgNamespaceNumber !== 0 || conf.wgAction !== 'view' || conf.wgIsMainPage) return; | ||
$(document).ready(function() { | $(document).ready(function() { | ||
var host = window.location.hostname; | var host = window.location.hostname; | ||
var currentTitle = conf.wgPageName; | var currentTitle = conf.wgPageName; | ||
// | // 1. Deteksi Bahasa (ID, EN, atau Concise) | ||
var langKey = 'id'; | var langKey = 'id'; | ||
if (host.indexOf('en.') !== -1) langKey = 'en'; | if (host.indexOf('en.') !== -1) langKey = 'en'; | ||
if (host.indexOf('concise.') !== -1) langKey = 'concise'; | if (host.indexOf('concise.') !== -1) langKey = 'concise'; | ||
// | // 2. 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.290: | Baris 1.284: | ||
var fullData = JSON.parse(pages[pageId].revisions[0]['*']); | var fullData = JSON.parse(pages[pageId].revisions[0]['*']); | ||
var myData = fullData[currentTitle]; | var myData = fullData[currentTitle]; | ||
| Baris 1.297: | Baris 1.289: | ||
var finalDesc = myData[langKey]; | var finalDesc = myData[langKey]; | ||
// | // --- BAGIAN INJEKSI OTOMATIS --- | ||
if (mw. | |||
// A. Suntikkan ke konfigurasi JavaScript MediaWiki (Client-side) | |||
// Ini agar extension ShortDescription mengenali deskripsi ini | |||
mw.config.set('wgShortDescription', finalDesc); | |||
// B. Gunakan API MediaWiki untuk "menginfokan" sistem tentang deskripsi ini | |||
// Ini memastikan sistem memperlakukan teks ini seolah berasal dari {{SHORTDESC:}} | |||
if (mw.loader.getState('ext.shortDescription') !== null) { | |||
$(document).trigger('shortdescription-update', [finalDesc]); | |||
} | } | ||
// Render visual | // C. Render visual agar sama persis dengan tampilan manual (seperti gambar Mippedia) | ||
$('#mippedia-auto-shortdesc').remove(); | |||
$('#mippedia- | |||
$('.firstHeading').after( | $('.firstHeading').after( | ||
$('<div id="mippedia- | $('<div id="mippedia-auto-shortdesc" class="bcl-shortdesc">') | ||
.text(finalDesc) | .text(finalDesc) | ||
.css({ | .css({ | ||
'color': '#54595d', | 'color': '#54595d', | ||
'font-size': '0.92em', | 'font-size': '0.92em', | ||
'margin': ' | 'margin': '2px 0 10px 0', | ||
'font- | 'font-weight': 'normal' | ||
}) | }) | ||
); | ); | ||
console.log("Mippedia: Metadata {{SHORTDESC}} injected for " + currentTitle); | |||
} | } | ||
} catch (e) { | } catch (e) { | ||
console.error("Mippedia: | console.error("Mippedia: Injection failed."); | ||
} | } | ||
} | } | ||