Aller au contenu

Utilisateur:Nolan/common.js

De Poképédia

Note : après avoir publié vos modifications, il se peut que vous deviez forcer le rechargement complet du cache de votre navigateur pour voir les changements.

  • Firefox / Safari : maintenez la touche Maj (Shift) en cliquant sur le bouton Actualiser ou appuyez sur Ctrl + F5 ou Ctrl + R (⌘ + R sur un Mac).
  • Google Chrome : appuyez sur Ctrl + Maj + R (⌘ + Shift + R sur un Mac).
  •  Edge : maintenez la touche Ctrl en cliquant sur le bouton Actualiser ou pressez Ctrl + F5.
$(document).ready(function() {
    // Ajouter les boutons
    $('#p-navigation ul').append(`
        <li id="random-page"><a href="#" title="Page aléatoire (hors carte)">Page au hasard<br>(hors carte)</a></li>
        <li id="requested-categories"><a href="/index.php?title=Spécial:Catégories_demandées" title="Catégories demandées">Catégories demandées</a></li>
    `);

    // Fonction pour obtenir une page aléatoire sans la catégorie "Carte du JCC"
    function getRandomPage() {
        $.ajax({
            url: mw.util.wikiScript('api'),
            data: { action: 'query', format: 'json', list: 'random', rnnamespace: 0, rnlimit: 1 },
            success: function(data) {
                var page = data.query.random[0];
                $.ajax({
                    url: mw.util.wikiScript('api'),
                    data: { action: 'query', format: 'json', prop: 'categories', titles: page.title },
                    success: function(data) {
                        var categories = data.query.pages[page.id].categories;
                        if (categories && categories.some(c => c.title === 'Catégorie:Carte du JCC')) {
                            getRandomPage(); // Relancer si c'est une page de carte
                        } else {
                            window.location.href = mw.util.getUrl(page.title); // Rediriger
                        }
                    }
                });
            }
        });
    }

    // Événement de clic sur le bouton "Page au hasard"
    $('#random-page a').click(function(e) {
        e.preventDefault();
        getRandomPage();
    });
});