Discussion utilisateur:Dr Brains/GlobalManager.js/Old.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


Aperçu de la page .js

GlobalManager est un script qui permet de gérer une liste de codes Javascript à la manière des gadgets. Idée et code original

Une fois installé, les pages de skin personnelles .js accueillent un menu permettant d'ajouter ou retirer un code à l'aide de simples cases à cocher.

La liste des scripts proposés est totalement configurable en suivant les indications ci-dessous.

Utilisation modifier

Fonctionnement modifier

GlobalManager ajoute deux liens au-dessus de chaque page [1] :

  • Un lien vers la page du manager (pour la configuration),
  • Un lien vers la page personnelle .js,
  1. L'endroit où les liens s'affichent dépend de l'habillage actif :
    • Monobook, Moderne, Vector, Chick, Mon Interface, Simple : dans les liens personnels.
    • Bleu de Cologne, Nostalgia, Standard : au sommet de la page.


Ainsi, depuis n'importe quelle page, par le biais de simples cases à cocher (ou décocher), GlobalManager permet d'insérer un script (via un tag <script> ) dans sa page personnelle .js

Remarques modifier

Ce script est facilement exportable et devrait marcher sur tout site utilisant Mediawiki.

Une configuration plus poussée est à effectuer si les skins du site diffèrent de ceux de Wikipédia (voir dans le code les parties personnalisables).

Habillage modifier

GlobalManager permet de gérer des scripts ou des feuilles de styles sur tous les habillages disponibles et fonctionne avec les habillages :

  • "Bleu de Cologne"
  • "Moderne"
  • "Monobook"
  • "Nostalgie"
  • "Poussin"
  • "Standard"
  • "Vector"
  • "Simple"
  • "Mon Interface"

Navigateur modifier

  • Mozilla Firefox 3.5 : OK
  • Google Chrome 3 : OK
  • Opera 10 : OK
  • Internet Explorer 8 : OK.

Installation modifier

La méthode ci-dessous explique l'installation pour Monobook. C'est exactement la même méthode pour les autres skins.

Pour installer ce gestionnaire :

1. Copiez ce code dans Utilisateur:<votre nom>/GlobalManager.js,[1]
2. Si nécessaire, configurez les paramètres comme expliqué ci-dessous.
3. Copiez le code suivant dans votre page Utilisateur:<VotreNom>/monobook.js en remplaçant MY_NAME par votre pseudo (x2) :

//DebutSectionAuto : Cette section est produite par le script [[Utilisateur:MY_NAME/GlobalManager.js]]
//ConfigSectionAuto

document.write('<script type="text/javascript" src="http://fr.wikipedia.org/w' + 
               '/index.php?title=Utilisateur:MY_NAME/GlobalManager.js&action=raw&ctype=text/javascript"></script>');

//FinSectionAuto

4. Rechargez le cache de votre navigateur et le script devrait s'activer,
5. Configurer les définitions comme expliqué ci-dessous.

  1. Vous pouvez aussi copier le code de la page associée, vous vous retrouverez avec les scripts que j'utilise (ou que je teste) déjà installés. Lisez leur documentation ou la page Utilisateur:Dr Brains/Scripts pour savoir ce qu'ils font.

Remarques modifier

Une fois installé pour un skin, il est très facile d'installer ce gestionnaire pour les autres :
En effet, il s'active et édite la page sur laquelle se trouve l'utilisateur, même si ce n'est pas la page liée au skin actif.
Il suffit donc de se rendre sur la page modern.js ou vector.css pour y installer les gadgets voulus et le script gestionnaire par la même occasion.

Il est à noter cependant que le script ne gère pas bien les pages inexistantes, c'est à dire que si vous allez sur la page Utilisateur:<votre nom>/standard.js alors qu'elle n'a pas encore été créée, un message d'erreur s'affiche : « Il y a eu un problème avec la requête. ».
Dans ce cas, créez simplement la page, ajoutez « // » (.js) ou « /**/ »(.css), publiez et rechargez le cache de votre navigateur.

