Technopedia Center
PMB University Brochure
Faculty of Engineering and Computer Science
S1 Informatics S1 Information Systems S1 Information Technology S1 Computer Engineering S1 Electrical Engineering S1 Civil Engineering

faculty of Economics and Business
S1 Management S1 Accountancy

Faculty of Letters and Educational Sciences
S1 English literature S1 English language education S1 Mathematics education S1 Sports Education
  • Registerasi
  • Brosur UTI
  • Kip Scholarship Information
  • Performance
  1. Weltenzyklopädie
  2. Modèle:Images utilisées — Wikipédia
Modèle:Images utilisées — Wikipédia 👆 Click Here! Read More..
Une page de Wikipédia, l'encyclopédie libre.

 Documentation[voir] [modifier] [historique] [purger]

Ce modèle est une ébauche.

Vous pouvez partager votre maîtrise de la syntaxe en le modifiant ou solliciter l’aide sur projet Modèle.

Fonctions

[modifier le code]

Ce modèle est destiné à créer un tableau triable à partir des pages d'une catégorie (typiquement Portail:TRUC/Articles liés, mais cela peut être n'importe quelle catégorie). Le tableau est inséré entre les modèles {{Images utilisées}} et {{Images utilisées fin}} dans un cadre défilant à la hauteur paramétrable pour faciliter l'inclusion dans un cadre de portail ou de projet.

Un code javascript permet de mettre à jour le tableau de façon automatisée.

Paramètres

[modifier le code]
  • {{{pageportail}}} : Titre de la page à mettre à jour par le script (obligatoire)
  • {{{catégorie}}} : catégorie à checker ( catégorie:Portail:TRUC/Articles liés ) (obligatoire)
  • {{{defilant}}} : mettre « non » pour annuler le cadre défilant (facultatif).
  • {{{hauteur}}} : hauteur du cadre défilant créé, en pixels (facultatif : 250px par défaut)

Exemples

[modifier le code]

L'exemple ci-dessous est celui d'un modèle avec comme instructions pour le script de vérifier la catégorie Catégorie:Portail:Colombie/Articles liés, d'extraire les images de chaque page, puis de créer et d'apposer (ou mettre à jour) un tableau triable sur la page Projet:Colombie/Suivi/Images utilisées. Le tableau sera inséré entre les balises de commentaires.

{{Images utilisées
|pageportail=Projet:Colombie/Suivi/Images utilisées
|catégorie=Catégorie:Portail:Colombie/Articles liés
|defilant=oui
|hauteur=300
}}
<!-- Ce tableau est créé automatiquement par un robot. Images Utilisées DEBUT -->
<!-- Ce tableau est créé automatiquement par un robot. Images Utilisées FIN -->
{{Images utilisées fin}}

Il est tout à fait possible de créer ces tableaux sans forcément ajouter le modèle (et le cadre défilant qui va avec) dans la page à modifier, mais il reste nécessaire d'ajouter le modèle correctement paramétré sur une page quelconque pour avoir accès au lien de mise à jour. En d'autres termes, le modèle et le tableau créé sont parfaitement dissociables. Par contre, les commentaires sont importants car ce sont eux que le script recherche pour détecter le début et la fin du tableau lors de sa mise à jour. S'il ne les trouve pas, le script ajoutera le tableau et le modèle (pour la mise à jour) au début de la page.

Mise à jour

[modifier le code]
Aperçu du tableau de bord.

