MediaWiki:Common.js
Une page de Wikiversité.
Note : après avoir enregistré vos préférences, 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 (Maj-Cmd-R sur Apple Mac) ; Internet Explorer / Opera : maintenez la touche Ctrl en cliquant sur le bouton Actualiser ou pressez Ctrl-F5.
/* N'importe quel JavaScript ici sera chargé pour n'importe quel utilisateur et pour chaque page accédée. <div style="background:#FFE4E1;">[[Fichier:Nuvola apps important.svg|30px]] Avant de modifier cette page, veuillez '''tester vos changements avec votre propre [[Spécial:Mypage/monobook.js|monobook.js]]'''. Une erreur sur cette page peut faire bugger le site entier (et gêner l'ensemble des visiteurs), même plusieurs heures après la modification !</div> Voir aussi [[Mediawiki:Monobook.js]] · [[Mediawiki:Common.css]] · [[Mediawiki:Monobook.css]] __FORCETOC__ == Infobulles et touches d’accès == Ce Javascript permet l'affichage des infobulles et des touches de raccourci <source lang="javascript">*/ var ta = new Object(); ta['pt-userpage'] = new Array('.','Ma page utilisateur'); ta['pt-anonuserpage'] = new Array('.','La page utilisateur de l’IP avec laquelle vous contribuez'); ta['pt-mytalk'] = new Array('n','Ma page de discussion'); ta['pt-anontalk'] = new Array('n','Discussion à propos des modifications depuis cette adresse IP'); ta['pt-preferences'] = new Array('','Mes préférences'); ta['pt-watchlist'] = new Array('l','liste des pages dont vous suivez les modifications.'); ta['pt-mycontris'] = new Array('y','Liste de mes contributions'); ta['pt-login'] = new Array('o','Vous êtes invité à vous identifier, mais ce n’est pas obligatoire.'); ta['pt-anonlogin'] = new Array('o','Vous êtes invité à vous identifier, mais ce n’est pas obligatoire.'); ta['pt-logout'] = new Array('o','Se déconnecter'); ta['ca-talk'] = new Array('t','Discussion à propos de l’article'); ta['ca-edit'] = new Array('e','Vous pouvez modifier cette page. Merci d’utiliser le bouton de prévisualisation avant de sauvegarder.'); ta['ca-addsection'] = new Array('+','Ajouter un commentaire à cette discussion.'); ta['ca-viewsource'] = new Array('e','Cette page est protégée. Vous pouvez voir sa source.'); ta['ca-history'] = new Array('h','Anciennes versions de cette page.'); ta['ca-protect'] = new Array('=','Protéger cette page'); ta['ca-delete'] = new Array('d','Supprimer cette page'); ta['ca-undelete'] = new Array('d','Restaurer les modifications effectuées sur cette page avant sa suppression'); ta['ca-move'] = new Array('m','Renommer cette page'); ta['ca-watch'] = new Array('w','Ajouter cette page à votre liste de suivi'); ta['ca-unwatch'] = new Array('w','Retirer cette page de votre liste de suivi'); ta['search'] = new Array('f','Chercher dans ce wiki'); ta['p-logo'] = new Array('','Page principale'); ta['n-mainpage'] = new Array('z','Visitez la page principale'); ta['n-portal'] = new Array('','À propos de ce projet, ce que vous pouvez faire, où trouver les choses'); ta['n-currentevents'] = new Array('','Trouver des informations sur les évènements actuels'); ta['n-recentchanges'] = new Array('r','Liste des changements récents sur le wiki'); ta['n-randompage'] = new Array('x','Charger une page aléatoire'); ta['n-help'] = new Array('','Aide'); ta['n-sitesupport'] = new Array('','Aidez-nous'); ta['t-whatlinkshere'] = new Array('j','Liste de tous les wikis qui lient vers cette page'); ta['t-recentchangeslinked'] = new Array('k','Changements récents dans les pages qui lient vers cette page'); ta['feed-rss'] = new Array('','Flux RSS pour cette page'); ta['feed-atom'] = new Array('','Flux Atom pour cette page'); ta['t-contributions'] = new Array('','Voir la liste de contributions de cet utilisateur'); ta['t-emailuser'] = new Array('','Envoyer un courriel à cet utilisateur'); ta['t-upload'] = new Array('u','Télécharger une image ou des fichiers'); ta['t-specialpages'] = new Array('q','Liste de toutes les pages spéciales'); ta['ca-nstab-main'] = new Array('c','Voir l’article'); ta['ca-nstab-user'] = new Array('c','Voir la page utilisateur'); ta['ca-nstab-media'] = new Array('c','Voir la page du média'); ta['ca-nstab-special'] = new Array('','Ceci est une page spéciale, vous ne pouvez la modifier.'); ta['ca-nstab-project'] = new Array('a','Voir la page du projet'); ta['ca-nstab-image'] = new Array('c','Voir la page de l’image'); ta['ca-nstab-mediawiki'] = new Array('c','Voir le message système'); ta['ca-nstab-template'] = new Array('c','Voir le modèle'); ta['ca-nstab-help'] = new Array('c','Voir la page d’aide'); ta['ca-nstab-category'] = new Array('c','Voir la page de la catégorie'); /*</source> == Fonctions de base pour monobook == Cette partie contient les fonctions Javascript de base de Wikiversité. Pour installer une nouvelle fonction : <code>aOnloadFunctions[aOnloadFunctions.length] = nom_de_la_fonction; // (sans parenthèses)</code> <source lang="javascript">*/ if (!window.aOnloadFunctions) { var aOnloadFunctions = new Array(); } window.onload = function() { if (window.aOnloadFunctions) { for (var _i=0; _i<aOnloadFunctions.length; _i++) { aOnloadFunctions[_i](); } } } /** * Ajouter une nouvelle fonction à exécuter au chargement de la page. */ function addLoadEvent(func) { if (window.addEventListener) window.addEventListener("load", func, false); else if (window.attachEvent) window.attachEvent("onload", func); } /** * Permet de centraliser les codes javascript au moyen de la fonction "obtenir" (crée sur fr.wikipedia) */ function obtenir(name) { document.write('<script type="text/javascript" src="' + 'http://fr.wikiversity.org/w/index.php?title=MediaWiki:JSScripts/' + name + '&action=raw&ctype=text/javascript&dontcountme=s"></script>'); } /*</source> == Liste des caractères spéciaux == Ajoutez le menu pour choisir des sous-ensembles de caractères spéciaux Note : L'ordre de cette liste doit correspondre a celui de [[MediaWiki:Edittools]] ! <source lang="javascript">*/ function addCharSubsetMenu() { var specialchars = document.getElementById('specialchars'); if (specialchars) { var menu = "<select style=\"display:inline\" onChange=\"chooseCharSubset(selectedIndex)\">"; menu += "<option>Wiki</option>"; menu += "<option>Mathématiques</option>"; menu += "<option>API</option>"; menu += "<option>Latin/Romain</option>"; menu += "<option>Grec</option>"; menu += "<option>Cyrillique</option>"; menu += "<option>AHD</option>"; menu += "<option>Allemand</option>"; menu += "<option>Arabe</option>"; menu += "<option>Catalan</option>"; menu += "<option>Croate</option>"; menu += "<option>Espagnol</option>"; menu += "<option>Espéranto</option>"; menu += "<option>Estonien</option>"; menu += "<option>Gallois</option>"; menu += "<option>Hawaien</option>"; menu += "<option>Hébreu</option>"; menu += "<option>Hiéroglyphe</option>"; menu += "<option>Hollandais</option>"; menu += "<option>Hongrois</option>"; menu += "<option>Indo-européen</option>"; menu += "<option>Irlandais</option>"; menu += "<option>Islandais</option>"; menu += "<option>Italien</option>"; menu += "<option>Letton</option>"; menu += "<option>Lituanien</option>"; menu += "<option>Maltais</option>"; menu += "<option>Navajo & Apache</option>"; menu += "<option>Pinyin</option>"; menu += "<option>Polonais</option>"; menu += "<option>Portugais</option>"; menu += "<option>Rōmaji</option>"; menu += "<option>Roumain</option>"; menu += "<option>Scandinave</option>"; menu += "<option>Serbe</option>"; menu += "<option>Tchèque</option>"; menu += "<option>Turc</option>"; menu += "<option>Vieil anglais</option>"; menu += "<option>Vietnamien</option>"; menu += "<option>Yiddish</option>"; menu += "</select>"; specialchars.innerHTML = menu + specialchars.innerHTML; /* default subset - try to use a cookie some day */ chooseCharSubset(0); } } /* select subsection of special characters */ function chooseCharSubset(s) { var l = document.getElementById('specialchars').getElementsByTagName('p'); for (var i = 0; i < l.length ; i++) { l[i].style.display = i == s ? 'inline' : 'none'; l[i].style.visibility = i == s ? 'visible' : 'hidden'; } } addOnloadHook(addCharSubsetMenu); /*</source> == Boîtes déroulantes == <source lang="javascript">*/ // BEGIN Dynamic Navigation Bars (experimental) var NavigationBarHide = '[ Enrouler ]'; var NavigationBarShow = '[ Dérouler ]'; var NavigationBarShowDefault = 0; // shows and hides content and picture (if available) of navigation bars // affiche ou masque une NavBar donnée // Parameters: // indexNavigationBar: the index of navigation bar to be toggled // indexNavigationBar : numéro de la barre concernée function toggleNavigationBar(indexNavigationBar) { var NavToggle = document.getElementById("NavToggle" + indexNavigationBar); var NavFrame = document.getElementById("NavFrame" + indexNavigationBar); // si y'a pas de NavFrame/NavToggle, on oublie if (!NavFrame || !NavToggle) { return false; } // ajout par Dake // permet de créer un titre en lieu et place du "Dérouler" grâce // à l'attribut "title" du tag. // Bidouillage : // 1. Permet de modifier « Enrouler » et « Dérouler » // Utilisation : title = "dérouler/enrouler" // Si non supporté, laisse le texte par défaut // 2. Permet de décider si la boîte est affichée au départ ou pas // Par défaut, le contenu est caché // Pour l'afficher, il suffit d'ajouter style="display:block" au NavContent var ShowText; var HideText; var Texts; ShowText = NavigationBarShow; HideText = NavigationBarHide; if (NavFrame.title == undefined || NavFrame.title.length == 0 ) { } else { // Cette astuce permet de passer deux arguments dans « titre » Texts=NavFrame.title.split("/"); if (Texts[0].length==0) {} else { ShowText=Texts[0] } if (Texts[1].length==0 || Texts[1] == undefined) {} else { HideText=Texts[1] } } if (NavToggle.firstChild.data == ShowText || 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 = HideText; } } } else { 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 = ShowText; } } } } // adds show/hide-button to navigation bars function createNavigationBarToggleButton() { var indexNavigationBar = 0; // iterate over all < div >-elements for( var i=0; NavFrame = document.getElementsByTagName("div")[i]; i++ ) { // if found a navigation bar if (NavFrame.className == "NavFrame") { indexNavigationBar++; var NavToggle = document.createElement("a"); NavToggle.className = 'NavToggle'; NavToggle.setAttribute('id', 'NavToggle' + indexNavigationBar); NavToggle.setAttribute('href', 'javascript:toggleNavigationBar(' + indexNavigationBar + ');'); // Par défaut, la boîte est fermée var NavToggleText = document.createTextNode(NavigationBarHide); // Vérifie si l'un des enfants est affiché, alors la boîte s'ouvre for (var NavChild = NavFrame.firstChild;NavChild != null;NavChild = NavChild.nextSibling) { if (NavChild.style!=undefined) { if (NavChild.style.display!=undefined) { if (NavChild.style.display=="block") { NavToggleText = document.createTextNode(NavigationBarShow);} } } } NavToggle.appendChild(NavToggleText); // add NavToggle-Button as first div-element // in < div class="NavFrame" > NavFrame.insertBefore( NavToggle, NavFrame.firstChild ); NavFrame.setAttribute('id', 'NavFrame' + indexNavigationBar); } } // if more Navigation Bars found than Default: hide all if (NavigationBarShowDefault < indexNavigationBar) { for( var i=1; i<=indexNavigationBar; i++ ) { toggleNavigationBar(i); } } } addOnloadHook(createNavigationBarToggleButton); /*</source> == Réécritrure des titres == La fonction cherche une bannière comme celle-là : <nowiki><div id="RealTitleBanner">Div cachée <span id="RealTitle">titre</span> </div></nowiki> Un élément avec id=DisableRealTitle désactive la fonction. <source lang="javascript"> */ rewritePageH1 = function() { try { var realTitleBanner = document.getElementById("RealTitleBanner"); if (realTitleBanner) { if (!document.getElementById("DisableRealTitle")) { var realTitle = document.getElementById("RealTitle"); var h1 = document.getElementsByTagName("h1")[0]; if (realTitle && h1) { h1.innerHTML = realTitle.innerHTML; realTitleBanner.style.display = "none"; } } } } catch (e) { /* Something went wrong. */ } } addOnloadHook(rewritePageH1); /* * VraiTitre : Ajout du titre réel d'un article pour lequel MediaWiki n'affiche pas correctement */ function VraiTitre() { var balise = document.getElementById("vrai_titre"); if (!balise) return; vrai_titre = balise.childNodes[0].nodeValue; var titre = document.getElementsByTagName("H1")[0]; rectificatif = titre.appendChild(document.createElement("span")); rectificatif.setAttribute ("style","color:#AAAAAA; font-size:0.7em; font-style:italic; display:inline;"); rectificatif.appendChild(document.createTextNode(" ("+ vrai_titre +")")); } addOnloadHook(VraiTitre); /*</source> == Icônes de titre == * Cherche les icônes de titre (class="icone de titre") et les déplace à droite du titre de la page. * Doit être exécuté après une éventuelle correction de titre. <source lang="javascript">*/ function IconesDeTitre() { var h1 = document.getElementsByTagName("h1")[0]; var icones = document.getElementsByTagName("div"); var icones2 = new Array(); var j = 0; for (var i = 0; i < icones.length; ++i) { if (icones[i].className == "icone de titre") { icones2[j++] = icones[i]; } } for (; j > 0; --j) { icones2[j-1].style.display = "block"; /* annule display:none par défaut */ icones2[j-1].style.borderWidth = "1px"; icones2[j-1].style.borderStyle = "solid"; icones2[j-1].style.borderColor = "white"; h1.insertBefore(icones2[j-1], h1.firstChild); /* déplacement de l'élément */ } } addOnloadHook(IconesDeTitre); /*</source> == Lien d'import == Changer le lien d'import en lien vers la page [[Aide:Importer un fichier]] (depuis fr.wikipedia) <source lang="javascript">*/ function LienUpload() { uploadLink = document.getElementById("t-upload"); if (!uploadLink) return; a = uploadLink.firstChild; a.setAttribute('href', '/wiki/Aide:Importer_un_fichier'); } addOnloadHook(LienUpload); /*</source> == Barre d'outil == === Générateur de tableaux === Génère un tableau en utilisant la syntaxe MediaWiki @author: fr:user:dake @version: 0.1 <source lang="javascript">*/ function generateTableau(nbCol, nbRow, border, styleHeader, styleLine) { var code = "\n"; if (styleHeader==1) { code += '{{entête tableau charte}}\n'; } else { code += '{| border="' + border + '"\n'; code += '|+ Titre du tableau\n'; } for (var i=0; i<nbCol; i++) code += '! en-tête ' + i + '\n'; for (var j=0; j<nbRow; j++) { if ((j+1)%2==0 && styleLine==1) { code += '|-{'+'{ligne grise}'+'}\n'; } else { code += '|-----\n'; } for (var i=0; i<nbCol; i++) code += '| élément\n'; } code += '|}'; insertTags('','', code); } /** * Ouvre une popup avec paramètres pour générer un tableau * Le nombre de lignes et de colonnes peut être modifié. Des * paramètres supplémentaires sont liés aux modèles disponibles sur :fr * * @author: fr:user:dake * @version: 0.1 */ function popupTableau() { var popup = window.open('','name','height=400,width=500'); javaCode = '<script type="text\/javascript">function insertCode(){'; javaCode += 'var row = parseInt(document.paramForm.inputRow.value); '; javaCode += 'var col = parseInt(document.paramForm.inputCol.value); '; javaCode += 'var bord = parseInt(document.paramForm.inputBorder.value); '; javaCode += 'var styleHeader = document.paramForm.inputHeader.checked; '; javaCode += 'var styleLine = document.paramForm.inputLine.checked; '; javaCode += 'window.opener.generateTableau(col,row,bord,styleHeader,styleLine); '; javaCode += '}<\/script>'; popup.document.write('<html><head><title>Paramètres du tableau</title>'); popup.document.write('<script type="text\/javascript" src="\/skins-1.5\/common\/wikibits.js"><!-- wikibits js --><\/script>'); popup.document.write('<style type="text\/css" media="screen,projection">/*<![CDATA[*/ @import "\/skins-1.5\/monobook\/main.css?5"; /*]]>*/<\/style>'); popup.document.write(javaCode); popup.document.write('</head><body>'); popup.document.write('<p>Veuillez entrer les paramètres du tableau : </p>'); popup.document.write('<form name="paramForm">'); popup.document.write('Nombre de lignes : <input type="text" name="inputRow" value="3" ><p>'); popup.document.write('Nombre de colonnes : <input type="text" name="inputCol" value="3" ><p>'); popup.document.write('Largeur de la bordure : <input type="text" name="inputBorder" value="1" ><p>'); popup.document.write('En-tête en gris (style « charte graphique ») : <input type="checkbox" name="inputHeader" checked="1" ><p>'); popup.document.write('Lignes grises alternées (style « charte graphique ») : <input type="checkbox" name="inputLine" checked="1" ><p>'); popup.document.write('</form">'); popup.document.write('<p><a href="javascript:insertCode()"> Insérer le code dans la fenêtre d\'édition</a></p>'); popup.document.write('<p><a href="javascript:self.close()"> Fermer</a></p>'); popup.document.write('</body></html>'); popup.document.close(); } /*</source> === Insertion de nouveaux boutons dans la barre d'outil === Remplit la variable mwCustomEditButtons (voir /skins-1.5/commons/wikibits.js) pour ajouter des boutons à la barre d'outils <source lang="javascript">*/ function addCustomButton(imageFile, speedTip, tagOpen, tagClose, sampleText) { mwCustomEditButtons[mwCustomEditButtons.length] = {"imageFile": imageFile, "speedTip": speedTip, "tagOpen": tagOpen, "tagClose": tagClose, "sampleText": sampleText}; } addCustomButton('http://upload.wikimedia.org/wikipedia/commons/3/30/Btn_toolbar_rayer.png','Rayer',"<s>","</s>",''); addCustomButton('http://upload.wikimedia.org/wikipedia/commons/8/88/Btn_toolbar_enum.png','Énumération',"\n# élément 1\n# élément 2\n# élément 3","",''); addCustomButton('http://upload.wikimedia.org/wikipedia/commons/1/11/Btn_toolbar_liste.png','Liste',"\n* élément A\n* élément B\n* élément C","",''); addCustomButton('http://upload.wikimedia.org/wikipedia/commons/9/9e/Btn_toolbar_gallery.png','Galerie d\'images',"\n<gallery>\nFichier:Image1.jpg|[[Titre1]]\nFichier:Image2.jpg|[[Image2]]\nFichier:Image3.jpg|Le [[titre3]]\n</gallery>","",''); addCustomButton('http://upload.wikimedia.org/wikipedia/commons/3/37/Btn_toolbar_commentaire.png','Commentaire',"<!--","-->",''); addCustomButton('http://upload.wikimedia.org/wikipedia/commons/c/c8/Button_redirect.png','Redirection',"#REDIRECT [[","]]",'nom de la destination'); addCustomButton('http://upload.wikimedia.org/wikipedia/commons/b/b4/Button_category03.png','Catégorie',"[[Catégorie:","]]",'nom de la catégorie'); addCustomButton('http://upload.wikimedia.org/wikipedia/commons/7/77/Button_Nuvola_apps_edu_phi.png','Chapitre','\{\{Chapitre\n\|titre=\n\|titre_leçon=\n\|idfaculté=','\n\|leçon=\n\|numero=\n\|précédent=\n\|suivant=\n\|niveau=\n\}\}','entrez le nom de la faculté'); //Ressemble à la fonction de /skins-1.5/commons/wikibits.js pour insérer un autre lien que insertTags function marque_tab() { var toolbar = document.getElementById('toolbar'); if (!toolbar) return false; var textbox = document.getElementById('wpTextbox1'); if (!textbox) return false; if (!document.selection && textbox.selectionStart == null) return false; var image = document.createElement("img"); image.width = 23; image.height = 22; image.src = 'http://upload.wikimedia.org/wikipedia/commons/0/04/Button_array.png'; image.border = 0; image.alt = 'Tableau'; image.title = 'Tableau'; image.style.cursor = "pointer"; image.onclick = function() { popupTableau(); return false; } toolbar.appendChild(image); } addOnloadHook(marque_tab); /*</source> == Suppression du titre sur la page d'accueil == Script de suppression du titre sur la page d'accueil (depuis fr.wikipedia) <source lang="javascript">*/ var mpTitle = "Accueil"; var isMainPage = (/[Aa]ccueil/.test(wgTitle)); var isMainPageFront = (document.title.substr(0, document.title.lastIndexOf(" - ")) == mpTitle); var isDiff = (document.location.search && (document.location.search.indexOf("diff=") != -1 || document.location.search.indexOf("oldid=") != -1)); if (isMainPage) { if (isMainPageFront && !isDiff) document.write('<style type="text/css">/*<![CDATA[*/ #lastmod, #siteSub, #contentSub, h1.firstHeading { display: none !important; } /*]]>*/</style>'); var mpSmallEnabled; var mpMinWidth = 700; function mainPageTransform() { if (isMainPage && document.getElementById('ca-nstab-main')) document.getElementById('ca-nstab-main').firstChild.innerHTML = 'Accueil'; if (((isMainPageFront && !isDiff) || /[\/=:]Main_Page/.test(document.location)) && document.getElementById('ca-nstab-main')) var mpContentEl = document.getElementById("bodyContent"); var mpBrowseEl = document.getElementById("EnWpMpBrowse"); var mpContainEl = document.getElementById("EnWpMpBrowseContainer"); var mpMarginEl = document.getElementById("EnWpMpMargin"); var mpEl = document.getElementById("EnWpMainPage"); if (!mpContentEl || !mpBrowseEl || !mpContainEl || !mpMarginEl || !mpEl) return; if (!mpSmallEnabled && mpContentEl.offsetWidth < mpMinWidth) { mpContainEl.insertBefore(mpBrowseEl, mpContainEl.firstChild); mpBrowseEl.className = "EnWpMpBrowseBottom"; mpMarginEl.style.marginRight = 0; mpSmallEnabled = true; } else if (mpSmallEnabled && mpContentEl.offsetWidth > mpMinWidth) { mpEl.insertBefore(mpBrowseEl, mpEl.firstChild); mpBrowseEl.className = "EnWpMpBrowseRight"; mpMarginEl.style.marginRight = "13.8em"; mpSmallEnabled = false; } } var onloadFuncts = [ mainPageTransform ]; addFuncEvent("resize", mainPageTransform); } /*</source> == Page de recherche == * Amélioration de la page de recherche v3 * Auteur : Marc Mongenet * Sous licence GFDL & GPL <source lang="javascript">*/ function SpecialSearchEnhanced3() { function SearchForm(search_action_url, engine_url, engine_name, logo_url, search_field_name, search_field_value, site_field_name, site_field_value) { var span = document.createElement("div"); span.style.marginRight = "1em"; span.style.width="100%"; span.style.whiteSpace = "nowrap"; var form = document.createElement("form"); form.method = "get"; form.action = search_action_url; form.style.display = "inline"; span.appendChild(form); var input = document.createElement("input"); input.type = "hidden"; input.name = search_field_name; form.appendChild(input); var site = document.createElement("input"); site.type = "hidden"; site.name = site_field_name; site.value = site_field_value; form.appendChild(site); var submit = document.createElement("input"); submit.type = "submit"; submit.value = "Recherche"; form.appendChild(submit); form.onsubmit = function() { input.value = document.getElementById("lsearchbox").value; } var a = document.createElement("a"); a.href = engine_url; span.appendChild(a); var img = document.createElement("img"); img.src = logo_url; img.alt = engine_name; img.style.borderWidth = "0"; img.style.padding = "5px"; a.appendChild(img); return span; } if (typeof SpecialSearchEnhanced3Disabled != 'undefined') return; if (wgPageName != "Special:Search") return; var mainNode = document.getElementsByTagName("form"); if (!mainNode) return; mainNode = mainNode[0]; mainNode.appendChild(document.createElement("center")); mainNode = mainNode.lastChild; var searchValue = document.getElementById("lsearchbox").value; var engine; engine = SearchForm("http://partner.exalead.fr/search", "http://www.exalead.fr/", "Exalead", "http://www.wikipedia.fr/exalead.gif", "q", searchValue, "site", "fr.wikiversity.org"); mainNode.appendChild(engine); engine = SearchForm("http://www.google.fr/search", "http://www.google.fr/", "Google", "http://www.google.com/logos/Logo_25wht.gif", "q", searchValue, "as_sitesearch", "fr.wikiversity.org"); mainNode.appendChild(engine); engine = SearchForm("http://search.live.com/results.aspx", "http://search.live.com/", "Live", "http://search.live.com/s/affillogoLive.gif", "q", searchValue, "q1", "site:http://fr.wikiversity.org"); mainNode.appendChild(engine); engine = SearchForm("http://fr.search.yahoo.com/search", "http://fr.search.yahoo.com/", "Yahoo!", "http://us.yimg.com/i/yahootogo/y88red2.gif", "p", searchValue, "vs", "fr.wikiversity.org"); mainNode.appendChild(engine); } addOnloadHook(SpecialSearchEnhanced3); /*</source> == Salle Café == Ce Javascript permet de gérer la salle café comme une page de discussion. <source lang="javascript">*/ function DiscussionCafe() { if( (wgPageName.search('Wikiversité:La_salle_café') != -1) || (wgPageName.search('Wikiversité:Réserve') != -1)) document.body.className = 'cafe'; } addOnloadHook(DiscussionCafe); /*</source> == LookupHover == Ce Javascript permet d'afficher la définition du Wiktionnaire d'un mot lorsqu'on double-clique dessus. <source lang="javascript">*/ importScriptURI('http://en.wikinews.org/w/index.php?title=MediaWiki:Gadget-dictionaryLookupHover.js&action=raw&ctype=text/javascript'); /*</source>*/ /** * Utilisation du 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(){ if (document.URL.match(/printable/g)) return; var bc=document.getElementById("bodyContent"); if( !bc ) bc = document.getElementById("mw_contentholder"); 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="◀"; } 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="▶"; } 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); /** * getElementsByClass : rechercher les éléments de la page dont le paramètre "class" est celui recherché */ function getElementsByClass(searchClass, node, tag) { if (node == null) node = document; if (tag == null) tag = '*'; return getElementsByClassName(node, tag, searchClass); } /** * Script pour alterner entre deux cartes de géolocalisation */ addOnloadHook(function(){ var cont; if(!(wgAction=="view")) return cont=getElementsByClass('img_toogle', document.getElementById('bodyContent'), 'div'); if(cont.length==0) return for (var i = 0; i < cont.length ; i++) { cont.box = getElementsByClass('geobox',cont[i]); cont.box[0].style.display='none'; cont.box[1].style.borderTop='0'; var toogle = document.createElement('a'); toogle.appendChild(document.createTextNode(cont.box[0].getElementsByTagName('img')[0].alt)); toogle.href='#'; toogle.className='a_toogle'; toogle.status = 1; toogle.onclick = function() { this.removeChild(this.firstChild); div0 = getElementsByClass('geobox',this.parentNode)[0]; div1 = getElementsByClass('geobox',this.parentNode)[1]; alt0 = div0.getElementsByTagName('img')[0].alt; alt1 = div1.getElementsByTagName('img')[0].alt; if(this.status==0) { div0.style.display='none'; div1.style.display=''; this.status=1; this.appendChild(document.createTextNode(alt0)); } else { div0.style.display=''; div1.style.display='none'; this.status=0; this.appendChild(document.createTextNode(alt1)); } return false; } cont[i].insertBefore(toogle, cont.box[1].nextSibling); } }); /** * Utilisation du modèle Modèle:VideoSRT */ function toggleVideo(group, remindex, shwindex) { document.getElementById("VideoSRTGroupsGr"+group+"Im"+remindex).style.display="none"; document.getElementById("VideoSRTGroupsGr"+group+"Im"+shwindex).style.display="inline"; } function videoGroup(){ if (document.URL.match(/printable/g)) return; var bc=document.getElementById("bodyContent"); if( !bc ) bc = document.getElementById("mw_contentholder"); if( !bc ) return; var divs=bc.getElementsByTagName("div"); var i = 0, j = 0, k = 0; var units, search; var currentvideo; var UnitNode; for (i = 0; i < divs.length ; i++) { if (divs[i].className != "VideoSRTGroup") continue; UnitNode=undefined; search=divs[i].getElementsByTagName("div"); for (j = 0; j < search.length ; j++) { if (search[j].className != "VideoSRTGroupUnits") 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 < 2 ; j++) { currentvideo=units[j]; currentvideo.id="VideoSRTGroupsGr"+i+"Im"+j; var imghead = document.createElement("div"); var link; if (j != 0) { link = document.createElement("a"); link.href = "javascript:toggleVideo("+i+","+j+","+(j-1)+");"; link.innerHTML="Version sans sous-titres"; } else { link = document.createElement("a"); link.href = "javascript:toggleVideo("+i+","+j+","+(j+1)+");"; link.innerHTML="Version avec sous-titres"; } var comment = document.createElement("tt"); comment.innerHTML = "("+ (j+1) + "/" + 2 + ")"; with(imghead) { style.fontSize="110%"; style.fontweight="bold"; appendChild(link); } currentvideo.insertBefore(imghead,currentvideo.childNodes[0]); if (j != 0) currentvideo.style.display="none"; } } } addOnloadHook(videoGroup);