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.326: Baris 1.326:
});
});


/* ==========================================================
  🚀 MIPPEDIA UNIVERSAL BRIDGE - 100% AUTOMATIC
  ========================================================== */
(function() {
(function() {
     $(document).ready(function() {
     $(document).ready(function() {
         var $infoTable = $('#mip-dynamic-rows');
         var $container = $('#mip-infobox-container');
         if (!$infoTable.length) return;
         if (!$container.length) return;


        // 1. Ambil Judul Halaman ini (Misal: Rumi Haitami)
         var pageTitle = mw.config.get('wgPageName');
         var pageTitle = mw.config.get('wgPageName');
         var dataWikiApi = 'https://data.mippedia.org/api.php'; // Ganti ke URL API lo
         var dataWikiApi = 'https://data.mippedia.org/api.php';  


        // 2. Nembak ke Mippedia Data cari halaman dengan judul yang SAMA
         $.ajax({
         $.ajax({
             url: dataWikiApi,
             url: dataWikiApi,
             data: {
             data: {
                 action: 'parse',
                 action: 'parse',
                 page: pageTitle,
                 page: pageTitle, // Nyari data berdasarkan judul artikel
                 prop: 'text',
                 prop: 'text',
                 format: 'json',
                 format: 'json',
Baris 1.347: Baris 1.346:
             },
             },
             success: function(res) {
             success: function(res) {
                 var html = res.parse.text['*'];
                 if (res.parse) {
                var $source = $('<div>').html(html);
                    var html = res.parse.text['*'];
 
                    var $dataContent = $('<div>').html(html);
                // 1. Tarik Nama Panggung (Judul Header)
                var name = $source.find('div[style*="font-size: 1.8em"]').text() || pageTitle;
                $('#mip-title').text(name);
 
                // 2. Tarik Foto Profil (Otomatis dari Mippedia Data)
                var $img = $source.find('img').first();
                if ($img.length) {
                    var imgSrc = $img.attr('src').replace('/thumb', '').replace(/\/[^\/]+$/, ''); // Ambil URL original
                    $('#mip-photo').html('<img src="' + imgSrc + '" style="width: 100%; border-radius: 8px;">');
                }
 
                // 3. UNIVERSAL DATA SCRAPER (Ini kuncinya!)
                // Dia bakal ambil semua <tr> yang ada di tabel Mippedia Data secara otomatis
                $source.find('tr').each(function() {
                    var label = $(this).find('td').first().text().trim();
                    var value = $(this).find('td').last().text().trim();
                      
                      
                     // Filter biar gak ambil header section (Informasi Pribadi, dll)
                     // 3. Ambil bagian tabel/infobox-nya aja dari Mippedia Data
                     if (label && value && label !== value) {
                    // Kita ambil div yang punya bayangan (shadow) sesuai template lo
                        $infoTable.append(
                     var infoboxData = $dataContent.find('div[style*="box-shadow"]').first();
                            '<tr style="border-bottom: 1px solid #eee;">' +
                            '<td style="padding: 8px; font-weight: bold; color: #555; font-size: 0.9em;">' + label + '</td>' +
                            '<td style="padding: 8px; color: #222; font-size: 0.9em;">' + value + '</td>' +
                            '</tr>'
                        );
                    }
                });


                // 4. Sosmed Finder (Otomatis)
                    if (infoboxData.length) {
                // Kita cari link yang mengandung platform populer
                        $('#mip-loading').hide();
                var socialIcons = {
                        $container.html(infoboxData); // PASANG DI ARTIKEL!
                    'instagram.com': 'IG',
                     } else {
                    'twitter.com': 'X',
                         $container.html('<div style="color:red;">Data tidak ditemukan di pusat.</div>');
                    'youtube.com': 'YT',
                    'spotify.com': 'SP'
                };
               
                $source.find('a').each(function() {
                    var href = $(this).attr('href');
                     for (var domain in socialIcons) {
                         if (href.indexOf(domain) !== -1) {
                            $('#mip-social-footer').append(
                                '<a href="' + href + '" target="_blank" class="mip-social-link">' + socialIcons[domain] + '</a>'
                            );
                        }
                     }
                     }
                 });
                 }
            },
            error: function() {
                $container.hide();
             }
             }
         });
         });
     });
     });
})();
})();