Maak jij deze zomer 2025 Het Perfecte WikiKids-kiekje? Iedereen kan meedoen!
Gebruiker:Rots61/JS-TVB.js: verschil tussen versies
Naar navigatie springen
Naar zoeken springen
Regel 3: | Regel 3: | ||
// Geschreven door Rots61 | // Geschreven door Rots61 | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
var api; | var api; | ||
var catsOnPage = mw.config.get('wgCategories'); | var catsOnPage = mw.config.get('wgCategories'); | ||
Regel 90: | Regel 57: | ||
}); | }); | ||
} | } | ||
− | document.getElementById('mw-content-text').outerHTML += '<hr style="clear:both;"><div id="TVBdemo"><button onclick="TVBstartPT();">TVB</button></div>'; | + | |
+ | if (mw.config.get('wgNamespaceNumber') === 0) { | ||
+ | document.getElementById('mw-content-text').outerHTML += '<hr style="clear:both;"><div id="TVBdemo"><button onclick="TVBstartPT();">TVB</button></div>'; | ||
+ | } else if (mw.config.get('wgNamespaceNumber') === 100) { | ||
+ | api[1] = new mw.Api(); | ||
+ | TVBgetPageCountPT(1, "Categorie:" + mw.config.get('wgTitle')); | ||
+ | setTimeout( function () { // The page count we got will be passed here. | ||
+ | if (TVBportalen.length !== 0) { | ||
+ | document.getElementById('TVBdemo').innerHTML = 'Alle pagina\'s in deze categorie tonen deze box(en): '; | ||
+ | for (var y = 0; y < TVBportalen.length; y++) { | ||
+ | document.getElementById('TVBdemo').innerHTML += TVBportalen[y] + ', '; | ||
+ | } | ||
+ | } else { | ||
+ | document.getElementById('TVBdemo').innerHTML = 'Geen boxen in deze categorie.' ; | ||
+ | } | ||
+ | }, 500); | ||
+ | } |
Versie van 1 mei 2023 22:12
/* jshint sub:true maxerr:100000 */
// Script dat ervoor zorgt dat alle pagina's met een categorie die bij een portaal hoort, automatisch een of meerdere TVB krijgen.
// Geschreven door Rots61
var api;
var catsOnPage = mw.config.get('wgCategories');
var TVBportalen = [];
function TVBstartPT() {
api = new mw.Api();
// Get the number of links
var temp;
for (var x = 0; x < catsOnPage.length; x++) {
api[x] = new mw.Api();
console.log('Begin');
TVBgetPageCountPT(x, "Categorie:" + catsOnPage[x]).then(console.log('Einde'));
}
setTimeout( function () { // The page count we got will be passed here.
if (TVBportalen.length !== 0) {
document.getElementById('TVBdemo').innerHTML = 'TVB: ';
for (var y = 0; y < TVBportalen.length; y++) {
document.getElementById('TVBdemo').innerHTML += TVBportalen[y] + ', ';
}
} else {
document.getElementById('TVBdemo').innerHTML = 'Geen';
}
}, 500);
}
function TVBgetPageCountPT(apinr, pageName) {
return api[apinr].get({
action: "query",
prop: "linkshere",
titles: pageName,
lhlimit: "100",
}).then(function (data) {
temp = data.query.pages;
for (const property in temp) {
temp = temp[property].linkshere;
}
if (typeof temp === 'undefined') {
return 0;
} else {
var tempgetal = 0;
while (temp[tempgetal]) {
if (temp[tempgetal]["title"].startsWith("Gebruiker:Rots61/Portalen")) {
TVBportalen.push(temp[tempgetal]["title"].split("/Portalen/").pop());
}
tempgetal += 1;
}
if (TVBportalen.length) {
return TVBportalen;
} else {
return 0;
}
}
});
}
if (mw.config.get('wgNamespaceNumber') === 0) {
document.getElementById('mw-content-text').outerHTML += '<hr style="clear:both;"><div id="TVBdemo"><button onclick="TVBstartPT();">TVB</button></div>';
} else if (mw.config.get('wgNamespaceNumber') === 100) {
api[1] = new mw.Api();
TVBgetPageCountPT(1, "Categorie:" + mw.config.get('wgTitle'));
setTimeout( function () { // The page count we got will be passed here.
if (TVBportalen.length !== 0) {
document.getElementById('TVBdemo').innerHTML = 'Alle pagina\'s in deze categorie tonen deze box(en): ';
for (var y = 0; y < TVBportalen.length; y++) {
document.getElementById('TVBdemo').innerHTML += TVBportalen[y] + ', ';
}
} else {
document.getElementById('TVBdemo').innerHTML = 'Geen boxen in deze categorie.' ;
}
}, 500);
}