Utilisateur:Dr Brains/CommonsToAutresProjets.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.
//<source lang=javascript>//<pre><nowiki>

if(mw.config.get('wgNamespaceNumber')==0 && mw.config.get('wgAction')=="edit") addOnloadHook(CommonsToAutresProjets);

function CommonsToAutresProjets(){

    var TextArea = document.getElementById("wpTextbox1");
    if(!TextArea) return;

    var Sommaire = "";
    var Text = TextArea.value;

    var CommonsCatRegExp = new RegExp("\\{\\{Commonscat[^\\}]+\\}\\}", "ig")
    var CommonsCatMatches = Text.match(CommonsCatRegExp);
    if(CommonsCatMatches!=null){
        //alert("Trouvé Commonscat");
        Text = CommonsToAutresProjets_CommonsCat(Text, CommonsCatMatches);
        Sommaire += "{{CommonsCat}} -> {{Autres projets}}"
    }
    var CommonsRegExp = new RegExp("\\{\\{[ ]+Commons[^\\}]+\\}\\}", "ig")
    var CommonsMatches = Text.match(CommonsRegExp);
    if(CommonsMatches!=null){
        //alert("Trouvé Commons");
        Text = CommonsToAutresProjets_Commons(Text, CommonsMatches);
        Sommaire += "{{Commons}} -> {{Autres projets}}"
    }
    document.getElementById("wpTextbox1").value = Text;
    document.getElementById("wpSummary").value = Sommaire;

}

function CommonsToAutresProjets_CommonsCat(Text, CommonsCatMatches){
    for(var a=0;a<CommonsCatMatches.length;a++){
        var Param1 = "|commons=Category:"+mw.config.get('wgPageName').replace(/_/g, " ");
        var Param2 = "";
        var ToReplace = CommonsCatMatches[a];
        var Template = CommonsToAutresProjets_Clean(CommonsCatMatches[a]);
        var ParamRegExp = new RegExp("\\|[^\\||\\}]]+", "ig");
        var Params = Template.match(ParamRegExp);
        if(Params!=null){
            for(var b=0;b<Params.length;b++){
                if(b=0){
                    Param1 = "|commons=Category:"+Params[b].split("|").join("");
                }
                if(b=1){
                    Param2 = "|commons titre="+Params[b].split("|").join("");
                }
            }
        }
        var NewTemplate = "{{Autres projets\n"+Param1+"\n"+Param2+(Param2!="" ? "\n" : "") + "}}";
        Text = Text.replace(ToReplace, NewTemplate);
    }
    return Text;
}

function CommonsToAutresProjets_Commons(Text, CommonsMatches){
    for(var a=0;a<CommonsMatches.length;a++){
        var Param1 = "|commons="+mw.config.get('wgPageName').replace(/_/g, " ")
        var Param2 = "";
        var ToReplace = CommonsMatches[a];
        var Template = CommonsToAutresProjets_Clean(CommonsMatches[a]);
        var ParamRegExp = new RegExp("\\|[^\\||\\}]]+", "ig");
        var Params = Template.match(ParamRegExp);
        if(Params!=null){
            for(var b=0;b<Params.length;b++){
                if(b=0){
                    Param1 = "|commons="+Params[b].split("|").join("");
                }
                if(b=1){
                    Param2 = "|commons titre="+Params[b].split("|").join("");
                }
            }
        }
        var NewTemplate = "{{Autres projets\n"+Param1+"\n"+Param2+"\n}}"
        Text = Text.replace(ToReplace, NewTemplate)
    }
    return Text;
}

function CommonsToAutresProjets_Clean(Template){
    Template = Template.replace(/\n/g, "");
    Template = Template.replace(/\{ /g, "\{");
    Template = Template.replace(/\| /g, "\|");
    Template = Template.replace(/ \|/g, "\|");
    Template = Template.replace(/ \}/g, "\}");
    return Template;
}




//</nowiki></pre></source>