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


            $.getJSON(mw.util.wikiScript('api'), {
                $.getJSON(mw.util.wikiScript('api'), {
                action: 'query',
                    action: 'query',
                list: 'categorymembers',
                    list: 'categorymembers',
                cmtitle: 'Category:' + targetCat,
                    cmtitle: 'Category:' + targetCat,
                cmlimit: 50, // Kita ambil 50 data buat diacak di browser
                    cmlimit: 50,
                format: 'json'
                    format: 'json'
            }, function(data) {
                }, function(data) {
                var members = data.query.categorymembers;
                    var members = data.query.categorymembers;
                var currentTitle = mw.config.get('wgPageName').replace(/_/g, ' ');
                    if (!members) return;
               
                // 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")
                    var currentTitle = mw.config.get('wgPageName').replace(/_/g, ' ');
                filteredMembers.sort(function() { return 0.5 - Math.random(); });
                    var filteredMembers = members.filter(function(item) {
                        return item.title !== currentTitle;
                    });


                // 3. Ambil 4 artikel teratas hasil acakan
                    // ACAK DAFTARNYA
                var finalSelection = filteredMembers.slice(0, 4);
                    filteredMembers.sort(function() { return 0.5 - Math.random(); });
                    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;">';
                    var html = '<div id="related-footer" style="clear:both; background-color: #f8f9fa; border: 1px solid #a2a9b1; padding: 15px; margin: 20px 0; 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;">';
                    html += '<h3 style="margin-top:0; border-bottom: 1px solid #a2a9b1; padding-bottom: 5px; font-size: 1.1em; color: #000;">Halaman Terkait</h3><ul style="list-style-type: none; margin: 10px 0 0 0; padding: 0;">';
               
                   
                var count = 0;
                    var count = 0;
                $.each(finalSelection, function(i, item) {
                    $.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>';
                        html += '<li style="margin-bottom: 10px; border-bottom: 1px solid #eaecf0; padding-bottom: 5px;">• <a style="font-weight: bold; color: #0645ad; text-decoration: none;" href="' + mw.util.getUrl(item.title) + '">' + item.title + '</a></li>';
                    count++;
                        count++;
                });
                    });


                html += '</ul></div>';
                    html += '</ul></div>';
               
                   
                if (count > 0) {
                    if (count > 0) {
                    if ($('#catlinks').length) {
                        // FIX BUAT MOBILE (Minerva)
                        $('#catlinks').after(html);
                        // Di Minerva, kita tempel di atas footer atau setelah content-text
                    } else {
                        if ($('.minerva-footer').length) {
                        $('#mw-content-text').after(html);
                            $('.minerva-footer').before(html); // Pasang di atas footer HP
                        } else if ($('#catlinks').length) {
                            $('#catlinks').after(html); // Pasang setelah kategori Desktop
                        } else {
                            $('#mw-content-text').after(html); // Backup terakhir
                        }
                     }
                     }
                 }
                 });
             });
             }
         }
         }
     }
     }
    // Jalankan fungsi
    initRelatedArticles();
});
});

Revisi per 9 April 2026 19.48

/* Script Otomatis Artikel Terkait - Support Mobile (Minerva) & Desktop */
$(document).ready(function() {
    function initRelatedArticles() {
        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 sampah/internal
                var cleanCats = categories.filter(function(cat) {
                    return !cat.match(/halaman|artikel|maintenance|dispute|wiki/i);
                });
                var targetCat = cleanCats.length > 0 ? cleanCats[0] : categories[0];

                $.getJSON(mw.util.wikiScript('api'), {
                    action: 'query',
                    list: 'categorymembers',
                    cmtitle: 'Category:' + targetCat,
                    cmlimit: 50,
                    format: 'json'
                }, function(data) {
                    var members = data.query.categorymembers;
                    if (!members) return;

                    var currentTitle = mw.config.get('wgPageName').replace(/_/g, ' ');
                    var filteredMembers = members.filter(function(item) {
                        return item.title !== currentTitle;
                    });

                    // ACAK DAFTARNYA
                    filteredMembers.sort(function() { return 0.5 - Math.random(); });
                    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: 20px 0; border-radius: 5px;">';
                    html += '<h3 style="margin-top:0; border-bottom: 1px solid #a2a9b1; padding-bottom: 5px; font-size: 1.1em; color: #000;">Halaman Terkait</h3><ul style="list-style-type: none; margin: 10px 0 0 0; padding: 0;">';
                    
                    var count = 0;
                    $.each(finalSelection, function(i, item) {
                        html += '<li style="margin-bottom: 10px; border-bottom: 1px solid #eaecf0; padding-bottom: 5px;">• <a style="font-weight: bold; color: #0645ad; text-decoration: none;" href="' + mw.util.getUrl(item.title) + '">' + item.title + '</a></li>';
                        count++;
                    });

                    html += '</ul></div>';
                    
                    if (count > 0) {
                        // FIX BUAT MOBILE (Minerva)
                        // Di Minerva, kita tempel di atas footer atau setelah content-text
                        if ($('.minerva-footer').length) {
                            $('.minerva-footer').before(html); // Pasang di atas footer HP
                        } else if ($('#catlinks').length) {
                            $('#catlinks').after(html); // Pasang setelah kategori Desktop
                        } else {
                            $('#mw-content-text').after(html); // Backup terakhir
                        }
                    }
                });
            }
        }
    }

    // Jalankan fungsi
    initRelatedArticles();
});