Utilisateur:PAC2/articlebox.js
Apparence
Note : après avoir enregistré la page, vous devrez forcer le rechargement complet du cache de votre navigateur pour voir les changements.
Mozilla / Firefox / Konqueror / Safari : maintenez la touche Majuscule (Shift) en cliquant sur le bouton Actualiser (Reload) ou pressez Maj-Ctrl-R (Cmd-R sur Apple Mac) ;
Firefox (sur GNU/Linux) / Chrome / Internet Explorer / Opera : maintenez la touche Ctrl en cliquant sur le bouton Actualiser ou pressez Ctrl-F5./*
La documentation de ce script se trouve ici [[Utilisateur:PAC2/Rock your side box]]
*/
if (mw.config.get('wgNamespaceNumber') == 0) {
mw.loader.using('mediawiki.util', function () {
var articlebox = function ($) {
$("#p-navigation").append("<div id='p-articlebox' class='mw-portlet' role='navigation', aria-labelledby='p-articlebox-label'><h3 id='p-articlebox-label'>Boîte article</h3><div class='body'><ul></ul></div></div>") ;
var prose = new XMLHttpRequest();
prose.open("GET", "https://xtools.wmcloud.org/api/page/prose/fr.wikipedia.org/" + mw.config.get( 'wgPageName' ), false);
prose.send();
var prosecontent = JSON.parse(prose.responseText) ;
var articleinfo = new XMLHttpRequest();
articleinfo.open("GET", "https://xtools.wmcloud.org/api/page/articleinfo/fr.wikipedia.org/" + mw.config.get( 'wgPageName' ), false);
articleinfo.send();
var articleinfocontent = JSON.parse(articleinfo.responseText) ;
mw.util.addPortletLink(
/* portletID */ 'p-articlebox',
/* href */ "https://xtools.wmflabs.org/articleinfo/fr.wikipedia.org/" + mw.config.get( 'wgPageName' ),
/* text */ articleinfocontent.revisions.toLocaleString('fr-FR') + ' modifications' ,
/* id */ 'p-revisions',
/* tooltip */ "Nombre total de modifications" );
mw.util.addPortletLink(
/* portletID */ 'p-articlebox',
/* href */ "https://xtools.wmflabs.org/articleinfo/fr.wikipedia.org/" + mw.config.get( 'wgPageName' ),
/* text */ articleinfocontent.editors.toLocaleString('fr-FR') + ' contributeurs' ,
/* id */ 'p-editors',
/* tooltip */ "Nombre total de contributeurs" );
mw.util.addPortletLink(
/* portletID */ 'p-articlebox',
/* href */ "https://xtools.wmflabs.org/articleinfo/fr.wikipedia.org/" + mw.config.get( 'wgPageName' ),
/* text */ prosecontent.words.toLocaleString('fr-FR') + ' mots' ,
/* id */ 'p-words',
/* tooltip */ "Nombre total de mots" );
function readingtime(x) {
return Math.round(x / 300) ;
}
mw.util.addPortletLink(
/* portletID */ 'p-articlebox',
/* href */ "https://xtools.wmflabs.org/articleinfo/fr.wikipedia.org/" + mw.config.get( 'wgPageName' ),
/* text */ readingtime(prosecontent.words).toLocaleString('fr-FR') + ' minutes de lecture' ,
/* id */ 'p-minutes',
/* tooltip */ "Temps de lecture approximatif (300 mots par minute)" );
mw.util.addPortletLink(
/* portletId */ 'p-articlebox',
/* href */ 'https://pageviews.toolforge.org/?project=fr.wikipedia.org&platform=all-access&agent=user&redirects=0&range=latest-30&pages=' + mw.config.get('wgPageName'),
/* text */ articleinfocontent.pageviews.toLocaleString('fr-FR') + ' vues depuis 30 jours',
/* id */ 'p-pageviews',
/* tooltip */ 'Nombre de pages vues sur les 30 derniers jours') ;
mw.util.addPortletLink(
/* portletId */ 'p-articlebox',
/* href */ 'https://reasonator.toolforge.org/?q=' + mw.config.get('wgWikibaseItemId') + '&lang=fr',
/* text */ 'Reasonator ' + mw.config.get('wgWikibaseItemId'),
/* id */ 'p-reasonator',
/* tooltip */ 'Wikidata mis en forme' );
mw.util.addPortletLink(
/* portletID */ 'p-articlebox',
/* href */ "https://xtools.wmflabs.org/articleinfo/fr.wikipedia.org/" + mw.config.get( 'wgPageName' ),
/* text */ prosecontent.references.toLocaleString('fr-FR') + ' références' ,
/* id */ 'p-references',
/* tooltip */ "Nombre total de références" );
mw.util.addPortletLink(
/* portletID */ 'p-articlebox',
/* href */ 'http://www.google.fr/search?&q=\"' + mw.util.rawurlencode( mw.config.get( 'wgTitle' ) ) + '\"',
/* text */ mw.config.get( 'wgTitle' ) + ' sur Google' ,
/* id */ 'p-google',
/* tooltip */ 'Recherche du titre sur Google' );
mw.util.addPortletLink(
/* portletID */ 'p-articlebox',
/* href */ 'https://scholar.google.fr/scholar?hl=fr&q=\"' + mw.util.rawurlencode( mw.config.get( 'wgTitle' ) ) + '\"&btnG=&lr=',
/* text */ mw.config.get( 'wgTitle' ) + ' sur Google Scholar',
/* id */ 'p-scholar',
/* tooltip */ 'Recherche du titre sur Google Scholar' );
// Relier l'article
var whatlinkshere = new mw.Api();
whatlinkshere.get( {
action: 'query',
prop: 'linkshere',
titles: mw.config.get( 'wgPageName' ),
format: 'json',
formatversion: 2,
lhnamespace: 0,
lhlimit: 500,
} ).then( function( data ) {
var nbLinks = data.query.pages[ 0 ].linkshere.length ;
mw.util.addPortletLink(
/* portletID */ 'p-articlebox',
/* href */ "https://fr.wikipedia.org/w/index.php?title=Sp%C3%A9cial%3APages+li%C3%A9es&target=" + mw.config.get( 'wgPageName' ) + "&namespace=0",
/* text */ nbLinks.toLocaleString('fr-FR') + ' articles liées' ,
/* id */ 'p-nblinks',
/* tooltip */ "Nombre de pages liées dans l'espace principal" );
} );
mw.util.addPortletLink(
/* portletID */ 'p-articlebox',
/* href */ 'http://www.google.fr/search?num=20&safe=off&q=site%3Afr.wikipedia.org+\"' + mw.util.rawurlencode( mw.config.get( 'wgTitle' ) ) + '\"&btnG=Search',
/* text */ mw.config.get( 'wgTitle' ) + ' dans Wikipédia',
/* id */ 'p-googlewp',
/* tooltip */ 'Recherche du titre dans Wikipédia via Google' );
// Illustrer l'article
mw.util.addPortletLink(
/* portletID */ 'p-articlebox',
/* href */ 'https://commons.wikimedia.org/w/index.php?search=\"' + mw.util.rawurlencode( mw.config.get( 'wgTitle' ) ) + '\"',
/* text */ mw.config.get( 'wgTitle' ) + ' sur Commons',
/* id */ 'p-commons',
/* tooltip */ 'Recherche du titre sur Wikimedia Commons' );
mw.util.addPortletLink(
/* portletID */ 'p-articlebox',
/* href */ 'https://commons.wikimedia.org/w/index.php?title=Special:Search&search=haswbstatement%3AP180%3D' + mw.config.get('wgWikibaseItemId'),
/* text */ 'Médias représentant ' + mw.config.get( 'wgTitle' ),
/* id */ 'p-p180',
/* tooltip */ 'Recherche structurée sur Wikimédia Commons (P180)' );
var gendercount =
"https://query.wikidata.org/embed.html#SELECT%20%3Fgender%20%3FgenderLabel%20(COUNT(%3Fitem)%20AS%20%3Fcount)%20%0AWHERE%20%7B%0A%20%20SERVICE%20wikibase%3Amwapi%20%7B%0A%20%20%20%20%20bd%3AserviceParam%20wikibase%3Aendpoint%20%22fr.wikipedia.org%22%3B%20%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20wikibase%3Aapi%20%22Generator%22%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20mwapi%3Agenerator%20%22links%22%3B%20%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20mwapi%3Atitles%20%22" + encodeURIComponent(mw.config.get( 'wgPageName' )) + "%22%3B.%20%0A%20%20%20%20%20%3Fitem%20wikibase%3AapiOutputItem%20mwapi%3Aitem.%0A%20%20%7D%20%0A%20%20FILTER%20BOUND%20(%3Fitem)%20%23%20Safeguard%20to%20not%20get%20a%20timeout%20from%20unbound%20items%20when%20using%20%3Fitem%20below%0A%20%20%3Fitem%20wdt%3AP21%20%3Fgender%20.%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%0ASERVICE%20wikibase%3Alabel%20%7B%20bd%3AserviceParam%20wikibase%3Alanguage%20%22%5BAUTO_LANGUAGE%5D%2Cen%22.%20%7D%20%20%20%20%0A%7D%0AGROUP%20BY%20%3Fgender%20%3FgenderLabel";
mw.util.addPortletLink(
/* portletID */ 'p-articlebox',
/* href */ gendercount,
/* text */ 'Diversité de genre',
/* id */ 'p-genderdiversity' ,
/* tooltip */ "Décompte des éléments cités dans par genre" );
};
$(articlebox);
});
}