Gebruiker:Rots61/GevraagdePaginas.js
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>(<a href="/Speciaal:VerwijzingenNaarHier/${page.title}">L</a>|<a href="https://nl.wikipedia.org/wiki/${page.title}">W</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 getPagesR61GP() {
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 R61allPages = getPagesR61GP();
showProject(R61allPages);
}