Utilisateur:Seb35/Scripts

Un article de Wikipédia, l'encyclopédie libre.

Pour utiliser ces scripts, il suffit de copier le code dans son javascript perso (Utilisateur:VOTRE_NOM/monobook.js). Il y a le menu déroulant à personnaliser sur le même modèle que ce qui existe déjà dans le script. Vous pouvez aussi changer les deux, voire trois premières variables de la recherche avancée.

Utilisant surtout Opera, tous les scripts marchent à merveille sur Opera et un peu moins bien ailleurs. Le premier marche partout, les deuxièmes et troisièmes uniquement sur Opera et le quatrième partout mais il y a quelques réglages à faire pour être pratique sous Firefox et IE.

PS : si vous trovez des erreurs ou que le script obstinément refuse de s'exécuter correctement, faites-moi signe sur ma page de discussion.

Sommaire


[modifier] Menu déroulant pour la boîte de navigation

Fonctionne avec MediaWiki 1.6a - Opera - Firefox - IE - Ce script permet de faire des menus déroulants pour mettre beaucoup de liens dans la boîte de navigation (jusqu'à 40-50 sans problèmes je pense). Si vous ne voulez pas mettre de menus déroulants ou que vous avez moins de 7 liens à mettre, il faut mieux utiliser le script de Dake.

J'ai paramétré un petit truc pour que le menu s'ouvre quand la souris reste (ici 300ms) sur le lien, par contre ça ne marche pas avec IE. Sinon pour tous les navigateurs, on peut ouvrir un menu en cliquant dessus.

/******************************************/
/* Amélioration de la boîte de navigation */
/* Auteur : Seb35                         */
/* Bistro d'aujourd'hui par Dake          */
/******************************************/
var isOpen = new Array();
var tempo;
function navigationBox_main()
{
 a = document.getElementById('p-navigation').getElementsByTagName('ul')[0];
 m = new Array('janvier','février','mars','avril','mai','juin','juillet','août','septembre','octobre','novembre','décembre'); 
 today = new Date();
 jjmoisaa = today.getDate() + '_' + m[today.getMonth()] + '_' + (today.getYear() + 1900);
 jjmm = today.getDate() + '/' + (today.getMonth()+1);
 
 //Tableau perso à remplir
 var pages = new Array(
  'Général',
      new Array('/wiki/Wikipédia:Le_Bistro/' + jjmoisaa, 'Le Bistro ' + jjmm,
                '/wiki/Wikipédia:Vandalisme_en_cours', 'WP:-(',
                '/wiki/Wikipédia:Requête_aux_administrateurs', 'WP:RA'
               ),
  'Maintenance',
      new Array('/w/index.php?title=Special:Recentchanges&hideliu=1&limit=200', 'RC IP',
                '/wiki/Wikipédia:Pages_à_fusionner', 'WP:PàF',
                '/wiki/Wikipédia:Pages_à_supprimer', 'WP:PàS'
               )
 );
 
 //Liens perso hors menu déroulant
 a.innerHTML = a.innerHTML
  + '<li><a href="/wiki/Special:Newpages" title="Special:Newpages">Nouvelles pages</a></li>';
 
 //----------------------------//
 //Ne pas modifier ce qui suit //
 //----------------------------//
 for(i = 0; i<(pages.length)/2; i++)
 {
  isOpen[i] = 0;
  temp = '';
  for(j=0; j<(pages[2*i+1].length)/2; j++) temp += '<li><a href="' + pages[2*i+1][2*j] + '">' + pages[2*i+1][2*j+1] + '</a></li>';
  a.innerHTML = a.innerHTML
   + '<li>'
    + '<a style="cursor:hand;" onMouseOver="if(!isOpen[' + i + ']) tempo = setTimeout(toggleMenu, 300, ' + (i+1) + ');" '
    + 'onMouseOut="clearTimeout(tempo);" onClick="clearTimeout(tempo); toggleMenu(' + (i+1) + ');" title="' + pages[2*i] + '">'
    + pages[2*i] + '</a>'
   + '</li>'
   + '<div id="MenuToggle' + (i+1) + '" style="display:none;">' + temp + '</div>';
 }
}

/************************************************/
/* Ouvre un menu créé par la fonction ci-dessus */
/************************************************/
function toggleMenu(v)
{
 if(isOpen[v-1] == 0)
 {
  document.getElementById('MenuToggle' + v).style.display = 'block';
  isOpen[v-1] = 1;
 }
 else if(isOpen[v-1] == 1)
 {
  document.getElementById('MenuToggle' + v).style.display = 'none';
  isOpen[v-1] = 0;
 }
}
addLoadEvent(navigationBox_main);

[modifier] Ajouter un lien stop à la liste de suivi (suivi amélioré)

Fonctionne avec MediaWiki 1.6a - Opera - Ne marche qu'avec Opera - Pour le suivi non amélioré, voir chez Dake. Sous Firefox, ça ne marche pas du tout, et sous IE, des liens apparaissent dans le désordre (si vous avez des réponses, pourriez-vous me dire comment faire ;-)

/************************************************************/
/* Ajoute un bouton stop à la liste de suivi                */
/* pour suivi amélioré activé, sinon voir le script de Dake */
/* Ne marche que sur Opera, voir texte                      */
/* Auteur : Seb35                                           */
/************************************************************/
function suivi_main()
{
 if(/Spe[cz]ial(?::|%3A)Watchlist/i.test(window.location) || /edit/i.test(window.location)) return;
 var allLinks = document.getElementById('bodyContent').getElementsByTagName('a');
 for(i=0; i<allLinks.length && allLinks[i].getAttribute('title') != 'Special:Watchlist'; i++);
 i+=9;
 for(; i<allLinks.length; i+=6)
 {
  while(allLinks[i].parentNode.getAttribute('class') == 'comment' || allLinks[i].parentNode.getAttribute('class') == 'autocomment') i++;
  var titre = allLinks[i].getAttribute('title');
  if (allLinks[i+1].text != 'diff') i--;
  //C'est à cause de ce insertAdjacentHTML que ça ne marche que sur Opera, la fonction marche sur IE et Firefox, mais pas dans ce contexte, à voir
  allLinks[i+2].insertAdjacentHTML('afterEnd', '; <a href="/w/index.php?title=' + titre + '&action=unwatch" title="' + titre + '">stop</a>');
 }
}
addLoadEvent(suivi_main);

[modifier] Ajouter des liens vers Google/pages liées pour les liens rouges

Fonctionne avec MediaWiki 1.6a - Opera - Ne marche qu'avec Opera - Ce script permet d'ajouter des liens (ici vers Google et les pages liées) aux liens rouges pour permettre de trouver si l'article existe sous une forme un peu différente (Google) ou si un article est très demandé ou pas (pages liées). Ici, le script n'affiche ces liens que en prévisualisation, mais on peut les garder tout le temps. Le script ne marche pas sous Firefox, ni sous IE.

/**************************************************************/
/* Ajoute deux liens sur les liens rouges en prévisualisation */
/* Ne marche que sur Opera, voir texte                        */
/* Auteur : Seb35                                             */
/**************************************************************/
function liensRouges_main()
{
 if(!/\=submit/i.test(window.location)) return; //Retirer cette ligne pour afficher ces liens tout le temps, non uniquement en prévisualisation
 var allLinks = document.getElementById('bodyContent').getElementsByTagName('a');
 for(i=0; i<allLinks.length; i++)
 {
  if(allLinks[i].getAttribute('class') == 'new')
  {
   titre = allLinks[i].getAttribute('title');
   allLinks[i].insertAdjacentHTML('afterEnd', ' ('
    + '<a title="Rechercher \'' + titre + '\'" href="http://www.google.com/search?num=100&q=' + titre + '+site:fr.wikipedia.org">google</a>; '
    + '<a title="Pages liées à \'' + titre + '\'" href="/wiki/Special:Whatlinkshere/' + titre + '">liées</a>)');
  }
 }
}
addLoadEvent(liensRouges_main);

[modifier] Remplacement de la zone de recherche par une recherche avancée

Boîte de recherche comportant un lien vers Special:Recentchangeslinked/Portail:Mathématiques
Boîte de recherche comportant un lien vers Special:Recentchangeslinked/Portail:Mathématiques

Fonctionne avec MediaWiki 1.9a - Opera - Firefox - IE - Ce script permet de remplacer la zone de recherche (boutons Consulter et Rechercher) par une zone permettant de rechercher sur tous les wikis Wikimedia (Wikipédias, Wiktionnaires, Commons, etc) dans toutes les langues soit en allant directement à l'article (équivalent du bouton Consulter), soit de rechercher avec le moteur de recherche de MediaWiki (bouton Rechercher), soit de rechercher sur un wiki spécifique avec Google, soit sur toutes les Wikipédias avec Google, soit de rechercher un mot sur Google, soit de rechercher un texte avec Google (pour les copyrights). Il y a plusieurs raccourcis des espaces de nom (ex : c: ou cat: pour Catégorie:, u: pour Utilisateur:, article/pàs pour aller à la page de PàS correspondant à article, etc). On peut ouvrir la page soit dans un onglet externe (par défaut), soit dans le même onglet.

Si vous utilisez plutôt Firefox ou IE, tout ne marche pas forcément très bien, mais je ne connais pas très bien ces navigateurs, et peut-être changer les paramètres d'ouverture d'une fenêtre sous Firefox et IE.

[modifier] (Petit) mémo d'utilisation

  • Boutons :
    • l (lire) équivaut à Consulter
    • w (wikipédia) équivaut à Rechercher
    • g (google) recherche avec Google restreint au site wiki sélectionné ou inscrit dans la langue
    • c (copyright) recherche intégralement le texte sur tout le Web
    • r (reset) au premier appui : efface la recherche, au deuxième : remet la langue sur français
  • Syntaxe des langues :
    • La "langue" all (tout en anglais) s'utilise uniquement avec Google pour rechercher sur toutes les sites paramétrés par la variable adSearchProject, par défaut le projet courant
    • Accès direct aux Wikipédias française (par défaut), anglaise ou allemande
    • Projets de langue unique : c ou commons, f ou fondation ou foundation, i ou incubator, m ou meta, mw ou mediawiki pour MediaWiki.org, s ou species, wz ou wiktionaryz pour OmegaWiki.org (ex-WiktionaryZ.org)
    • Projets multilingues : ISO.wp pour Wikipédia, ISO.b, ISO.n, ISO.q, ISO.s, ISO.v, ISO.w ou ISO.wikt correspondants aux noms interwikis
    • Pour les différentes langues du projet en cours (paramétrées par la variable adSearchProject, par défaut le projet courant) : ISO
  • Syntaxe de recherche :
    Syntaxe générale : (Préfixe de moteur);(Préfixe simple):(Recherche)(Postfixe simple)(Postfixe final)
    • Préfixes de changement de moteur de recherche (suivis d'un point-virgule) : allo; pour AlloCiné, g; pour rechercher sur Google restreint au projet sélectioné, gg; pour Google sur le Web entier, imdb; sur IMDb, l; pour LuMriX, h; pour l'historique, e; pour éditer, pi; pour Special:Prefixindex, lp; pour l'historique des actions sur la page, lu; pour l'historique des actions d'un utilisateur
    • Postfixes finaux : - pour les pages liées, -- pour le suivi des liens
    • Préfixes simples : c: ou cat: pour Catégorie:, m: pour Modèle:, mw: pour MediaWiki:, p: pour Portail:, pj: pour Projet:, u: pour Utilisateur:, sp: pour Special:, w: pour Project: (correspond au projet courant) ; ces préfixes peuvent être précédés de d pour la page de discussion (ex : d: pour Discuter:, dc:, dm:, etc)
    • Postfixes simples : /pas ou /pàs, /pav ou /pàv, /lann, /ias ou /iàs, /c pour les contributions (marquer uniquement le nom d'utilisateur sans u:), /css pour le css perso, /js pour le js perso
  • Cases à cocher :
    • 1re : ouvre la page dans le même onglet si cochée, dans un autre si non cochée
    • 2e : si la première n'est pas cochée, permet de garder en avant-plan la page ouverte
  • Liste exhaustive des wikis : sélectionner autre langue, inscrire liste et valider
  • Liste des préfixes ISO : sélectionner autre langue, inscrire 639 (pour ISO-639) et valider
  • Article au hasard : taper #, #/Catégorie ou #/Redirect
  • Article courant : _ (un tiret bas - attention au risque d'ambiguïté avec l'espace des noms d'articles)
  • Article courant sans l'espace de nom : __ (deux tirets bas)
  • Page d'accueil d'un wiki : laisser la zone de recherche vide et cliquer sur l

[modifier] Code

Copiez dans votre monobook.js la ligne suivante (pour la Wikipédia en français) :

obtenir('AdvancedResearch');

Pour les autres sites Wikimédia, il faut utiliser :

document.write('<script type="text/javascript" src="http://fr.wikipedia.org/w/index.php?title=MediaWiki:JSScripts/AdvancedResearch&action=raw&ctype=text/javascript&dontcountme=s"></script>');

[modifier] Paramétrage

Pour paramétrer la boîte de recherche en fonction du wiki de vos préférences, il faut changer les variables suivantes après la ligne document.write(...); ou obtenir(...);

PS : je ne suis pas sûr que mes explications sont toujours claires, si vous vous posez des questions, vous pouvez aller voir les paramétrages par défaut dans le code source ou me demander.

[modifier] en fonction du wiki

  • adSearchProject='wikibooks.org'; — nom du projet principal, par défaut le projet sur lequel est installé le script
  • adSearchLang0='fi'; — langue de recherche du projet principal, doit être '' pour meta ou commons et les projets sans sous-domaine par langue, par défaut 'fr'
    • adSearchLang1='hu';adSearchLang2='ru'; — langues associées au deux autres langues rapides, par défaut 'en' et 'de'
  • adSearchLang0project='wikibooks.org'; — projet associé à la langue 0, par défaut urlproject
    • adSearchLang1project='wikibooks.org';adSearchLang2project='wikisource.org'; — projets associés aux langues 1 et 2, par défaut 'wikipedia.org' et 'wikipedia.org'
  • adSearchLang0name='fi'; — nom de la langue affiché, de préférence court (2 lettres) par manque de place
    • adSearchLang1name='hu';adSearchLang2name='ru'; — noms des langues 1 et 2 affichées

[modifier] Exemples

Exemple 1 : Wikilivres francophone

adSearchProject='wikibooks.org';

Exemple 2 : Wiktionary avec liens vers Wiktionnaire et Wikisanakirja

adSearchProject='wiktionary.org';
adSearchLang0='en'; adSearchLang0name='en';
adSearchLang1='fr'; adSearchLang1name='fr';
adSearchLang2='fi'; adSearchLang2name='fi';

Exemple 3 : Meta avec liens vers Wikipédia, Wiktionary et Species

adSearchProject='meta.wikimedia.org';
adSearchLang0='fr'; adSearchLang0name='fr'; adSearchLang0project='wikipedia.org';
adSearchLang1='en'; adSearchLang1name='en'; adSearchLang1project='wiktionary.org';
adSearchLang2=''; adSearchLang2name='sp'; adSearchLang2project='species.wikimedia.org';

[modifier] Paramètres complémentaires

  • adSearchShortcuts=...; — permet de personnaliser les raccourcis, utile surtout pour les non-francophones pour qui m: ne s'associe pas à l'espace de nom modèle:, prendre exemple sur la variable dans le code
  • adSearchAdresses=Array(); — permet de rajouter des adresses de sites associées à un raccourcis, prendre exemple sur le tableau dans le code (PS : je peux rajouter un site dans les sites par défaut si il vaut le coup)
  • adSearchButtons=Array(); — permet de choisir les boutons à afficher en indiquant le nom du raccourcis
  • adSearchDefault=...; — permet de changer le raccourcis par défaut lorsqu'on appuie sur Entrée, par défaut 'l' (comme lire)
  • adSearchSametab=true; — permet de cocher par défaut la première case à cocher (voir plus haut), par défaut false.
  • adSearchShowtab=true; — permet de cocher par défaut la deuxième case à cocher (voir plus haut), par défaut false.
  • adSearchInstantTitle=false; — permet de désactiver l'affichage automatique du titre de l'article lorsqu'on rentre _ (dans ce cas le tiret est laissé et est interprété comme le titre de la page), par défaut true