MediaWiki:Common.js
Nòta: Aprèp aver enregistrat vòstras modificacions, es possible que vos calga forçar lo recargament complet de l'escondedor de vòstre navigador per veire los cambiaments:
- Firefox / Safari: mantenètz la tòca Maj (Shift) en clicant lo boton Actualizar o quichatz sus Ctrl-F5 o Ctrl-R (⌘-R sus un Mac)
- Google Chrome: Quichatz sus Ctrl-Shift-R (⌘-Shift-R sus un Mac)
- Internet Explorer / Edge: Mantenètz la tòca Ctrl en clicant sul boton Actualizar, o quichatz Ctrl-F5
- Opera: anatz dins Menú → Settings (Opera → Preferéncias sus un Mac) e puèi a Confidencialitat & seguretat → Escafar las donadas d’exploracion → Imatges e fichièrs en cache.
/**************************************/
/* Fonctions de traitement de chaînes */
/**************************************/
// (Aa : A==a)
function equalsAa(str1, str2)
{return str1.toUpperCase()==str2.toUpperCase();}
function startsWithAa(string, prefix)
{return equalsAa(string.substring(0,prefix.length),prefix);}
function substractPrefixAa(string, prefix)
{return startsWithAa(string, prefix)?string.substring(prefix.length):string;}
// Teste si la page fait partie d'un livre donné
// Ne pas oublier d'ajouter le séparateur utilisé à la fin de title
// (en général / , : ou (espace))
function inBook(title)
{
if (mw.config.get('wgTitle')==title.substring(0,title.length-1)) return true;
return mw.config.get('wgTitle').substr(0,title.length)==title;
}
// Teste le groupe de l'utilisateur
function usergroup(groupname)
{
if (!mw.config.get('wgUserGroups')) return false;
for(var i in mw.config.get('wgUserGroups'))
if (mw.config.get('wgUserGroups')[i]==groupname) return true;
return false;
}
var _devdebug=null;
function devdebug(msg)
{
if (_devdebug) _devdebug(msg);
}
/* Écriture cookie : expire après 1 année */
function SetVar(name,value)
{
var expires=new Date();
expires.setFullYear(expires.getFullYear()+1);
document.cookie=name+"="+escape(value)+
";expires="+expires.toGMTString()+";path=/";
}
/* Lecture cookie, valeur par défaut : paramètre defvalue */
function GetVar(name,defvalue)
{
var s=";"+document.cookie.replace(/ /g,"")+";";
var i=s.indexOf(";"+name+"=");
if (i<0) return defvalue;
i+=name.length+2;
return unescape(s.substring(i,s.indexOf(";",i)));
}
/*</source>
===Présentation des titres de livres===
<source lang="javascript">*/
var slash_exceptions = [ // de completar ... O puslèu testar l'existéncia de la sospagina intermediària ?
[ /\s$/ , /^/ ] ,
[ /$/ , /^\s/ ] ,
[ /\bTCP$/i , /^IP\b/i ] ,
[ /\bUDP$/i , /^IP\b/i ] ,
[ /\bPL$/i , /^SQL\b/i ] ,
[ /\bI$/i , /^O\b/i ] ,
[ /\bE$/i , /^S\b/i ] ,
[ /\be$/i , /^o\b/i ] ,
[ /\bo$/i , /^e\b/i ] ,
[ /\bentrada$/i , /^sortida\b/i ] ,
[ /\bentradas$/i , /^sortidas\b/i ] ,
[ /\bsortida$/i , /^entrada\b/i ] ,
[ /\bsortidas$/i , /^entradas\b/i ] ,
[ /\bGNU$/i , /^Linux\b/i ] ];
function findSlashException(word)
{
for(var i=0;i<slash_exceptions.length;i++)
if (word.match(slash_exceptions[i][0])) return i;
return -1;
}
function slashExceptionCollapse(words, titlewords)
{
var new_words=[];
var new_titles=[];
new_words.push(words[0]);
new_titles.push(titlewords[0]);
var k=0;
for(var j=1;j<words.length;j++)
{
var index = findSlashException(new_words[k]);
if ((index>=0)&&(words[j].match(slash_exceptions[index][1])))
{
new_words[k] += "/"+words[j];
new_titles[k] += "/"+titlewords[j];
}
else { new_words.push(words[j]); new_titles.push(titlewords[j]); k++; }
}
return [new_words, new_titles];
}
function newlink(text, urlwiki)
{
var l=document.createElement("a");
l.setAttribute("href", "/wiki/"+urlwiki);
l.setAttribute("title", urlwiki);
l.appendChild( document.createTextNode( text ) );
return l;
}
// Modifie la présentation du titre de la page
function setuptitle()
{
hh = document.getElementsByTagName("h1");
for(var el=0;el<hh.length;el++)
{
var n = hh.item(el);
var a = n.attributes.getNamedItem("class");
if ( a&& (a.nodeValue=="firstHeading"))
{
var tn=n.childNodes[0];
if (tn.nodeType==3)
{
var dtitlew = n.removeChild(tn).nodeValue.split(/\//g), ttitlew;
if (mw.config.get('wgPageName')) ttitlew=mw.config.get('wgPageName').split(/\//g);
else ttitlew = dtitlew;
var tt=slashExceptionCollapse( dtitlew, ttitlew );
var p="";
var tindex = tt[0].length-1;
for ( var i=0 ; i<tindex ; i++)
{
p+=tt[1][i];
n.appendChild( newlink( tt[0][i], p ) );
p+="/";
n.appendChild( document.createElement("br") );
}
n.appendChild( document.createTextNode( tt[0][tindex] ) );
return;
}
}
}
}
function useSetupTitle(){
$(setuptitle);
}
/*</source>
===Boites déroulantes===
<source lang="javascript">*/
// BEGIN Dynamic Navigation Bars (experimantal)
// set up the words in your language
var NavigationBarHide = '[ Enrotlar ]';
var NavigationBarShow = '[ Desenrotlar ]';
// 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 getAttr(node,name,defvalue)
{
if (!node.attributes) return defvalue;
var v=node.attributes.getNamedItem(name);
return (v&&v.nodeValue.length)?v.nodeValue:defvalue;
}
// shows and hides content and picture (if available) of navigation bars
// Parameters:
// indexNavigationBar: the index of navigation bar to be toggled
function toggleNavigationBar(indexNavigationBar)
{
var NavToggle = document.getElementById("NavToggle" + indexNavigationBar);
var NavFrame = document.getElementById("NavFrame" + indexNavigationBar);
if (!NavFrame || !NavToggle) return false;
var ShowHideText = getAttr(NavFrame,"lang","@").split('@');
var ShowText = ShowHideText[0];
var HideText = ShowHideText[1];
if (ShowText.length==0) ShowText=NavigationBarShow;
if (HideText.length==0) HideText=NavigationBarHide;
if (ShowText == HideText) return false;
// if shown now
if (NavToggle.firstChild.data == HideText)
{
for ( var NavChild = NavFrame.firstChild;
NavChild != null;
NavChild = NavChild.nextSibling )
if ( whichClass(NavChild,['NavPic','NavContent'])>=0 )
NavChild.style.display = 'none';
NavToggle.firstChild.data = ShowText;
}
// if hidden now
else if (NavToggle.firstChild.data == ShowText)
{
for ( var NavChild = NavFrame.firstChild;
NavChild != null;
NavChild = NavChild.nextSibling )
if ( whichClass(NavChild,['NavPic','NavContent'])>=0 )
NavChild.style.display = 'block';
NavToggle.firstChild.data = HideText;
}
}
// 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).hasClass("NavFrame"))
{
indexNavigationBar++;
var NavToggle = document.createElement("a");
NavToggle.className = 'NavToggle';
NavToggle.setAttribute('id', 'NavToggle' + indexNavigationBar);
NavToggle.setAttribute('href', 'javascript:toggleNavigationBar(' + indexNavigationBar + ');');
var HideText = getAttr(NavFrame,"lang","@").split('@')[1];
if (HideText.length==0) HideText=NavigationBarHide;
var NavToggleText = document.createTextNode(HideText);
NavToggle.appendChild(NavToggleText);
// Find the NavHead and attach the toggle link (Must be this complicated because Moz's firstChild handling is borked)
for( var j=0; j < NavFrame.childNodes.length; j++)
if ($(NavFrame.childNodes[j]).hasClass("NavHead"))
NavFrame.childNodes[j].appendChild(NavToggle);
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);
}
$(createNavigationBarToggleButton);
// END Dynamic Navigation Bars
/*</source>
=== Fonctions de remplissage automatique ===
<source lang="javascript">*/
function InitPaS(page_name)
{
return
"<!-- Salvagardatz la pagina per l'inicializar puèi seguissetz las instruccions -->\n" +
'{{subst:' + 'Inicializar PdeS|' + page_name +
'|~~~~|jorn={{subst:CURRENTDAY}}|mes={{subst:CURRENTMONTH}}}}'
"\n<!-- N'oubliez pas d'ajouter le lien vers cette page dans la page principale des Pages à supprimer -->" ;
}
function InitLdO(page_name)
{
return
"Aquò es lo libre d'aur del libre " + "[[{{subst:SUBPAGENAME}}]].\n" +
"Esitetz pas a [{{SERVER}}{{subst:localurl:Wikilibres:Libre_d%27aur/" +
"{{subst:SUBPAGENAMEE}}|action=edit§ion=new}} Daissar un comentari].\n\n\n" +
"[[Categoria:Libres d'aur]]\n" +
"[[Categoria:" + "{{subst:SUBPAGENAME}}" + " (libre)]]";
}
var init_if_empty = [
[ 'Wikilibres:Paginas_de_suprimir/', InitPaS ],
[ 'Wikilibres:Libre_d\'aur/', InitLdO ]
];
/**
* Remplit la zone d'édition si elle est vide avec le texte retourné par
* un pointeur de fonction sélectionné par le nom de la page.
*/
function InitPage()
{
if ((!document.editform) || (!document.editform.wpTextbox1)) return;
var text_area = document.editform.wpTextbox1;
if (text_area.value.length > 0) return;
for (var i in init_if_empty)
{
var initializer = init_if_empty[i];
if (mw.config.get('wgPageName').indexOf(initializer[0]) == 0)
{
var k = mw.config.get('wgPageName').indexOf('/');
text_area.value = initializer[1](mw.config.get('wgPageName').slice(k+1));
break;
}
}
}
$(InitPage);
/*</source>
=== Caractères spéciaux ===
<source lang="javascript">*/
/**
* 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 !
*/
function addCharSubsetMenu() {
var specialchars = document.getElementById('specialchars');
if (specialchars) {
specialchars.innerHTML =
"<select style=\"display:inline\" onChange=\"chooseCharSubset(selectedIndex)\">" +
"<option>Wiki</option>" +
"<option>Matematicas</option>" +
"<option>API</option>" +
"</select>" + 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';
}
}
$(addCharSubsetMenu);
/*</source>
=== Choix de l'affichage des références ===
<source lang="javascript">*/
/**
* Choix du mode d'affichage des références.
* @note L'ordre de cette liste doit correspondre a celui de Modèle:Édition !
*/
function addBibSubsetMenu()
{
var specialBib = document.getElementById('specialBib');
if (specialBib)
{
specialBib.style.display = 'block';
specialBib.innerHTML = specialBib.innerHTML +
"<select style=\"display:inline;\" onChange=\"chooseBibSubset(selectedIndex)\">" +
"<option>Lista</option>" +
"<option>WikiNorme</option>" +
"<option>BibTeX</option>" +
"<option>ISBD</option>" +
"<option>ISO690</option>" +
"</select>";
}
/* default subset - try to use a cookie some day */
chooseBibSubset(0);
}
/* select subsection of special characters */
function chooseBibSubset(s)
{
var l = document.getElementsByTagName('div');
for (var i = 0; i < l.length ; i++)
{
if(l[i].className == 'BibList') l[i].style.display = s == 0 ? 'block' : 'none';
else if(l[i].className == 'WikiNorme') l[i].style.display = s == 1 ? 'block' : 'none';
else if(l[i].className == 'BibTeX') l[i].style.display = s == 2 ? 'block' : 'none';
else if(l[i].className == 'ISBD') l[i].style.display = s == 3 ? 'block' : 'none';
else if(l[i].className == 'ISO690') l[i].style.display = s == 4 ? 'block' : 'none';
}
}
$(addBibSubsetMenu);
/*</source>
=== Barre d'outil ===
<source lang="javascript">*/
//============================================================
// Générateur de tableaux
//============================================================
/**
*
* English: Generate an array using Mediawiki syntax
*
* @author: fr:user:dake, fr:user:DavidL
* @version: 0.2
*/
function generateTableau(nbCol, nbRow, border, styleHeader, styleLine)
{
var code = "\n{| " +
((styleHeader==1) ? 'class="wikitable"' : '')+
' border="' + border + '"\n|+ Títol del tablèu\n';
var elements = "";
for (var i=0;i<nbCol;i++)
{
code += '! entèsta ' + i + '\n';
elements += '| element\n';
}
for (var j=0;j<nbRow;j++)
code += ( (j%2==1 && styleLine==1)
? '|-{'+'{linha grisa}'+'}\n'
: '|-----\n'
) + elements ;
code += '|}';
insertTags('','', code);
}
/**
*
* English: Open a popup with parameters to generate an array.
* The number of rows/columns can be modified. Some additional
* parameters are related to templates available on :oc
*
* @author: fr:user:dake, fr:user:DavidL
* @version: 0.2
*/
function popupTableau()
{
var popup = window.open('','name','height=400,width=500');
popup.document.write(
'<html><head><title>Paramètres du tableau</title>' +
'<script type="text\/javascript">function insertCode(){'+
'window.opener.generateTableau('+
'parseInt(document.paramForm.inputCol.value),'+
'parseInt(document.paramForm.inputRow.value),'+
'parseInt(document.paramForm.inputBorder.value),'+
'document.paramForm.inputHeader.checked,'+
'document.paramForm.inputLine.checked);'+
'}<\/script>'+
'</head><body>'+
'<p>Veuillez entrer les paramètres du tableau : </p>'+
'<form name="paramForm">'+
'Nombre de linhas : <input type="text" name="inputRow" value="3" ><p>'+
'Nombre de colomnas : <input type="text" name="inputCol" value="3" ><p>'+
'Largeur de la bordadura : <input type="text" name="inputBorder" value="1" ><p>'+
'Entèsta en gris (estil « carta grafica ») : <input type="checkbox" name="inputHeader" checked="1" ><p>'+
'Linhas grisas alternadas (estil « carta grafica ») : <input type="checkbox" name="inputLine" checked="1" ><p>'+
'</form">'+
'<p><a href="javascript:insertCode()"> Inserir lo còde dins la fenèstra d\'edicion</a></p>'+
'<p><a href="javascript:self.close()"> Tampar</a></p>'+
'</body></html>');
popup.document.close();
}
//============================================================
// Insertion de nouveaux boutons dans la barre d'outil
//============================================================
// Emplacements classiques des images :
url_wpcm='//upload.wikimedia.org/wikipedia/commons/';
url_wpfr='//upload.wikimedia.org/wikipedia/fr/';
url_wpen='//upload.wikimedia.org/wikipedia/en/';
url_wbfr='//upload.wikimedia.org/wikibooks/fr/';
function addCustomButton(){}
function addCustomButtonWpCm(){}
function addEmoticonsToolbar(){}
function addEmoticonsToolbarOnTalk(){}
function insertEmoticonsToolbar(){}
function insertEmoticonsToolbarOnTalk(){}
//Ressemble à la fonction de /w/skins/common/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 = '//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);
}
$(marque_tab);
/*</source>
=== Noms de page non autorisés ===
<source lang="javascript">*/
var forbidden=[
[ /(\/+)$/ , "" ] ,
[ /(\/index.php)$/ ],
[ /(Wikilivres\:Le_Bistro)$/, "Wikilivres:Le_Bistro" ]
];
function redirect(newTitle)
{
if (!newTitle) newTitle="Accueil";
document.location=mw.config.get('wgArticlePath').replace("$1",newTitle);
}
function nocreatepage(newTitle)
{
if (mw.config.get('wgAction')=="edit") redirect(newTitle);
var e = document.getElementById("_createpage");
if (e) { e=e.parentNode; if (e) e.parentNode.removeChild(e); }
e = document.getElementById("ca-edit");
if (e) e.parentNode.removeChild(e);
e = document.getElementById("ca-addsection");
if (e) e.parentNode.removeChild(e);
e = document.getElementById("ca-talk");
if (e) e.parentNode.removeChild(e);
}
function forbid(re)
{
var newTitle=(re.length>1)? mw.config.get('wgPageName').replace(re[0],re[1]):null;
nocreatepage(newTitle);
}
function forbidpage()
{
for(var i=0;i<forbidden.length;i++)
if (mw.config.get('wgPageName').match(forbidden[i][0])) return forbid(forbidden[i]);
}
if (!usergroup("autoconfirmed"))
$(forbidpage);
/*</source>
=== Divers ===
<source lang="javascript">*/
/**
* Transformer les pages du Bistro en page de discussion
*/
function DiscussionBistro()
{
if( (mw.config.get('wgPageName').search("Wikilivres:Le Bistro")!=-1)
)
document.body.className = "ns-1";
}
$(DiscussionBistro);
/**
* Transformer certaines pages en page de discussion avec le modèle {{page de discussion}}
*/
function TransformeEnDiscussion()
{
var transformeEnPDD = document.getElementById("transformeEnPageDeDiscussion");
if(transformeEnPDD)
document.body.className = "ns-1";
}
$(TransformeEnDiscussion);
/**
* Ajout d'un style particulier aux liens interlangues vers des articles de qualités
*/
function LienAdQ()
{
var lang = document.getElementById("p-lang"); // find language link list
if(lang)
{
var span = document.getElementsByTagName("span");
for(i=0; i<span.length; i++) // iterate over all <span>-elements
{
// if found a AdQ span
if(span[i].className == "AdQ") {
var li = lang.getElementsByTagName("li");
for(j=0; j<li.length; j++) {
if(li[j].className == "interwiki-" + span[i].id) { // if found a AdQ link
li[j].style.padding = "0 0 0 16px";
li[j].style.backgroundImage = "url('//upload.wikimedia.org/wikipedia/fr/3/36/Icone_etoile.png')";
li[j].style.backgroundRepeat = "no-repeat";
li[j].title = "Lien vers un article de qualité";
}
}
}
}
}
}
$(LienAdQ);
/*
* 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 +")"));
}
$(VraiTitre);
/****************************************/
function mwInsertEditButton(parent, item)
{
var image = document.createElement("img");
image.width = 23;
image.height = 22;
image.src = item.imageFile;
image.border = 0;
image.style.cursor = "pointer";
var ref = document.createElement("a");
var href;
if (item.jscode != null) href="javascript:"+item.jscode+";";
else href="javascript:insertTags(\"" + item.tagOpen + "\",\"" + item.tagClose + "\",\"" + item.sampleText + "\");";
if (item.summary != null)
href+="javascript:changeSummary(\"" + item.summary + "\");";
ref.setAttribute("href", href);
ref.setAttribute("title", item.speedTip);
ref.appendChild(image);
parent.appendChild(ref);
}
/************
* IconesDeTitre : fait en sorte que le modèle {{Icône de titre}} puisse être utilisé plusieurs fois
*/
function IconesDeTitre()
{
var h1 = document.getElementsByTagName("h1")[0];
var icones = document.getElementsByTagName("div");
var icones2=new Array();
var i;var j=0;
for(i=0;i<icones.length;i++)
if (icones[i].className == "icone de titre")
icones2[j++]=icones[i];
while (j--> 0)
{
var icon=icones2[j];
icon.style.display = "block"; /* annule display:none par défaut */
icon.style.borderWidth = "1px";
icon.style.borderStyle = "solid";
icon.style.borderColor = "white";
h1.insertBefore(icon, h1.firstChild); /* déplacement de l'élément */
}
}
$(IconesDeTitre);
/****************************************
Options d'affichage
Voir [[:Modèle:Option]]. Auteur:ThomasV
****************************************
function OptionText() {
var indexNavigationBar = 0;
// iterate over all < span >-elements until class "OptionText" is found
for(var i=0;
SpanElem = document.getElementsByTagName("span")[i];
i++) {
// if found an option span
if (SpanElem.className == "OptionText") {
//SpanElem.style.display = 'none';
OptionTitle = SpanElem.title;
OptionStyle = SpanElem.firstChild.getAttribute('style');
//check if option was already encountered...
if(!document.getElementById(OptionTitle)){
//read cookie
var DisplayOptionDefault = true;
CookieDisplayOption = $.cookie("Display"+OptionTitle)
if (CookieDisplayOption) {
if (CookieDisplayOption == "false") DisplayOptionDefault = false; }
var PageDisplay = document.createElement("li");
PageDisplay.setAttribute('id', OptionTitle);
var PageDisplayLink = document.createElement("a");
OptionText = document.createTextNode("Désactiver "+OptionTitle);
PageDisplayLink.appendChild(OptionText);
PageDisplayLink.setAttribute('href','javascript:displayOptionText("'+OptionTitle+'","' + OptionStyle +'", '+DisplayOptionDefault+');');
PageDisplay.appendChild(PageDisplayLink);
var optlist = document.getElementById("optlist");
if(!optlist) {
var displayOptions = document.createElement("div");
displayOptions.style.marginTop = "0.7em";
displayOptions.innerHTML = '<h5>options d’affichage<\/h5><div class="pBody"><ul id="optlist"></ul><\/div>';
document.getElementById("p-tb").appendChild(displayOptions);
optlist = document.getElementById("optlist");
}
optlist.appendChild(PageDisplay);
displayOptionText(OptionTitle,OptionStyle,DisplayOptionDefault);
}
}
}
}
function displayOptionText(optiontitle, optionstyle, bool)
{
$.cookie("Display"+optiontitle,bool);
var PageDisplayLink = document.getElementById(optiontitle).firstChild;;
// iterate over all < span >-elements
for(var i=0;
SpanElem = document.getElementsByTagName("span")[i];
i++) {
// if found an option text
if ((SpanElem.className == "OptionText") && (SpanElem.title == optiontitle)) {
if(bool==true) {
SpanElem.setAttribute('style',optionstyle);
PageDisplayLink.firstChild.data = (optiontitle);
PageDisplayLink.setAttribute('href', 'javascript:displayOptionText("'+optiontitle+'","'+optionstyle+'", false);');
}
if(bool==false) {
SpanElem.setAttribute('style','null');
PageDisplayLink.firstChild.data = (optiontitle);
PageDisplayLink.setAttribute('href', 'javascript:displayOptionText("'+optiontitle+'","'+optionstyle+'", true);');
}
}
}
}
$(OptionText);
function loadImage(ImageSrc,id)
{
var d = document.getElementById(id);
//if(d.firstChild){d.removeChild(d.firstChild);}
d.firstChild.setAttribute('href', 'javascript:hideImage("'+ImageSrc+'", "'+id+'");');
d.firstChild.setAttribute('title', 'cacher');
d.firstChild.innerHTML='[-]';
var newimg = document.createElement("img");
//newimg.setAttribute("src", "/wiki/Special:Filepath/"+ImageSrc.substring(6));
newimg.setAttribute("src", "/w/thumb.php?f="+ImageSrc.substring(6)+"&w=650");
newimg.setAttribute("alt", "image not found : "+ImageSrc.substring(6));
newimg.setAttribute("id", "img2");
d.appendChild(newimg);
}
function hideImage(ImageSrc,id)
{
var d = document.getElementById(id);
d.firstChild.setAttribute('href', 'javascript:loadImage("'+ImageSrc+'", "'+id+'");');
d.firstChild.setAttribute('title', 'montrer');
d.firstChild.innerHTML='[+]';
d.removeChild(d.lastChild);
}
function onclickImages()
{
// iterate over all < span >-elements
for(var i=0;
spanElem = document.getElementsByTagName("span")[i];
i++) {
if (spanElem.className == "onclickImage") {
spanElem.setAttribute('id', 'onclick'+i);
title = spanElem.firstChild.getAttribute('title');
spanElem.firstChild.setAttribute('href', 'javascript:loadImage("'+title+'", "onclick'+i+'");');
spanElem.firstChild.innerHTML='[+]';
spanElem.firstChild.setAttribute('title', 'montrer');
}
}
}
$(onclickImages);
// Amélioration de la page de recherche v2
// Auteur : Marc Mongenet
// Sous licence GFDL & GPL
function SpecialSearchEnhanced2()
{
function SearchForm(action, engine, engine_name, logo, input_name, input_val, site_name, site_val)
{
var tr = document.createElement("tr");
var td1 = document.createElement("td");
td1.align = "left";
tr.appendChild(td1);
var a = document.createElement("a");
a.href = engine;
td1.appendChild(a);
var img = document.createElement("img");
img.src = logo;
img.alt = engine_name;
img.style.borderWidth = "0";
a.appendChild(img);
var td2 = document.createElement("td");
tr.appendChild(td2);
var form = document.createElement("form");
form.method = "get";
form.action = action;
td2.appendChild(form);
var input = document.createElement("input");
input.type = "text";
input.size = "32";
input.name = input_name;
input.value = input_val;
form.appendChild(input);
var site = document.createElement("input");
site.type = "hidden";
site.name = site_name;
site.value = site_val;
form.appendChild(site);
var submit = document.createElement("input");
submit.type = "submit";
submit.value = "Rechercher avec " + engine_name;
form.appendChild(submit);
return tr;
}
if (typeof SpecialSearchEnhanced2Disabled != 'undefined') return;
if (mw.config.get('wgCanonicalSpecialPageName') != "Search") return;
var mainNode = document.getElementsByTagName("form");
if (!mainNode) return;
mainNode = mainNode[0];
mainNode.appendChild(document.createElement("table"));
mainNode = mainNode.lastChild;
mainNode.style.backgroundColor = "transparent";
mainNode.appendChild(document.createElement("tbody"));
mainNode = mainNode.lastChild;
var searchValue = document.getElementById("lsearchbox").value;
var motor;
motor = SearchForm("http://partner.exalead.fr/search", "http://www.exalead.fr/", "Exalead",
"http://www.wikipedia.fr/exalead.gif", "q", searchValue,
"site", "fr.wikibooks.org");
mainNode.appendChild(motor);
motor = SearchForm("http://www.google.fr/search", "http://www.google.fr/", "Google",
"http://www.google.com/logos/Logo_25wht.gif", "q", searchValue,
"as_sitesearch", "fr.wikibooks.org");
mainNode.appendChild(motor);
motor = 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.wikibooks.org");
mainNode.appendChild(motor);
motor = 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.wikibooks.org");
mainNode.appendChild(motor);
}
$(SpecialSearchEnhanced2);
/**
* Changer le lien d'import en lien vers la page [[Aide:Importer un fichier]] (depuis fr.wikipedia)
*/
function LienUpload()
{
var a = document.getElementById("p-tb");
if (a)
{
b = a.getElementsByTagName("ul");
if(b.length > 0)
{
b[0].innerHTML = b[0].innerHTML
+ '<li><span id="t-upload2" title="//fr.wikibooks.org/wiki/Aide:Importer_un_fichier">'
+ '<a href="//fr.wikibooks.org/wiki/Aide:Importer_un_fichier">'
+ 'Importer image ou son</a></span> </li>'
}
}
}
$(LienUpload);
// ==================================================
// Book-wide search using Google
// from pl.wikibooks, maintainer [[b:pl:User:Piotr]]
// ==================================================
function getBookName() {
var start = 0;
var PSEUDONAMESPACE = "Programming:";
if ( mw.config.get('wgPageName').slice(0, PSEUDONAMESPACE.length) == PSEUDONAMESPACE ) start = PSEUDONAMESPACE.length;
var i = mw.config.get('wgPageName').indexOf(':', start);
var k = mw.config.get('wgPageName').indexOf('/', start);
if ( (k>=0) && ((i<0) || (k < i)) ) i = k;
return (i<0) ? mw.config.get('wgPageName') : mw.config.get('wgPageName').slice(0, i);
}
function insertGoogleSearch() {
if ( mw.config.get('wgNamespaceNumber') != 0 && mw.config.get('wgNamespaceNumber') != 102) { // 102 - Cookbook namespace
return;
}
var google = "http://www.google.com/custom?sa=Google+Search&domains=fr.wikibooks.org/wiki/PAGE&sitesearch=fr.wikibooks.org/wiki/PAGE";
var tb = document.getElementById('p-tb').getElementsByTagName('ul')[0];
var link = document.createElement('a');
var book = getBookName();
link.href = google.replace(/PAGE/g, book);
link.appendChild(document.createTextNode("Recherche dans livre"));
var li = document.createElement('li');
li.id = "google-trick-search";
li.appendChild(link);
tb.insertBefore(li, tb.firstChild);
}
$(insertGoogleSearch);
/* </source>
== Moteurs de recherche externe ==
<source lang="javascript">*/
var cookieCacheRechercheExterneName = "cacheRechercheExterne";
var urls = new Array();
function ExternalSearch() { //génère le contenu
//if (mw.config.get('wgPageName') != "Accueil/Brouillon") return;
var mainNode = document.getElementById("searchbox");
if (!mainNode) return;
var c = 0;
function CreateButton(name,value,parent,url) {
var button = document.createElement("input");
button.type = "button";
button.value = value;
button.setAttribute('onclick','SearchRedir(' + c + ');');
parent.appendChild(button);
urls[c] = url;
c++;
}
var span = document.createElement("span");
span.style.fontSize = "smaller";
var a = document.createElement("a");
a.href="javascript:affRechercheExterne(true);";
a.id = "AfficheRechercheExterne";
a.title = "En raison des limitations du moteur de recherche interne, des boutons vers des moteurs externes vous sont temporairement proposés afin de vous aider dans vos recherches";
a.style.marginLeft = "1ex";
a.appendChild(document.createTextNode(">>"));
span.appendChild(a);
var a = document.createElement("a");
a.href="javascript:affRechercheExterne(false);";
a.id = "CacheRechercheExterne";
a.style.marginLeft = "1ex";
a.appendChild(document.createTextNode("<<"));
span.appendChild(a);
document.getElementsByClassName("searchboxSearchButton")[0].parentNode.appendChild(span);
var div = document.createElement("div");
div.id = "BoutonsRechercheExterne";
CreateButton('exalead','Exalead', div, "http://www.exalead.fr/search/results?q=site%3Awikibooks.org+")
CreateButton('google','Google', div, "http://www.google.fr/search?as_sitesearch=fr.wikibooks.org&q=");
CreateButton('live','Windows Live', div, "http://search.live.com/results.aspx?q1=site:fr.wikibooks.org&q=");
CreateButton('yahoo','Yahoo!', div, "http://fr.search.yahoo.com/search?vs=fr.wikibooks.org&p=");
mainNode.appendChild(div);
affRechercheExterne(($.cookie(cookieCacheRechercheExterneName) == "1"));
}
function affRechercheExterne(visible) { //affiche / masque les boutons
var date = new Date();
var val = visible ? "=1" : "=0";
date.setTime(date.getTime() + 30*86400*1000);
document.cookie = cookieCacheRechercheExterneName + val + "; expires="+date.toGMTString() + "; path=/";
document.getElementById('BoutonsRechercheExterne').style.display = visible ? 'block' : 'none';
document.getElementById('CacheRechercheExterne').style.display = visible ? 'inline' : 'none';
document.getElementById('AfficheRechercheExterne').style.display = visible ? 'none' : 'inline';
}
function SearchRedir(index) { //lance recherche externe suite pression sur bouton
window.location.href = urls[index] + escape(document.getElementsByClassName("searchboxInput")[0].value);
}
$(ExternalSearch);
//</source>