Inscris-toi pour écrire dans l'encyclopédie Wikimini!

Utilisateur:Dr Brains/wikimini.js

Jump to navigation Jump to search

Note : après avoir enregistré tes préférences, tu devras forcer son rechargement complet en ignorant le contenu actuel du cache de ton explorateur pour voir les changements : Mozilla / Firefox / Konqueror / Safari : maintiens la touche Majuscule (Shift) en cliquant le bouton Actualiser (Reload,) ou presse Maj-Ctrl-R (Maj-Cmd-R sur Apple Mac) ; Internet Explorer / Opera : maintiens la touche Ctrl en cliquant le bouton Actualiser ou presse Ctrl-F5.

// __NORICHEDITOR__
//DebutSectionAuto : Cette section est produite automatiquement
//ConfigSectionAuto

//FinSectionAuto
// __NORICHEDITOR__























////////////////////////////////////////////////////////// Alerte de nouveaux messages //// DEBUT

if(wgCanonicalSpecialPageName != "NewMessages" && wgUserGroups!=null) addOnloadHook(function (){
     var Adresse = wgServer + wgArticlePath.split('$1').join("Special:NewMessages");
     var Requete = sajax_init_object();
     Requete.open("GET", Adresse, true);
     Requete.onreadystatechange = function() {
          if( Requete.readyState != 4 )  return;
          var ElementTraitement = document.createElement('div');
          ElementTraitement.style.display = "none";
          document.body.appendChild(ElementTraitement);
          ElementTraitement.innerHTML = Requete.responseText;
          var GotNewMessages = 0;
          var Forms = ElementTraitement.getElementsByTagName('form');
          for(var a=0;a<Forms.length;a++){
               if(!hasClass(Forms[a], "lqt_newmessages_read_button")) continue;
               GotNewMessages++
          }
          ElementTraitement.parentNode.removeChild(ElementTraitement);
          if(GotNewMessages>0){
               var Title = document.getElementsByTagName('h1')[0];
               var Message = document.createElement('div');
               Message.className = "usermessage";
               Message.innerHTML = '<img height="25" width="25" src="http://upload.wikimedia.org/wikipedia/commons/thumb/3/36/Nuvola_apps_email.png/25px-Nuvola_apps_email.png" alt="Nuvola apps email.png" />&nbsp;&nbsp;Tu as <a href="'+wgServer + wgArticlePath.split('$1').join("Special:NewMessages") + '" title="Voir ta boîte à  messages">'+GotNewMessages+(GotNewMessages==1 ? " nouveau message" : " nouveaux messages" ) + '</a>';
               Title.parentNode.insertBefore(Message,Title);
          }
     }
     Requete.send(null);
});

////////////////////////////////////////////////////////// Alerte de nouveaux messages //// FIN

importScript('Mediawiki:Gadgets-Body.js');

