Gebruiker:Rots61/GevraagdePaginas.js

Uit Wikikids
< Gebruiker:Rots61
Versie door Rots61 (overleg | bijdragen) op 10 feb 2023 om 23:43 (Nieuwe pagina aangemaakt met '// User:MakiBoy/Gadget-LogCounter.js gemaakt door User:MakiBoy function parseNumber(number) { return number.toString().replace(/\B(?=(\d{3})+(?!\d))/g,...')
(wijz) ← Oudere versie | toon huidige versie (wijz) | Nieuwere versie → (wijz)
Naar navigatie springen Naar zoeken springen

Let op! Nadat je de veranderingen hebt opgeslagen, moet je de cache van je browser nog legen om ze daadwerkelijk te zien.

Mozilla (incl. Firefox) ctrl-shift-r
IE ctrl-f5
Opera f5
Safari cmd-r
Konqueror f5
// [[User:MakiBoy/Gadget-LogCounter.js]] gemaakt door [[User:MakiBoy]]

function parseNumber(number) {
    return number.toString().replace(/\B(?=(\d{3})+(?!\d))/g, ".");
}

function showProject(pagelists) {
    document.getElementsByTagName("h1")[0].textContent = "User:Rots61/GevraagdePaginas";
    document.title = "Gevraagde Pagina's - WikiKids";

    var table = document.createElement('table');
    table.classList.add('wikitable');

    var tableHead = document.createElement('thead');
    var tableHeadRow = document.createElement('tr');
    var tableHeadTitles = ['Paginatitel', 'Aantal links'];

    var tableBody = document.createElement('tbody');

    var currentPage = 1;
    var rowsPerPage = mw.util.getParamValue('rows') ? parseInt(mw.util.getParamValue('rows')) : 100;
    var totalPages = Math.ceil(pagelists.length / rowsPerPage);

    function showPage(pageNumber) {
        currentPage = pageNumber;
        tableBody.innerHTML = '';
        var start = (currentPage - 1) * rowsPerPage;
        var end = start + rowsPerPage;
        var paginatedItems = pagelists.slice(start, end);
        paginatedItems.forEach(function (page) {
            var row = document.createElement('tr');
            var totalLinks = page.value;
            var pageTitle = page.title.replace(/_/g, ' ');

            function addZero(number) {
                return number < 10 ? "0" + number : number;
            }

            row.innerHTML = `<td><a class="new" href="/${page.title}">${pageTitle}</a></td>
                <td>${parseNumber(totalLinks)}</td>`;
            tableBody.appendChild(row);
        });
    }

    showPage(1);

    var pagination = document.createElement('div');
    pagination.classList.add('pagination');

    var prevButton = document.createElement('button');
    prevButton.textContent = 'Vorige';
    prevButton.style = 'margin-right: 10px;';
    prevButton.addEventListener('click', function () {
        if (currentPage > 1) {
            showPage(currentPage - 1);
            //Manier waarop je kunt zien op welke pagina je bent, misschien is het handiger om anders te coderen, maar ik weet niet precies hoe dat dan kan. 
            document.getElementById('pageCounter').textContent = `Pagina ${currentPage} van ${totalPages}`;
        }
    });
    pagination.appendChild(prevButton);

    var pageCounter = document.createElement('span');
    pageCounter.id = "pageCounter";
    pageCounter.textContent = `Pagina ${currentPage} van ${totalPages}`;
    pagination.appendChild(pageCounter);

    var nextButton = document.createElement('button');
    nextButton.textContent = 'Volgende';
    nextButton.style = 'margin-left: 10px;';
    nextButton.addEventListener('click', function () {
        if (currentPage < totalPages) {
            showPage(currentPage + 1);
            //Manier waarop je kunt zien op welke pagina je bent, misschien is het handiger om anders te coderen, maar ik weet niet precies hoe dat dan kan. 
            document.getElementById('pageCounter').textContent = `Pagina ${currentPage} van ${totalPages}`;
        }
    });
    pagination.appendChild(nextButton);

    tableHeadTitles.forEach(function (title) {
        var tableHeadCell = document.createElement('th');
        tableHeadCell.textContent = title;
        tableHeadRow.appendChild(tableHeadCell);
    });
    tableHead.appendChild(tableHeadRow);
    table.appendChild(tableHead);
    table.appendChild(tableBody);

    var totalElement = document.createElement('div');
    totalElement.style = 'margin-top: 20px; display: flex; flex-direction: column;';

    var totalPagesElement = document.createElement('span');
    totalPagesElement.textContent = `Totaal aantal pagina's: ${parseNumber(pagelists.length)}`;
    totalElement.appendChild(totalPagesElement);

    document.getElementById('bodyContent').innerHTML = '';

    document.getElementById('bodyContent').appendChild(table);
    document.getElementById('bodyContent').appendChild(pagination);
    document.getElementById('bodyContent').appendChild(totalElement);
}

function getPages() {
    var pages = [];
    var request = new XMLHttpRequest();
    request.open('GET', 'https://litter.catbox.moe/304k22', false);
    request.send(null);
    if (request.status === 200) {
        pages = JSON.parse(request.responseText);
    }
    return pages;
}

if (mw.config.get('wgNamespaceNumber') === -1 && mw.config.get('wgTitle') === "R61/GevraagdePaginas") {
    var RallPages = getPagesRGP();
    showProject(RallPages);
}
Afkomstig van Wikikids , de interactieve Nederlandstalige Internet-encyclopedie voor en door kinderen. "https://wikikids.nl/index.php?title=Gebruiker:Rots61/GevraagdePaginas.js&oldid=766501"