MediaWiki:Gadget-ArticlesRecents.js

Dans le monde d'aujourd'hui, MediaWiki:Gadget-ArticlesRecents.js a acquis une grande pertinence dans différents domaines. Que ce soit en politique, en technologie, en économie ou dans la société en général, MediaWiki:Gadget-ArticlesRecents.js est devenu un sujet d'intérêt et de débat constant. L'importance de MediaWiki:Gadget-ArticlesRecents.js réside dans son impact sur la vie quotidienne des gens, ainsi que dans son influence sur le développement et l'évolution de différents aspects de la société. Dans cet article, nous examinerons en profondeur le rôle que joue MediaWiki:Gadget-ArticlesRecents.js dans nos vies, en explorant ses implications et ses conséquences dans différents contextes.
/*<noinclude>{{Catégorisation JS|ArticlesRecents}}


* Documentation : voir ]

	
* Licence : Domaine public
	
</noinclude>

== Code JavaScript ==

{{Boîte déroulante/début|titre=Articles récents}}<!--
*/
// --><source lang=javascript>
//<pre><nowiki>

var ArticlesRecents_TailleListe = 10;

var ArticlesRecents_ModeleDefautDebut = '{{Articles récents\n'
                  + '|pageportail=$1\n'
                  + '|catégorie=$2\n'
                  + '|nbMax=$3\n'
                  + '|defilant=oui\n'
                  + '|hauteur=250\n'
                  + '|listeRecents=\n'
                  + '$4\n'
                  + '}}\n'

var ArticlesRecents_DebutListeRecents = '<!-- Ce tableau est créé automatiquement par un robot. Articles Récents DEBUT -->\n';

var ArticlesRecents_FinListeRecents = '<!-- Ce tableau est créé automatiquement par un robot. Articles Récents FIN -->\n'

var ArticlesRecents_ResumeModif = 'Mise à jour du modèle ]';


if( (mw.config.get('wgAction')!="edit")&&(mw.config.get('wgAction')!="submit") ){
     $(ArticlesRecents_init);
}

// recherche des modèles {{Articles récents}} de la page et ajout des liens de mise à jour