/*
////////////////// Texte défilant ////////////////////////////////

var TexteAdefiler = new Array();

var TexteAdefilerLien = new Array();

TexteAdefiler.push("Lien N°1");
TexteAdefilerLien.push("1");
TexteAdefiler.push("Lien N°2");
TexteAdefilerLien.push("2");
TexteAdefiler.push("Lien N°3");
TexteAdefilerLien.push("3");
TexteAdefiler.push("Lien N°4");
TexteAdefilerLien.push("4");
TexteAdefiler.push("Lien N°5");
TexteAdefilerLien.push("5");
TexteAdefiler.push("Lien N°6");
TexteAdefilerLien.push("6");
TexteAdefiler.push("Lien N°7");
TexteAdefilerLien.push("7");
TexteAdefiler.push("Lien N°8");
TexteAdefilerLien.push("8");
TexteAdefiler.push("Lien N°9");
TexteAdefilerLien.push("9");
TexteAdefiler.push("Lien N°0");
TexteAdefilerLien.push("0");

var TexteDefilant_Enabled = true;
var TexteDefilant_Timeout = 100;

addOnloadHook(TexteDefilant);

function TexteDefilant(){

    var SiteNotice = document.getElementById("siteNotice");
    SiteNotice.style.overflow = "hidden";
    if(!SiteNotice) return;
    var Container = document.createElement('div');
    Container.onmouseover = function(){
        TexteDefilant_Enabled = false;
    }
    Container.onmouseout = function (){
        TexteDefilant_Enabled = true;
        TexteDefilant_startDefilement();
    }
    var Liste = document.createElement('ul');
    Liste.id = "TexteDefilant";
    Liste.setAttribute("style", "display:inline;white-space:nowrap;position:relative;left:0px;");
    TexteDefilant_AddOccurence(Liste);
    Container.appendChild(Liste);
    SiteNotice.appendChild(Container);
    var DivWidth = parseInt(SiteNotice.offsetWidth);
    var UlWidth = parseInt(Liste.offsetWidth);
    var oc = 0
    while((DivWidth*1.5)>UlWidth){
        TexteDefilant_AddOccurence(Liste);
        DivWidth = parseInt(SiteNotice.offsetWidth);
        UlWidth = parseInt(Liste.offsetWidth);
        oc++
        //alert("*"+oc+". "+DivWidth+" - "+ UlWidth);
        if(oc > 25) break;
    }
    TexteDefilant_startDefilement();
}

function TexteDefilant_AddOccurence(Ul){
    for(var a=0;a<TexteAdefiler.length;a++){
        var Li = document.createElement('li');
        Li.id = "TexteDefilant"+a;
        Li.innerHTML = '<a href="'+ wgServer + wgArticlePath.split('$1').join(TexteAdefilerLien[a]) + '" title="'+TexteAdefilerLien[a]+'" >'+TexteAdefiler[a]+'</a> • ';
        Li.style.display = "inline";
        Ul.appendChild(Li);
    }
}

function TexteDefilant_startDefilement(){
    if(!TexteDefilant_Enabled) return;
    var Liste = document.getElementById("TexteDefilant");
    var FirstLi = Liste.getElementsByTagName('li')[0]
    FirstLi = TexteDefilant_supprFirstLetter(FirstLi);
    if(FirstLi) TexteDefilant_addNextLi(FirstLi);
    setTimeout("TexteDefilant_startDefilement()", TexteDefilant_Timeout);
}

function TexteDefilant_supprFirstLetter(FirstLi){
    var FirstLiID = FirstLi.id.replace(/[^0-9]/g, "");
    var First = FirstLi.getElementsByTagName('a')[0];
    if(First){
        var Text = First.innerHTML;
        var FirstLetter = Text.substring(0, 1);
        var NextLetters = Text.substring(1, Text.length);
        if(NextLetters==""){
            First.parentNode.removeChild(First);
            return FirstLiID;
        }else{
            First.innerHTML = NextLetters;
            return false;
        }
    }else{
        var Text = FirstLi.innerHTML;
        var FirstLetter = Text.substring(0, 1);
        var NextLetters = Text.substring(1, Text.length);
        if(NextLetters==""){
            FirstLi.parentNode.removeChild(FirstLi);
            return false;
        }else{
            FirstLi.innerHTML = NextLetters;
            return false;
        }
    }
}

function TexteDefilant_addNextLi(FirstLiID){
    var Liste = document.getElementById("TexteDefilant");
    var NewLi = document.createElement('li');
    NewLi.id = "TexteDefilant"+FirstLiID;
    NewLi.innerHTML = '<a href="'+ wgServer + wgArticlePath.split('$1').join(TexteAdefilerLien[FirstLiID]) + '" title="'+TexteAdefilerLien[FirstLiID]+'" >'+TexteAdefiler[FirstLiID]+'</a> • ';
    NewLi.style.display = "inline";
    Liste.appendChild(NewLi);
}
*/

// ############################################################################################################### //

////////////////// Modèle:Information sur pages de description d'images ////////////////////////////////

var DefaultTemplate = '__NORICH'+'EDITOR__{{Information\n'
                    + '|description=$1\n'
                    + '|auteur=$2\n'
                    + '|source=$3\n'
                    + '}}'


if(wgCanonicalSpecialPageName=="Upload"){
      addOnloadHook(Upload_ChangeForm);
}else if((wgNamespaceNumber==6)&&((wgAction=="edit")||(wgAction=="submit"))){
      addOnloadHook(Edit_ChangeForm);
}

function Create_Form(){
      var Form = document.createElement("table");
      Form.className = "Information_Image";
      Form.width = "100%";
      Form.innerHTML = '<tr><th scope=row style="width:175px;text-align:right;">'
                     + '<b>Description</b><br/><span>Que représente cette image ?</span>'
                     + '</th><td>'
                     + '<textarea width="100%" id="UploadDescription" ></textarea>'
                     + '</td></tr>'
                     + '<tr><th scope=row style="text-align:right;">'
                     + '<b>Auteur</b><br/><span>Qui a créé cette image ?</span>'
                     + '</th><td>'
                     + '<textarea width="100%" id="UploadAuteur" ></textarea>'
                     + '</td></tr>'
                     + '<tr><th scope=row style="text-align:right;">'
                     + '<b>Source</b><br/><span>Où as-tu trouvé cette image ?</span>'
                     + '</th><td>'
                     + '<textarea width="100%" id="UploadSource" ></textarea>'
                     + '</td></tr>'
      return Form;
}

