« MediaWiki:Gadget-AncreTitres.js » : différence entre les versions

Un livre de Wikilivres.
Contenu supprimé Contenu ajouté
Pabix (discussion | contributions)
mAucun résumé des modifications
Pabix (discussion | contributions)
un peu plus clair [avec un éditeur externe]
Ligne 1 : Ligne 1 :
//<pre><nowiki>
//<pre><nowiki>
/*
/*
* AncreTitres
* AncreTitres
Ligne 11 : Ligne 11 :


//////////////////////ZONE PERSONNALISABLE//////////////////////
//////////////////////ZONE PERSONNALISABLE//////////////////////
var AncreTitres_nom_ancre = "[lien]"; // Texte lien externe
var AncreTitres_nom_ancre = "[URL]"; // Texte lien externe
var AncreTitres_nom_lien_interne = "[[lien]]"; // Texte lien interne
var AncreTitres_nom_lien_interne = "[[lien]]"; // Texte lien interne
var AncreTitres_description = "Obtenir une URL vers cette section"; // Infobulle du lien
var AncreTitres_description = "Obtenir une URL vers cette section"; // Infobulle du lien
Ligne 35 : Ligne 35 :
i++;
i++;
if (titre_courant.className.match(/mw-headline/g)) {
if (titre_courant.className.match(/mw-headline/g)) {
var ancre_nom = noeud_precedent(titre_courant.parentNode).lastChild.name);
var small = document.createElement('small'); with(small) {
var small = document.createElement('small'); with(small) {
innerHTML=AncreTitres_nom_ancre;
innerHTML=AncreTitres_nom_ancre;
Ligne 42 : Ligne 43 :
}
}
var link = document.createElement('a'); with(link) {
var link = document.createElement('a'); with(link) {
setAttribute("ancre", wgServer + wgScriptPath + "/index.php?title=" +
setAttribute("ancre", wgServer + wgScriptPath + "/index.php?title=" + wgPageName + "#" + ancre_nom ;
wgPageName + "#" + noeud_precedent(titre_courant.parentNode).lastChild.name);
setAttribute("onclick", "window.prompt('Lien : ', this.getAttribute('ancre'));");
setAttribute("onclick", "window.prompt('Lien : ', this.getAttribute('ancre'));");
appendChild(small);
appendChild(small);
Ligne 55 : Ligne 55 :
}
}
link = document.createElement('a'); with(link) {
link = document.createElement('a'); with(link) {
setAttribute("ancre", "[[" + wgPageName + "#" + noeud_precedent(titre_courant.parentNode).lastChild.name) + "]]";
setAttribute("ancre", "[[" + wgPageName + "#" + ancre_nom + "]]";
setAttribute("onclick", "window.prompt('Lien : ', this.getAttribute('ancre'));");
setAttribute("onclick", "window.prompt('Lien : ', this.getAttribute('ancre'));");
appendChild(small);
appendChild(small);

Version du 11 mars 2007 à 05:53

//<pre><nowiki>
/*
 * AncreTitres
 *
 * Cette fonction fournit un lien vers une section de page en cliquant
 * sur le lien [ancre] à droite du titre de section.
 *
 * Auteurs : Pabix, Phe
 * Date de dernière révision : 11 mars 2007
 */

//////////////////////ZONE PERSONNALISABLE//////////////////////
var AncreTitres_nom_ancre = "[URL]";                                // Texte lien externe
var AncreTitres_nom_lien_interne = "[[lien]]";                      // Texte lien interne
var AncreTitres_description = "Obtenir une URL vers cette section"; // Infobulle du lien
var AncreTitres_descinterne = "Obtenir [[Lien#interne]]";           // Infobulle du lien
var AncreTitres_linkcolor="blue";                                   // Couleur du lien
var AncreTitres_fontSize="50%";                                     // Taille du lien
var AncreTitres_afficheE="true";                                    // Afficher le lien externe
var AncreTitres_afficheI="true";                                    // Afficher le lien interne
/////////////////FIN DE LA ZONE PERSONNALISABLE/////////////////

function ancrer(){
    function noeud_precedent(noeud) {
        while (noeud.previousSibling.nodeType!=1)
            noeud = noeud.previousSibling;
        return noeud.previousSibling;

    }
    if (!document.getElementById('content')) return;
    var titres = document.getElementsByTagName("span");
    var i = 0;
    var titre_courant;
    while (titre_courant=titres[i]){
        i++;
        if (titre_courant.className.match(/mw-headline/g)) {
		    var ancre_nom = noeud_precedent(titre_courant.parentNode).lastChild.name);
            var small = document.createElement('small'); with(small) {
                innerHTML=AncreTitres_nom_ancre;
                title=AncreTitres_description;
                style.color=AncreTitres_linkcolor;
                style.fontSize=AncreTitres_fontSize;
            }
            var link = document.createElement('a'); with(link) {
                setAttribute("ancre", wgServer + wgScriptPath + "/index.php?title=" + wgPageName + "#" + ancre_nom ;
                setAttribute("onclick", "window.prompt('Lien : ', this.getAttribute('ancre'));");
                appendChild(small);
            }
            if (AncreTitres_afficheE) titre_courant.parentNode.appendChild(link);
            small = document.createElement('small'); with(small) {
                innerHTML=AncreTitres_nom_lien_interne;
                title=AncreTitres_descinterne;
                style.color=AncreTitres_linkcolor;
                style.fontSize=AncreTitres_fontSize;
            }
            link = document.createElement('a'); with(link) {
                setAttribute("ancre", "[[" + wgPageName + "#" + ancre_nom + "]]";
                setAttribute("onclick", "window.prompt('Lien : ', this.getAttribute('ancre'));");
                appendChild(small);
            }
            if (AncreTitres_afficheI) titre_courant.parentNode.appendChild(link);
        }
    }
}
addLoadEvent(ancrer);
//</nowiki></pre>[[Catégorie:MediaWiki:Fonction Monobook en JavaScript]]