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.263: | Baris 1.263: | ||
/* ========================================================== | /* ========================================================== | ||
🚀 MIPPEDIA | 🚀 MIPPEDIA ULTIMATE INTEGRATION v3 | ||
Fix: Image | Fix: Image, Position, & Social Media Links Whitelist | ||
========================================================== */ | ========================================================== */ | ||
$(document).ready(function() { | $(document).ready(function() { | ||
| Baris 1.282: | Baris 1.282: | ||
if ($infobox.length) { | if ($infobox.length) { | ||
// 1 | // 1. FIX GAMBAR: Ambil Nama Berkas & Tampilkan Beneran | ||
$infobox.find('img, .image').each(function() { | |||
var $imgObj = $(this).is('img') ? $(this) : $(this).find('img'); | |||
var fileName = $imgObj.attr('alt') || $imgObj.data('file-name'); | |||
$infobox.find('img').each(function() { | |||
var | |||
if (fileName) { | if (fileName) { | ||
var localImgUrl = mw.util.getUrl('Berkas:' + fileName); | var localImgUrl = mw.util.getUrl('Berkas:' + fileName); | ||
$(this).attr('src', ' | // Gunakan thumb.php lokal untuk render gambar | ||
$(this).attr('src', '/thumb.php?f=' + encodeURIComponent(fileName) + '&w=400'); | |||
$(this).attr('srcset', ''); | $(this).attr('srcset', ''); | ||
$(this).wrap('<a href="' + localImgUrl + '"></a>'); | $(this).wrap('<a href="' + localImgUrl + '" class="image"></a>'); | ||
} | } | ||
}); | }); | ||
// | // 2. WHITELIST LINK: Jangan ganggu URL Luar & Tombol Medsos | ||
$infobox.find('a').each(function() { | $infobox.find('a').each(function() { | ||
var | var href = $(this).attr('href') || ''; | ||
// | var text = $(this).text().trim(); | ||
var cleanTitle = | |||
// Jika link ke luar (http/https) atau tombol medsos (singkatan 2-3 huruf) | |||
if (href.indexOf('http') === 0 || text.length <= 3) { | |||
$(this).addClass('external-link-safe'); // Tandai agar tidak diubah | |||
} else { | |||
// Hanya bersihkan link internal yang berantakan | |||
var cleanTitle = text.replace(/\s*\(.*?\)\s*/g, '').trim(); | |||
$(this).attr('title', cleanTitle); | |||
$(this).text(cleanTitle); | |||
} | |||
}); | }); | ||
// | // 3. POSISI: WAJIB DI BAWAH PARAGRAF PERTAMA | ||
// | // Cari paragraf pertama yang punya teks cukup panjang | ||
var $ | var $parserOutput = $('#mw-content-text > .mw-parser-output'); | ||
return $(this).text().trim().length > | var $firstP = $parserOutput.find('> p').filter(function() { | ||
return $(this).text().trim().length > 20; | |||
}).first(); | }).first(); | ||
if ($ | if ($firstP.length) { | ||
$ | $firstP.after($infobox); | ||
} else { | } else { | ||
$ | $parserOutput.prepend($infobox); | ||
} | } | ||
// | // 4. CEK WARNA LINK (Biru/Merah) | ||
checkInternalLinks($infobox); | |||
} | } | ||
} | } | ||
| Baris 1.328: | Baris 1.333: | ||
} | } | ||
function | function checkInternalLinks($container) { | ||
var titles = []; | var titles = []; | ||
$container.find('a').each(function() { | $container.find('a:not(.external-link-safe)').each(function() { | ||
var t = $(this).attr('title'); | var t = $(this).attr('title'); | ||
if (t) titles.push(t); | if (t) titles.push(t); | ||
| Baris 1.366: | Baris 1.352: | ||
} | } | ||
$container.find('a').each(function() { | $container.find('a:not(.external-link-safe)').each(function() { | ||
var myTitle = $(this).attr('title'); | var myTitle = $(this).attr('title'); | ||
if (existMap[myTitle]) { | if (existMap[myTitle]) { | ||
$(this).removeClass('new').attr('href', mw.util.getUrl(myTitle)); | $(this).removeClass('new').attr('href', mw.util.getUrl(myTitle)); | ||
} else { | } else { | ||
$(this).addClass('new').attr('href', mw.util.getUrl(myTitle, { action: 'edit', redlink: '1' })); | |||
$(this).attr('href', mw.util.getUrl(myTitle, { action: 'edit', redlink: '1' })); | |||
} | } | ||
}); | }); | ||