Projet:JavaScript

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

Raccourci [+]
WP:JS

[modifier] Projet JavaScript

Ce projet essaie de centraliser les fonctions JavaScript pour éviter la dispersion du code.

[modifier] Obtenir une fonction

Pour bénéficier d'une des fonctionnalités présentées ci-dessous, vous devez impérativement posséder un compte sur Wikipédia.

Lorsque connecté à votre compte :

  • si le script est un gadget, allez dans Special:Preferences, puis dans l'onglet Gadgets et sélectionnez-le
  • sinon recopiez sans erreur la ligne de code correspondant à la fonction sur cette page. Cette ligne est de la forme obtenir("mafonction");
  • à partir d'un autre wiki, allez dans votre page User:VOTRE NOM/monobook.js et inscrivez :
    document.write('<'+'script type="text/javascript" src="http://fr.wikipedia.org/w/index.php?title=MediaWiki:Gadget-MAFONCTION.js&action=raw&ctype=text/javascript"></script'+'>');

En forçant votre navigateur à purger son cache, vous verrez la fonction apparaître.

[modifier] Personnaliser une fonction

Certaines fonctions sont paramétrables. La colonne de gauche du tableau des fonctions pointe vers la page sur laquelle la fonction est codée. Vous pouvez visualiser le code source (par l'onglet modifier). Si vous trouvez une section délimitée par des balises comme /////ZONE PERSONNALISABLE/////, vous pouvez recopier et adapter cette partie dans votre page monobook en personnalisant les variables dans une fonction que vous ajoutez aux fonctions appelées après chargement de la page (fonction addOnloadHook). Plus de détail ici.

Si vous avez des doutes quant à votre personnalisation, vous pouvez demander un conseil en page de discussion.

[modifier] Demander une fonction, rapporter un bug

Allez en page de discussion pour toute anomalie ou fonction manquante.

[modifier] Développeurs

Pour rajouter une nouvelle fonction, veillez à respecter certaines règles présentées en bas de page.

Sommaire


[modifier] Toutes les fonctions disponibles

La liste complète de ces pages est accessible via Special:Prefixindex/MediaWiki:Gadget-.

Certaines notices d'utilisation sont disponibles sur Projet:JavaScript/Notices.

[modifier] Fonctions pour tout utilisateur

Fonction Détails Installation Autres
Bistro & Oracle Ajout de liens vers le Bistro et l'Oracle dans le panneau de navigation obtenir('BistroOracle'); Illustration
Bistro du Jour Ajout d'un lien vers le Bistro du jour dans le panneau de navigation obtenir('BistroDuJour'); Illustration
Résumé Deluxe Ajout de boutons prédéfinis pour la boîte de résumé Préférences > Gadgets > ResumeDeluxe Illustration
Suivi Deluxe Cesser de suivre une page par un simple clic depuis la liste de suivi Préférences > Gadgets > OptimizedSuivi Illustration
Onglet de purge Ajout d'un onglet pour demander aux serveurs de purger leur cache Préférences > Gadgets > OngletPurge Illustration
Éditeur d'en-tête Ajout d'un onglet pour modifier l'introduction d'un article (section zéro) Préférences > Gadgets > EditZeroth Illustration
Catégories à gauche Ajout d'une boîte de navigation listant les catégories d'un article obtenir('CatsaGauche'); Illustration
HotCats Ajout en bas de l'article de liens pour rapidement ajouter / modifier / supprimer une catégorie Préférences > Gadgets > HotCats Illustration
Onglet Google Ajout d'un onglet pour des recherches via Google Préférences > Gadgets > OngletGoogle
Barre d'édition Deluxe Ajout de boutons supplémentaires dans la barre d'outils d'édition Préférences > Gadgets > DeluxeBar
Revert Ajout de liens pour annuler les modifications et laisser un message de manière automatisée Préférences > Gadgets > RevertDiff Illustration
Détection de plagiats Ajout d'un onglet pour trouver les sites web ressemblants via CopyScape obtenir('CopyScape');
Fusion de contributions Ajout d'une comparaison des heures de contributions de plusieurs utilisateurs obtenir('FusionContribs');
Recherche Google Ajout d'un bouton pour utiliser la recherche du panneau de navigation via Google obtenir('GoogleSearch'); Illustration
Recherche avancée Remplace la boîte de recherche par une plus complète avec des raccourcis obtenir('AdvancedResearch'); Notice - Illustration
Supprimer les infobulles Enlève les info-bulles des onglets. Préférences > Gadgets > SupprimerInfoBulles
URL avec ancres Obtenir les URL vers une section d'un article. (NB. ne marche pas partout). obtenir('AncreTitres'); Illustration
Prévisualisation rapide Prévisualisation rapide en AJAX. Préférences > Gadgets > QPreview Notice - Illustration
Dernière contribution Affiche juste dessous le titre si une contribution récente a eu lieu (éviter les conflits de modification). Préférences > Gadgets > LastContrib Notice - Illustration
Liens rouges Affiche deux liens sur les liens rouges. Exemple : Accueil(gg|pl) obtenir('LiensRouges');
Évaluation d'articles Ajoute des boutons ouvrant un popup pour cocher le degré d'avancement et l'importance de l'article. obtenir('EvalProject'); Illustration
Identifiant de blocage Retrouver rapidement les détails d'un blocage à partir de l'identifiant numérique obtenir('BlockLogById'); Illustration
Diff numérique dans l'historique Affiche le nombre de caractères ajoutés/supprimés dans l'historique, à la place de la taille de la version obtenir('HistoryNumDiff'); Illustration
DeluxeHistory Affiche les historiques en couleur en fonction du statut des contributeurs Préférences > Gadgets > DeluxeHistory Notice - Illustration
WikEd Éditeur intégré au navigateur ajoutant des fonctions de traitement de texte lors de l'édition Préférences > Gadgets > WikEd Notice - Illustration
Navigation popups Affiche une fenêtre popup (« surgissante ») quand la souris passe sur un lien, permettant de nombreuses fonctions Préférences > Gadgets > Popups Notice - Illustration

[modifier] Fonctions destinées à l'administration

Fonction Détails Installation Autres
Blocage Deluxe Meilleurs boutons de blocage obtenir('BlocageDeluxe'); Illustration
Suppression Deluxe Motifs de suppression prédéfinis Préférences > Gadgets > SuppressionDeluxe Notice - Illustration
Restauration Deluxe Cocher rapidement les versions de l'historique à restaurer obtenir('RestaurationDeluxe'); Illustration
Pages courtes optimisées Rajout de quelques liens utiles dans Special:Shortpages Préférences > Gadgets > OptimizedShort
Liens de Navigation Rajout de liens utiles aux administrateurs dans le panneau de navigation Préférences > Gadgets > NavigAdmin Illustration
Protection à la création Permet aux admins d'empêcher automatiquement la recréation d'un article lors de la suppression. Plus utile depuis la création de nouvelles fonctionnalités dans MediaWiki. Préférences > Gadgets > ProtectCreation

[modifier] Personnalisation d'une fonction

La personnalisation d'une fonction se fait dans une autre fonction de votre script personnel. Cette fonction doit être ajoutée aux fonctions appelées après chargement de la page, en appelant la fonction addOnloadHook. Les paramètres modifiables peuvent être présents dans les notices d'utilisation.

Exemple :

obtenir('GoogleSearch');
 
function personnaliserGoogleSearch()
{
    googlesearchPrefix = "fr";
}
 
addOnloadHook( personnaliserGoogleSearch );

On peut créer une fonction de personnalisation par script utilisé, ou créer une seule fonction de personnalisation pour tous les scripts utilisés.

[modifier] Pour les développeurs

[modifier] Intégration

  • Les fonctions sont dans des pages qui commencent par MediaWiki:Gadget- et se terminent par .js. Il faut l'extension .js (pour être compatible avec l'extension Gadgets), la liste complète de ces pages est donc accessible via Special:Prefixindex/MediaWiki:Gadget- (et choisissez celles qui se terminent par .js). Si vous n'êtes pas administrateur, vous pouvez demander l'insertion ou la modification d'un script sur WP:DIMS.
  • Variables permettant de personnaliser la fonction :
    • Elles sont déclarées hors de tout contexte (voir schéma ci-dessous).
    • Elles ont un nom discriminatoire et préfixé par le nom de la fonction principale, ceci afin d'éviter les mélanges avec d'autres fonctions.

