MediaWiki:Modeles.js
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.
function getElementsByClassName(oElm, strTagName, oClassNames){ var arrReturnElements = new Array(); if ( typeof( oElm.getElementsByClassName ) == "function" ) { /* Use a native implementation where possible FF3, Saf3.2, Opera 9.5 */ var arrNativeReturn = oElm.getElementsByClassName( oClassNames ); if ( strTagName == "*" ) return arrNativeReturn; for ( var h=0; h < arrNativeReturn.length; h++ ) { if( arrNativeReturn[h].tagName.toLowerCase() == strTagName.toLowerCase() ) arrReturnElements[arrReturnElements.length] = arrNativeReturn[h]; } return arrReturnElements; } var arrElements = (strTagName == "*" && oElm.all)? oElm.all : oElm.getElementsByTagName(strTagName); var arrRegExpClassNames = new Array(); if(typeof oClassNames == "object"){ for(var i=0; i<oClassNames.length; i++){ arrRegExpClassNames[arrRegExpClassNames.length] = new RegExp("(^|\\s)" + oClassNames[i].replace(/\-/g, "\\-") + "(\\s|$)"); } } else{ arrRegExpClassNames[arrRegExpClassNames.length] = new RegExp("(^|\\s)" + oClassNames.replace(/\-/g, "\\-") + "(\\s|$)"); } var oElement; var bMatchesAll; for(var j=0; j<arrElements.length; j++){ oElement = arrElements[j]; bMatchesAll = true; for(var k=0; k<arrRegExpClassNames.length; k++){ if(!arrRegExpClassNames[k].test(oElement.className)){ bMatchesAll = false; break; } } if(bMatchesAll){ arrReturnElements[arrReturnElements.length] = oElement; } } return (arrReturnElements) } //============================================================ // BEGIN Boîtes déroulantes // set up the words in your language var NavigationBarHide = '▲ Masquer'; var NavigationBarShow = '▼ Afficher'; // set up max count of Navigation Bars on page, // if there are more, all will be hidden // NavigationBarShowDefault = 0; // all bars will be hidden // NavigationBarShowDefault = 1; // on pages with more than 1 bar all bars will be hidden var NavigationBarShowDefault = 0; function toggleNavigationBar(indexNavigationBar){ var NavToggle = document.getElementById("NavToggle" + indexNavigationBar); var NavFrame = document.getElementById("NavFrame" + indexNavigationBar); if (!NavFrame || !NavToggle) return false; if (NavToggle.firstChild.data == NavigationBarHide) { for (var NavChild = NavFrame.firstChild;NavChild != null;NavChild = NavChild.nextSibling) { if (NavChild.className == 'NavPic') NavChild.style.display = 'none'; if (NavChild.className == 'NavContent') NavChild.style.display = 'none'; if (NavChild.className == 'NavToggle') NavChild.firstChild.data = NavigationBarShow; } } else if (NavToggle.firstChild.data == NavigationBarShow) { for (var NavChild = NavFrame.firstChild;NavChild != null;NavChild = NavChild.nextSibling) { if (NavChild.className == 'NavPic') NavChild.style.display = 'block'; if (NavChild.className == 'NavContent') NavChild.style.display = 'block'; if (NavChild.className == 'NavToggle') NavChild.firstChild.data = NavigationBarHide; } } } function createNavigationBarToggleButton(){ var indexNavigationBar = 0; var AllDivs = document.getElementsByTagName("div"); for(var i=0,l=AllDivs.length;i<l;i++) { if (hasClass(AllDivs[i], "NavFrame")) { var NavFrame = AllDivs[i]; indexNavigationBar++; var NavToggle = document.createElement("a"); NavToggle.className = 'NavToggle'; NavToggle.setAttribute('id', 'NavToggle' + indexNavigationBar); NavToggle.setAttribute('href', 'javascript:toggleNavigationBar(' + indexNavigationBar + ');'); var NavToggleText = document.createTextNode(NavigationBarHide); NavToggle.appendChild(NavToggleText); NavFrame.insertBefore( NavToggle, NavFrame.firstChild); NavFrame.setAttribute('id', 'NavFrame' + indexNavigationBar); } } if (NavigationBarShowDefault < indexNavigationBar) { for(var i=1;i<=indexNavigationBar;i++) { toggleNavigationBar(i); } } } aOnloadFunctions[aOnloadFunctions.length] = createNavigationBarToggleButton; // END Boîtes déroulantes // ============================================================ // ============================================================ // BEGIN Compte à rebours /* Permet d'afficher un compte à rebours sur une page avec le modèle [[Modèle:Compte à rebours]] */ /* Plyd - 3 février 2009 */ function Rebours() { if(mw.config.get('wgNamespaceNumber')==0) return; try { var Comptes = getElementsByClassName(document, "span", "rebours"); if(!Comptes[0]) return; for(var a=0,l=Comptes.length;a<l;a++) { destime = Comptes[a].title.HTMLize().split(";;"); Maintenant = (new Date).getTime(); Future = new Date(Date.UTC(destime[0], (destime[1]-1), destime[2], destime[3], destime[4], destime[5])).getTime(); Diff = (Future-Maintenant); if (Diff < 0) {Diff = 0} TempsRestantJ = Math.floor(Diff/(24*3600*1000)); TempsRestantH = Math.floor(Diff/(3600*1000)) % 24; TempsRestantM = Math.floor(Diff/(60*1000)) % 60; TempsRestantS = Math.floor(Diff/1000) % 60; TempsRestant = "" + destime[6] + " "; if (TempsRestantJ == 1) { TempsRestant = TempsRestant + TempsRestantJ + " jour "; } else if (TempsRestantJ > 1) { TempsRestant = TempsRestant + TempsRestantJ + " jours "; } TempsRestant = TempsRestant + TempsRestantH + " h " + TempsRestantM + " min " + TempsRestantS + " s"; Comptes[a].innerHTML = TempsRestant; } setTimeout("Rebours()", 1000) } catch (e) {} } //addOnloadHook(Rebours); jQuery( function( ) { Rebours(); }); // END Compte à rebours // ============================================================ // ============================================================ // BEGIN Images // Permet d'afficher un diaporama d'images avec le modèle [[Modèle:Images]] function toggleImage(group, remindex, shwindex) { document.getElementById("ImageGroupsGr"+group+"Im"+remindex).style.display="none"; document.getElementById("ImageGroupsGr"+group+"Im"+shwindex).style.display="inline"; } function imageGroup(bc){ if (document.URL.match(/printable/g)) return; if(!bc){ var bc=document.getElementById("bodyContent"); if( !bc ) bc = document.getElementById("mw_contentholder"); if( !bc ) bc = document.getElementById("article"); if( !bc ) return; } var divs=bc.getElementsByTagName("div"); var i = 0, j = 0; var units, search; var currentimage; var UnitNode; for (i = 0; i < divs.length ; i++) { if (divs[i].className != "ImageGroup") continue; UnitNode=undefined; search=divs[i].getElementsByTagName("div"); for (j = 0; j < search.length ; j++) { if (search[j].className != "ImageGroupUnits") continue; UnitNode=search[j]; break; } if (UnitNode==undefined) continue; units=Array(); for (j = 0 ; j < UnitNode.childNodes.length ; j++ ) { var temp = UnitNode.childNodes[j]; if (temp.className=="center") units.push(temp); } for (j = 0 ; j < units.length ; j++) { currentimage=units[j]; currentimage.id="ImageGroupsGr"+i+"Im"+j; var imghead = document.createElement("div"); var leftlink; var rightlink; if (j != 0) { leftlink = document.createElement("a"); leftlink.href = "javascript:toggleImage("+i+","+j+","+(j-1)+");"; leftlink.innerHTML="◀"; leftlink.title="Image précédente"; } else { leftlink = document.createElement("span"); leftlink.innerHTML=" "; } if (j != units.length - 1) { rightlink = document.createElement("a"); rightlink.href = "javascript:toggleImage("+i+","+j+","+(j+1)+");"; rightlink.innerHTML="▶"; rightlink.title="Image suivante"; } else { rightlink = document.createElement("span"); rightlink.innerHTML=" "; } var comment = document.createElement("tt"); comment.innerHTML = "("+ (j+1) + "/" + units.length + ")"; with(imghead) { style.fontSize="110%"; style.fontweight="bold"; appendChild(leftlink); appendChild(comment); appendChild(rightlink); } currentimage.insertBefore(imghead,currentimage.childNodes[0]); if (j != 0) currentimage.style.display="none"; } } } //addOnloadHook(imageGroup); jQuery( function( ) { imageGroup(); }); // END Images // ============================================================ // ============================================================ // BEGIN Texte défilant // Permet d'afficher un texte défilant avec le modèle [[Modèle:Texte défilant]] var defilant_vars = new Array(); defilant_vars["span"] = new Array(); defilant_vars["texte"] = new Array(); defilant_vars["texteDef"] = new Array(); defilant_vars["Largeur"] = new Array(); defilant_vars["Tempo"] = new Array(); function defilant_init(){ var Defilants = getElementsByClassName(document, "span", "defilant"); if(!Defilants[0]) return; for(var a=0,l=Defilants.length;a<l;a++){ Defilants[a].id = "Defilant_"+a; var Spans = Defilants[a].getElementsByTagName('span'); var texte = getTextContent(Spans[0]).replace(/ /g, " "); var texteDef = getTextContent(Spans[1]).replace(/ /g, " "); var Tempo = parseInt(Spans[0].title.split(';;')[0]); if(typeof(Tempo)!="number") Tempo = 150; var Largeur = parseInt(Spans[0].title.split(';;')[1]); if(typeof(Largeur)!="number") Largeur = 20; while(texteDef.length < Largeur){ texteDef += texte; } defilant_vars["span"][a] = Spans[1]; defilant_vars["texte"][a] = texte; defilant_vars["texteDef"][a] = texteDef; defilant_vars["Largeur"][a] = Largeur; defilant_vars["Tempo"][a] = Tempo; Spans[1].innerHTML = texteDef; defilant(a); } } //addOnloadHook(defilant_init); jQuery( function( ) { defilant_init(); }); function defilant(a){ defilant_vars["texteDef"][a] = defilant_vars["texteDef"][a].substring(1,defilant_vars["texteDef"][a].length) + defilant_vars["texteDef"][a].substring(0,1); defilant_vars["span"][a].innerHTML = defilant_vars["texteDef"][a]; setTimeout("defilant("+a+")", defilant_vars["Tempo"][a]); } // END Texte défilant // ============================================================