MediaWiki:Gadget-citeBox.js
Apparence
Note : après avoir enregistré 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 pressez Ctrl-F5 ou Ctrl-R (⌘-R sur un Mac) ;
- Google Chrome : Appuyez sur Ctrl-Maj-R (⌘-Shift-R sur un Mac) ;
- Internet Explorer : Maintenez la touche Ctrl en cliquant sur le bouton Actualiser ou pressez Ctrl-F5 ;
- Opera : Allez dans Menu → Settings (Opera → Préférences sur un Mac) et ensuite à Confidentialité & sécurité → Effacer les données d'exploration → Images et fichiers en cache.
/*********************
Citation d'un livre
Auteur: Tpt
*********************/
if ((mw.config.get('wgNamespaceNumber') === 0 || mw.config.get('wgCanonicalNamespace') === 'Index') && (mw.config.get('wgAction') === 'view' || mw.config.get('wgAction') === 'purge')) {
$(function () {
var defaultTemplate = 'Liste';
var templates = {};
var data = {};
var i18n = {
title: 'Citer ce texte',
description: 'Citer ce texte en différents formats',
display_mode: 'Mode d\'affichage :'
};
var whileInit = false;
var isInit = false;
function getFact (id) {
var $node = $('#ws-' + id);
if ($node.length > 0) {
return $node.text();
} else {
$node = $('.ws-' + id);
if ($node.length > 0) {
return $node.text();
}
}
return '';
}
function init () {
if (whileInit) {
return;
}
whileInit = true;
var message = $('<div id="citeBox" title="' + i18n.title + '"></div>').appendTo('#content');
message.dialog({
autoOpen: false,
modal: true,
width: 500,
buttons: {
Ok: function () {
$(this).dialog('close');
}
}
});
data = {
type: getFact('type'),
title: getFact('title'),
periodical: getFact('periodical'),
author: getFact('author'),
translator: getFact('translator'),
school: getFact('school'),
publisher: getFact('publisher'),
year: getFact('year'),
place: getFact('place'),
volume: getFact('volume'),
chapter: getFact('chapter'),
pages: getFact('pages')
};
isInit = true;
whileInit = false;
}
function add (name, content) {
templates[name] = content;
}
function getContent () {
var content = '<p><label for="citeBox-select">' + i18n.display_mode + '</label> <select id="citeBox-select">';
for (var id in templates) {
content += '<option value="' + id + '">' + id + '</option>';
}
content += '</select></p><div id="citeBox-content">' + format(defaultTemplate) + '</div>';
return content;
}
function format (id) {
return templates[id](data);
}
function open () {
if (!isInit) {
//Wait for initialization
init();
setTimeout(open, 100);
return;
}
var box = $('div#citeBox');
if (box.text() === '') {
box.html(getContent());
$('select#citeBox-select').change(function () {
var node = $('select#citeBox-select option:selected');
if (node.length)
$('#citeBox-content').html(format(node.text()));
});
}
box.dialog('open');
}
add('Liste', function (data) {
var content = '<ul>';
if (data.title)
content += '<li>Titre : ' + data.title + '</li>';
if (data.periodical)
content += '<li>Périodique : ' + data.periodical + '</li>';
if (data.volume)
content += '<li>Volume : ' + data.volume + '</li>';
if (data.author)
content += '<li>Auteur(s) : ' + data.author + '</li>';
if (data.translator)
content += '<li>Traducteur(s) : ' + data.translator + '</li>';
if (data.illustrator)
content += '<li>Illustrateurs(s) : ' + data.illustrator + '</li>';
if (data.publisher)
content += '<li>Éditeur : ' + data.publisher + '</li>';
if (data.school)
content += '<li>École : ' + data.school + '</li>';
if (data.year)
content += '<li>Publication : ' + data.year + '</li>';
if (data.place)
content += '<li>Lieu d\'édition : ' + data.place + '</li>';
if (data.chapter)
content += '<li>Chapitre : ' + data.chapter + '</li>';
if (data.pages) {
if (data.pages.length > 4) {
content += '<li>Pages : ' + data.pages + '</li>';
} else {
content += '<li>Page : ' + data.pages + '</li>';
}
}
content += '</ul>';
return content;
});
add('BibTeX', function (data) {
var content = '<pre style="display:block;">@Book{\n';
if (data.type)
content += ' type = "' + data.type + '",\n';
if (data.title)
content += ' title = "' + data.title + '",\n';
if (data.volume)
content += ' volume = "' + data.volume + '",\n';
if (data.author)
content += ' author = "' + data.author + '",\n';
if (data.publisher)
content += ' publisher = "' + data.publisher + '",\n';
if (data.school)
content += ' school = "' + data.school + '",\n';
if (data.year)
content += ' year = "' + data.year + '",\n';
if (data.place)
content += ' place = "' + data.place + '",\n';
if (data.chapter)
content += ' chapter = "' + data.chapter + '",\n';
if (data.pages)
content += ' pages = "' + data.pages + '",\n';
content += ' url = "' + document.location.href + '",\n';
content += '}</pre>';
return content;
});
add('Wikipédia', function (data) {
var content = '<pre>{{Ouvrage\n';
content += '|titre= ' + data.title + '\n';
content += '|auteur= ' + data.author + '\n';
if (data.translator)
content += '|traducteur= ' + data.translator + '\n';
if (data.illustrator)
content += '|illustrateur= ' + data.illustrator + '\n';
content += '|éditeur= ' + data.publisher + '\n';
content += '|année= ' + data.year + '\n';
if (data.place)
content += '|lieu= ' + data.place + '\n';
if (data.volume)
content += '|tome= ' + data.volume + '\n';
if (data.chapter)
content += '|chapitre= ' + data.chapter + '\n';
if (data.pages)
content += '|passage= ' + data.pages + '\n';
content += '|langue= fr\n';
content += '|wikisource= ' + mw.config.get('wgTitle') + '\n';
content += '}}</pre>';
return content;
});
add('Wikiquote', function (data) {
var content = '<pre>{{Réf Livre\n';
content += '|titre= ' + data.title + '\n';
content += '|auteur= ' + data.author + '\n';
content += '|éditeur= ' + data.publisher + '\n';
content += '|année= ' + data.year + '\n';
content += '|page= ' + data.pages + '\n';
if (data.volume)
content += '|tome= ' + data.volume + '\n';
if (data.chapter)
content += '|chapitre= ' + data.chapter + '\n';
if (data.translator)
content += '|traducteur= ' + data.translator + '\n';
content += '|s= ' + mw.config.get('wgTitle') + '\n';
content += '}}</pre>';
return content;
});
add('Wiktionnaire', function (data) {
var content = '<pre>{{exemple||source=';
content += data.author;
content += ', \'\'{{Wikisource|' + mw.config.get('wgTitle') + '|' + data.title + '}}\'\'';
if (data.publisher)
content += ', ' + data.publisher;
if (data.year)
content += ', ' + data.year;
if (data.pages) {
if (isNaN(data.pages)) {
content += ', pages ' + data.pages;
} else {
content += ', page ' + data.pages;
}
}
content += '|lang=fr}}</pre>';
return content;
});
var portletLink = mw.util.addPortletLink('p-coll-print_export', '#', i18n.title, 't-cite', i18n.description);
$(portletLink).click(open);
});
}