Utilisateur:PAC2/articlebox.js

Une page de Wikipédia, l'encyclopédie libre.
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) ;

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);

});
}