[modifier] Présentation préférentielle du code

  • Les tabulations valent 8 caractères et l'indentation est propre.
  • Les points-virgule en fin d'instructions devraient être mis de préférence.
  • La balise source permet une meilleure lisibilité, cf. exemple
  • Penser à catégoriser la page.
  • Schéma type :
/**
 * Toto
 *
 * La fonction Toto ne sert à rien du tout
 *
 * Auteurs :
 * Date de dernière révision :
 */

// Documentation de la fonction Toto :
// Il n'y en a pas

//////////////////////ZONE PERSONNALISABLE//////////////////////
var totoVariablePersonnalisable = 42;
/////////////////FIN DE LA ZONE PERSONNALISABLE/////////////////

function Toto() {
        var interne = false;
        // cette fonction ne sert à rien
        totoVariablePersonnalisable ++;
        interne = !interne;
}
addLoadEvent(Toto);

[modifier] Zone personnalisable

La zone personnalisable est signalée entre les deux lignes de commentaires suivantes :

//////////////////////ZONE PERSONNALISABLE//////////////////////

et

/////////////////FIN DE LA ZONE PERSONNALISABLE/////////////////

Cette zone ne doit contenir que des variables.

[modifier] Conseil

Pour plus de lisibilité, pour appliquer plusieurs méthodes à un même objet, on utilisera l'instruction "with (" voir un exemple dans Blocage Deluxe.

Autres langues