Lompat ke isi

MediaWiki:Common.js: Perbedaan antara revisi

Dari Mippedia bahasa Indonesia, ensiklopedia umum
Tidak ada ringkasan suntingan
Tanda: Dikembalikan Suntingan perangkat seluler Suntingan peramban seluler
Tidak ada ringkasan suntingan
Tanda: Dikembalikan Suntingan perangkat seluler Suntingan peramban seluler
Baris 1: Baris 1:
/* Script Otomatis Artikel Terkait - Posisi Footer */
/* Script Otomatis Artikel Terkait - Versi Pinter & Random */
$(document).ready(function() {
$(document).ready(function() {
     if (mw.config.get('wgIsArticle') && mw.config.get('wgAction') === 'view' && mw.config.get('wgNamespaceNumber') === 0) {
     if (mw.config.get('wgIsArticle') && mw.config.get('wgAction') === 'view' && mw.config.get('wgNamespaceNumber') === 0) {
Baris 5: Baris 5:
         var categories = mw.config.get('wgCategories');
         var categories = mw.config.get('wgCategories');
         if (categories.length > 0) {
         if (categories.length > 0) {
             var targetCat = categories[0];
            // Filter kategori tersembunyi/internal kalau ada
            var cleanCats = categories.filter(function(cat) {
                return !cat.match(/halaman|artikel|maintenance/i);
            });
             var targetCat = cleanCats.length > 0 ? cleanCats[0] : categories[0];


             $.getJSON(mw.util.wikiScript('api'), {
             $.getJSON(mw.util.wikiScript('api'), {
Baris 11: Baris 15:
                 list: 'categorymembers',
                 list: 'categorymembers',
                 cmtitle: 'Category:' + targetCat,
                 cmtitle: 'Category:' + targetCat,
                 cmlimit: 6,  
                 cmlimit: 50, // Kita ambil 50 data buat diacak di browser
                 format: 'json'
                 format: 'json'
             }, function(data) {
             }, function(data) {
Baris 17: Baris 21:
                 var currentTitle = mw.config.get('wgPageName').replace(/_/g, ' ');
                 var currentTitle = mw.config.get('wgPageName').replace(/_/g, ' ');
                  
                  
                 // Styling agar terlihat seperti kotak terpisah
                 // 1. Buang artikel yang lagi dibaca sekarang dari daftar
                 var html = '<div id="related-footer" style="clear:both; background-color: #f8f9fa; border: 1px solid #a2a9b1; padding: 15px; margin-top: 20px;">';
                var filteredMembers = members.filter(function(item) {
                 html += '<h3 style="margin-top:0; border-bottom: 1px solid #a2a9b1; padding-bottom: 5px;">Halaman Terkait</h3><ul style="column-count: 2; list-style-type: none; margin: 10px 0 0 0; padding: 0;">';
                    return item.title !== currentTitle;
                });
 
                // 2. ACAK DAFTARNYA (Ini yang bikin "pinter")
                filteredMembers.sort(function() { return 0.5 - Math.random(); });
 
                // 3. Ambil 4 artikel teratas hasil acakan
                var finalSelection = filteredMembers.slice(0, 4);
 
                 var html = '<div id="related-footer" style="clear:both; background-color: #f8f9fa; border: 1px solid #a2a9b1; padding: 15px; margin-top: 20px; border-radius: 5px;">';
                 html += '<h3 style="margin-top:0; border-bottom: 1px solid #a2a9b1; padding-bottom: 5px; font-size: 1.2em;">Halaman Terkait</h3><ul style="column-count: 2; list-style-type: none; margin: 10px 0 0 0; padding: 0;">';
                  
                  
                 var count = 0;
                 var count = 0;
                 $.each(members, function(i, item) {
                 $.each(finalSelection, function(i, item) {
                     if (item.title !== currentTitle && count < 4) {
                     html += '<li style="margin-bottom: 8px;">• <a style="font-weight: bold; color: #0645ad;" href="' + mw.util.getUrl(item.title) + '">' + item.title + '</a></li>';
                        html += '<li style="margin-bottom: 5px;">• <a style="font-weight: bold;" href="' + mw.util.getUrl(item.title) + '">' + item.title + '</a></li>';
                    count++;
                        count++;
                    }
                 });
                 });


Baris 32: Baris 44:
                  
                  
                 if (count > 0) {
                 if (count > 0) {
                    // TARGET PENEMPELAN:
                    // Kita tempel SETELAH div catlinks (kotak kategori) agar benar-benar di bawah artikel
                     if ($('#catlinks').length) {
                     if ($('#catlinks').length) {
                         $('#catlinks').after(html);
                         $('#catlinks').after(html);
                     } else {
                     } else {
                        // Kalau artikel gak punya kategori tampil, taruh di bawah konten teks
                         $('#mw-content-text').after(html);
                         $('#mw-content-text').after(html);
                     }
                     }

Revisi per 9 April 2026 19.43

/* Script Otomatis Artikel Terkait - Versi Pinter & Random */
$(document).ready(function() {
    if (mw.config.get('wgIsArticle') && mw.config.get('wgAction') === 'view' && mw.config.get('wgNamespaceNumber') === 0) {
        
        var categories = mw.config.get('wgCategories');
        if (categories.length > 0) {
            // Filter kategori tersembunyi/internal kalau ada
            var cleanCats = categories.filter(function(cat) {
                return !cat.match(/halaman|artikel|maintenance/i);
            });
            var targetCat = cleanCats.length > 0 ? cleanCats[0] : categories[0];

            $.getJSON(mw.util.wikiScript('api'), {
                action: 'query',
                list: 'categorymembers',
                cmtitle: 'Category:' + targetCat,
                cmlimit: 50, // Kita ambil 50 data buat diacak di browser
                format: 'json'
            }, function(data) {
                var members = data.query.categorymembers;
                var currentTitle = mw.config.get('wgPageName').replace(/_/g, ' ');
                
                // 1. Buang artikel yang lagi dibaca sekarang dari daftar
                var filteredMembers = members.filter(function(item) {
                    return item.title !== currentTitle;
                });

                // 2. ACAK DAFTARNYA (Ini yang bikin "pinter")
                filteredMembers.sort(function() { return 0.5 - Math.random(); });

                // 3. Ambil 4 artikel teratas hasil acakan
                var finalSelection = filteredMembers.slice(0, 4);

                var html = '<div id="related-footer" style="clear:both; background-color: #f8f9fa; border: 1px solid #a2a9b1; padding: 15px; margin-top: 20px; border-radius: 5px;">';
                html += '<h3 style="margin-top:0; border-bottom: 1px solid #a2a9b1; padding-bottom: 5px; font-size: 1.2em;">Halaman Terkait</h3><ul style="column-count: 2; list-style-type: none; margin: 10px 0 0 0; padding: 0;">';
                
                var count = 0;
                $.each(finalSelection, function(i, item) {
                    html += '<li style="margin-bottom: 8px;">• <a style="font-weight: bold; color: #0645ad;" href="' + mw.util.getUrl(item.title) + '">' + item.title + '</a></li>';
                    count++;
                });

                html += '</ul></div>';
                
                if (count > 0) {
                    if ($('#catlinks').length) {
                        $('#catlinks').after(html);
                    } else {
                        $('#mw-content-text').after(html);
                    }
                }
            });
        }
    }
});