// SPECIAL:UPLOAD

function Upload_ChangeForm(){
      var UploadDescription = document.getElementById("wpUploadDescription");
      if(!UploadDescription) return;
      //UploadDescription.style.display = "none";
      UploadDescription.style.opacity = "0.7";

      var Inputs = document.getElementsByTagName('input');
      var FoundInput = false;
      for(var a=0;a<Inputs.length;a++){
            if((!FoundInput)&&(Inputs[a].name == "wpUpload")){
                  FoundInput = true;
                  Inputs[a].id = "UploadSaveInput";
                  Inputs[a].disabled = "disabled";
            } 
      }

      var NewUploadDescription = Create_Form();
      UploadDescription.parentNode.insertBefore(NewUploadDescription, UploadDescription);

      var UploadDescription = document.getElementById("UploadDescription");
      UploadDescription.onkeyup = function(){
            Upload_UpdateOldForm("wpUploadDescription", "UploadSaveInput");
      }
      var UploadAuteur = document.getElementById("UploadAuteur");
      UploadAuteur.onkeyup = function(){
            Upload_UpdateOldForm("wpUploadDescription", "UploadSaveInput");
      }
      var UploadSource = document.getElementById("UploadSource");
      UploadSource.onkeyup = function(){
            Upload_UpdateOldForm("wpUploadDescription", "UploadSaveInput");
      }
}

// EDIT

function Edit_ChangeForm(){
      var UploadDescription = document.getElementById("wpTextbox1");
      if(!UploadDescription) return;
      //UploadDescription.style.display = "none";
      UploadDescription.style.opacity = "0.7";

      var InputSave = document.getElementById('wpSave');
      InputSave.disabled = "disabled";

      var NewUploadDescription = Create_Form();
      UploadDescription.parentNode.insertBefore(NewUploadDescription, UploadDescription);

      var Params = Edit_Getparams();

      var UploadDescription = document.getElementById("UploadDescription");
      UploadDescription.value = Params[0];
      UploadDescription.onkeyup = function(){
            Upload_UpdateOldForm("wpTextbox1", "wpSave");
      }
      var UploadAuteur = document.getElementById("UploadAuteur");
      UploadAuteur.value = Params[1];
      UploadAuteur.onkeyup = function(){
            Upload_UpdateOldForm("wpTextbox1", "wpSave");
      }
      var UploadSource = document.getElementById("UploadSource");
      UploadSource.value = Params[2];
      UploadSource.onkeyup = function(){
            Upload_UpdateOldForm("wpTextbox1", "wpSave");
      }
}

