Utilisateur:MyXiLo/Monobook.js
Apparence
Note : après avoir publié vos modifications, il se peut que vous deviez forcer le rechargement complet du cache de votre navigateur pour voir les changements.
- Firefox / Safari : maintenez la touche Maj (Shift) en cliquant sur le bouton Actualiser ou appuyez sur Ctrl + F5 ou Ctrl + R (⌘ + R sur un Mac).
- Google Chrome : appuyez sur Ctrl + Maj + R (⌘ + Shift + R sur un Mac).
- Edge : maintenez la touche Ctrl en cliquant sur le bouton Actualiser ou pressez Ctrl + F5.
/*
__FORCETOC__
== infobulles et touches d’accès ==
<pre>*/
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');
/*</pre>
== Fonctions de base pour monobook ==
<pre>*/
/**
* Installation d'une nouvelle fonction de cette façon :
* aOnloadFunctions[aOnloadFunctions.length] = nom_de_la_fonction; // (sans parenthèses)
*/
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);
}
/**
* Insérer un javascript d'une page particulière (pris de fr.wikipedia.org)
*/
function loadJs(page)
{
document.write('<script type="text/javascript" src="' +
'http://fr.wikiquote.org/w/index.php?title=' + page +
'&action=raw&ctype=text/javascript&dontcountme=s"></script>');
}
function obtenir(name)
{
loadJs('MediaWiki:JSScripts/' + name);
}
/*</pre>
=== Navigation interprojet ===
<pre>*/
// Initialisation de la navigation interprojets (code adapté de de:wikt:Mediawiki:monobook.js)
document.write('<style type="text/css">#interProject {display: none; speak: none;} #p-tb .pBody {padding-right: 0;}<\/style>');
function iProject() {
if (document.getElementById("interProject")) {
var iProject = document.getElementById("interProject").innerHTML;
var interProject = document.createElement("div");
interProject.style.marginTop = "0.7em";
interProject.innerHTML = '<h5>Autres projets<\/h5><div class="pBody">'+iProject+'<\/div>';
document.getElementById("p-tb").appendChild(interProject);
}
}
hookEvent("load", iProject);
// Navigation interprojets
/* </pre>
== Liste des caractères spéciaux ==
<pre>*/
//============================================================
//
// 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 !
*/
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';
}
}
$(addCharSubsetMenu);
/*</pre>
== Boîtes déroulantes ==
<pre>*/
// BEGIN Dynamic Navigation Bars (experimantal)
// set up the words in your language
var NavigationBarHide = '[ Enrouler ]';
var NavigationBarShow = '[ Dérouler ]';
var NavigationBarShowDefault = 0;
// 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;
}
// ajout par Dake
// permet de créer un titre en lieu et place du "Dérouler" grâce
// à l'attribut "title" du tag.
var ShowText;
if (NavFrame.title == undefined || NavFrame.title.length == 0 ) {
ShowText = NavigationBarShow;
} else {
ShowText = NavFrame.title;
}
// if shown now
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 = ShowText;
}
}
// if hidden now
} else if (NavToggle.firstChild.data == ShowText) {
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;
}
}
}
}
// 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 + ');');
var NavToggleText = document.createTextNode(NavigationBarHide);
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);
}
}
}
$(createNavigationBarToggleButton);
// END Dynamic Navigation Bars
/*</pre>
== Barre d'outil ==
=== Générateur de tableaux ===
<pre>*/
/**
*
* English: Generate an array using Mediawiki syntax
*
* @author: fr:user:dake
* @version: 0.1
*/
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);
}
/**
*
* 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 :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();
}
/*</pre>
=== Insertion de nouveaux boutons dans la barre d'outil ===
<pre>*/
//Remplit la variable mwCustomEditButtons (voir /skins-1.5/commons/wikibits.js) pour ajouter des boutons à la barre d'outils
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>\\nImage:M63.jpg|[[M63]]\\nImage:Mona Lisa.jpg|[[La Joconde]]\\nImage:Truite arc-en-ciel.jpg|Une [[truite]]\\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/e/e2/Button_contexto.png','Modèle Citation','\{\{citation\|citation=','\n\|original=\n\|langue=\n\|précisions=\n\}\}','Texte de la citation');
addCustomButton('http://upload.wikimedia.org/wikipedia/commons/0/02/Button_fuente_primaria.png','Source Livre','\{\{Réf Livre\|titre=','\n\|auteur=\n\|éditeur=\n\|année=\n\|page=\n\|tome=\n\|partie=\n\|chapitre=\n\|acte=\n\|scène=\n\|section=\n\|ISBN=\n\|traducteur=\n\|année d\'origine=\n\|collection=\n\|auteur de la contribution=\n\|titre de la contribution=\n\|traducteur de la contribution=\n\|année de la contribution=\n\|vers=\n\|s=\n\|langue=\n\}\}','Titre du livre');
addCustomButton('http://upload.wikimedia.org/wikipedia/commons/2/2b/Button_plume_1.png','Source Article','\{\{Réf Article\|titre=','\n\|auteur=\n\|publication=\n\|numéro=\n\|date=\n\|page=\n\|ISSN=\n\|ISBN=\n\|s=\n\}\}','Titre Article');
addCustomButton('http://upload.wikimedia.org/wikipedia/commons/9/9a/Button_references.png','Source Film','\{\{Réf Film\|titre=','\n\|auteur=\n\|date=\n\|acteur=\n\}\}','Titre du Film');
addCustomButton('http://upload.wikimedia.org/wikipedia/commons/8/82/Button_publication.png','Source Émission','\{\{Réf Émission\|auteur=','\n\|émission=\n\|diffuseur=\n\|date=\n\|langue=\n\}\}','Titre du Film');
addCustomButton('http://upload.wikimedia.org/wikipedia/commons/5/5c/Button_references2.png','Source discours','\{\{Réf Pub\|nom=','\n\|date=\n\|lieu=\n\|source=\n\|parution=\n\|auteur=\n\|précision=\n\}\}','Nom de l\'auteur');
addCustomButton('http://upload.wikimedia.org/wikipedia/commons/1/11/Button_source_jv.png','Source jeu vidéo','\{\{Réf Jeu vidéo\|titre=','\n\|auteur=\n\|éditeur=\n\|développeur=\n\|date=\n\|personnage=\n\}\}','Nom du jeu vidéo');
addCustomButton('http://upload.wikimedia.org/wikipedia/commons/2/29/Button_user.png','Modèle Personnage','\{\{Personnage\|','\}\} \: ','Nom du personnage');
addCustomButton('http://upload.wikimedia.org/wikipedia/commons/4/4e/Button_romain.png','Modèle Romain','\{\{romain\|','\}\}','Texte à mettre en caractères romains');
addCustomButton('http://upload.wikimedia.org/wikipedia/commons/4/4c/Button_interprojet.png','Interprojet','\{\{Interprojet\n\|nolink\n\|etiq=','\n\|w=\n\|w-it=\n\|w-en=\n\|w-es=\n\|w-de=\n\|s=\n\|wikt=\n\|b=\n\|n=\n\|v=\n\|wikispecies=\n\|commons=\n\|m=\n\}\}','');
addCustomButton('http://upload.wikimedia.org/wikipedia/commons/1/13/Button_enter.png','Aller à la ligne','<br />','','');
addCustomButton('http://upload.wikimedia.org/wikipedia/commons/4/4b/Button_nbsp.png','Espace insécable',' \;','','');
addCustomButton('http://upload.wikimedia.org/wikipedia/commons/8/8f/Button_poeme.png','Poésie','<poem>\n','\n</poem>','');
//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);
}
$(marque_tab);
/*</pre>
== Historique en couleurs ==
<pre>*/
var ajax = new objAJAX()
var cookies = new objCookies()
//--------------------------------------------------------------------------------------------objAJAX
function objAJAX() {
// AJAX taken from http://jibbering.com/2002/4/httprequest.html. Thanx :)
this.conn = false
/*@cc_on @*/
/*@if (@_jscript_version >= 5)
// JScript gives us Conditional compilation, we can cope with old IE versions.
// and security blocked creation of the objects.
try {
this.conn = new ActiveXObject("Msxml2.XMLHTTP")
} catch (e) {
try {
this.conn = new ActiveXObject("Microsoft.XMLHTTP")
} catch (E) {
this.conn = false
}
}
@end @*/
if (!this.conn && typeof XMLHttpRequest != 'undefined') {
try {
this.conn = new XMLHttpRequest()
} catch (e) {
this.conn =false
}
}
if (!this.conn && window.createRequest) {
try {
this.conn = window.createRequest()
} catch (e) {
this.conn = false
}
}
this.url = null
this.requestType = "GET"
this.unsync = true
this.parser = new objHTMLparser()
}
objAJAX.prototype.sendRequest = function (url, type, unsync, data) {
if (!this.conn)
return null
if (this.conn.readyState != 0 && this.conn.readyState != 4)
return "busy"
if (url)
this.url = url
if (type)
this.requestType = type
if (unsync != null)
this.unsync = unsync
//alert(this.requestType + " ++ " + this.url + " ++ " + this.unsync)
this.conn.open(this.requestType, this.url, this.unsync)
this.conn.send(data)
}
objAJAX.prototype.getResult = function () {
if (!this.conn)
return null
return this.conn.responseText
}
objAJAX.prototype.abort = function () {
this.conn.onreadystatechange = null
this.conn.abort()
}
//------------------------------------------------------------------------------------------ObjCookie
function objCookies() {
this.value = null
this.name = null
this.expires = null
}
objCookies.prototype.get = function (which) {
this.allcookies = document.cookie
var start = this.allcookies.indexOf("; " + which + "=")
if (start == -1) {
start = this.allcookies.indexOf(which + "=")
if (start != 0)
return null
} else
start += "; ".length
this.name = which
var end = this.allcookies.indexOf(";", start)
if (end == -1)
end = this.allcookies.length
this.value = this.allcookies.substring(start + which.length + 1, end)
var arr = this.allcookies.substring(start, this.allcookies.length).split("; ")
this.expires = null
if (arr.length > 0)
if (/expires=/.test(arr[1]))
this.expires = arr[1].substring("expires=".length, arr[1].length)
return this.value
}
objCookies.prototype.set = function (name, value, expires) {
document.cookie = name + "=" + value + ";" + (expires ? "expires=" + expires + ";" : "") + "path=/;" + "domain=fr.wikipedia.org;"
this.allcookies = document.cookie
}
objCookies.prototype.setWithDelay = function (name, value, delay) {
// delay is in millisecond
var d = new Date()
d.setTime(d.getTime() + delay)
this.set(name, value, d.toGMTString())
}
objCookies.prototype.kill = function (which) {
if (this.get(which))
this.set(which, null, "Thu, 01-Jan-70 00:00:01 GMT")
}
//--------------------------------------------------------------------------------------objHTMLparser
function objHTMLparser(str) {
this.html = str
}
objHTMLparser.prototype.parse = function (elmt, str) {
if (str !== null)
this.html = str
if (this.html.indexOf("<" + elmt) == -1 || this.html.indexOf("</" + elmt + ">") == -1)
return null
var arr1 = this.html.split("<" + elmt)
var elmts = new Array()
for (var cpt = 1 ; cpt < arr1.length ; cpt++) {
var el = new Object()
el.innerHTML = arr1[cpt].substring(arr1[cpt].indexOf(">"), arr1[cpt].length).split("</" + elmt)[0]
var prop = arr1[cpt].split(">")[0].split(/\s/g)
for (var cpt1 = 1 ; cpt1 < prop.length ; cpt1++) {
if (prop[cpt1].indexOf("=") != -1)
el[prop[cpt1]] = true
else
el[prop[cpt1].split("=")[0]] = prop[cpt1].substring(prop[cpt1].indexOf("="), prop[cpt1].length)
}
elmts[cpt-1] = el
}
this.elmts[elmt] = elmts
}
/*************************************************/
// Nom : DeluxeHistory
// Auteur : Dake
// Basé sur du code Ajax de GôTô
// Dernière mise à jour : 8 avril 2006
// Commentaires :
/*************************************************/
var sysopsDeluxeHistory = null;
var botsDeluxeHistory = null;
function extractUsers(res) {
pattern = /title\=\"Utilisateur:(.*?)\"/g;
s = "";
while((result = pattern.exec(res)) != null) {
s += result[1] + "||";
}
return s;
}
/*************************************************/
// Auteur : Dake
// Basé sur du code de GôTô
/*************************************************/
function getBots() {
try {
netscape.security.PrivilegeManager.enablePrivilege("UniversalBrowserRead");
} catch (e) {
// mange l'exception
}
if (!cookies.get("botsDeluxeHistory")) {
ajax.conn.onreadystatechange = function () {
if (ajax.conn.readyState == 4) {
botsDeluxeHistory = extractUsers(ajax.getResult())
// conservé pour une semaine
cookies.setWithDelay("botsDeluxeHistory", botsDeluxeHistory, 1000*3600*24*7)
getSysops();
}
}
ajax.sendRequest("http://fr.wikiquote.org/w/index.php?title=Special:Listusers&group=bot&limit=500&offset=0&action=raw", "GET", true)
} else {
botsDeluxeHistory = cookies.get("botsDeluxeHistory")
getSysops();
}
}
/*************************************************/
// Auteur : Dake
// Basé sur du code de GôTô
/*************************************************/
function getSysops() {
try {
netscape.security.PrivilegeManager.enablePrivilege("UniversalBrowserRead");
} catch (e) {
// mange l'exception
}
if (!cookies.get("sysopsDeluxeHistory")) {
ajax.conn.onreadystatechange = function () {
if (ajax.conn.readyState == 4) {
sysopsDeluxeHistory = extractUsers(ajax.getResult())
// conservé pour une semaine
cookies.setWithDelay("sysopsDeluxeHistory", sysopsDeluxeHistory, 1000*3600*24*7)
deluxeHistoryProcess();
}
}
ajax.sendRequest("http://fr.wikiquote.org/w/index.php?title=Special:Listusers&group=sysop&limit=500&offset=0&action=raw", "GET", true)
} else {
sysopsDeluxeHistory = cookies.get("sysopsDeluxeHistory")
deluxeHistoryProcess();
}
}
// code by Martin Honnen
function getOuterHTML (node) {
if (node.nodeType == 3)
return node.nodeValue;
else if (node.nodeType == 1) {
var html = '';
html += '<' + node.nodeName;
for (var a = 0; a < node.attributes.length; a++)
html += ' ' + node.attributes[a].nodeName + '="' +
node.attributes[a].nodeValue + '"';
if (node.childNodes.length == 0)
html += ' \/>';
else {
html += '>';
for (var c = 0; c < node.childNodes.length; c++)
html += getOuterHTML(node.childNodes[c]);
html += '<\/' + node.nodeName + '>';
}
return html;
}
}
function deluxeHistoryProcess() {
sysopsList = sysopsDeluxeHistory.split("||")
botsList = botsDeluxeHistory.split("||")
var lis = document.getElementById("pagehistory").getElementsByTagName("li");
for (i=0; i<lis.length; i++) {
spanNode = lis[i].getElementsByTagName("span");
username = spanNode[0].childNodes[0].childNodes[0].nodeValue;
// check le statut du contributeur
var className = "history-user-normal";
// bot ?
for (j=0;j<botsList.length;j++) {
if (botsList[j].indexOf(username)==0) {
className = "history-user-bot"
break;
}
}
// sysop ?
for (j=0;j<sysopsList.length;j++) {
if (sysopsList[j].indexOf(username)==0) {
className = "history-user-sysop"
break;
}
}
// ip ?
var ip = /\d{1,3}\.\d{1,3}.\d{1,3}.\d{1,3}/;
if (ip.exec(username)) {
className = "history-user-ip"
}
// ajout des icônes
specialOp = "";
var comment = "";
for (h=0;h<spanNode.length;h++) {
if (spanNode[h].getAttribute("class") == "comment") {
comment = getOuterHTML(spanNode[h])
break;
}
}
var regexExpEvents = new Array();
regexExpEvents[0] = /((r|R)(é|e)vocation|(r|R)v |(R|r)evert|(v|V)andal(isme|e))/;
regexExpEvents[1] = /(a restauré|a effacé|(s|S)uppression)/;
regexExpEvents[2] = /((R|r)enommage|a déplacé)/;
regexExpEvents[3] = /((semi|Semi)-(p|P)rotection|(P|p)rotection)/;
var iconsEvents = new Array();
iconsEvents[0] = "http://upload.wikimedia.org/wikipedia/commons/thumb/7/77/Crystal_Clear_action_reload.png/20px-Crystal_Clear_action_reload.png"
iconsEvents[1] = "http://upload.wikimedia.org/wikipedia/commons/thumb/0/0c/Crystal_Clear_action_exit.png/20px-Crystal_Clear_action_exit.png"
iconsEvents[2] = "http://upload.wikimedia.org/wikipedia/commons/thumb/4/45/Crystal_Clear_action_2rightarrow.png/20px-Crystal_Clear_action_2rightarrow.png"
iconsEvents[3] = "http://upload.wikimedia.org/wikipedia/commons/thumb/f/ff/Crystal_Clear_action_lock.png/20px-Crystal_Clear_action_lock.png"
if (comment) {
for (k=0;k<regexExpEvents.length;k++) {
if (regexExpEvents[k].test(comment)) {
imgTag = "<img src=\"" + iconsEvents[k] + "\" />"
specialOp = "<div class=\"" + className +
"\" style=\"float: right; vertical-align:top;\">" +
imgTag + "</div>"
}
}
}
lis[i].innerHTML = "<div class=\"" + className + "\">" + specialOp + lis[i].innerHTML + "</div>"
inputNodes = lis[i].getElementsByTagName("input");
for (j=0;j<inputNodes.length;j++) {
inputNodes[j].style.visibility='visible';
}
for (j=0;j<spanNode.length;j++) {
if(spanNode[j].getAttribute("class")=="history-user") {
spanNode[j].setAttribute("class", className)
}
}
}
}
function deluxeHistoryLoader() {
if (document.URL.indexOf("&action=history")==-1) return;
getBots();
}
addLoadEvent(deluxeHistoryLoader)
/*</pre>
== Pré-initialisation de certaines pages ==
<pre>*/
//============================================================
//
// Fonctions de remplissage automatique
//
//============================================================
/*</pre>
=== Citation du jour ===
<pre>*/
function InitQOTD(page_name)
{
var cbeg = '<!--Remplissez les champs citation, auteur et article et sauvegardez la page. -->';
var template = '{{' + 'subst:' + 'Citation du jour/Préchargement' + '\n' + '|citation=\n' + '|auteur=\n' + '|article=\n' + '}}';
return cbeg + '\n' + template + '\n';
}
/*</pre>
=== Espace Référence ===
<pre>*/
/* Pour les sous-pages de l'espace Référence (e.g. [[Référence:Page/Sous-page]]) */
function InitRefSub()
{
var cbeg = '<!-- Remplissez les champs ci-dessous et sauvegardez la page. Voyez la documentation de ' + '[[Modèle:' + 'Édition' + ']]' + ' pour la liste des champs disponibles. -->';
var beg = '{{subst:' + 'Édition début' + '}}';
var fields = '|titre=' + '\n' + '|auteur=' + '\n' + '|éditeur=' + '\n' + '|année=' + '\n' + '|lieu=' + '\n' + '|pages=' + '\n' + '|isbn=';
var cend = '<!-- Ne pas modifier après cette ligne. -->';
var end = '{{subst:' + 'Édition fin' + '}}';
return cbeg + '\n' + beg + '\n' + fields + '\n' + cend + '\n' + end;
}
/* Pour les pages de l'espace Référence (e.g. [[Référence:Page]]) */
function InitRefPage()
{
var beg = '{{' + 'Référence' + '}}' + '\n\n== Éditions ==';
var cbeg = "<!-- Attention : cette partie ne doit faire qu'inclure les sous-pages (une par édition). Pour ajouter une édition, il faut créer une nouvelle sous-page. -->";
var body = '\n<!-- Exemple : \n\n=== [[/Gallimard-Folio|Gallimard]] ===\n\n' + '{{' + '/Gallimard-Folio' + '}}\n\n-->';
return beg + "\n" + cbeg + "\n" + body;
}
function InitRef(page_name)
{
var retval;
var index = page_name.indexOf('/');
if (index != -1)
retval = InitRefSub();
else
retval = InitRefPage();
return retval;
}
/*</pre>
=== Pré-initialisation ===
<pre>*/
var init_if_empty = new Array(
new Array('R%C3%A9f%C3%A9rence:', InitRef),
new Array('Mod%C3%A8le:Citation_du_jour/', InitQOTD)
);
/**
* 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()
{
// Tester si editdorm et wpTextbox1 existe sinon il y a une erreur lorsqu'on
// ouvre l'historique d'une page qui match un des noms de init_if_empty[],
// tester seulement le nom de la page n'est pas suffisant.
if (document.editform == undefined ||
document.editform.wpTextbox1 == undefined)
return;
var text_area = document.editform.wpTextbox1;
if (text_area.value.length != 0)
return;
ugly_url = 'http://fr.wikiquote.org/w/index.php?title=';
for (var i = 0; i < init_if_empty.length; ++i) {
var page_name = document.URL;
var page_match = init_if_empty[i][0];
var index = page_name.indexOf(ugly_url + page_match);
if (index != -1) {
page_name = page_name.slice((ugly_url + page_match).length);
page_name = page_name.split('&')[0];
page_name = decodeURI(page_name);
page_name = page_name.replace(/_/g, ' ')
text_area.value = init_if_empty[i][1](page_name);
break;
}
}
}
$(InitPage);
/*</pre>
== Choix de l'affichage des références ==
<pre>*/
//============================================================
//
// Choix de l'affichage des références
//
//============================================================
/**
* 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';
var menu = "<select style=\"display:inline;\" onChange=\"chooseBibSubset(selectedIndex)\">";
menu += "<option>Liste</option>";
menu += "<option>WikiNorme</option>";
menu += "<option>BibTeX</option>";
menu += "<option>ISBD</option>";
menu += "<option>ISO690</option>";
menu += "</select>";
specialBib.innerHTML = specialBib.innerHTML + menu;
}
/* 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);
/* </pre> */