Discussion utilisateur:Dr Brains/MenuClicDroit.js

Moi 
Moi
 Bla-bla 
Bla-bla
 Contributions 
Contributions
 Travaux 
Travaux
 Outils 
Outils
 Scripts 
Scripts
 Bot 
Bot
 Administration 
Administration
 Bureaucratie 
Bureaucratie
 Divers 
Divers


Archives Archives

Récompenses Récompenses

Ajouter


MenuClicDroit est un script procurant un menu contextuel (clic droit n'importe où dans la page) rassemblant tous les liens utiles à la navigation.
Il est également possible de rajouter de nombreux liens dans des menus déroulants. L'aspect du menu est largement configurable.
La navigation pouvant s'effectuer sans avoir besoin d'autre menu, un mode plein écran (désactivable) est également disponible.

  • Depuis la version 0.5, un nouveau menu s'affiche lors de l'édition reprenant tous les éléments indispensables. Là encore, il est possible d'ajouter facilement des items.
  • Depuis la version 0.6, le menu est déplaçable à volonté sur la page.
  • Depuis la version 0.7, un nouveau menu permet de modifier les paramètres sans avoir à éditer le code. Les options choisies sont enregistrées sur cookie.
  • Depuis la version 0.8, le script fonctionne sur tous les habillages disponibles sur Wikipédia.

Fonctionnement modifier

Fonctions modifier

Un clic droit sur une page fait apparaître un petit menu contextuel ouvrant d'autres menus entièrement mobiles et facilitant la navigation.[1]

  • Le menu Navigation comprend :
    • Les liens de la barre de gauche
    • Les liens d'action (onglets)
    • Les liens personnels
    • trois listes déroulantes où des liens supplémentaires peuvent êtres ajoutés à volonté
    • une liste déroulante de liens favoris : trois liens permettent d'ajouter la page courante, de retirer un ou plusieurs favoris ou de vider complètement la liste (enregistrée sur un cookie)
  • Un menu "Options" permet de modifier à volonté l'affichage sans avoir à éditer le code :
    • Mode plein écran
    • Taille des menus
    • Couleurs des menus et du texte
    • Bordures des menus
    • Taille et style de la police
  • Durant l'édition, d'autres menus sont disponibles comprenant :
    • une copie de la barre d'outil[2]
    • Un lien permettant de modifier la taille de la zone de modification
    • Un lien permettant d'ajouter des balises
    • Des caractères spéciaux à insérer (même principe que MediaWiki:Edittools)
    • Des liens permettant de remplir le résumé de modification (dérivé du gadget ResumeDeluxe)
    • Les boutons permettant de prévisualiser et publier la modification.[3]

Les menus sont déplaçables à volonté dans la page par simple cliquer-glisser , ils sont fixes lors d'un scroll et leur position et leur état sont conservés d'une page à l'autre[4]

Hormis ceux qui proviennent des liens originaux de l'interface, la totalité des textes sont modifiables en éditant la partie personnalisable du code source.

  1. A noter que, hormis les menus déroulants personnalisables, le script ne crée pas les liens mais duplique ceux présents dans les différents menus de l'interface.
    Il est donc totalement compatible avec les gadgets ajoutant des liens, panneaux ou onglets, à la condition d'être appelé après dans la page .js.
  2. D'autres boutons peuvent êtres ajoutés
  3. Le fait d'avoir deux zones de résumé posant problème, celle-ci a été supprimée de sa position originale pour n'être présente que dans le menu contextuel.
  4. Version 0.9 bêta seulement, ne fonctionne pas encore avec Internet Explorer.

Tests modifier

Navigateurs modifier

  • Mozilla Firefox 3.5 : OK
  • Internet Explorer 8  : OK
  • Google Chrome 3.0 : OK
  • Opera 10.0 : Ne marche pas

Habillages modifier

  • Monobook : OK
  • Vector : OK
  • Modern : OK
  • Myskin : OK
  • Simple : OK
  • Chick : OK
  • Nostalgia, Standard et Cologneblue :

Le script marche mais la récupération des liens existants s'avère compliquée du fait qu'ils ne sont pas groupés et qu'ils sont mélangés.
La plupart des liens utiles sont quand même intégrés au menu.

Installation modifier

Copier/coller simplement le code source ci-dessous dans votre monobook.js, vector.js ou modern.js suivant l'habillage choisi

Personnalisation modifier

La personnalisation du script s'effectue dans le script, dans la zone définie comme « PARTIE PERSONNALISABLE ». Elle est divisée en plusieurs parties.

Paramètres modifier

Depuis la version 0.7, la plupart des paramètres d'affichage sont modifiables sans éditer le code via un menu "Options".

var UrlSite = "http://fr.wikipedia.org/wiki/"
var UrlSiteBis = "http://fr.wikipedia.org/w/index.php?title="
var UrlSiteTer = "http://fr.wikipedia.org"
 
var DoubleClicEdit = true;            // Édition par double-clic (monobook uniquement, ne marche pas avec Internet Explorer, utiliser la fonction présente dans les préférences)
var PopUp = true;                     // Activation des pop-up de confirmation
 
var Alignt = "center";                // alignement du texte (avec IE, les menus déroulants sont toujours alignés à gauche) 
 
// Décalages en X (largeur) et Y (hauteur) entre le coin haut gauche du menu principal 
// et la position de la souris lors du clic droit (désactivé sur IE)
var OffsetX = 0;                      
var OffsetY = -150;

Textes modifier

Tous les textes présents sur les divers menus sont modifiables en éditant une série de variables.

////////////////////////////////////////////////////////////////////////////////////////////////// Textes
 
////////////////////////////////////////////////////////////////////////// Menu Principal et expressions standards
 
var MenuTextCloseAll = "TOUT FERMER";
var MenuTextOpenAll = "TOUT OUVRIR";
var MenuTextClose = "FERMER";
var MenuTextClosePop = "Cliquer pour fermer le menu";
var MenuTextMove = "DÉPLACER";
var MenuTextMovePop = "Cliquer pour déplacer le menu";
var MenuTextNavig = "NAVIGATION";
var MenuTextNavigOpen = "Cliquer pour ouvrir le menu Navigation";
var MenuEditTextEdit = "ÉDITION";
var MenuTextModifOpen = "Cliquer pour ouvrir le menu Édition";
var MenuEditTextSubmit = "PUBLICATION";
var MenuTextPublierOpen = "Cliquer pour ouvrir le menu Publication";
var MenuTextOption = "OPTIONS";
var MenuTextOptionOpen = "Cliquer pour ouvrir le menu Options";
var MenuTextCloseAllPop = "Cliquer pour fermer tous les menus";
var MenuTextOpenAllPop = "Cliquer pour ouvrir tous les menus";

////////////////////////////////////////////////////////////////////////// Menu Navigation
var MenuTextLast = "Page précédente";
var MenuTextLastPop = "Revenir à la page précédente de l'historique du navigateur";
var MenuTextNextPop = "Revenir à la page suivante de l'historique du navigateur";
var MenuTextNext = "Page suivante";
var MenuTextSearchPop = "Rechercher dans Wikipédia";
var MenuTextButton1 = "Lire";
var MenuTextButton1Pop  = "Aller vers une page portant exactement ce nom si elle existe";
var MenuTextButton2 = "Consulter";
var MenuTextButton2Pop = "Rechercher les pages comportant ce texte";
var MenuTextspecial = "pages spéciales";
var MenuTextActions = "ACTIONS";
var MenuTextActionBis = "autres actions";
var MenuTextPerso = "LIENS PERSONNELS";
var MenuTextAdd = "Ajouter";
var MenuTextAddPop = "Cliquer pour ajouter la page courante aux favoris";
var MenuTextSupprAll = "RAZ";
var MenuTextSupprAllPop = "Cliquer pour vider les favoris";
var MenuTextSuppr1 = "Supprimer";        
var MenuTextSuppr1Pop = "Cliquer pour supprimer une page précise des favoris";
var MenuTextFav = "favoris";
var MenuTextLang = "autres langues";
var MenuTextProjects = "autres projets";
var MenuTextNavigBis = "autres liens utiles";

////////////////////////////////////////////////////////////////////////// Menu Favoris
 
var Suppr1Fav1 = "La liste de favoris contient les pages suivantes :";
var Suppr1Fav2 = "Quelle page souhaitez-vous supprimer de la liste ?";
var Suppr1Fav3 = "(indiquer seulement le numéro)";
var Suppr1FavNone = "Vous n\'avez aucun favoris.";
var Suppr1FavThis = "Voulez-vous vraiment supprimer des favoris la page : ";
var SupprAllFav = "Voulez-vous vraiment effacer la liste de favoris ?";
 
////////////////////////////////////////////////////////////////////////// Menu Édition
 

var MenuEditTextTaille = "Taille de la zone d\'édition";
var MenuEditTextTailleTer = "Cliquer pour modifier la taille de la zone d\'édition";
var MenuEditTextTailleBis = "Nombre de lignes pour la zone d\édition ?";
var MenuEditTextBalise = "Insérer Balises"
var MenuEditTextBaliseTer = "Cliquer pour insérer une balise quelconque";
var MenuEditTextBaliseBis = "Nom de la balise ? \nExemple : ";                 
 
////////////////////////////////////////////////////////////////////////// Menu Publication
 
var MenuEditTextSubmitBis = "Ajouter dans la boîte de résumé";
 
////////////////////////////////////////////////////////////////////////// Menu Options
 
var MenuTextOptionReload = "Attention, cette action va entraîner le rechargement de la page.\nLes modifications apportées ne seront pas enregistrées.\nContinuer ?";

var MenuTextOptionAffichage = "Affichage : ";
var MenuTextOptionPleinEcran = "Plein Écran";
var MenuTextOptionPleinEcranPop = "Cliquer pour afficher la page en plein écran";
var MenuTextOptionNoPleinEcran = "Normal";
var MenuTextOptionNoPleinEcranPop = "Cliquer pour revenir à l\'affichage normal";
var MenuTextOptionbgColor = "Fond cadres : ";
var MenuTextOptionbgColorPop = "Cliquer pour définir la couleur de fond des cadres";
var bgColorDefine = "Définir la couleur de fond des cadres (sans le signe #).\nCouleur actuelle : ";
var MenuTextOptionbdColor = "Bordures : ";
var MenuTextOptionbdColorPop = "Cliquer pour définir la couleur des bordures";
var bdColorDefine = "Définir la couleur des bordures (sans le signe #).\nCouleur actuelle : ";
var MenuTextOptionTColor = "Fond titres : ";
var MenuTextOptionTColorPop = "Cliquer pour définir la couleur de fond des titres";
var TColorDefine = "Définir la couleur de fond des titres (sans le signe #).\nCouleur actuelle : ";
var MenuTextOptionTtColor = "Texte titres : ";
var MenuTextOptionTtColorPop = "Cliquer pour définir la couleur du texte des titres";
var TtColorDefine = "Définir la couleur du texte des titres (sans le signe #).\nCouleur actuelle : ";
var MenuTextOptionlienColor = "Texte : ";
var MenuTextOptionlienColorPop = "Cliquer pour définir la couleur du texte";
var lienColorDefine = "Définir la couleur du texte (sans le signe #).\nCouleur actuelle : ";
var MenuTextOptionselColor = "Survol : ";
var MenuTextOptionselColorPop = "Cliquer pour définir la couleur des éléments survolés";
var selColorDefine = "Définir la couleur des éléments survolés (sans le signe #).\nCouleur actuelle : ";
var MenuTextOptionMDColor = "Menus déroulants : ";
var MenuTextOptionMDColorPop = "Cliquer pour définir la couleur des menus déroulants";
var MDColorDefine = "Définir la couleur des lignes horizontales (sans le signe #).\nCouleur actuelle : ";
var MenuTextOptionLineColor = "Lignes : ";
var MenuTextOptionLineColorPop = "Cliquer pour définir la couleur des lignes horizontales";
var LineColorDefine = "Définir la couleur des lignes horizontales (sans le signe #).\nCouleur actuelle : ";
var MenuTextOptionBaseTaille = "Largeur du menu principal : ";
var MenuTextOptionBaseTaillePop = "Cliquer pour définir la largeur du menu principal";
var BaseTailleDefine = "Définir la taille du menu principal (en pixels).\nTaille actuelle : "; 
var MenuTextOptionbgTaille = "Largeur du menu Navigation : ";
var MenuTextOptionbgTaillePop = "Cliquer pour définir la largeur du menu Navigation";
var bgTailleDefine = "Définir la taille du menu Navigation (en pixels).\nTaille actuelle : ";
var MenuTextOptionListeTaille = "Largeur du menu Favoris : ";
var MenuTextOptionListeTaillePop = "Cliquer pour définir la largeur du menu Favoris";
var ListeTailleDefine = "Définir la taille du menu Favoris (en pixels).\nTaille actuelle : ";
var MenuTextOptionModifTaille = "Largeur du menu d\'Édition : ";
var MenuTextOptionModifTaillePop = "Cliquer pour définir la largeur du menu d\'édition";
var ModifTailleDefine = "Définir la taille du menu d\'Édition (en pixels).\nTaille actuelle : ";
var MenuTextOptionOptionsTaille = "Largeur du menu Options : ";
var MenuTextOptionOptionsTaillePop = "Cliquer pour définir la largeur du menu d\'options";
var OptionsTailleDefine = "Définir la taille du menu d\'Options (en pixels).\nTaille actuelle : ";
var MenuTextOptionTitreTaille = "Taille des titres : ";
var MenuTextOptionTitreTaillePop = "Cliquer pour définir la taille des titres";
var TitreTailleDefine = "Définir la taille du texte des titres (en pixels).\nTaille actuelle : ";
var MenuTextOptionfontTaille = "Taille du texte : ";
var MenuTextOptionfontTaillePop = "Cliquer pour définir la taille du texte";
var fontTailleDefine = "Définir la taille du texte (en pixels).\nTaille actuelle : ";
var MenuTextOptionbdTaille = "Taille des bordures : ";
var MenuTextOptionbdTaillePop = "Cliquer pour définir la taille des bordures";
var bdTailleDefine = "Définir la taille des bordures (en pixels).\nTaille actuelle : ";
var MenuTextOptionStylebd = "Style des bordures : ";
var MenuTextOptionStylebdPop = "Cliquer pour définir le style des bordures";
var StylebdDefine = "Définir le style des bordures.\nStyle actuel : ";
var MenuTextOptionStylepolice = "Police : ";
var MenuTextOptionStylepolicePop = "Cliquer pour définir la police";
var StylepoliceDefine = "Définir la police.\nPolice actuelle : ";
var MenuTextOptionOpacity = "Opacité : ";
var MenuTextOptionOpacityPop = "Cliquer pour définir l\'opacité";
var OpacityDefine = "Définir l\'opacité des menus.\nOpacité actuelle : ";

var MenuTextOptionFix = "Fixer les menus";
var MenuTextOptionFixPop = "Cliquer pour enregistrer la position actuelle des menus";
var MenuTextPositionFix = "Réordonner les menus";
var MenuTextPositionFixPop = "Cliquer pour revenir à la position initiale des menus";
var MenuTextOptionRaz = "Rétablir les valeurs par défaut";
var MenuTextOptionRazPop = "Cliquer pour rétablir les valeurs par défaut";

Ajouter des liens dans les menus modifier

Variables utiles pour les liens modifier

Ces variables sont utilisables comme n'importe quel mot magique wiki afin de créer tous les liens possibles et imaginables. Elles peuvent être réutilisées n'importe où dans le script.

  • BASEPAGENAME  : Page courante sans l'espace de noms
  • FULLPAGENAME  : Page courante
  • TALKPAGENAME  : Page de discussion associée
  • SUBJECTPAGENAME : Page principale associée
  • NAMESPACENAME  : Espace de noms (en anglais)
  • NAMESPACENUMBER : N° Espace de noms
  • CURRENTUSER  : Utilisateur courant (votre pseudo. Ne pas confondre avec UTILISATEUR ci-dessous)
  • SYSOP  : Teste si l'utilisateur est sysop ( présence de l'onglet "supprimer" ou "restaurer" ). Si c'est le cas, SYSOP est vrai
  • DISCUSSION  : Teste si la page est une page de discussion ( présence de l'onglet "nouvelle section" ). Si c'est le cas, DISCUSSION est vrai
  • UTILISATEUR  : Teste si la page courante est une page utilisateur et renvoie son pseudonyme. Si ce n'est pas le cas, UTILISATEUR est faux

Syntaxe modifier

Trois menus (éléments HTML <select>) sont totalement configurables.

Pour ajouter une ligne, créer trois instances supplémentaires : menuMACHINtexte[x], menuMACHINlien[x] et menuMACHINtarget[x] Il ne doit pas y avoir de "trou" dans la liste (qui commence par 0).

Exemple de menu :

menuTRUCtexte[X] = "Mon lien"                       // Texte  
menuTRUClien[X] = UrlSite + "Spécial:MyPage"        // Page cible (on peut utiliser UrlSite, UrlSiteBis une des variables ci-dessus ou bien taper l'adresse complète)
menuTRUCtarget[X] = "_self"                         // Ouverture : _self = même fenêtre (défaut), _blank = nouvelle fenêtre  

menuTRUCtexte[X]= "Sous-titre"                                                                                            
menuTRUClien[X]= ""                                 // Si pas de lien, insertion d'un sous-titre                                           
menuTRUCtarget[X]= ""                                                                                             

menuTRUCtexte[X]= "";
menuTRUClien[X]= "Vide";                            // Si lien mais pas de texte, l'instance n'est pas prise en compte
menuTRUCtarget[X]="";

Voir aussi dans le code de la page le menu Pages Spéciales qui est déjà bien fourni et peut servir d'exemple.

Ajouter des boutons modifier

Il est possible d'ajouter des boutons à la manière des gadgets DeluxeBar ou AjoutBoutonSource. Il est à noter que ceux-ci sont compatibles avec ce script.

Pour ajouter une icône à la barre d'outils, créer cinq instances supplémentaires
Il ne doit pas y avoir de "trou" dans la liste (qui commence par 0).

Exemple :

menutoolbardébut[X] = "";            // Code inséré avant la sélection.
menutoolbarfin[X] = "";              // Code inséré après la sélection
menutoolbarcomm[X] = "";             // Information au survol de la souris
menutoolbarimage[X] = "";            // URL de l'image
menutoolbarimageId[X] = "";          // Id du bouton (attention, pas d'espace, de tiret ou autres caractères spéciaux)
menutoolbarimagePosition[X] = "";    // Début ou Fin : Position de l'image par rapport à celles qui y sont déjà ( Début par défaut)


Ajouter des caractères à insérer modifier

Pour ajouter un symbole, créer deux instances supplémentaires
Il ne doit pas y avoir de "trou" dans la liste (qui commence par 0).
Attention, les symboles HTML ou assimilés (div, span, nowiki, includeonly, noinclude, etc...) ne sont pas permis.
Il est préférable d'en faire des boutons (voir paragraphe précédent) ou d'utiliser le lien "Insérer une Balise".

Exemple :

menutoolbardébut[X] = "{{subst:";  // Code inséré avant la sélection.
menutoolbarfin[X] = "}}";          // Code inséré après la sélection

Si les deux variables sont vides, une ligne horizontale est insérée.

Ajouter des résumés de modification modifier

Pour ajouter un résumé, créer simplement une instance supplémentaire.
Il ne doit pas y avoir de "trou" dans la liste (qui commence par 0).
A priori, tous les symboles sont autorisés.

Exemple :

menuresumetexte[X] = "Suppression vandalisme";

CODE SOURCE modifier

Version en développement modifier

Version stable modifier

Anciennes versions modifier

Retour à la page de l’utilisateur « Dr Brains/MenuClicDroit.js ».