var ArticlesRecents_TemplateCount = 0;
function ArticlesRecents_init(){
     var Cadres = document.getElementsByTagName('div');
     for(s=0;s<Cadres.length;s++){
            if( $(Cadres).hasClass('categoryRecentChanges') ){
                  ArticlesRecents_TemplateCount++
                  Cadres.id = 'categoryRecentChanges_'+ArticlesRecents_TemplateCount;
                  var ParamCategorie = Cadres.firstChild.innerHTML;
                  var ParamPage = Cadres.firstChild.title;
                  var NewButton = '<a href="javascript:ArticlesRecents_Update(\'categoryRecentChanges_'
                  +ArticlesRecents_TemplateCount+ '\',\''+ParamPage.replace(/'/g,"\\'")+'\');" title="Cliquer pour  mettre à jour l\'analyse de la catégorie ' + ParamCategorie + ' sur la page '+ParamPage+'" ><img height="50" width="50" src="//upload.wikimedia.org/wikipedia/commons/thumb/4/4a/Crystal_Clear_action_exit.svg/50px-Crystal_Clear_action_exit.svg.png" alt="Démarrer la mise à jour"/></a>' ;
                  Cadres.innerHTML = NewButton + Cadres.innerHTML;
            }
     }
}

function ArticlesRecents_Update(id, Page){
     if(!id) return;
     if(!Page) Page = mw.config.get('wgPageName');
     var Cadre = document.getElementById(id);
     if(!Cadre){
          alert('Il y a un problème avec le modèle {{Articles récents}}');
          window.location.reload();
     }
     var Bouton = Cadre.getElementsByTagName('span');
     var ParamCategorie = Bouton.innerHTML;
     var ParamPage = Bouton.title;
     var TailleListe = Bouton.className;
     if((!TailleListe)||(TailleListe=='')) TailleListe = ArticlesRecents_TailleListe;
// /*
               var Suretcertain = confirm('Paramètres :'
                                        + '\n* Page à mettre à jour : -( ' + ParamPage + ' )- '
                                        + '\n* Catégorie : -( ' + ParamCategorie + ' )- '
                                        + '\n* Maximum : -( ' + TailleListe + ' )- '
                                        + '\n\n Lancer la mise à jour ?' );
               if(!Suretcertain) window.location.reload();
// */
     var NewCategory = ;
     
     var api = new mw.Api();
     api.get({
          action  : 'query',
          list    : 'categorymembers',
          cmdir   : 'descending',
          cmsort  : 'timestamp',
          cmlimit : TailleListe,
          cmtitle : ParamCategorie
     }).then( function ( data ) {
          var categorymembers = data.query.categorymembers;
          if ( categorymembers ) {
               for(var a=0,l=categorymembers.length;a<l;a++){
                    var TitrePage = categorymembers.title;
                    var NS = parseInt(categorymembers.ns);
                    if(NS === 0) NewCategory.push(TitrePage);
               }
               ArticlesRecents_Edit(id, ParamPage, ParamCategorie, TailleListe, NewCategory);
          }
     } );
}

function ArticlesRecents_Edit(id, ParamPage, ParamCategorie, TailleListe, NewRecents){
     var URL = mw.config.get('wgServer') + mw.config.get('wgScript') + "?title=" + encodeURIComponent(ParamPage) + '&action=edit';
     $.ajax({url : URL, complete : function(Req){
               while(document.body.firstChild){document.body.removeChild(document.body.firstChild);}
               ajaxResponse = Req.responseText;
               document.body.innerHTML = ajaxResponse;
               var ContenuPage = document.getElementById("wpTextbox1").value;
               var AncienResumeModif = document.editform.wpSummary.value;

               var NouvelleListeRecents = ArticlesRecents_DebutListeRecents;
               for(var r=0;r<NewRecents.length;r++){
                    NouvelleListeRecents += '#  + ']]\n';
               }
               NouvelleListeRecents += ArticlesRecents_FinListeRecents;
               if(
                  (ContenuPage.indexOf(ArticlesRecents_DebutListeRecents)!=-1) &&
                  (ContenuPage.indexOf(ArticlesRecents_FinListeRecents)!=-1) ){
                    var debutTexte = ContenuPage.substring(0, ContenuPage.indexOf(ArticlesRecents_DebutListeRecents));
                    AncienModele = ContenuPage.substring(0, ContenuPage.indexOf(ArticlesRecents_FinListeRecents)) + ArticlesRecents_FinListeRecents;
                    AncienModele = AncienModele.replace(debutTexte, "");
                    finTexte = ContenuPage.split(debutTexte).join('').split(AncienModele).join('');
                    var TexteFinal = debutTexte + NouvelleListeRecents + finTexte;
/*
                    alert('Début Texte : \n\n' + debutTexte);
                    alert('NouvelleListeRecents : \n\n' + NouvelleListeRecents);
                    alert('Fin Texte : \n\n' + finTexte);
*/
               }else{
                    var TexteFinal = ArticlesRecents_ModeleDefautDebut;
                    TexteFinal = TexteFinal.split('$1').join(ParamPage);
                    TexteFinal = TexteFinal.split('$2').join(ParamCategorie);
                    TexteFinal = TexteFinal.split('$3').join(TailleListe);
                    TexteFinal = TexteFinal.split('$4').join(NouvelleListeRecents);
               }
               document.getElementById ("wpTextbox1").value = TexteFinal;
               document.editform.wpSummary.value = AncienResumeModif + ArticlesRecents_ResumeModif ;
               var SurEtCertain = confirm('Publier la modification ?');
               if(SurEtCertain) document.editform.submit();;
          }
     });
}

//</nowiki></pre></source>{{Boîte déroulante/fin}}