Le nom du site courant et celui du site où sont stockés les codes sont gérés par deux variables différentes, ce qui permet de bénéficier de ces codes sur différents sites. Il est par exemple possible d'avoir GlobalManager et les différentes pages de code ici sur fr, et d'en bénéficier sur un autre site, simplement en copiant le code ci-dessus dans son monobook sur le site extérieur. Cependant, il faut noter que l'environnement (javascript en particulier) peut être différent et les codes qui marchent ici peuvent ne pas fonctionner ailleurs (voir par exemple en:User:Dr Brains/Utilities.js, créé pour assurer la compatibilité des codes fr avec en.wikipedia ou d'autres).

Configuration modifier

Il y a plusieurs parties personnalisables dans le script. Dans l'ordre d'apparition dans le code :

  1. La définition des codes Javascript
  2. La définition des skins supportés sur le site
  3. La définition des paramètres personnels
  4. La définition des textes

Hormis les skins supportés, ces personnalisations se font à l'aide de fonction au nom prédéterminé :

  • GlobalManager_LangCustom() pour les textes
  • GlobalManager_UserCustom() pour les paramètres personnels (
  • GlobalManager_GetUserScripts() pour déterminer la liste des codes

Ces fonctions sont à inscrire directement dans la page monobook.js (ou vector.js, ou autre suivant l'habillage sélectionné dans les préférences.

1 : Définition des script modifier

Chaque script ou sous-titre de section est défini par quatre variables :

  • GlobalManager_ScriptType, qui définit le type de définition, 1 si il s'agit d'un script, 2 à 6 si il s'agit d'un titre de section.
  • GlobalManager_ScriptText, qui définit le texte d'explication du script ou le contenu du titre de section (en HTML).
  • GlobalManager_ScriptId, qui défini l'ID (identifiant) du script. Celui-ci doit être différent pour chaque script, idéalement, il vaut mieux utiliser le nom de la page. Si il s'agit d'un titre de section, ce paramètre ne sert à rien mais doit tout de même être défini.
  • GlobalManager_ScriptPage, qui définit le titre de la page où est stocké le script, les éventuels espaces remplacés par des underscores. Si il s'agit d'un titre de section, ce paramètre ne sert à rien mais doit tout de même être défini.

IMPORTANT : l'ordre de définition des scripts est inverse de l'ordre d'insertion dans la page .js : le dernier script défini sera le premier inséré.

Ces définitions doivent prendre place à l'intérieur d'un fonction nommée GlobalManager_GetUserScripts(), sans quoi ce sont les scripts définis dans la fonction GlobalManager_GetDefaultScripts() qui sont pris en compte.

Exemples modifier

  • Définition d'un script ou d'un titre de section :
function GlobalManager_GetUserScripts(){ // Début de la fonction

/* Définition d'un titre de section */
    GlobalManager_ScriptType.push(4);
    GlobalManager_ScriptText.push('Scripts opérationnels');
    GlobalManager_ScriptId.push('');
    GlobalManager_ScriptPage.push('');

/* Définition d'un script */
    GlobalManager_ScriptType.push(1);
    GlobalManager_ScriptText.push('Modifications récentes en temps réel.');
    GlobalManager_ScriptId.push('LiveRC');
    GlobalManager_ScriptPage.push('Utilisateur:EDUCA33E/LiveRC.js');

} // Fin de la fonction

2 : Définition des skins modifier

Les habillages disponibles sont listés dans une variable de type Array. Ils y sont ajoutés via la méthode .push(). Pour modifier cette liste, il suffit donc d'ajouter ou retirer un élément de la liste.

Définition actuelle pour Wikipédia :

// Liste des skins disponibles
var GlobalManager_RunningSkins = new Array(); 
GlobalManager_RunningSkins.push('monobook');
GlobalManager_RunningSkins.push('chick');
GlobalManager_RunningSkins.push('simple');
GlobalManager_RunningSkins.push('myskin');
GlobalManager_RunningSkins.push('modern');
GlobalManager_RunningSkins.push('vector');
GlobalManager_RunningSkins.push('cologneblue');
GlobalManager_RunningSkins.push('nostalgia');
GlobalManager_RunningSkins.push('standard');

2 : Définition des paramètres modifier

Les paramètres personnels correspondent à :

  • GlobalManager_LangFrom : la langue du wiki où se trouvent les scripts et le GlobalManager
  • GlobalManager_URLFrom et GlobalManager_URLBisFrom : le début des addresses du wiki où se trouvent les scripts et le GlobalManager
  • GlobalManager_HomePage : Le titre de la page où se trouve le GlobalManager
  • GlobalManager_Resume : Le résumé de modification, utilisé lors de la mise à jour.
  • GlobalManager_CommStart, GlobalManager_CommPlus, GlobalManager_CommConfig, GlobalManager_CommEnd,  : Les commentaires insérés dans la page mise à jour :
    • GlobalManager_CommStart correspond au début de la section mise à jour par le GlobalManager
    • GlobalManager_CommEnd correspond au début de la section mise à jour par le GlobalManager
    • GlobalManager_CommConfig indique la ligne de configuration, où sont listés les ID des scripts déjà installés
    • GlobalManager_CommPlus est un commentaire supplémentaire ajouté après le commentaire du début.

Paramètres pour Dr Brains (d · c · b) :

// Langue du wiki d'origine
    GlobalManager_LangFrom = 'fr';
 
// Adresses du wiki d'origine
    GlobalManager_URLFrom = 'http://fr.wikipedia.org/wiki/';
    GlobalManager_URLBisFrom = 'http://fr.wikipedia.org/w/index.php?title=';
 
// Page du GlobalManager
    GlobalManager_HomePage = 'User:Dr_Brains/GlobalManager.js';
 
// Résumé de modification
    GlobalManager_Resume = 'Mise à jour avec [[:'+GlobalManager_LangFrom+':'+GlobalManager_HomePage+']]';
 
// Commentaires d'édition
    GlobalManager_CommStart = '//DebutSectionAuto'
    GlobalManager_CommPlus = ' : Cette section est produite par le script [[:'+GlobalManager_LangFrom+':'+GlobalManager_HomePage+']]';
    GlobalManager_CommConfig = '//ConfigSectionAuto';
    GlobalManager_CommEnd = '//FinSectionAuto';

Ces paramètres peuvent être modifié via une fonction nommée GlobalManager_UserCustom().

Exemple modifier

function GlobalManager_UserCustom(){ // Début de la fonction

/* Langue du wiki d'origine */
    GlobalManager_LangFrom = 'en';
 
/* Adresses du wiki d'origine */
    GlobalManager_URLFrom = 'http://en.wikipedia.org/wiki/';
    GlobalManager_URLBisFrom = 'http://en.wikipedia.org/w/index.php?title=';
 
/* Page du GlobalManager */
    GlobalManager_HomePage = 'User:VOTRE_NOM_ICI/GlobalManager.js';
 
/* Résumé de modification */
    GlobalManager_Resume = 'Mise à jour avec [[:'+GlobalManager_LangFrom+':'+GlobalManager_HomePage+']]';
 
/* Commentaires d'édition */
    GlobalManager_CommStart = '//DebutSectionAuto'
    GlobalManager_CommPlus = ' : Cette section est produite automatiquement par un script';
    GlobalManager_CommConfig = '//ConfigSectionAuto';
    GlobalManager_CommEnd = '//FinSectionAuto';

} // Fin de la fonction

Exemple d'installation configurée modifier

Installation configurée pour l'utilisateur "JohnDoe", sur en.wikipedia, dans la page en:User:JohnDoe/GlobalManager.js et ayant tous ses scripts sur en.wikipedia.

function GlobalManager_LangCustom(){ // Début de la fonction textes
    GlobalManager_Text_SelectScripts = "Select scripts to be added on page : ";
    GlobalManager_Text_Help = "Help";
    GlobalManager_Text_InputOK = "Create script";
    GlobalManager_Text_Hide = "[Hide]";
    GlobalManager_Text_Show = "[Show]";
    GlobalManager_Text_Import = "Importing scripts : ";
    GlobalManager_Text_Edit = "Editing page : ";
    GlobalManager_Text_Save = "Saving page : ";
    GlobalManager_Text_OK = "OK";

} // Fin de la fonction textes

function GlobalManager_UserCustom(){ // Début de la fonction paramètres personnels

/* Langue du wiki d'origine */
    GlobalManager_LangFrom = 'en';
 
/* Adresses du wiki d'origine */
    GlobalManager_URLFrom = 'http://en.wikipedia.org/wiki/';
    GlobalManager_URLBisFrom = 'http://en.wikipedia.org/w/index.php?title=';
 
/* Page du GlobalManager */
    GlobalManager_HomePage = 'User:JohnDoe/GlobalManager.js';
 
/* Résumé de modification */
    GlobalManager_Resume = 'Updated with [[:'+GlobalManager_LangFrom+':'+GlobalManager_HomePage+']]';
 
/* Commentaires d'édition */
    GlobalManager_CommStart = '//StartAuto'
    GlobalManager_CommPlus = ' : This section is updated automatically with [[:'+GlobalManager_LangFrom+':'+GlobalManager_HomePage+']]';
    GlobalManager_CommConfig = '//ConfigAuto';
    GlobalManager_CommEnd = '//EndAuto';

} // Fin de la fonction paramètres personnels

function GlobalManager_GetUserScripts(){ // Début de la fonction scripts personnels

    GlobalManager_ScriptType.push(4);
    GlobalManager_ScriptText.push('Working Scripts');
    GlobalManager_ScriptId.push('');
    GlobalManager_ScriptPage.push('');

    GlobalManager_ScriptType.push(1);
    GlobalManager_ScriptText.push('Real-time recent changes.');
    GlobalManager_ScriptId.push('LiveRC');
    GlobalManager_ScriptPage.push('User:EDUCA33E/LiveRC.js');

    GlobalManager_ScriptType.push(4);
    GlobalManager_ScriptText.push('Test scripts');
    GlobalManager_ScriptId.push('');
    GlobalManager_ScriptPage.push('');

    GlobalManager_ScriptType.push(1);
    GlobalManager_ScriptText.push('Scripts on test');
    GlobalManager_ScriptId.push('MySandbox');
    GlobalManager_ScriptPage.push('User:JohnDoe/MySandbox.js');

} // Fin de la fonction scripts personnels


document.write('<script type="text/javascript" src="http://fr.wikipedia.org/w' + 
               '/index.php?title=User:Dr_Brains/GlobalManager.js&action=raw&ctype=text/javascript"></script>');

Le monobook.js ou le vector.js de l'utilisateur JohnDoe (sur tous les wiki qu'il souhaite) étant complété avec le code suivant (les scripts ou codes ajoutés avant ou après les commentaires ne seront pas modifiés lors de la mise à jour) :

//StartAuto : This section is updated automatically with [[en:User:JohnDoe/GlobalManager.js]]
//ConfigAuto

document.write('<script type="text/javascript" src="http://en.wikipedia.org/w' + 
               '/index.php?title=User:JohnDoe/GlobalManager.js&action=raw&ctype=text/javascript"></script>');

//EndAuto

Remarque : l'environnement javascript des différents wiki, la présence ou non de fonctions nécessaires à leur fonctionnement peut affecter leur bon fonctionnement, voir par exemple en:User:Dr Brains/Utilities.js, destinées à solutionner ce problème.

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