function Edit_Getparams(){
      var Params = new Array();
      var TotalValue = document.getElementById("wpTextbox1").value;
      if(TotalValue.match(/\{\{(I|i)nformation/)){
            Params[0] = TotalValue.split("|description=")[1].split("\n|auteur=")[0];
            Params[1] = TotalValue.split("|auteur=")[1].split("\n|source=")[0];
            Params[2] = TotalValue.split("|source=")[1].split("\n}}")[0];
      }else{
            Params[0] = TotalValue.replace(/__NORICHEDITOR__/g, "");
            Params[1] = "";
            Params[2] = "";
      }
      return Params;
}



function Upload_UpdateOldForm(IDForm, IDInput){
      var OldDescription = document.getElementById(IDForm);
      var SaveInput = document.getElementById(IDInput);

      var UploadDescription = document.getElementById("UploadDescription");
      var UploadAuteur = document.getElementById("UploadAuteur");
      var UploadSource = document.getElementById("UploadSource");
      if((!OldDescription)||(!SaveInput)||(!UploadDescription)||(!UploadAuteur)||(!UploadSource)) return;

      var ValueDescription = UploadDescription.value;
      var ValueAuteur = UploadAuteur.value;
      var ValueSource = UploadSource.value;

      var NewTemplate = DefaultTemplate;
      NewTemplate = NewTemplate.split("$1").join(ValueDescription);
      NewTemplate = NewTemplate.split("$2").join(ValueAuteur);
      NewTemplate = NewTemplate.split("$3").join(ValueSource);

      OldDescription.value = NewTemplate;

      if((ValueDescription=="")||(ValueAuteur="")||(ValueSource=="")){
            SaveInput.disabled="disabled";
      }else{
            SaveInput.disabled = "";
      }
}

////////////////////////////////////////////////////////////////////////////////////////

var wgNamespageNumbers = new Array();
var wgNamespageNames = new Array();
wgNamespageNumbers.push(0);
wgNamespageNames.push('main');
wgNamespageNumbers.push(1);
wgNamespageNames.push('Discussion');
wgNamespageNumbers.push(2);
wgNamespageNames.push('Utilisateur');
wgNamespageNumbers.push(3);
wgNamespageNames.push('Discussion utilisateur');
wgNamespageNumbers.push(4);
wgNamespageNames.push('Wikimini');
wgNamespageNumbers.push(5);
wgNamespageNames.push('Discussion Wikimini');
wgNamespageNumbers.push(6);
wgNamespageNames.push('Fichier');
wgNamespageNumbers.push(7);
wgNamespageNames.push('Discussion fichier');
wgNamespageNumbers.push(8);
wgNamespageNames.push('Mediawiki');
wgNamespageNumbers.push(9);
wgNamespageNames.push('Discussion MediaWiki');
wgNamespageNumbers.push(10);
wgNamespageNames.push('Modèle');
wgNamespageNumbers.push(11);
wgNamespageNames.push('Discussion modèle');
wgNamespageNumbers.push(12);
wgNamespageNames.push('Aide');
wgNamespageNumbers.push(13);
wgNamespageNames.push('Discussion aide');
wgNamespageNumbers.push(14);
wgNamespageNames.push('Catégorie');
wgNamespageNumbers.push(15);
wgNamespageNames.push('Discussion catégorie');

if(wgPageName=="Utilisateur:Dr_Brains") addOnloadHook(Bot_AddLink)

function Bot_AddLink(){
      var FirstLi = document.getElementById("ca-nstab-user");
      if(!FirstLi) return;
      var NewLi = document.createElement('li');
      var NewLink = document.createElement('a');
      NewLink.innerHTML = "BOT&nbsp;:&nbsp;Ajout texte"
      NewLink.href= "javascript:Bot_Menu();";
      NewLi.appendChild(NewLink);
      FirstLi.parentNode.insertBefore(NewLi, FirstLi);
}

function Bot_Menu(){
      if(document.getElementById("MenuBot")) return;
      var agt=navigator.userAgent.toLowerCase();
      var is_ie = ((agt.indexOf("msie") != -1) && (agt.indexOf("opera") == -1));
      if(is_ie){
            LargeurEcran = parseInt(screen.width);
            HauteurEcran = parseInt(screen.height);
      }else{
            LargeurEcran = parseInt(window.innerWidth);
            HauteurEcran = parseInt(window.innerHeight);
      }

      var MenuDiv = document.createElement('div');
      MenuDiv.id = "MenuBot";
      MenuDiv.style.position = "fixed";
      MenuDiv.style.zIndex = 50000;

      var Buttons = '<input type="button" value="Valider" '
                  + 'onclick="Bot_OK()" onselect="Bot_OK()" />'
                  + '<input type="button" value="Annuler" '
                  + 'onclick="Bot_Cancel()" onselect="Bot_Cancel()" />'

      var Menu = document.createElement('fieldset');
      MenuDiv.appendChild(Menu);
      document.body.appendChild(MenuDiv);
      var Legend = document.createElement('legend');
      Legend.innerHTML = Buttons;
      Menu.appendChild(Legend);
      Menu.style.backgroundColor='white';
      Menu.style.border='3px double black';

      var NamespaceForm = document.createElement('fieldset');
      NamespaceForm.id = "Bot_Form_Namespace";
      var NamespaceLegend = document.createElement('legend');
      NamespaceLegend.innerHTML = "Espace de noms";
      NamespaceForm.appendChild(NamespaceLegend);
      var NamespaceSelect = document.createElement('select');
      var Option = document.createElement('option');
      Option.id = wgNamespageNumbers.join('|');
      Option.value = "TOUS";
      Option.innerHTML = "TOUS";
      NamespaceSelect.appendChild(Option);
      for(var a=0;a<wgNamespageNumbers.length;a++){
            var Option = document.createElement('option');
            Option.id = wgNamespageNumbers[a];
            Option.value = wgNamespageNames[a];
            Option.innerHTML = wgNamespageNames[a];
            NamespaceSelect.appendChild(Option);
      }
      NamespaceForm.appendChild(NamespaceSelect);

      var ReplaceForm = document.createElement('fieldset');
      ReplaceForm.id = "Bot_Form_Replace";
      var ReplaceLegend = document.createElement('legend');
      ReplaceLegend.innerHTML = "Remplacement (RegExp)";
      ReplaceForm.appendChild(ReplaceLegend);
      var Replacefrom = document.createElement('input');
      Replacefrom.type = "text";
      Replacefrom.id = "Bot_Form_ReplaceFrom";
      var Replaceto = document.createElement('input');
      Replaceto.type = "text";
      Replaceto.id = "Bot_Form_ReplaceTo";
      ReplaceForm.appendChild(Replacefrom);
      ReplaceForm.appendChild(document.createTextNode(" >>> "));
      ReplaceForm.appendChild(Replaceto);

      var AddTextForm = document.createElement('fieldset');
      var AddTextLegend = document.createElement('legend');
      AddTextLegend.innerHTML = "Ajout";
      AddTextForm.appendChild(AddTextLegend);
      AddTextForm.id = "Bot_Form_Add";
      var AddBefore = document.createElement('input');
      AddBefore.type = "text";
      AddBefore.id = "Bot_Form_AddBefore";
      AddBeforeLabel = document.createElement('label');
      AddBeforeLabel.for = "Bot_Form_AddBefore";
      AddBeforeLabel.innerHTML = "avant ";
      var AddAfter = document.createElement('input');
      AddAfter.type = "text";
      AddAfter.id = "Bot_Form_AddAfter";
      AddAfterLabel = document.createElement('label');
      AddAfterLabel.for = "Bot_Form_AddAfter";
      AddAfterLabel.innerHTML = "après";
      AddTextForm.appendChild(AddBefore);
      AddTextForm.appendChild(AddBeforeLabel);
      AddTextForm.appendChild(AddAfter);
      AddTextForm.appendChild(AddAfterLabel);

      Menu.appendChild(NamespaceForm);
      Menu.appendChild(ReplaceForm);
      Menu.appendChild(AddTextForm);

      PositionGauche = parseInt((LargeurEcran-MenuDiv.clientWidth)/2) ;
      PositionHaut = parseInt((HauteurEcran-MenuDiv.clientHeight)/5) ;
      MenuDiv.style.left=PositionGauche + 'px';
      MenuDiv.style.top=PositionHaut + 'px';
}

function Bot_Cancel(){
      var Menu = document.getElementById("MenuBot");
      if(Menu) Menu.parentNode.removeChild(Menu);
}

function Bot_OK(){
      var MenuNamespace = document.getElementById("Bot_Form_Namespace");
      var MenuReplaceFrom = document.getElementById("Bot_Form_ReplaceFrom");
      var MenuReplaceTo = document.getElementById("Bot_Form_ReplaceTo");
      var MenuAddBefore = document.getElementById("Bot_Form_AddBefore");
      var MenuAddAfter = document.getElementById("Bot_Form_AddAfter");
      if(!MenuNamespace || !MenuReplaceFrom || !MenuReplaceTo || !MenuAddBefore || !MenuAddAfter) return;

      var NamespaceOption = false;
      var Options = MenuNamespace.getElementsByTagName('option');
      for(var a=0;a<Options.length;a++){
            if(Options[a].selected) NamespaceOption = Options[a].id;
      }
      
      var ReplaceFrom = MenuReplaceFrom.value;
      var ReplaceTo = MenuReplaceTo.value;

      var AddBefore = MenuAddBefore.value;
      var AddAfter = MenuAddAfter.value;

      Bot_Cancel();
      Bot_Run(NamespaceOption, ReplaceFrom, ReplaceTo, AddBefore, AddAfter);
}

function Bot_Run(NamespaceOption, ReplaceFrom, ReplaceTo, AddBefore, AddAfter, PagesArray, APIContinue){
      if(!PagesArray) PagesArray = new Array();
      if(!APIContinue) APIContinue = "";
      if( (wgUserGroups.indexOf("bot")!=-1) || (wgUserGroups.indexOf("sysop")!=-1) ){
            var Bot_APILIimit = 4999;
      }else{
            var Bot_APILIimit = 499;
      }
      var Adresse = wgServer+wgScriptPath+'/api.php?format=xml&action=query&list=allpages&apnamespace='+NamespaceOption+'&apfilterredir=nonredirects&aplimit='+Bot_APILIimit + APIContinue;
      alert(Adresse);





}
Wikiboo Outils personnels