MediaWiki:Script/Redactor.js
Révision datée du 21 juin 2022 à 20:10 par Dexter (discussion | contributions) (Page créée avec « var globalBol = false; function filterLinks(ar1, ar2) { ar1.childNodes.forEach(function(el1){ ar2.childNodes.forEach(function(el2){ if (el1.children[0].textCo... »)
Note : après avoir enregistré 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 pressez Ctrl-F5 ou Ctrl-R (⌘-R sur un Mac)
- Google Chrome : appuyez sur Ctrl-Maj-R (⌘-Shift-R sur un Mac)
- Internet Explorer : maintenez la touche Ctrl en cliquant sur le bouton Actualiser ou pressez Ctrl-F5
- Opera : allez dans Menu → Settings (Opera → Préférences sur un Mac) et ensuite à Confidentialité & sécurité → Effacer les données d’exploration → Images et fichiers en cache.
var globalBol = false;
function filterLinks(ar1, ar2) {
ar1.childNodes.forEach(function(el1){
ar2.childNodes.forEach(function(el2){
if (el1.children[0].textContent === el2.children[0].textContent) {
el1.classList.add("tabber-noactive");
}
})
})
};
function addCompareLinks() {
var linksHere = document.querySelector("li#t-whatlinkshere");
if (linksHere !== null) {
var pageName = encodeURIComponent(mw.config.get("wgPageName"));
var hrefCompare = "/index.php?title=Spécial:Pages_liées/"+pageName+"&compare=1";
var compareLinks = document.createElement("li");
var linkCompareLinks = document.createElement("a");
var spanCompareLinks = document.createElement("span");
spanCompareLinks.textContent = "Comparer les liens";
linkCompareLinks.href = hrefCompare;
linkCompareLinks.appendChild(spanCompareLinks);
compareLinks.appendChild(linkCompareLinks);
linksHere.parentElement.appendChild(compareLinks);
}
}
function compareLinks(page) {
if (globalBol) {
var listBl = document.querySelector("ul#backlinks");
var listL = document.querySelector("ul#links");
filterLinks(listBl, listL);
filterLinks(listL, listBl);
} else {
globalBol = !globalBol;
}
}
function addLinksToPage(linkName, list) {
var listEl = document.createElement("li");
var link = document.createElement("a");
link.href = "/index.php/" + encodeURIComponent(linkName);
link.textContent = linkName;
listEl.appendChild(link);
list.appendChild(listEl);
}
function writeBacklinks(api, name, list, page) {
var params = {
action: 'query',
format: 'json',
list: 'backlinks',
bllimit: "max",
bltitle: name
}
api.get(params).then(function(data){
var bl = data.query.backlinks;
for (var b in bl) {
var linkName = bl[b].title;
addLinksToPage(linkName, list);
}
compareLinks(page);
});
}
function writeLinks(api, name, list, page) {
var params = {
action: 'query',
format: 'json',
titles: name,
pllimit: "max",
prop: 'links'
}
api.get(params).then(function(data){
var linksList = [];
var pages = data.query.pages
for (var p in pages) {
pages[p].links.forEach(function(l) {
var linkName = l.title;
addLinksToPage(linkName, list);
});
}
compareLinks(page)
});
}
function resetPage(page) {
if (page !== null) {
page.childNodes.forEach(function(el){
el.remove();
});
page.textContent = "";
}
}
(function(){
addCompareLinks();
if (window.location.href.indexOf("compare=1") !== -1) {
var name = mw.config.get("wgPageName").split("/");
if (name[0] === 'Spécial:Pages_liées') {
var pageContent = document.querySelector("div#mw-content-text");
var api = new mw.Api();
var listBl = document.createElement("ul");
var listL = document.createElement("ul");
var para1 = document.createElement("p");
var para2 = document.createElement("p");
var realName = name[1];
listBl.id = "backlinks";
listL.id = "links";
resetPage(pageContent);
writeBacklinks(api, realName, listBl, pageContent);
writeLinks(api, realName, listL, pageContent);
para1.textContent = "Les pages suivantes présent un lien vers "+realName+" mais "+realName+" ne présente pas de liens vers elles."
pageContent.appendChild(para1);
pageContent.appendChild(listBl);
para2.textContent = "Un lien vers les pages suivantes est présent sur "+realName+" mais aucun lien vers "+realName+" n'est présent sur ces pages."
pageContent.appendChild(para2);
pageContent.appendChild(listL);
}
}
})();