La mise à jour se fait à l'aide d'un code javascript dont le fonctionnement s'apparente à celui d'un bot. Il est à copier dans sa page monobook.js (ou autre suivant l'habillage choisi) .
L'utilisation du script permet l'affichage d'un lien au-dessus du tableau qui lance le processus de mise à jour.

Remarques

[modifier le code]
  • À tout moment, un gros bouton rouge permet de recharger la page et ainsi d'arrêter le processus de mise à jour.
  • Lors de l'analyse de la catégorie, s'il y a plusieurs pages à analyser, ou si une page est longue et contient beaucoup d'images à vérifier, il peut arriver que le navigateur détecte un script qui ne répond plus, il faut alors lui préciser de le laisser continuer.
  • Script testé avec Firefox uniquement.
  • Script indifférent à l'habillage utilisé

Voir aussi

[modifier le code]
  • {{Articles récents}}
  • {{Articles manquants}}
  • {{Maintenance de catégorie}}
  • {{Vérification évaluation}}
  • {{Page au hasard}}

/*

Code JavaScript

[modifier le code]
  • Durée : environ 10 minutes pour 600 pages []
Images Utilisées
var UsedImages_ModeleDefautDebut = '{{Images utilisées\n'
                  + '|pageportail=$1\n'
                  + '|catégorie=$2\n'
                  + '|defilant=oui\n'
                  + '|hauteur=800\n'
                  + '}}\n'

var UsedImages_ModeleDefautFin = '{{Images utilisées fin}}\n';

var UsedImages_ResumeModif = 'Mise à jour du modèle {{Images utilisées}}';

var  UsedImages_DebutModele = '<!-- Ce tableau est créé automatiquement par un robot. Images Utilisées DEBUT -->\n';
var  UsedImages_FinModele = '<!-- Ce tableau est créé automatiquement par un robot. Images Utilisées FIN -->\n'

var UsedImages_Minimum = 1;
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

/* ************************************************************************************************************************************ 
Lancement 
*/
 
if( (mw.config.get('wgAction')!="edit")&&(mw.config.get('wgAction')!="submit") ){
     addOnloadHook(UsedImages_makeUpdateLinks);
}
 
/* ************************************************************************************************************************************ 
1- recherche des modèles {{Maintenance de catégorie}} de la page courante
2- ajout des liens de mise à jour
*/
 
var UsedImages_StartButton = '<img height="50" width="50" src="http://upload.wikimedia.org/wikipedia/commons/thumb/4/4a/Crystal_Clear_action_exit.svg/50px-Crystal_Clear_action_exit.svg.png" alt="Lancer la mise à jour">';
 
var UsedImages_WorkingButton = '<img height="50" width="50" src="http://upload.wikimedia.org/wikipedia/commons/d/de/Ajax-loader.gif" alt="Mise à jour en cours">';
 

function UsedImages_makeUpdateLinks(){
     var count=-1;
     var Cadres = document.getElementsByTagName('div');
     for(s=0;s<Cadres.length;s++){
            if( $(Cadres[s]).hasClass('categoryUsedImages') ){          
                  count++
                  Cadres[s].id = 'categoryUsedImages_'+count;
                  var ParamCategorie = Cadres[s].firstChild.innerHTML;
                  var ParamPage = Cadres[s].firstChild.title;
                  var NewButton = '<a id="categoryUsedImagesLink_'+count+'" href="javascript:UsedImages_GetParams('+count+');" title="Cliquer pour  mettre à jour l\'analyse de la catégorie ' + ParamCategorie + ' sur la page '+ParamPage+'" >'+UsedImages_StartButton+'</a>' ;
                  Cadres[s].innerHTML += NewButton ;
            }
     }
}
 
function UsedImages_GetParams(index){
     var Modele = document.getElementById('categoryUsedImages_'+index);
     if(!Modele) return;
     var Cadre = Modele.firstChild;
     if(!Cadre) return;
     var ParamCategorie = Cadre.innerHTML;
     var ParamPage = Cadre.title;
     var Pop1 = 'Limite basse du nombre d\'occurrences :\n';
     var Minimum = prompt(Pop1, UsedImages_Minimum);
     if(Minimum){
          if(Minimum!=''){
               Minimum = parseInt(Minimum);
               if(Minimum!="NaN") UsedImages_Minimum = Minimum;
          }
     }
     var Pop = 'Catégorie à vérifier :\n'
             + '* '+ParamCategorie+'\n\n'
             + 'Page à mettre à jour :\n'
             + '* '+ParamPage+'\n\n'
             + 'Minimum :\n'
             + '* '+UsedImages_Minimum+'\n\n'
             + 'Continuer ?';
     var SurEtCertain = confirm(Pop);
     if(SurEtCertain){
          Modele.innerHTML += '<br /><span id="WorkingFunction" ></span><br /><span id="WorkingPage" ></span>';
          UsedImages_CheckCategory(ParamPage, ParamCategorie);
          var Lien = document.getElementById('categoryUsedImagesLink_'+index)
          if(Lien){
               Lien.innerHTML = UsedImages_WorkingButton ;
               Lien.title = "Arrêter la mise à jour" ;
               Lien.href = "javascript:window.location.reload();";
               Lien.blur();
          }
     }
}
 
// ///////////////////////////////////////////////////// REQUÊTE PAGES DE LA CATÉGORIE /////////////////////////
 
function UsedImages_CheckCategory(ParamPage, ParamCategorie, PageList, ParamContinue){
      if(!PageList) PageList = new Array();
      if(!ParamContinue) ParamContinue='';
      if( (mw.config.get('wgUserGroups').indexOf("sysop")!=-1)||(mw.config.get('wgUserGroups').indexOf("bot")!=-1) ){
           var APILimit=4999;
      }else{
           var APILimit=499;
      }
 
      document.getElementById('WorkingFunction').innerHTML = "Listage des pages";
      document.getElementById('WorkingPage').innerHTML = ParamCategorie;
      var NouvelleRequete = new XMLHttpRequest()
      var AdresseRequete = mw.config.get('wgServer') + '/w/api.php?action=query&list=categorymembers&cmlimit='+APILimit+'&cmtitle=' + ParamCategorie.replace(/&/g,"%26") + '&cmcontinue=' + ParamContinue;
      //alert(AdresseRequete);
      NouvelleRequete.open("GET", AdresseRequete, true);
      NouvelleRequete.onreadystatechange = function() {
            if(NouvelleRequete.readyState != 4 || NouvelleRequete.status != 200) return;
            var ElementTraitement = document.createElement('div');
            ElementTraitement.innerHTML = NouvelleRequete.responseText; 
            var Informations = ElementTraitement.getElementsByTagName('span');
            var AutreRequeteNecessaire = false;
            for(a=0;a<Informations.length;a++){
                  var ContenuInformation = Informations[a].innerHTML;
                  if((ContenuInformation.indexOf('ns="0"')!=-1)||(ContenuInformation.indexOf('ns="1"')!=-1)){
                        var TitrePage = ContenuInformation.split('title="')[1].split('"')[0];
                        TitrePage = UsedImages_Clean(TitrePage);
                        PageList.push(TitrePage);
                  }
                  if(ContenuInformation.indexOf('cmcontinue=')!=-1){
                        AutreRequeteNecessaire = true;
                        var AutreRequeteContinue = ContenuInformation.split('cmcontinue="')[1].split('"')[0];
                        AutreRequeteContinue = UsedImages_Clean(AutreRequeteContinue);
                  }
            } 
            if(AutreRequeteNecessaire==true){
                  UsedImages_CheckCategory(ParamPage, ParamCategorie, PageList, AutreRequeteContinue);
            }else{
                  UsedImages_CheckPage(0, ParamPage, ParamCategorie, PageList);
            }
      }
      NouvelleRequete.send(null);
}


function UsedImages_CheckPage(position, ParamPage, ParamCategorie, PageList, ImageList, imContinue){
      if(!ImageList) ImageList = new Array();
      if(!imContinue) imContinue='';
      var Page = PageList[position];
      if(!Page){
            UsedImages_SortImages(ParamPage, ParamCategorie, ImageList);
            return;
      }
      if( (mw.config.get('wgUserGroups').indexOf("sysop")!=-1)||(mw.config.get('wgUserGroups').indexOf("bot")!=-1) ){
           var APILimit=4999;
      }else{
           var APILimit=499;
      }
      document.getElementById('WorkingFunction').innerHTML = "Listage des images";
      document.getElementById('WorkingPage').innerHTML = Page;
      var AdresseRequete = mw.config.get('wgServer') + '/w/api.php?action=query&prop=images&titles='+Page.replace(/&/g, "%26")+'&imlimit='+APILimit+imContinue;
      var NouvelleRequete = new XMLHttpRequest()
      NouvelleRequete.open("GET", AdresseRequete, true);
      NouvelleRequete.onreadystatechange = function() {
            if(NouvelleRequete.readyState != 4 || NouvelleRequete.status != 200) return;
            var ElementTraitement = document.createElement('div');
            ElementTraitement.innerHTML = NouvelleRequete.responseText; 
            var Informations = ElementTraitement.getElementsByTagName('span');
            var AutreRequeteNecessaire = false;
            for(a=0;a<Informations.length;a++){
                  var ContenuInformation = Informations[a].innerHTML;
                  if(ContenuInformation.indexOf('ns="6"')!=-1){
                        var TitrePage = ContenuInformation.split('title="')[1].split('"')[0];
                        TitrePage = UsedImages_Clean(TitrePage);
                        ImageList.push(TitrePage);
                  }
                  if(ContenuInformation.indexOf('imcontinue=')!=-1){
                        AutreRequeteNecessaire = true;
                        var AutreRequeteContinue = '&imcontinue=' + ContenuInformation.split('imcontinue="')[1].split('"')[0];
                        AutreRequeteContinue = UsedImages_Clean(AutreRequeteContinue);
                  }
            } 
            if(AutreRequeteNecessaire==true){
                  UsedImages_CheckPage(position, ParamPage, ParamCategorie, PageList, ImageList, AutreRequeteContinue);
            }else{
                  UsedImages_CheckPage((position+1), ParamPage, ParamCategorie, PageList, ImageList);
            }
      }
      NouvelleRequete.send(null);
}

function UsedImages_SortImages(ParamPage, ParamCategorie, ImageList){
      document.getElementById('WorkingFunction').innerHTML = "Tri des images";
      document.getElementById('WorkingPage').innerHTML = '';
      ImageList = ImageList.sort();
      var SortedImageList = new Array();
      var SortedImageListCount = new Array();
      var index = 0;
      var NbLiens = 1;
      for(var a=0;a<ImageList.length;a++){
            if(ImageList[a]==ImageList[(a+1)]){
                  NbLiens++
            }else{
                  SortedImageList[index] = ImageList[a];
                  SortedImageListCount[index] = NbLiens;
                  index++
                  NbLiens = 1;
            }
      }
      var StandardLine = '$2$5$1|[[Special:Whatlinkshere/$1|$3 occurrence$4]]\n';
      var TableLines = new Array();
      for(var b=0;b<SortedImageList.length;b++){
            if(SortedImageListCount[b]>(UsedImages_Minimum-1)){
                  var pluriel = '';
                  if(SortedImageListCount[b]>1) pluriel = 's';
                  var Occurrences = SortedImageListCount[b];
                  var ZeroOccurrences = "";
                  if(Occurrences<10) ZeroOccurrences +="0";
                  if(Occurrences<100) ZeroOccurrences +="0";
                  if(Occurrences<1000) ZeroOccurrences +="0";
                  var NewLine = StandardLine
                  NewLine = NewLine.split('$1').join(SortedImageList[b]);
                  NewLine = NewLine.split('$2').join(ZeroOccurrences+Occurrences);
                  NewLine = NewLine.split('$3').join(Occurrences);
                  NewLine = NewLine.split('$4').join(pluriel);
                  TableLines.push(NewLine);
            }
      }
      TableLines = TableLines.sort();
      for(var c=0;c<TableLines.length;c++){
            TableLines[c] = TableLines[c].split('$5')[1];
      }
      UsedImages_Edit(ParamPage, ParamCategorie, TableLines);
}


function UsedImages_Edit(ParamPage, ParamCategorie, TableLines){
      document.getElementById('WorkingFunction').innerHTML = "Édition";
      document.getElementById('WorkingPage').innerHTML = ParamPage;
      var ajaxRequest = new XMLHttpRequest();
      var url = mw.config.get('wgServer') + mw.config.get('wgScript') + '?title=' + ParamPage.replace(/&/g, "%26") + '&action=edit';
      ajaxRequest.open("GET", url, true);
      ajaxRequest.onreadystatechange = function() {
            if(ajaxRequest.readyState != 4 || ajaxRequest.status != 200) return;
            while(document.body.firstChild){document.body.removeChild(document.body.firstChild);} 
            document.body.innerHTML = ajaxRequest.responseText;

            var Aujourdhui = new Date();
            var Minutes   = Aujourdhui.getMinutes()
            if(Minutes<10){ var ZeroMinutes = "0" ; }else{ var ZeroMinutes = "";}
            var Heures   = Aujourdhui.getHours()
            if(Heures<10){ var ZeroHeures = "0" ; }else{ var ZeroHeures = "";}
            var Jour   = Aujourdhui.getDate();
            if(Jour<10){ var ZeroJour = "0" ; }else{ var ZeroJour = "";}
            var Mois = Aujourdhui.getMonth() + 1;
            if(Mois<10){ var ZeroMois = "0" ; }else{ var ZeroMois = "";}
            var Annee  = Aujourdhui.getYear();
            if (Annee < 2000){
                  Annee = Annee + 1900;
            }
            var Titre = '<center>\'\'Catégorie : \'\'\'[[:'+ParamCategorie+'|'+ParamCategorie.split(mw.config.get('wgFormattedNamespaces')[14]+':').join('')+']]\'\'\' - Tableau [[Modèle:Images utilisées/Documentation|mis à jour]] le ' + ZeroJour + Jour + '/' + ZeroMois + Mois + '/' + Annee + ' à ' + ZeroHeures + Heures + ':' + ZeroMinutes + Minutes + '\'\'</center>\n';
 
            var Modele = Titre + '<gallery>\n';
            for(var a=(TableLines.length-1);a>-1;a--){
                  Modele += TableLines[a];
            }
            Modele += '</gallery>\n';

            var TableauComplet = UsedImages_DebutModele+Modele+UsedImages_FinModele;

            UsedImages_ModeleDefautDebut = UsedImages_ModeleDefautDebut.split('$1').join(ParamPage);
            UsedImages_ModeleDefautDebut= UsedImages_ModeleDefautDebut.split('$2').join(ParamCategorie);


            var ContenuPage = document.getElementById("wpTextbox1").value;
            var AncienResumeModif = document.editform.wpSummary.value;

            if( (ContenuPage.indexOf(UsedImages_DebutModele)!=-1)&&(ContenuPage.indexOf(UsedImages_FinModele)!=-1) ){
// ----------------- Déja le modèle : remplacement tableau
                  var debutTexte = ContenuPage.substring(0, ContenuPage.indexOf(UsedImages_DebutModele));
                  var AncienModele = ContenuPage.substring(0, ContenuPage.indexOf(UsedImages_FinModele)) + UsedImages_FinModele;
                  AncienModele = AncienModele.replace(debutTexte, "");       
                  var finTexte = ContenuPage.split(debutTexte).join('').split(AncienModele).join('');
                  var TexteFinal = debutTexte + TableauComplet + finTexte;
            }else{
// ----------------- Pas de modèle : ajout modèle + tableau
                  var TexteFinal = UsedImages_ModeleDefautDebut + TableauComplet + UsedImages_ModeleDefautFin + ContenuPage;
            }
                                       
            document.getElementById ("wpTextbox1").value = TexteFinal ;
            document.editform.wpSummary.value = AncienResumeModif + UsedImages_ResumeModif ;
            document.editform.submit();

      }
      ajaxRequest.send(null);
}

// ///////////////////////////////////////////////////// NETTOYAGE REQUÊTES API /////////////////////////
 
function UsedImages_Clean(text){
      while(text.indexOf('&amp;')!=-1){
            text = text.split('&amp;').join("&");
            if(text.indexOf('&amp;')==-1) break;
      }
      while(text.indexOf('&#039;')!=-1){
            text = text.split('&#039;').join("'");
            if(text.indexOf('&#039;')==-1) break;
      }
      while(text.indexOf('&quot;')!=-1){
            text = text.split('&quot;').join('"');
            if(text.indexOf('&quot;')==-1) break;
      }
      while(text.indexOf('&nbsp;')!=-1){
            text = text.split('&nbsp;').join(' ');
            if(text.indexOf('&nbsp;')==-1) break;
      }  
      return text;
}


//
 


La documentation de ce modèle est générée par le modèle {{Documentation}}.
Elle est incluse depuis sa sous-page de documentation. Veuillez placer les catégories sur cette page-là.
Les éditeurs peuvent travailler dans le bac à sable (créer) et la page de test (créer).
Voir les statistiques d'utilisation du modèle sur l'outil wstat.

Ce document provient de « https://fr.teknopedia.teknokrat.ac.id/w/index.php?title=Modèle:Images_utilisées&oldid=81141643 ».
Catégorie :
  • Modèle utilisant du code JavaScript
Catégories cachées :
  • Page utilisant des balises source obsolètes
  • Wikipédia:ébauche Modèle:

  • indonesia
  • Polski
  • الرية
  • Deutsch
  • English
  • Español
  • Français
  • Italiano
  • مصر
  • Nederlands
  • 本語
  • Português
  • Sinugboanong Binisaya
  • Svenska
  • Українска
  • Tiếng Việt
  • Winaray
  • 中文
  • Русски
Sunting pranala
Pusat Layanan

UNIVERSITAS TEKNOKRAT INDONESIA | ASEAN's Best Private University
Jl. ZA. Pagar Alam No.9 -11, Labuhan Ratu, Kec. Kedaton, Kota Bandar Lampung, Lampung 35132
Phone: (0721) 702022
Email: pmb@teknokrat.ac.id