Utilisateur:Phe/Oeuvre par.js
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.
// Essaye de trouver de nouveaux travaux par un auteur donnée
function fill_work_by_cb_2(data)
{
var wpTextbox1 = document.getElementById("wpTextbox1");
if (wpTextbox1 && data.query.pages) {
// Collecter les résultats en filtrant ceux déjà présent dans la page auteur
// sous une forme identique ou de page principale.
var results = [];
for (var ids in data.query.pages) {
if (!document.phe.links[data.query.pages[ids].title]
/*&& !document.phe.links[data.query.pages[ids].title.split('/')[0]]*/
&& data.query.pages[ids].ns == "0") {
results.push(data.query.pages[ids].title);
}
}
// Émettre le wikicode en filtrant les sous-pages si la page principale est elle
// aussi dans les résultats.
var titles_text = '';
for (var idx in results) {
var str = results[idx];
var pos = str.indexOf('/');
if (false || pos == -1 || !$.inArray(str.slice(0, pos), results)) {
titles_text += '*[[' + str + ']]\n';
}
}
if (titles_text.length) {
wpTextbox1.value = titles_text + '\n' + wpTextbox1.value;
}
}
}
function work_by_2(title)
{
var base_url = mw.config.get('wgServer') + mw.config.get('wgScriptPath')
+ "/api.php?format=json&redirects";
var url = base_url
+ "&callback=fill_work_by_cb_2&action=query&generator=backlinks&gblredirect=&gbllimit=500&gbltitle="
+ encodeURIComponent(title);
create_script_obj(url);
}
function create_script_obj(url)
{
var scriptObj = document.createElement("script");
scriptObj.setAttribute("type", "text/javascript");
scriptObj.setAttribute("src", url);
document.body.appendChild(scriptObj);
}
function fill_work_by_cb_1(data)
{
if (!document.phe)
document.phe = Object();
document.phe.links = new Object();
if (data.query && data.query.pages) {
for (var ids in data.query.pages) {
if (data.query.pages[ids].missing == undefined) {
document.phe.links[data.query.pages[ids].title] = true;
}
}
}
work_by_2(mw.config.get('wgPageName'));
}
function work_by_1()
{
if (mw.config.get('wgNamespaceNumber') != 102)
return;
var base_url = mw.config.get('wgServer') + mw.config.get('wgScriptPath')
+ "/api.php?format=json&redirects";
var url = base_url
+ "&callback=fill_work_by_cb_1&action=query&generator=links&gplnamespace=0&gpllimit=500&titles="
+ encodeURIComponent(mw.config.get('wgPageName'));
create_script_obj(url);
}
function add_works_by_button3(){
var toolbar = document.getElementById("toolbar");
if(toolbar){
var image = document.createElement("img");
image.width = 23;
image.height = 22;
image.border = 0;
image.className = "mw-toolbar-editbutton";
image.style.cursor = "pointer";
image.alt = "works_by";
image.title = "Find works by an author";
image.src = "//upload.wikimedia.org/wikipedia/commons/c/c4/Button_ref.png";
image.onclick = work_by_1;
toolbar.appendChild(image);
}
}
if (mw.config.get("wgNamespaceNumber") == 102 && $.inArray(mw.config.get('wgAction'), ['edit', 'submit']) !== -1) {
$(document).ready(add_works_by_button3);
}