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

« Utilisateur:Dr Bot/wikimini.js » : différence entre les versions

Jump to navigation Jump to search
Aucun résumé des modifications
Aucun résumé des modifications
Ligne 310 : Ligne 310 :




//////////////////////////////////////////////// Patch Extension WhosOnline




function WhosOnline_CheckNewPage(position){
function WhosOnline_CheckNewPage(position){
var ListePresents = document.getElementById('WhosOnlineList');
var ListePresents = document.getElementById('WhosOnlineList');
Ligne 320 : Ligne 317 :
var Lien = ListePresents.getElementsByTagName('a')[position];
var Lien = ListePresents.getElementsByTagName('a')[position];
if(!Lien) return;
if(!Lien) return;

var LienHref = Lien.href;
var LienHref = Lien.href;
LienHref = LienHref.split(wgServer).join('').split('/wiki/').join('');
LienHref = LienHref.split(wgServer).join('').split('/wiki/').join('');

Version du 13 janvier 2010 à 05:29

//__NORICHEDITOR__  // Pas de WYGSYG sur ma page Javascript

/////////////////////////////////////////////////////////////////////// Fonctions utiles 
/////////////////////////////////////////////////////////////////// 



function hasClass(node, className) {
  if (node.className == className) {
    return true;
  }
  var reg = new RegExp('(^| )'+ className +'($| )')
  if (reg.test(node.className)) {
    return true;
  }
  return false;
}
 
function addClass(node, className) {
    if (hasClass(node, className)) {
        return false;
    }
    node.className += ' '+ className;
    return true;
}
 
function removeClass(node, className) {
  if (!hasClass(node, className)) {
    return false;
  }
  node.className = eregReplace('(^|\\s+)'+ className +'($|\\s+)', ' ', node.className);
  return true;
}

function eregReplace(search, replace, subject) {
    return subject.replace(new RegExp(search,'g'), replace);
}

function get_nextsibling(n){
x=n.nextSibling;
if(x==null) return false;
while (x.nodeType!=1)  {
  x=x.nextSibling;
  if(x==null) return false;
  }
return x;
}

function get_previoussibling(n){
x=n.previousSibling;
if(x==null) return false;
while (x.nodeType!=1)  {
  x=x.previousSibling;
  if(x==null) return false;
  }
return x;
}

function getTextContent(oNode) {
  if (typeof(oNode.textContent)!="undefined") {return oNode.textContent;}
  switch (oNode.nodeType) {
    case 3: // TEXT_NODE
    case 4: // CDATA_SECTION_NODE
      return oNode.nodeValue;
      break;
    case 7: // PROCESSING_INSTRUCTION_NODE
    case 8: // COMMENT_NODE
      if (getTextContent.caller!=getTextContent) {
        return oNode.nodeValue;
      }
      break;
    case 9: // DOCUMENT_NODE
    case 10: // DOCUMENT_TYPE_NODE
    case 12: // NOTATION_NODE
      return null;
      break;
  }
  var _textContent = "";
  oNode = oNode.firstChild;
  while (oNode) {
    _textContent += getTextContent(oNode);
    oNode = oNode.nextSibling;
  }
  return _textContent;
}

var agt=navigator.userAgent.toLowerCase();
var is_ie = ((agt.indexOf("msie") != -1) && (agt.indexOf("opera") == -1));

function supprimerAncienElement(OldElement){
          if(!OldElement)return;
          if(is_ie){
                    OldElement.removeNode(true);
          }else {
                    if(OldElement.parentNode){document=OldElement.parentNode.removeChild(OldElement);}
          }
}




function insertAfter(parent, node, referenceNode) {
  parent.insertBefore(node, referenceNode.nextSibling); 
}



function setCookie (cookieName, cookieValue, expires, path) {
        document.cookie = escape(cookieName) + '=' + escape(cookieValue) + (expires ? '; EXPIRES=' + expires.toGMTString() : '') + "; PATH=/" ; 
}
  
function getCookie(cookieName) {
        var cookieValue = null;
        var posName = document.cookie.indexOf(escape(cookieName) + '=' );
        if (posName != -1) {
                        var posValue = posName + (escape(cookieName) + '=' ).length;
                        var endPos = document.cookie.indexOf(';', posValue) ;
                if (endPos != -1) {
                        cookieValue = unescape(document.cookie.substring(posValue, endPos));
                } else {
                        cookieValue = unescape(document.cookie.substring(posValue));
                }
        }
        return decodeURIComponent(cookieValue);
}



////////////////////////////////////////////////////////////////////// Header flash enroulable

// Récupération de la valeur du cookie
var FlashHeaderState = getCookie("FlashHeaderState");
if ((FlashHeaderState == "") || (FlashHeaderState == null) || (FlashHeaderState == "null")){
        FlashHeaderState = "1";
}

var ReduireTitre = "Cliquer pour réduire l\'en-tête."
var ReduireHTML = "Réduire";

var DevelopperTitre = "Cliquer pour développer l\'en-tête."
var DevelopperHTML = "Développer"

document.write('<style type="text/css">');
document.write('#HeaderButton{ align:center;}');
document.write('</style>');

// Modification de l'en-tête
addOnloadHook( function(){
    if(FlashHeaderState == "1"){
       var FlashHeaderStyle = "block";
       var ButtonHeaderTitle = ReduireTitre;
       var ButtonHeaderHTML = ReduireHTML ;
    }else{
       var FlashHeaderStyle = "none";
       var ButtonHeaderTitle = DevelopperTitre;
       var ButtonHeaderHTML = DevelopperHTML;
    }
    var flashDiv = document.getElementById('header');
    flashDiv.style.display = FlashHeaderStyle;

    var ToggleButtonParent = document.createElement('center');
    var ToggleButton = document.createElement('a');
    ToggleButton.id = 'HeaderButton';
    ToggleButton.href = "javascript:ToggleHeader()";
    ToggleButton.innerHTML = ButtonHeaderHTML;
    ToggleButton.title = ButtonHeaderTitle;
    ToggleButtonParent.appendChild(ToggleButton);
    flashDiv.parentNode.insertBefore(ToggleButtonParent,flashDiv.nextSibling);

});

function ToggleHeader(){
    var flashDiv = document.getElementById('header');
    var flashButton = document.getElementById('HeaderButton');
    var now = new Date();
    var nextYear = new Date(now.getTime() + 1000 * 60 * 60 * 24 * 365 );
    if(flashDiv.style.display=="none"){
       flashDiv.style.display ="block";
       flashButton.title = ReduireTitre;
       flashButton.innerHTML= ReduireHTML;
       setCookie("FlashHeaderState", "1", nextYear);
    }else{
       flashDiv.style.display = "none";
       flashButton.title = DevelopperTitre;
       flashButton.innerHTML= DevelopperHTML;
       setCookie("FlashHeaderState", "0", nextYear);
    }
}





















/////////////////////////////////////////////////////////////////////// Modification de l'apparence du skin wikimini (inutile avec la redirection monobook) 
/////////////////////////////////////////////////////////////////////// 


addOnloadHook (function(){
// ################## GÉNÉRAL ##################
// --------- Largeur = 100% au lieu de 800px -------------------
    var mainDiv = document.getElementById('main');
    mainDiv.style.width = '100%';
// --------- Suppression de l'objet flash (trop gros, trop moche...) -------------------
/*
    var flashDiv = document.getElementById('header');
    flashDiv.style.display = 'none';
*/
// --------- Déplacement des liens personnels en haut de page -------------------
    var AllH5 = document.getElementsByTagName('h5');
    for(a=0;a<AllH5.length;a++){
        if(AllH5[a].innerHTML.indexOf('Outils personnels')!=-1){
            var TitrePerso = AllH5[a];
            var IconePerso = get_previoussibling(TitrePerso);
            var LiensPerso = get_nextsibling(TitrePerso);
            LiensPerso.parentNode.removeChild ( LiensPerso ) ;
            document.body.insertBefore(LiensPerso, document.body.firstChild);
            LiensPerso.style.marginLeft = '3em';
            var LiensPersoDiv = LiensPerso.getElementsByTagName('div');
            for(b=0;b<LiensPersoDiv.length;b++){
                LiensPersoDiv[b].style.padding = '0';
                LiensPersoDiv[b].style.margin = '0';
            }
            TitrePerso.parentNode.removeChild ( TitrePerso ) ;
            LiensPerso.insertBefore(TitrePerso , LiensPerso.firstChild);
            TitrePerso.style.padding = '0';
            TitrePerso.style.margin = '0';
            TitrePerso.style.marginLeft = '3em';
            IconePerso.parentNode.removeChild ( IconePerso ) ;
            LiensPerso.insertBefore(IconePerso, LiensPerso.firstChild);
            IconePerso.style.padding = '0';
            IconePerso.style.margin = '0';
            IconePerso.style.marginLeft = '2em';
        }
    }
// ################## COLONNES ##################
    var AllDiv = document.getElementsByTagName('Div');
    for(a=0;a<AllDiv.length;a++){
        if(hasClass(AllDiv[a], 'columns')){
            var Colonnes = AllDiv[a]
        }else if(hasClass(AllDiv[a], 'column1')){
            var Colonne1 = AllDiv[a]
        }else if(hasClass(AllDiv[a], 'column2')){
            var Colonne2 = AllDiv[a]
        }
    }
// --------- Largeur colonne de droite réduite -------------------
    Colonne1.style.width = '80%';
    Colonne2.style.width = '20%';
// --------- Zone de recherche en haut de la colonne de droite -------------------
    var Recherche = document.getElementById('p-search');
    if(Recherche){
        Recherche.parentNode.removeChild ( Recherche ) ;
        Colonne2.insertBefore(Recherche , Colonne2.firstChild);
    }
// --------- Suppression de l'image dans la boîte à outils -------------------
    var Outils = document.getElementById('p-tb');
    if(Outils){
        var Image = Outils.getElementsByTagName('img')[1];
        Image.style.display = 'none';
    }
// ################## ÉDITION ################## 
    if(((wgAction=="edit")||(wgAction=="submit"))&&(wgNamespaceNumber>=0)){
// --------- Taille zone d'édition -------------------
        var EditBox = document.getElementById('wpTextbox1');
        if(EditBox){
             Colonne1.style.width = '100%';
             Colonne2.style.display = 'none';
             EditBox.rows = 30;
// --------- Ajout toolbar si elle n'y est pas -------------------
            var toolbar = document.getElementById('toolbar'); 
            if(!toolbar){
                toolbar = document.createElement('div');
                toolbar.id = 'toolbar';
                EditBox.parentNode.insertBefore(toolbar, EditBox);
            }
// --------- Affiche les boutons de publication cachés -------------------
           var EditOptionsElements = document.getElementById('wpSummaryLabel');
           while(get_nextsibling(EditOptionsElements)){
                EditOptionsElements.style.display = 'inline';
                EditOptionsElements = get_nextsibling(EditOptionsElements);
           }
           var wpSave= document.getElementById('wpSave');
           wpSave.style.marginLeft = '75px';
           var wpDiff = document.getElementById('wpDiff');
           wpDiff.style.display = 'inline';
           wpDiff.style.margin = '0.5em';
// --------- Page modifiée automatiquement suivie -------------------
           var SuiviModif = document.getElementById('wpWatchthis');
           SuiviModif.checked = 'checked';
        }
    }

});


//////////////////////////////////////////////// Patch Extension WhosOnline
function WhosOnline_CheckNewPage(position){
        var ListePresents = document.getElementById('WhosOnlineList');
        if(!ListePresents) return;
        if(!position) position=0;
        var Lien = ListePresents.getElementsByTagName('a')[position];
        if(!Lien) return;

        var LienHref = Lien.href;
        LienHref = LienHref.split(wgServer).join('').split('/wiki/').join('');
        Requete = sajax_init_object();
        var url = wgServer+'/w/api.php?action=query&redirects&titles='+LienHref;
        Requete.open('GET',url, true);
        Requete.send(null);
        Requete.onreadystatechange = function(){
                if((Requete.readyState == 4)&&(Requete.status == 200)){
                         var Reponse = document.createElement('div');
                         Reponse.innerHTML = Requete.responseText;
                         var Spans = Reponse.getElementsByTagName('span')[7].innerHTML;
                         if(Spans.indexOf('missing=""')!=-1){
                                Lien.className = "new";
                        }
                        WhosOnline_CheckNewPage((position+1));
                }
        }
}
addOnloadHook(WhosOnline_CheckNewPage);
Wikiboo Outils personnels