Discussion Projet:Scripts et gadgets/2014
- Admissibilité
- Neutralité
- Droit d'auteur
- Portail de qualité
- Bon portail
- Lumière sur
- À faire
- Archives
- Commons
Cette page de discussion est destinée aux discussions sur le Projet:Scripts et gadgets.
- Si vous souhaitez signaler un bug, utiliser la page de rapport de bug.
- Si vous souhaitez demander une fonction qui ne se trouve pas dans la liste des fonctions disponibles, utilisez la page de demande de fonction.
- Pour tout autre demande, vous êtes au bon endroit.
(en) Catalogue of classes |
Index des propriétés CSS2 |
Bonjour à tous. J’utilise ce script très pratique depuis quelques années et il ne fonctionne plus depuis quelques semaines. Son auteur me répond que la fonction addClickHandler() a été désactivée et que, n’ayant pas suivi les mises à jours de Mediawiki, il ne sait pas comment corriger ça. Quelqu’un du projet pourrait y jeter un coup d’œil ? – A2 (discuter) 14 janvier 2014 à 17:58 (CET)
- Bonjour
- Il faut « simplement » utiliser jQuery : « addClickHandler(A, B); » devient « $( A ).click( B ); ».
- Si le développeur est encore un peu actif, tu peux lui indiquer l'existence de ce guide de migration. Sinon, il faudra trouver un admin sur test pour faire le changement.
- Amicalement — Arkanosis ✉ 14 janvier 2014 à 20:07 (CET)
- Merci pour cette réponse rapide et pertinente, cela fonctionne en local, je transmets le guide au développeur. – A2 (discuter) 15 janvier 2014 à 17:09 (CET)
- Si ça peut aider, je suis sysop sur test.wiki
- ⇨ Dr Brains ∞ Consultation ∞ 9 février 2014 à 13:04 (CET)
- Merci pour cette réponse rapide et pertinente, cela fonctionne en local, je transmets le guide au développeur. – A2 (discuter) 15 janvier 2014 à 17:09 (CET)
2 questions...
modifierBonjour, j'ai deux problème pour Utilisateur:Gratus/PaStec real.js.
- Comment faire pour mettre le tout dans une boite déroulante ?
- Comment faire pour mettre un bandeau juste au dessous du titre (niveau 1) d'un article ?
Cordialement.--Gratus (discuter) 9 février 2014 à 12:37 (CET)
- Salut,
- Il te faudrait être plus précis sur l'endroit du code visé et sur ce que tu souhaites réaliser exactement et à quel moment du processus.
- Là c'est un peu trop vague.
- ⇨ Dr Brains ∞ Consultation ∞ 9 février 2014 à 13:05 (CET)
- Pour ajouter un bandeau au-dessous du titre, voici un squelette :
var bandeau = '<div>Bandeau de test</div>';
$(bandeau).insertAfter($('#firstHeading'));
- — Automatik (discuter) 9 février 2014 à 14:43 (CET)
- Bonjour, pour le
- : tous le code afin de faire diminuer le volume du script sur la PàS
- : Le but est de mettre le bandeau {{À fusionner}} sur l'article cible, il devrait donc être dans la function fusionner.
- Cordialement.--Gratus (discuter) 9 février 2014 à 18:55 (CET)
- Tu parles du formulaire ajouté dans le
talkpageheader
? - N'est-ce pas ce que fait déjà la ligne suivante (4e appel à
editPage()
dans la fonctionfusionner()
) ?editPage(getPageName(),new RegExp("{{[Ss]uppression.*}}"), "{{À fusionner|"+getPageName()+"|"+page2+"}}",'[[User:Gratus/PaStec|PaStec]] : '+getPageName()+' fusion (remplacement bandeau suppression par le bandeau À fusionner)) ([['+wgPageName+'|Voir]]' );
- Tu parles du formulaire ajouté dans le
- ⇨ Dr Brains ∞ Consultation ∞ 9 février 2014 à 19:51 (CET)
- Ah oui, en effet, le formulaire prend énormément de place. Plutôt qu'une boîte déroulante, je pense qu'il faut revoir sa mise en page.
- ⇨ Dr Brains ∞ Consultation ∞ 9 février 2014 à 20:01 (CET)
- Voir Utilisateur:Dr Brains/PaStec.js pour un formulaire un peu plus ramassé.
- ⇨ Dr Brains ∞ Consultation ∞ 9 février 2014 à 20:24 (CET)
- Dr Brains : Bonjour, je me suis permis de copier votre code (en vous créditant) et je vous remercie des modifications apportés. Concernant le point 2, il n'est pas déjà fait car lors d'une fusion, il y a, par définition, deux articles concernés. Ici, l'article concerné par la PàS est traité mais pas l'article cible. Cordialement.--Gratus (discuter) 10 février 2014 à 13:53 (CET)
- OK, là ça devrait le faire, si j'ai bien compris les différentes options de la fonction
doEditPage()
- ⇨ Dr Brains ∞ Consultation ∞ 10 février 2014 à 17:44 (CET)
- Dr Brains : Bonjour, il modifie l'article cible mais il ne place pas le bandeau au bon endroit (il le met à la fin et pas au début) (cf.[1], [2]). Cordialement.--Gratus (discuter) 10 février 2014 à 18:00 (CET)
- Gratus : Oups...
- ⇨ Dr Brains ∞ Consultation ∞ 10 février 2014 à 18:02 (CET)
- Merci beaucoup.--Gratus (discuter) 10 février 2014 à 18:06 (CET)
- Dr Brains : Bonjour, il modifie l'article cible mais il ne place pas le bandeau au bon endroit (il le met à la fin et pas au début) (cf.[1], [2]). Cordialement.--Gratus (discuter) 10 février 2014 à 18:00 (CET)
- OK, là ça devrait le faire, si j'ai bien compris les différentes options de la fonction
- Dr Brains : Bonjour, je me suis permis de copier votre code (en vous créditant) et je vous remercie des modifications apportés. Concernant le point 2, il n'est pas déjà fait car lors d'une fusion, il y a, par définition, deux articles concernés. Ici, l'article concerné par la PàS est traité mais pas l'article cible. Cordialement.--Gratus (discuter) 10 février 2014 à 13:53 (CET)
- Bonjour, pour le
- — Automatik (discuter) 9 février 2014 à 14:43 (CET)
┌─────────────────────────────────────────────────┘
Jamais 2 sans 3 ... Bonjour, désolé de vous importuner mais je n'ai jamais fait de javascript auparavant donc désolé si vous trouvez cette question idiote :
var user=document.getElementById('raison_cloture').value;
editPage("Discussion utilisateur:",">", "{{subst:Avertissement suppression page|"+message+"}}\n",'[[User:Gratus/PaStec|PaStec]] : avertissement suppression' );
Comment insérer la variable user ? J'ai essayé [3] et quelques dérivés mais ça n'a pas fonctionné. Cordialement.--Gratus (discuter) 10 février 2014 à 19:38 (CET)
- Dans quelle fonction ?
kir()
? - Si oui, ce qu'il y a actuellement devrait fonctionner.
- ⇨ Dr Brains ∞ Consultation ∞ 10 février 2014 à 20:03 (CET)
- Dr Brains : Ca fonctionne : j'ai réussi à avoir une réponse via IRC et j'ai oublié d'indiquer ici que c'est résolu. Cordialement.--Gratus (discuter) 11 février 2014 à 19:12 (CET)
Date
modifierBonjour, dans le script indiqué ci-dessus, il faut inscrire la date du jour manuellement pour mettre à jour la PàS. Y a t-il moyen d'automatiser la date en javascript sous la forme « jj(chiffres)|mois en lettre|année en chiffre » ? Cordialement.--Gratus (discuter) 12 février 2014 à 15:03 (CET)
- Voir ici
- ⇨ Dr Brains ∞ Consultation ∞ 12 février 2014 à 17:33 (CET)
Wikipedia en 3 colonnes
modifierMagnus a fait un css pour afficher le contenu de Wikipedia sous forme d'un site 3 colonnes. Voir ce que ça donne sur mon blog. Est-il possible de restreindre le code au namespace 0 ? Et surtout qu'il ne fonctionne pas en mode édition ? Pyb (discuter) 16 février 2014 à 13:47 (CET)
- Ça fonctionne en utilisant .action-view.ns-0 Pyb (discuter) 16 février 2014 à 20:01 (CET)
navigation entre sections
modifierBonjour,
pour le script Utilisateur:Lepsyleon/GoTop.js, je souhaiterais rajouter deux boutons lorsqu'il y a possibilité de passer d'une section à une autre (comme c'est le cas pour un article ou sur cette PdD) : un pour aller vers la section suivante et l'autre pour la section précédente.
Savez vous comment résoudre ce problème? Vous en remerciant par avance. Cordialement. £e p$y £éon (discuter) 21 mars 2014 à 15:45 (CET)
- Lepsyleon :
- Pas simple.
- Non pas pour "aller à la section suivante/précédente", si on connaît son id c'est facile, mais pour déterminer quelle est la section "actuelle". A partir de liens à côté du titre de section, c'est easy, mais à partir de liens dans un menu complètement ailleurs dans la page, je ne vois pas comment faire.
- Une alternative serait d'avoir une copie du sommaire que l'on pourrait faire surgir en cliquant sur un lien de ton menu. Mais il faut que ce sommaire ne soit pas plus long que l'écran, sinon ça va poser problème. Encore que, on peut imaginer de dérouler/enrouler les différentes branches du sommaire comme les arbres
categorytree
. - ⇨ Dr Brains ∞ Consultation ∞ 21 mars 2014 à 20:32 (CET)
- Pour déterminer le section "actuelle" tu peux enregistrer tous les positions des sections, et lorsque tu veux déterminer la section actuelle tu récupère la position actuelle et tu la compare avec tous les positions enregistrées auparavant. Dr Brains : Est ce que cette solution pourrais être implémentée? Mais moi je ne vois pas l'utilité d'aller à la section précédente. Par contre l'idée de Dr Brains est intéressante. Hunsu (discuter) 21 mars 2014 à 21:17 (CET)
- Sinon, sauf erreur de ma part, les sections sont numérotées de la 0 pour l'introduction à x pour la dernière. Ne peut on pas imaginer une fonction qui permettrait de partir de 0 et, à chaque fois qu'on clique sur l'icône "section suivante", la variable serait implémentée de 1 ? La difficulté serait peut etre alors juste de définir combien il y a de sections sur la page ? £e p$y £éon (discuter) 22 mars 2014 à 16:40 (CET)
- Pour ajouter un lien section suivante à coté de lien modifier le code voila comment je vais procéder: je récupère tous les titres des sections (leur id), et pour chaque section tu lui ajoute le lien de la section suivante. Mais est ce vraiment utile? Y a pas une grande distance entre deux sections consécutives. Hunsu (discuter) 22 mars 2014 à 18:21 (CET)
- Sinon, sauf erreur de ma part, les sections sont numérotées de la 0 pour l'introduction à x pour la dernière. Ne peut on pas imaginer une fonction qui permettrait de partir de 0 et, à chaque fois qu'on clique sur l'icône "section suivante", la variable serait implémentée de 1 ? La difficulté serait peut etre alors juste de définir combien il y a de sections sur la page ? £e p$y £éon (discuter) 22 mars 2014 à 16:40 (CET)
- Pour déterminer le section "actuelle" tu peux enregistrer tous les positions des sections, et lorsque tu veux déterminer la section actuelle tu récupère la position actuelle et tu la compare avec tous les positions enregistrées auparavant. Dr Brains : Est ce que cette solution pourrais être implémentée? Mais moi je ne vois pas l'utilité d'aller à la section précédente. Par contre l'idée de Dr Brains est intéressante. Hunsu (discuter) 21 mars 2014 à 21:17 (CET)
function getAllSections(){
var Sections = new Array();
Sections = getAllSections_Recursion(document.getElementById("mw-content-text"), Sections);
return Sections
}
function getAllSections_Recursion(Content, Sections){
if(!Content) return Sections;
var Element = Content.firstChild;
while(Element){
if(Element.tagName){
var TagH = /h(1|2|3|4|5|6)/.test(Element.tagName.toLowerCase());
if(TagH) Sections.push(Element);
else Sections = getAllSections_Recursion(Element, Sections); // à commenter si on souhaite ne chercher que dans le premier niveau de balises
}
Element = Element.nextSibling;
if(!Element) break;
}
return Sections;
}
Problème de retour à la ligne
modifierBonjour, actuellement le code editPage("Discussion utilisateur:"+user,">","{{subst:Avertissement suppression page|"+page+"}}\n",'PaStec : avertissement suppression' );
provoque un problème de mise en page car il met le message juste après le caractère et pas à la ligne, ce qui provoque [4]. Comment faire pour y remédier ? J'ai tenté [5] mais ça n'a pas fonctionné. Cordialement.--Gratus (discuter) 21 mars 2014 à 19:41 (CET)
- Bonjour,
- Tu peux essayer avec « \n » plutôt que « <br> ».
- Si tu as l'intention de modifier ton script afin qu'il envoie automatiquement des messages sur les pages de discussion utilisateur, il serait utile de prévoir un mécanisme pour permettre à un utilisateur de signaler qu'il ne souhaite pas recevoir ce type de message, par exemple à l'aide du modèle standard {{Bots}}.
- Cordialement,
- Orlodrim (discuter) 21 mars 2014 à 19:56 (CET)
Possibles ?
modifierOrlodrim : Fonctionne. Merci
Est-il possible pour le script de connaitre automatiquement le créateur/principaux contributeur de l'article proposé à la suppression ? Est-il également possible de séparer différent pseudos dans une même case (avec une détection de retour à la ligne par ex.) afin de pouvoir envoyer le message à plusieurs personnes ? Cordialement.--Gratus (discuter) 22 mars 2014 à 19:00 (CET)
- Il faut que tu analyse l'historique de l'article. Le créateur c'est le premier contributeur. Les contributeur principaux sont les contributeurs qui ont beaucoup d'éditions. Cet outil donne les principaux contributeurs alors peut-être tu peux l'utiliser. Hunsu (discuter) 22 mars 2014 à 19:10 (CET)
- Hunsu : Je sais , ce que je ne sais pas, c'est si c'est exploitable par un script en JS, et comment le cas échéant. --Gratus (discuter) 22 mars 2014 à 19:32 (CET)
- Non, tu ne pourras pas utiliser le contenu d'une page externe. Il te faut obligatoirement récupérer l'historique de la page (via l'API pour plus de simplicité, surtout si seul le créateur t'intéresse).
- ⇨ Dr Brains ∞ Consultation ∞ 22 mars 2014 à 19:38 (CET)
- Pourquoi il est pas possible d'utiliser le contenu d'une page externe? Gratus : JavaScript est un langage de haut niveau, tu peux alors faire tout ce que tu veux. Hunsu (discuter) 22 mars 2014 à 19:49 (CET)
- Pour des raisons de sécurité, l'ajax ne fonctionne généralement pas en cross domain.
- ⇨ Dr Brains ∞ Consultation ∞ 22 mars 2014 à 20:08 (CET)
- Merci! Hunsu (discuter) 22 mars 2014 à 20:10 (CET)
- Dr Brains : Bonjour, je ne comprend rien à l'API, comment fait-on pour récupérer le créateur (c'est peut-être trop dur de faire chercher les principaux contributeurs) ?--Gratus (discuter) 22 mars 2014 à 21:31 (CET)
- Gratus :
- Comme ceci
- Script à insérer juste après le test
//PàS
afin qu'il ne s'active que sur une sous-page/Suppression
. - Fournit deux variables globales :
PaStec_Authors
:Object
listant les auteurs et le nombre de leurs modifications (PaStec_Authors["Machin"] = X
). A explorer via une bouclefor(user in PaStec_Authors){ ... }
PaStec_Creator
: le nom du dernier auteur trouvé, donc logiquement le créateur de la page.
- Il reste un risque que l'historique n'ait pas été complètement récupéré lorsqu'on en a besoin, il convient donc de tester le contenu de la variable
PaStec_Creator
lorsqu'on envisage d'utiliser l'une des deux variables. Si son type n'est pasString
, c'est que ce n'est pas fini (ou qu'il y a eu un pb). - ⇨ Dr Brains ∞ Consultation ∞ 22 mars 2014 à 22:53 (CET)
- Dr Brains : Bonjour, comment on utilise les variables ? En testant [6], je n'ai pas réussi à avoir un pseudo (null dans le premier cas et [object object] dans le 2e cas. Et comment on teste le contenu d'une variable ? Cordialement. --Gratus (discuter) 24 mars 2014 à 14:17 (CET)
- Gratus :
- C'est normal. A ce stade les auteurs n'ont pas encore été récupérés. Il faut l'utiliser à l'intérieur de la fonction appelée par
addOnloadHook()
, et lancer la requête de l'historique avant, comme ceci. - Toutefois, même ainsi, le risque demeure pour les pages avec des gros historiques que le créateur et une partie des auteurs manquent toujours à l'appel. Le risque reste malgré tout négligeable, car les pages qui passent en PaS n'ont généralement pas eu le temps d'avoir un gros historique.
- ⇨ Dr Brains ∞ Consultation ∞ 24 mars 2014 à 17:33 (CET)
- Dr Brains : Il y a un problème. Le script ne fonctionne plus.--Gratus (discuter) 24 mars 2014 à 17:59 (CET)
- Gratus :
- Oui, ça venait de l'ordre des fonctions. Certaines n'existaient pas encore lorsqu'elles étaient appelées.
- Cette version fonctionne.
- ⇨ Dr Brains ∞ Consultation ∞ 24 mars 2014 à 20:42 (CET)
- Dr Brains : Bonjour, je ne comprend rien à l'API, comment fait-on pour récupérer le créateur (c'est peut-être trop dur de faire chercher les principaux contributeurs) ?--Gratus (discuter) 22 mars 2014 à 21:31 (CET)
- Merci! Hunsu (discuter) 22 mars 2014 à 20:10 (CET)
- Pourquoi il est pas possible d'utiliser le contenu d'une page externe? Gratus : JavaScript est un langage de haut niveau, tu peux alors faire tout ce que tu veux. Hunsu (discuter) 22 mars 2014 à 19:49 (CET)
- Hunsu : Je sais , ce que je ne sais pas, c'est si c'est exploitable par un script en JS, et comment le cas échéant. --Gratus (discuter) 22 mars 2014 à 19:32 (CET)
OneClickArchiver
modifierBonjour, si certains sont intéressés, j'ai fait une petite documentation pour utiliser le script OneClickArchiver de Equazcion qui permet d'archiver manuellement un sujet de discussion en 1 clic. --NicoV (discuter) 27 mars 2014 à 09:53 (CET)
Bug
modifierBonjour, comment ce bug a t-il pu se produire ?
Code javascript de la fonction :
function kir (type){
do_if_no_edit_conflict(function() {
actions_left=2;
var page=getPageName()
var d = new Date();
var day = d.getDate();
var year = d.getFullYear();
var month = ["janvier", "février", "mars", "avril", "mai", "juin", "juillet", "août", "septembre", "octobre", "novembre", "décembre"];
var mois = month[d.getMonth()]
var bdate=document.getElementById('page2').value;
var bandeau=document.getElementById('raison_cloture').value;
editPage(page,"<", "{{Suppression}}\n",'[[User:Gratus/PaStec|PaStec]] : ajout bandeau suppression' );
editPage("Wikipédia:Pages à supprimer","{{En-tête section PàS|"+day+"|"+mois+"|"+year+"}}","{{En-tête section PàS|"+day+"|"+mois+"|"+year+"}}\n*{{L|"+page+"}}", '[[User:Gratus/PaStec|PaStec]] : Proposition à la suppression');
if (document.getElementById('raison_cloture').value.length > 0) {
if (document.getElementById('page2').value.length > 0) {
editPage(page,'{{'+bandeau+'|date='+bdate+'}}', "",'[[User:Gratus/PaStec|PaStec]] : retrait modèle « '+bandeau+' »' );
}else{
editPage(page,'{{'+bandeau+'}}', "",'[[User:Gratus/PaStec|PaStec]] : retrait modèle « '+bandeau+' »' );
}
document.getElementById('talkpageheader').innerHTML= errormsg.split("$1").join("Proposition à la suppression");
}});
}
--Gratus (discuter) 2 avril 2014 à 15:46 (CEST)
- Gratus :
- Un problème d'édition multiples sur la même page en mode asynchrone : il faudrait retirer le bandeau admissibilité (ou autre) et ajouter le bandeau suppression dans la même édition.
- Pour cela, je pense que les fonctions
editPage()
etdoEditPage()
devraient être revues pour permettre plus d'options :- pattern à remplacer
- modèles à ajouter
- modèles à retirer
- ⇨ Dr Brains ∞ Consultation ∞ 2 avril 2014 à 17:44 (CEST)
- Dr Brains : Je pense avoir trouvé plus simple. J'ai, avec
if (!confirm
, obligé le script à demander l'accord au contributeur avant de retirer le modèle. Le temps que la personne réponde, la commande "ajout suppression" est déjà enregistré. Cela à l'air de fonctionner.--Gratus (discuter) 2 avril 2014 à 18:24 (CEST)
- Dr Brains : Je pense avoir trouvé plus simple. J'ai, avec
disparition barre de navigation quand pas en visualisation
modifierBonjour,
je suis en train de retravailler sur Utilisateur:Lepsyleon/GoTop2.js, script inséré dans mon vector.js et qui permet d'avoir une barre de navigation verticale. Quand je suis en visualisation, je vois bien la barre sur la gauche de mon écran. Mais, une fois mes modifications validées, la barre n'apparait plus, même après purge complète du cache...
Quelqu'un peut-il me dire d'où vient ce problème ? Merci d'avance. Cordialement. £e p$y £éon (discuter) 2 avril 2014 à 17:15 (CEST)
- C'est quoi ce paramètre
oracleGT
? - Si il n'est pas défini, il est possible que ça provoque une erreur.
- ⇨ Dr Brains ∞ Consultation ∞ 2 avril 2014 à 17:47 (CEST)
- oracleGT : paramètre défini sur mon vector.js via oracleGT = true;
- par défaut, il doit être désactivé mais si on veut qu'il soit activé (d'où le true) afin qu'un icône menant vers l'Oracle soit visible, il faut insérer cette ligne dans notre vector.js, et ce dans un objectif de personnalisation possible du script par les utilisateurs.
- £e p$y £éon (discuter) 2 avril 2014 à 20:13 (CEST)
Existe ?
modifierBonjour, comment peut-on faire pour que le script détecte si la page qu'elle veut modifier existe ou non ? Ceci afin d'éviter des créations de pages non voulus.--Gratus (discuter) 6 avril 2014 à 17:50 (CEST)
- Bonjour. Tu peux passer le paramètre nocreate=1 à l'action "edit", et celle-ci renverra alors une erreur si tu tentes de modifier une page qui n'existe pas. Orlodrim (discuter) 6 avril 2014 à 18:53 (CEST)
- Orlodrim : Il faut écrire :
PaStec_ajax.http({retry:3,url: wgServer + wgScriptPath + '/api.php?format=xml&action=edit|nocreate=1',
- ou il faut remplacer | par & ? --Gratus (discuter) 7 avril 2014 à 08:20 (CEST)
- Trouvé (&).--Gratus (discuter) 18 avril 2014 à 15:03 (CEST)
- (Le message suivant est posté 9 ans plus tard.)
- Ce besoin d'empêcher une création accidentelle de page remonte à une époque où il y avait, dans l'interface pour envoyer un message de notification, un risque de confusion entre utilisateur et projet. Voir 102712920 (et précédents) et cette note dans la documentation.
- Cette sécurité est apparemment caduque à la suite de 114732806, et surtout de 114882165 (réécriture importante du gadget).
- À ce jour, il y a deux fonctions,
PaStec_editPage()
etPaStec_editPage2()
. Parmi le peu de différences entre ces deux fonctions,PaStec_editPage()
a la sécurité anti-création de page,PaStec_editPage2()
n'a pas cette sécurité. L'absence de la sécurité dans la fonctionPaStec_editPage2()
est dû au fait que cette fonction est (entre autres) utilisée pour ajouter un message en pdd, et il est tout à fait possible que la pdd n'existe pas et que le gadget crée la page. - Pour uniformiser les deux fonctions, une solution aurait pu être de supprimer partout la sécurité anti-création de page, vu que le risque de confusion mentionné plus haut n'existe plus. Mais je vais opter pour une autre approche : je mets la sécurité partout, avec un paramètre pour autoriser la création de page en désactivant la sécurité. Car il me semble que l'éventualité de créer la pdd lors de l'ajout d'un message est l'unique cas où la création de page est souhaitable. Ainsi, on a une sécurité empêchant de (re)créer des pages dans l'éventualité où un autre utilisateur serait intervenu en même temps.
- od†n ↗blah 23 avril 2023 à 15:30 (CEST)
- Trouvé (&).--Gratus (discuter) 18 avril 2014 à 15:03 (CEST)
Changement du format de query-continue dans l'API (2)
modifierBonjour,
D'après cet e-mail, la seconde partie des changements de l'API de MediaWiki liés au bug 24782 va avoir être déployée sur Wikipédia en français le 24 avril 2014. Ces changements concernent le nom et le format du paramètre pour obtenir la suite des résultats d'une requête. C'est la même chose qu'il y a deux ans pour d'autres fonctions. Les scripts qui semblent affectés par cette mise à jour sont :
MediaWiki:Gadget-contribsrange.jset des copies (paramètre : ucstart)MediaWiki:Gadget-LiveRC.jset des copies (paramètre : lestart)- MediaWiki:Gadget-LiveRC.js/Dev.js Corrigé
- Utilisateur:Althiphika/LiveRC.js
- Utilisateur:Althiphika/LiveRC.js/Version 0.4.8.js
- Utilisateur:Argos42/LiveRC ModA test.js
- Utilisateur:Arktest/LiveRC.js
- Utilisateur:Dereckson/LiveRC.js Dereckson
- Utilisateur:Dr Brains/LiveRC.js/Init.js Dr Brains script obsolète
- Utilisateur:Dr Brains/LiveRCPerso.js script obsolète
- Utilisateur:Frakir/LiveRC old.js Frakir
- Utilisateur:Gz260/LiveRC.js Gz260
- Utilisateur:Lilyu/LiveRC3.js
- Utilisateur:Pincourt/LiveRC.js Pincourt
- Utilisateur:Pincourt/RC.js
- Utilisateur:Od1n/LiveRCPerso.js Od1n obsolète, blanchi
- Utilisateur:Superjuju10/LiveRC/V047a.js Superjuju10
- Utilisateur:Toto Azéro/Ancien LiveRC.js Toto Azéro
- Utilisateur:Toto Azéro/LiveRC.js
- Copies de en:User:Splarka/contribsrange.js (paramètre : ucstart) :
- Utilisateur:Arkanosis/larticles.js (paramètre : ucstart) Arkanosis
- Utilisateur:Cantons-de-l'Est/EC.js (paramètre : ucstart) Cantons-de-l'Est
- Utilisateur:Darkoneko/nekotb fc 1.0.js / Utilisateur:Darkoneko/nekotb fc 1.1.js (paramètre : ucstart) Darkoneko
- Utilisateur:Dr Brains/BotFramework.js/Ajax.js (paramètre : bkstart) Dr Brains script obsolète
- Utilisateur:Dr Brains/LiveNewUsers.js (paramètre : lestart) script obsolète
- Utilisateur:Dr Brains/RevertVandalBot.js (paramètre : ucstart) script obsolète
- Utilisateur:Dr Brains/SysopWatch.js (paramètre : lestart) script obsolète
- Utilisateur:Dr Brains/WatchNewUsers.js (paramètre : lestart, ucstart) script obsolète
- Utilisateur:Gz260/editcount.js (ucstart) Gz260
- Utilisateur:Martial75/userwatchlist.js (paramètre : ucstart)
- Utilisateur:Redf0x/monobook.js (ucstart)
- Utilisateur:Salsero35/editcount.js (paramètre : ucstart) Salsero35
- Utilisateur:Wikialine/Codes sources (paramètre : lestart, ucstart)
- Discussion Projet:Communes de France/Mise à jour automatique des données démographiques (paramètre : lestart, ucstart)
Si vous avez une copie personnelle de LiveRC dans votre espace utilisateur :
- Si vous vous en servez, vous pouvez la mettre à jour en effectuant ces changements dans la fonction "function readBlocks(xmlreq, data)". Vous pouvez le faire dès maintenant, cela fonctionne à la fois avec l'ancienne version de l'API et la nouvelle. À titre informatif, cette fonction construit une liste utilisée pour afficher une icône à côté des utilisateurs récemment bloqués. En raison d'un changement plus ancien de MediaWiki, il semble que cela ne fonctionne déjà plus, mais sans affecter le reste de LiveRC. Après la mise à jour, LiveRC risquerait de ne plus démarrer du tout. Le diff proposé répare les deux problèmes.
- Si vous ne vous en servez plus, vous pouvez la blanchir ou en demander la suppression pour éviter que je vous dérange la prochaine fois.
Si un autre de vos scripts personnels est listé ci-dessus : il aura certainement besoin d'une mise à jour le 24 avril. Vous pouvez demander de l'aide sur cette page si besoin. Voici le détail des changements annoncés :
Action | Ancien paramètre | Nouveau paramètre |
---|---|---|
list=allimages | aicontinue ou aistart | aicontinue |
list=blocks | bkstart | bkcontinue |
list=categorymembers | cmcontinue ou cmstart (selon l'ordre de tri demandé) | cmcontinue |
list=deletedrevs | drcontinue ou drstart | drcontinue |
list=logevents | lestart | lecontinue |
list=protectedtitles | ptstart | ptcontinue |
list=recentchanges | rccontinue | rccontinue (le format de la valeur change) |
list=usercontribs | ucstart ou uccontinue | uccontinue |
list=watchlist | wlstart | wlcontinue |
Mon ancien message donne un exemple de réponse de l'API avant et après la mise à jour.
Cordialement,
Orlodrim (discuter) 12 avril 2014 à 00:45 (CEST)
- Corrigé ma part.
- ⇨ Dr Brains ∞ Consultation ∞ 12 avril 2014 à 01:25 (CEST)
- Merci Orlodrim: En même temps je découvre Utilisateur:Rome2/Gadget-contribsrangeUpdate.js où je n'arrive pas à me rappeler ce que ça peut être. Donc s'il faut le supprimer, je pense que c'est faisable sinon, je crois que je me rappellerai de l'utilité. Mais si c'est possible à corriger ce serait mieux, sauf que je ne sais pas quoi faire, j'ai pas les compétences. — Rome2 [Discuter], le 12 avril 2014 à 14:53 (CEST)
- J'ai regardé dans ton common.js, tu ne charges pas cette sous-page. Si tu ne te souviens plus de ce que c'est, alors tu n'en as probablement pas besoin. Il n'y a rien de spécial à faire, tu peux demander la suppression de la page si tu veux faire du ménage. Orlodrim (discuter) 12 avril 2014 à 17:35 (CEST)
- Merci Orlodrim, dans ce cas, comme je ne l'ai pas mis dans mon commons, les admins peuvent supprimer sans problème . — Rome2 [Discuter], le 12 avril 2014 à 20:11 (CEST)
- Merci pour la notif', je vais modifier ça. - DarkoNeko (mreow?) 14 avril 2014 à 14:05 (CEST)
- Merci Orlodrim, dans ce cas, comme je ne l'ai pas mis dans mon commons, les admins peuvent supprimer sans problème . — Rome2 [Discuter], le 12 avril 2014 à 20:11 (CEST)
- J'ai regardé dans ton common.js, tu ne charges pas cette sous-page. Si tu ne te souviens plus de ce que c'est, alors tu n'en as probablement pas besoin. Il n'y a rien de spécial à faire, tu peux demander la suppression de la page si tu veux faire du ménage. Orlodrim (discuter) 12 avril 2014 à 17:35 (CEST)
- Merci Orlodrim: En même temps je découvre Utilisateur:Rome2/Gadget-contribsrangeUpdate.js où je n'arrive pas à me rappeler ce que ça peut être. Donc s'il faut le supprimer, je pense que c'est faisable sinon, je crois que je me rappellerai de l'utilité. Mais si c'est possible à corriger ce serait mieux, sauf que je ne sais pas quoi faire, j'ai pas les compétences. — Rome2 [Discuter], le 12 avril 2014 à 14:53 (CEST)
Script Annuler/Révoquer
modifierBonjour,
D'après les tests que j'ai fais le script annule pas une modification mais restaure la page à la version avant celle qu'on veut annuler. Merci de changer le nom au script ou le modifier pour qu'il annule vraiment la modification. Cordialement. Hunsu (discuter) 12 avril 2014 à 07:23 (CEST)
common.css
modifierBonjour, depuis quelques temps, mon fichier de personnalisation css ne change plus la mise en forme des diff (section Diff rendering). Il y a peut-être eu des changements dans le nom des classes, mais je ne trouve rien dans MediaWiki:Common.css. Dans le code interprété, je trouve des classes <ins class="diffchange diffchange-inline">. Quelqu'un a-t-il une idée pour résoudre mon problème ? Merci Leag ⠇⠑⠁⠛ 18 avril 2014 à 11:43 (CEST)
- La syntaxe
//
pour les commentaires est invalide, seule la syntaxe/*...*/
est utilisable en CSS. Essaie déjà en corrigeant cela. od†n ↗blah 18 avril 2014 à 13:41 (CEST)- Od1n : Merci pour le conseil, c'est sûrement mieux mais ça ne résoud pas le problème. Leag ⠇⠑⠁⠛ 18 avril 2014 à 14:32 (CEST)
- Peut-être avec une purge de cache ? Sur mon compte je modifie également l'aspect des diffs, et cela fonctionne toujours aussi bien. od†n ↗blah 18 avril 2014 à 21:59 (CEST)
- Od1n : Merci pour le conseil, c'est sûrement mieux mais ça ne résoud pas le problème. Leag ⠇⠑⠁⠛ 18 avril 2014 à 14:32 (CEST)
Problème avec MediaWiki:Gadget-iRef.js
modifierBonjour, je tombe régulièrement sur des chapitres "Références automatiques" ajoutés en fin d'article avec un commentaire "iRef". Ces ajouts sont en général erronés, car les références sont déjà correctement présentes dans l’article via un des modèles tels que {{Références}} (exemples pour hier Dombey et Fils, Einigungsvertrag, Nabih Berry, …). Je ne sais pas trop qui contacter pour ce gadget. --NicoV (discuter) 17 mai 2014 à 08:32 (CEST)
- Bonjour,
- Pour essayer de cerner le problème (ce qui est toujours assez compliqué) :
- Beaucoup de contributeurs sont impactés, ou seulement les trois cités ?
- Il faudrait leur demander s'ils ont ces options activées :
- Aperçu rapide expérimental (Préférences > Modification)
- Quick Preview (Préférences > Gadgets > Zone d'édition)
- Demander aussi le navigateur internet
- Et s'ils publient en cliquant sur Enregistrer, ou en utilisant le clavier
- (merci de me notifier pour les nouvelles informations obtenues)
- od†n ↗blah 18 mai 2014 à 07:38 (CEST)
- Merci od†n, j’ai posé la question sur la page de discussion de ces 3 contributeurs. Pour le nombre de contributeurs, je ne sais pas trop car jusqu'à présent je me contentais de corriger l’article sans chercher d'où venait le problème. Je t'informerais dès que je trouve d'autres cas. --NicoV (discuter) 18 mai 2014 à 08:10 (CEST)
- Quelques exemples plus anciens où l’erreur n’a pas encore été corrigée : BMAF (IP), List de territoires contestés (Fabizor), Pyramide d'Amenemhat III (Néfermaât). --NicoV (discuter) 18 mai 2014 à 08:19 (CEST)
- à Od1n et NicoV Pour Dombey et Fils, Aperçu rapide expérimental NON, Quick Preview NON, navigateur Firefox 29.0.1, j'enregistre en cliquant. Bien à vous --Ange Gabriel (discuter) 18 mai 2014 à 08:24 (CEST)
- La seule hypothèse que j'ai pour l'instant, ça serait que l'enregistrement est effectué avant que le script ne soit chargé. Ce qui me parait tout à fait concevable. Une solution (à défaut de mieux) serait de tenter un nettoyage du marqueur iRef en dehors du document.ready(), c'est-à-dire le plus tôt qui nous soit possible. od†n ↗blah 18 mai 2014 à 12:57 (CEST)
- J'ai modifié ma version perso. À défaut de résoudre à 100 % le problème (ce qui a priori n'est pas possible), cela devrait déjà grandement améliorer la situation. od†n ↗blah 18 mai 2014 à 14:07 (CEST)
- Bonjour. Ces références automatiques sont activées par le gadget tooltipRef dans les préférences utilisateur. C'est une aide lors de la prévisualisation permettant de voir les références, même quand on ne modifie qu'une section d'article, et doit disparaitre lors de l'enregistrement. Je me suis aperçu qu'à certaines occasions, cet affichage parasite "iRef" avait été validé, mais sans pouvoir comprendre d'où venait le problème. Père Igor (discuter) 18 mai 2014 à 18:15 (CEST)
- Bonjour, cette erreur m'est apparue sur Einigungsvertrag mais je pensais à un pb de rafraichissement de page ou autre, NicoV (d · c · b) me l'a fait remonté ; j’utilise tooltipRef sur firefox 29.0.1 (dernière version), en revanche le problème semble localisé puisqu'il est apparu lors d'une modification (et non création d'article ou de section Note et réf (avec mise en place du modèle {{références}})) et que je ne me rappelle pas avoir eu ce pb auparavant. Cdlt --Masterdeis 18 mai 2014 à 19:00 (CEST)
- Bonjour. Ces références automatiques sont activées par le gadget tooltipRef dans les préférences utilisateur. C'est une aide lors de la prévisualisation permettant de voir les références, même quand on ne modifie qu'une section d'article, et doit disparaitre lors de l'enregistrement. Je me suis aperçu qu'à certaines occasions, cet affichage parasite "iRef" avait été validé, mais sans pouvoir comprendre d'où venait le problème. Père Igor (discuter) 18 mai 2014 à 18:15 (CEST)
- J'ai modifié ma version perso. À défaut de résoudre à 100 % le problème (ce qui a priori n'est pas possible), cela devrait déjà grandement améliorer la situation. od†n ↗blah 18 mai 2014 à 14:07 (CEST)
- La seule hypothèse que j'ai pour l'instant, ça serait que l'enregistrement est effectué avant que le script ne soit chargé. Ce qui me parait tout à fait concevable. Une solution (à défaut de mieux) serait de tenter un nettoyage du marqueur iRef en dehors du document.ready(), c'est-à-dire le plus tôt qui nous soit possible. od†n ↗blah 18 mai 2014 à 12:57 (CEST)
- à Od1n et NicoV Pour Dombey et Fils, Aperçu rapide expérimental NON, Quick Preview NON, navigateur Firefox 29.0.1, j'enregistre en cliquant. Bien à vous --Ange Gabriel (discuter) 18 mai 2014 à 08:24 (CEST)
- Quelques exemples plus anciens où l’erreur n’a pas encore été corrigée : BMAF (IP), List de territoires contestés (Fabizor), Pyramide d'Amenemhat III (Néfermaât). --NicoV (discuter) 18 mai 2014 à 08:19 (CEST)
- Merci od†n, j’ai posé la question sur la page de discussion de ces 3 contributeurs. Pour le nombre de contributeurs, je ne sais pas trop car jusqu'à présent je me contentais de corriger l’article sans chercher d'où venait le problème. Je t'informerais dès que je trouve d'autres cas. --NicoV (discuter) 18 mai 2014 à 08:10 (CEST)
Merci pour ces retours. Père Igor tu as confondu, il s'agit bel et bien du gadget iRef. Je continue de penser qu'il s'agit d'un problème de script exécuté trop tardivement. Il se pourrait que tooltipRef soit un peu long à s'exécuter, et s'exécute avant iRef (pas vérifié), accentuant ainsi le problème de race condition. Ma nouvelle version du script devrait normalement améliorer significativement la situation. od†n ↗blah 18 mai 2014 à 19:31 (CEST)
- à Od1n et NicoV Aperçu rapide expérimental NON, Quick Preview NON, navigateur Firefox 29.0.1, j'enregistre en cliquant. Cordialement, — Racconish ✉ 20 mai 2014 à 20:32 (CEST)
- J'ai posté une requête sur WP:DIMS mais la page semble ne plus être très suivie… Edit : le nouveau code est lancé (merci Ltrlg), vous me direz ce que cela donne à l'usage od†n ↗blah 21 mai 2014 à 20:06 (CEST)
Bonjour, il semble que ça se produise encore comme sur Mont-de-Vougney sur une annulation faite par Utilisateur:JoleK. --NicoV (discuter) 6 décembre 2014 à 09:14 (CET)
- Il faut garder à l'esprit que le fonctionnement de ce script repose sur de la bonne grosse bidouille (le textarea subit des choses qu'il n'est vraiment pas censé subir). Et suite aux importantes modifications de MediaWiki concernant la partie JavaScript depuis quelques années, c'est même un miracle que nous puissions encore faire fonctionner ce script.
- Normalement, la fonctionnalité d'iRef devrait être directement implémentée au sein de MediaWiki via une extension. Si ça se trouve le code en lui-même serait relativement simple à écrire, mais vu la plaie qu'est le workflow basé sur Gerrit (vraiment, la plaie), plus j'imagine la bureaucratie pour faire ajouter une extension sur fr.wiki, je passe mon tour...
- Avec l'hiver qui arrive, si quelqu'un veut déguster une patate chaude... od†n ↗blah 6 décembre 2014 à 11:11 (CET)
Bouton Book
modifierBonjour,
Le 2 février 2008 à 14:39 Serpicozaure (d · c · b) a rajouté du code javascript dans Modèle:Ouvrage/Documentation#Bouton. J'ai copié le code dans mon common.js, mais dans la fenêtre de prévisualisation du code ça m'a mis un point d'exclamation. Bref, ça ne marche pas chez moi, peut-être pourrions-nous supprimer les modifications de Serpicozaure (d · c · b) ([7]), d'autant que qu'on a « MonobookToolbarSources » dans les gadgets !
Merci par avance pour la réponse,
--Juanes852 (discuter) 2 juin 2014 à 18:59 (CEST)
- Il se peut effectivement que la fonction en question ait été dépréciée.
- J'ai viré le code à copier/coller et laissé le renvoi au gadget qui va bien.
- ⇨ Dr Brains ∞ Consultation ∞ 2 juin 2014 à 22:49 (CEST)
- Merci Dr Brains (d · c · b).
- Pour personnaliser MediaWiki:Gadget-MonobookToolbarSources.js, j'ai tout d'abord commencé par copier le code dans Utilisateur:Juanes852/common.js, mais les boutons ne sont pas apparus dans la MonobookToolbar. Bizarre.
- J'aimerais notamment supprimer les retours chariots (j'imagine qu'il faut supprimer les \n),
- J'ai lu Projet:JavaScript/Aide_personnalisation mais j'avoue ne pas avoir compris grand chose : je ne suis pas développeur.
- Est-ce difficile de personnaliser ? Pourrais-tu m'expliquer afin que je puisse éventuellement compléter l'aide ?
- Merci par avance
- --Juanes852 (me contacter) le 3 juin 2014 à 11:07 (CEST)
- C'est bon, j'ai réussi (voir Utilisateur:Juanes852/biblio.js. Si j'ai le temps, je vais tenter d'écrire une aide --Juanes852 (me contacter) le 10 juin 2014 à 16:24 (CEST)
Préférences / Gadgets / Bouton de la barre d'outils
modifierBonjour,
Dans « Préférences / Gadgets » on a une section intitulée « Bouton de la barre d'outils ».
Personnellement, j'ai mis du temps à comprendre qu'il fallait cocher « ForceMonobookToolbar » pour que les boutons décris dans la section « Bouton de la barre d'outils » s'affichent.
Actuellement, on a « ForceMonobookToolbar : forcer l'affichage de la barre d'outils MonobookToolbar même si la barre d'outils améliorée est utilisée. ».
Peut-être serait-il mieux de dire « permet d'afficher la MonobookToolbar et les différents boutons présentés ci-dessous si la barre d'outils améliorée est utilisée ».
Merci par avance pour votre réponse,
Bien cordialement,
--Juanes852 (discuter) 2 juin 2014 à 19:35 (CEST)
- ⇨ Dr Brains ∞ Consultation ∞ 2 juin 2014 à 22:44 (CEST)
- Merci Dr Brains (d · c · b) --Juanes852 (me contacter) le 3 juin 2014 à 10:51 (CEST)
Deprecated
modifierBonjour, je vois sur un autre WP le lien [8] avec le commentaire qu'entre-temps ça a été retardé à la fin de l'été, mais que certaines fonctions jQuery ne vont plus fonctionner à cause du passage à une nouvelle version, ce qui nécessite un gros travail pour traquer en mode debug et remplacer ce qui ne fonctionnera plus dans les gadgets et dans common.js/monobook.js/vector.js. Je signale ça ici pour ceux qui s'y connaissent, je ne sais pas à quel point on est touchés. — Oliv☮ Éppen hozzám? 30 juin 2014 à 07:40 (CEST)
- Tu parles de deux choses différentes, là. Les mises à jour de jQuery et l’évolution du ResourceLoader sont relativement indépendantes. Pour la première, je n’ai aucune idée de l’impact, mais pour la seconde j’ai fait ça (314 lignes dans l’espace de noms MediaWiki, il y a quelques faux-positifs) — Ltrlg (discuter), le 9 juillet 2014 à 12:25 (CEST)
Regex
modifierBonjour, comment on « dit » en régex lorsque je veux changer <<<texte 1|xxxx>>> en <<<texte2|xxxx>>>
lorsqu’on ne veut pas s'occuper du contenu des xxxx (voir même leurs nombres si c'est possible). Cordialement.--Gratus (discuter) 6 juillet 2014 à 15:47 (CEST)
- Bonjour,
- Si le contenu des xxxx n'a pas d'importance, pourquoi ne pas remplacer "texte 1|" par "texte 2|" ? Orlodrim (discuter) 6 juillet 2014 à 16:23 (CEST)
- Orlodrim (discuter) 6 juillet 2014 à 16:23 (CEST)
- Orlodrim : C'est vrai que l'exemple était mal choisi, par exemple si je veux changer
- {{modèle1|xxxx}}
- en
- {{modèle2|xxxx|truc}}
- ou encore
- {{modèle1|xxxx}}
- en
- {{modèle2}}
- --Gratus (discuter) 6 juillet 2014 à 18:04 (CEST)
Tu peux utiliser [^{}]* qui capture n'importe quoi sauf des accolades. Si tu veux gérer les modèles imbriqués, c'est un peu plus compliqué.
// Version la plus simple, qui marche sans modèles imbriqués (ne fait rien s'il y en a)
alert('{{modèle1|xxxx}}'.replace(/\{\{modèle1\|([^{}]*)\}\}/, "{{modèle2|$1|d=4}}"));
alert('{{modèle1|xxxx}}'.replace(/\{\{modèle1\|([^{}]*)\}\}/, "{{modèle2}}"));
// Version gérant un niveau de modèles imbriqués (ne fait rien s'il y en a plus)
alert('{{modèle1|param={{1er}}|xxxx}}'.replace(/\{\{modèle1\|(([^{}]*|\{\{[^{}]*\}\})*)\}\}/, "{{modèle2|$1|d=4}}"));
alert('{{modèle1|param={{1er}}|xxxx}}'.replace(/\{\{modèle1\|(([^{}]*|\{\{[^{}]*\}\})*)\}\}/, "{{modèle2}}"));
// Version gérant deux niveaux de modèles imbriqués (ne fait rien s'il y en a plus)
alert('{{modèle1|param={{bleu|{{1er}}}}|xxxx}}'.replace(
/\{\{modèle1\|(([^{}]*|\{\{([^{}]*|\{\{[^{}]*\}\})*\}\})*)\}\}/, "{{modèle2|$1|d=4}}"));
alert('{{modèle1|param={{bleu|{{1er}}}}|xxxx}}'.replace(
/\{\{modèle1\|(([^{}]*|\{\{([^{}]*|\{\{[^{}]*\}\})*\}\})*)\}\}/, "{{modèle2}}"));
Orlodrim (discuter) 6 juillet 2014 à 18:40 (CEST)
- Merci Orlodrim --Gratus (discuter) 6 juillet 2014 à 19:33 (CEST)
- Orlodrim : Je ne réussi pas à le faire fonctionner sur mon script Utilisateur:Gratus/PaStec real.js. Pour bien faire, il faudrait que le script supprime le modèle admissibilité (<<admissibilité|date=xxxx xxxx>>) (d'où ma question). Cordialement.--Gratus (discuter) 6 juillet 2014 à 20:49 (CEST)
- Orlodrim : Bonjour, il y a du progrès ([9]) mais ça bug toujours. Une solution ? Cordialement et encore merci.--Gratus (discuter) 7 juillet 2014 à 17:15 (CEST)
- Je m'y perds un peu dans les essais. Au moment où tu as posé la question, il manquait ^{} entre les crochets.
- Apparemment, tu as quelques problèmes à trouver la bonne combinaison entre les barres obliques, barres obliques inverses et guillemets... Il y a deux solutions :
- mettre l'expression entre barres obliques, par exemple /abc/ pour capturer "abc". C'est le plus simple. On peut mettre des attributs après, par exemple /abc/i avec un "i" en plus pour ignorer la casse.
- créer un objet RegExp en lui passant une chaîne de caractères, entre guillemets, sans barres obliques. Par exemple, new RegExp("abc"). Pour mettre des attributs, il faut un deuxième paramètre. Par exemple, new RegExp("abc", "i").
- Quand un caractère a une signification spéciale, par exemple "{", mais que tu veux la désactiver et juste trouver ce caractère-là, il faut mettre un "\" devant. Par exemple, /\{\{/ trouve "{{".
- Si tu utilises la deuxième syntaxe, c'est plus compliqué, parce que le "\" a une signification spéciale quand il est utilisé entre guillemets (indépendamment du fait que ce soit pour créer une expression régulière ou pas) : "\t" = tabulation, "\n" = nouvelle ligne, "\"" = guillemets, "\\" = antislash, etc. Pour produire l'expression régulière /\{\{/, il faut donc mettre les "\" en double : new RegExp("\\{\\{"). Je te conseille donc plutôt la syntaxe avec des barres obliques.
- Orlodrim (discuter) 7 juillet 2014 à 21:26 (CEST)
- Orlodrim : Je ne réussi pas malgré tous mes essais, je veux juste que le script détecte et me débarrasse de tous le modèle admissibilité mais sois il ne rend aucune valeur, soit il rend |date=juin 2014}}. Je n'y comprend plus rien. --Gratus (discuter) 7 juillet 2014 à 21:53 (CEST)
- Orlodrim : Merci. Çà fonctionne. Hier je n'était plus très « frais » pour comprendre la réponse, d'où mon dernier message.--Gratus (discuter) 8 juillet 2014 à 16:08 (CEST)
- Bonne nouvelle ! À ce que je vois, tu as besoin de faire plusieurs remplacements. Tu peux le faire avec une seule expression régulière en utilisant le "|" (le "ou" des expressions régulières). Par exemple, /{{[Aa]dmissibilit(e|é)[^{}]*}}|{{[Aa]rticle sans sourc(e|es)[^{}]*}}|{{[Vv]érifiabilité[^{}]*}}/g trouve n'importe lequel des trois bandeaux (ajouter la lettre "g" à la fin autorise plus d'un remplacement à la fois ; sans cela, seul le premier bandeau serait enlevé dans le cas où il y en a plusieurs dans la même page). Orlodrim (discuter) 9 juillet 2014 à 00:12 (CEST)
- Merci beaucoup !--Gratus (discuter) 9 juillet 2014 à 10:34 (CEST)
- Bonne nouvelle ! À ce que je vois, tu as besoin de faire plusieurs remplacements. Tu peux le faire avec une seule expression régulière en utilisant le "|" (le "ou" des expressions régulières). Par exemple, /{{[Aa]dmissibilit(e|é)[^{}]*}}|{{[Aa]rticle sans sourc(e|es)[^{}]*}}|{{[Vv]érifiabilité[^{}]*}}/g trouve n'importe lequel des trois bandeaux (ajouter la lettre "g" à la fin autorise plus d'un remplacement à la fois ; sans cela, seul le premier bandeau serait enlevé dans le cas où il y en a plusieurs dans la même page). Orlodrim (discuter) 9 juillet 2014 à 00:12 (CEST)
- Orlodrim : Merci. Çà fonctionne. Hier je n'était plus très « frais » pour comprendre la réponse, d'où mon dernier message.--Gratus (discuter) 8 juillet 2014 à 16:08 (CEST)
- Orlodrim : Je ne réussi pas malgré tous mes essais, je veux juste que le script détecte et me débarrasse de tous le modèle admissibilité mais sois il ne rend aucune valeur, soit il rend |date=juin 2014}}. Je n'y comprend plus rien. --Gratus (discuter) 7 juillet 2014 à 21:53 (CEST)
- Orlodrim : Bonjour, il y a du progrès ([9]) mais ça bug toujours. Une solution ? Cordialement et encore merci.--Gratus (discuter) 7 juillet 2014 à 17:15 (CEST)
- Orlodrim : Je ne réussi pas à le faire fonctionner sur mon script Utilisateur:Gratus/PaStec real.js. Pour bien faire, il faudrait que le script supprime le modèle admissibilité (<<admissibilité|date=xxxx xxxx>>) (d'où ma question). Cordialement.--Gratus (discuter) 6 juillet 2014 à 20:49 (CEST)
Un mystère javascript sur le Bistro
modifierSi quelqu'un comprend où et quand « Modifier le code » devient « Modifier le wikicode », il y aura peut-être moyen de faire quelque chose de plus rationnel ? — Oliv☮ Éppen hozzám? 10 juillet 2014 à 11:32 (CEST)
- Le texte est modifié là.
- Si on prend le code javascript d'une page quelconque, ce script est appelé avec de mauvais paramètres (la version par défaut du message plutôt que la version définie sur ce wiki) :
mw.loader.implement( "ext.visualEditor.viewPageTarget.init", ["//bits.wikimedia.org/static-1.24wmf11/extensions/VisualEditor/modules/ve-mw/init/targets/ve.init.mw.ViewPageTarget.init.js"], ..., {...,"visualeditor-ca-editsource":"Modifier le wikicode","visualeditor-ca-editsource-section":"modifier le wikicode"} )
- Je ne sais pas d'où ça vient.
- Orlodrim (discuter) 10 juillet 2014 à 13:27 (CEST)
- Ressemble à bugzilla:67805, non ? — Ltrlg (discuter), le 11 juillet 2014 à 19:21 (CEST)
- Oui :( --Elitre (WMF) (discuter) 14 juillet 2014 à 11:39 (CEST)
- Ressemble à bugzilla:67805, non ? — Ltrlg (discuter), le 11 juillet 2014 à 19:21 (CEST)
Petites interrogations
modifierBonjour, n'étant qu'un simple autodidacte en javascript, j'ai tenté d'améliorer mon script + [10] (PàStec) pour qu'il détecte la présence (ou non) d'une page (pour cela je me suis basé sur cette page). Malheureusement le bouton qui fait appel à la fonction ne répond pas.
On m'a également demandé s'il n'y a pas moyen de supprimer la ligne où il y a le bandeau (et pas seulement le bandeau) en cas de retrait de ce dernier afin d'éviter d'avoir des espaces au début des articles.
Cordialement.--Gratus (discuter) 17 juillet 2014 à 10:35 (CEST)
- Bonjour,
Pages.join(…)
n'est pas une syntaxe valide carPages
est une chaine etjoin()
s'applique à un tableau. Je ne sais pas si ça corrige le problème mais dans un premier temps il faudrait corriger ça. — Automatik (discuter) 18 juillet 2014 à 01:51 (CEST)- Merci Automatik mais cela ne résout pas le problème car il indique que la page existe même si ce n'est pas le cas.--Gratus (discuter) 18 juillet 2014 à 14:55 (CEST)
- Il indique que la page existe car tu testes seulement si tu a eu une réponse 200 Ok (et c'est le cas). If faut que tu regarde si dans la réponse il y a la chaîne missing="". Tu peux voir la réponse pour une page inexistante ici et voici une réponse pour une page existante ici. En fait pourquoi tu utilises le format XML ? Moi j'utiliserais JSON plutôt. La fonction sajax_init_object est obsolète et il ne faut plus l'utiliser. Cordialement. Hunsu (discuter) 18 juillet 2014 à 20:41 (CEST)
- Merci Automatik mais cela ne résout pas le problème car il indique que la page existe même si ce n'est pas le cas.--Gratus (discuter) 18 juillet 2014 à 14:55 (CEST)
┌───────┘
Effectivement (conflit d'édition).
Voilà une fonction qui marche chez moi, et qui utilise les données retournées au format JSON :
// Retourne vrai si la page existe, faux sinon
function exists(pagename) {
var def = $.Deferred();
$.ajax({
url: wgServer + '/w/api.php',
data: {
action: 'query',
format: 'json',
titles: pagename
}
}).fail(function() {
def.resolve(false);
}).then(function(data) {
def.resolve(!data.query.pages[-1]);
});
$.when(
def.promise()
).done(function(exists) {
return exists;
});
}
// Tests :
exists('Dissipation dans un coin liquide') ? alert('existe') : alert('n\'existe pas');
exists('Pokémon NetBattle') ? alert('existe') : alert('n\'existe pas');
Si la page '/Suppression' contient systématiquement le bandeau « L'article xxx est proposé … », on pourrait tester si le lien de l'article est rouge ou non, i.e. s'il a une classe 'new'. Un code comme ceci marcherait donc dans ces conditions :
var lien_article = $('.aa-fond-gris span.citation a').first();
var existe = !lien_article.hasClass('new');
// Test (sur une page à supprimer) :
existe ? alert('existe') : alert('n\'existe pas');
Dans ce code, on n'a pas eu besoin directement du nom de la page pour vérifier son existence — et on pourrait le récupérer via var pagename = lien_article.text()
au besoin. — Automatik (discuter) 18 juillet 2014 à 20:53 (CEST)
- Automatik : J'ai intégré le code mais il me dit tout le temps que la page n'existe pas. J'ai fait une faute quelque part ?--Gratus (discuter) 18 juillet 2014 à 21:15 (CEST)
- Comment reproduire le bug ? — Automatik (discuter) 18 juillet 2014 à 21:20 (CEST)
- Automatik : : Il suffit d'installer mon script (importScript('Utilisateur:Gratus/PaStec real.js');) puis de cliquer sur le bouton SI.--Gratus (discuter) 18 juillet 2014 à 21:25 (CEST)
- Comment reproduire le bug ? — Automatik (discuter) 18 juillet 2014 à 21:20 (CEST)
Comment fait-on pour tester le code ? Hunsu (discuter) 18 juillet 2014 à 21:28 (CEST)
- Hunsu et Automatik : Vu que le code est dans une sous-page utilisateur, il n'y a que moi (et les admins) qui y ont la main dessus. On pourrai peut-être passer sur IRC ?
┌───┘
Il manquait un return
à ma fonction, mais de toute façon il faut attendre la réponse du serveur, donc à ma connaissance il faut soit faire une requête synchrone et bloquer le navigateur en attendant la réponse du serveur, soit faire une requête asynchrone et utiliser une fonction de callback qui se lancera lorsque le serveur aura répondu, et qui pourra donc manipuler la réponse du serveur (cf. [11]). Avec la seconde méthode :
var pagename = 'Test';
new mw.Api().get({
action: 'query',
format: 'json',
titles: pagename
}).then(function(data) {
// Ce code n'est exécuté qu'une fois la requête terminée
var existe = !data.query.pages[-1];
if (existe) {
alert('La page existe');
} else {
alert('La page n\'existe pas');
}
});
Est-ce que ça marche dans le script ?
@Hunsu: pour tester le code, typiquement la console est pratique (clic droit > Examiner (ou Inspecter) l'élément). — Automatik (discuter) 20 juillet 2014 à 03:48 (CEST)
- Automatik : Ça marche, merci. --Gratus (discuter) 20 juillet 2014 à 11:15 (CEST)
BandeauxPortails.js
modifierB'soir,
je veux utiliser l'extension BandeauxPortails.js. Je l'ai installé dans mon monobook.js et toujours rien. Quelque-un peut-il me dire pourquoi ça marche pas?--Macadam1 On papote? 25 juillet 2014 à 22:35 (CEST)
- Bonsoir. Utilises-tu l'apparence Vector ou Monobook (c'est indiqué dans tes préférences, onglet « Apparence »). Le fichier monobook.js n'est chargé qu'avec l'apparence Monobook. Le mieux étant de charger directement le gadget depuis la pages des préférences, onglet « Gadget ». Autrement il est préférable à ma connaissance d'utiliser sa page /common.js que /vector.js ou /monobook.js, ça simplifie les choses. — Automatik (discuter) 27 juillet 2014 à 00:01 (CEST)
- Automatik : ah non, j'ai pas l'apparence standard. Je viens d'activer BandeauxPortails.js dans mes préférences.--Macadam1 On papote? 29 juillet 2014 à 17:53 (CEST)
Barre d'outil d'édition monobook
modifierBonjour,
J'utilise Monobook et avec les préférences, il se trouve que j'ai dans la barre d'outil 3 fois le bouton LienWeb, symbolisé à chaque fois comme ça : {{
Dans tous les cas, survoler ces trois boutons fait apparaître la même infobulle : LienWeb, mais avec un résultat différent :
- le premier affiche juste cette syntaxe : {{Lien web| (c'est tout, et ce n'est pas très utile),
- le second une syntaxe suffisante avec les balises références (pas mal)
- et le troisième avec les balises ref et la syntaxe complète (ça c'est très bien).
Ce n'est pas très gênant mais le 1er ne sert pas à grand chose, je trouve ; d'autant plus qu'il y a déjà un bouton pour insérer un lien externe. Serait il possible (sans provoquer de lever de bouclier...?!) de remplacer sa fonction par le modèle {{lien}} et d'afficher la syntaxe {{lien |trad = |lang = |fr = |texte= }} qui permets d'insérer un lien vers un article wiki dans d'autres langues ?
Sachant qu'on ne toucherait pas aux deux autres boutons, sauf peut être pour modifier leur légende respective (est il possible d'indiquer LienWeb simplifié pour le bouton 2 et LienWeb complet dans le 3 ?).
Je ne savais pas ou écrire cette requête, ignorant quel gadget provoque le triplement du bouton LienWeb, ou si c'est du au choix de l'apparence Monobook.
Merci ! --Ickx6 27 juillet 2014 à 20:21 (CEST)
- Salut, apparemment tu importes à plusieurs reprises ce bouton : Utilisateur:Ickx6/monobook.js, Utilisateur:Ickx6/common.js, + le gadget "MonobookToolbar" (qui propose la syntaxe complète). Il suffit d'enlever les ajouts de boutons de tes fichiers javascripts personnels (ce qui équivaut à blanchir ton monobook.js et à enlever le premier appel à
mwCustomEditButtons.push()
de ton common.js. Par ailleurs la ligneimportScriptURI('http://fr.wiktionary.org/wiki/MediaWiki:Gadget-AjaxPatrol.js&action=raw&ctype=text/js');
n'est pas opérationnelle, il faudrait la supprimer — la fonctionnalité de cet ancien gadget étant de toute façon intégrée dans MediaWiki. Cordialement, — Automatik (discuter) 27 juillet 2014 à 20:45 (CEST)
┌─┘
Fait. @Automatik Merci beaucoup pour la célérité de ta réponse.
bis repetita placent : j'essaie d'interpréter ce que j'ai supprimé pour en comprendre le fonctionnement (étant d'une ignorance crasse en informatique). Comme j'ai envie d'avoir un bouton pour ajouter le modèle {{lien}} qui ajoute des interwiki, est ce ce que je dois ajouter dans dans mon common.js cette syntaxe, ça fonctionnera ? :
mwCustomEditButtons.push({ "imageFile": "http://upload.wikimedia.org/wikipedia/commons/3/3c/Boutton lang.png", "speedTip": "InterWiki", "tagOpen": "{{lien |trad = |lang = |fr = |texte=", "tagClose": "}}", "sampleText": "" });
Merci --Ickx6 27 juillet 2014 à 23:14 (CEST)
- Ça m'a l'air bon, il faudrait essayer. Il est préférable à ma connaissance par ailleurs d'enlever le
http:
avant "//upload.wikimedia.org". — Automatik (discuter) 27 juillet 2014 à 23:35 (CEST)
Date du jour automatisée
modifierBonjour,
- En m'inspirant du format 26 août 2024 pour obtenir le date du jour, j'en ai modifié la séquence, à ma quasi satisfaction, par ce format 2024.août.26; peut-on remplacer le nom du mois par son chiffre à 2 unités, bref, dans ce format-ci : 2014.07.28 ?
- Est-ce possible d'appeler la date du jour, quel que soit son format, via soit applet, soit un raccourci clavier, soit un gadget soit un bouton ?
Merci de votre éclairage. Dr.mbl (discuter) 29 juillet 2014 à 02:38 (CEST)
- Dr.mbl : Bonjour, {{CURRENTMONTH}} donne 08.--Gratus (discuter) 29 juillet 2014 à 21:40 (CEST)
- Gratus : Merci beaucoup. Maintenant, est-ce possible de l'obtenir via un raccourci quelconque ou bien faut-il l'écrire au long ? Dr.mbl (discuter) 29 juillet 2014 à 22:00 (CEST) J'oubliais, à quel endroit aurais-je pu trouver la formule par moi-même et autres dont j'aurai éventuellement besoin. Merci de votre aide. Dr.mbl (discuter) 29 juillet 2014 à 22:06 (CEST)
- Dr.mbl : Bonjour, quel est le but ? Sinon il y a aide:syntaxe (vers la fin) qui est utile lorsqu'on intéresse à la Wiki-syntaxe approfondie.--Gratus (discuter) 29 juillet 2014 à 23:52 (CEST)
- Gratus :Merci pour le filon vers la wiki-syntaxe. Quant au but d'un raccourci, il est lié à mon système de classement : dates, lieux, thèmes, etc. Car, je prends une multitude de notes, à toute heure du jour et de la nuit, à tous les jours. Dans les barres d'outils offertes, peut-on ajouter des boutons selon nos choix, peut-on en créer, en retrancher, créer des raccourcis clavier soi-même, selon nos besoins ? J'espère ne pas vous importuner par mon insistance. Soyez assuré de l'utilité inestimable de votre apport. Dr.mbl (discuter) 30 juillet 2014 à 00:47 (CEST)
- Dr.mbl : Bonjour, quel est le but ? Sinon il y a aide:syntaxe (vers la fin) qui est utile lorsqu'on intéresse à la Wiki-syntaxe approfondie.--Gratus (discuter) 29 juillet 2014 à 23:52 (CEST)
- Gratus : Merci beaucoup. Maintenant, est-ce possible de l'obtenir via un raccourci quelconque ou bien faut-il l'écrire au long ? Dr.mbl (discuter) 29 juillet 2014 à 22:00 (CEST) J'oubliais, à quel endroit aurais-je pu trouver la formule par moi-même et autres dont j'aurai éventuellement besoin. Merci de votre aide. Dr.mbl (discuter) 29 juillet 2014 à 22:06 (CEST)
RFC sur les changements de l'API MediaWiki
modifierSuite à ce message, je signale qu'il y a une RFC en cours concernant de multiples changements (à long terme) dans l'API : mw:Requests for comment/API roadmap.
Ceux qui nécessiteront le plus de mises à jour de scripts semblent être :
Appeler une fonction "maison" dans un <string>.replace
modifierBonjour. Je ne devrais pas être là, mais c'est pour la bonne cause : c'est pour Wikisource.
J'ai lu à divers endroits sur le web qu'il était possible d'appeler une fonction dans un .replace()
, mais je n'arrive pas à faire fonctionner le bouzin. En particulier, mon .replace()
est dans une boucle for
, et l'éditeur javascript de Wikimedia râle parce qu'il ne faut pas créer de fonctions dans une boucle (et je lui donne raison).
Pour être très précis, mon problème est simple : j'aimerais (dans une boucle for
, hein) remplacer certains caractères correspondant à une certaine regexp (genre /[ivxIVX]+/
) par leurs alter égos majusculisés.
Pas de secret : ça se passe sur s:Utilisateur:ArséniureDeGallium/CreerCastets.js (en particulier ce diff).
Je vous remercie d'avance pour l'aide que vous pourrez m'apporter (et apporter à Wikisource). --79.81.159.106 (discuter) 12 août 2014 à 19:21 (CEST)
- C'est quoi qu'il faut "majusculiser" ? La première lettre ? Si c'est ça, voir la fonction prototype
.ucFirst()
utilisée notamment par HotCats. - Il faut la déclarer hors contexte :
String.prototype.ucFirst = function () { return this.substr(0,1).toUpperCase() + this.substr(1,this.length); }
- Ensuite, utiliser la méthode
.match()
et remplacer : lig = lig.replace( /\.([ivxIVX]+)\./g, "{{rom|"+function(x){return x[1].toUpperCase();}+"|}}" );
- par :
var Matches = lig.match(/\.([ivxIVX]+)\./g);
if(Matches!=null){
for(var a=0,l=Matches.length;a<l;a++){
var ThisMath = Matches[a];
lig = lig.replace(ThisMath, "{{rom|" + ThisMath.ucFirst() + "|}}" );
}
}
- ⇨ Dr Brains ∞ Consultation ∞ 12 août 2014 à 19:58 (CEST)
- Merci bcp Dr Brains, c'est super, mais il faut me laisser le temps de digérer ça, je ne suis pas une flèche. --79.81.159.106 (discuter) 12 août 2014 à 20:13 (CEST) Au fait, tu ne t'y connaitrais en CANopen sous Twincat3 ? Parce que là aussi j'en chie (mais là c'est pour le boulot)
- Non, désolé. Là-dessus j'y connais rien ⇨ Dr Brains ∞ Consultation ∞ 12 août 2014 à 20:27 (CEST)
- Tant pis (flute, Dr Brains n'est donc pas Dieu ?), j'ai néanmoins profité de l'occaze pour créer EtherCAT (c'est une honte que fr.wp n'ai rien à dire sur le sujet). --79.81.159.106 (discuter) 12 août 2014 à 20:38 (CEST)
- Non, désolé. Là-dessus j'y connais rien ⇨ Dr Brains ∞ Consultation ∞ 12 août 2014 à 20:27 (CEST)
- Merci bcp Dr Brains, c'est super, mais il faut me laisser le temps de digérer ça, je ne suis pas une flèche. --79.81.159.106 (discuter) 12 août 2014 à 20:13 (CEST) Au fait, tu ne t'y connaitrais en CANopen sous Twincat3 ? Parce que là aussi j'en chie (mais là c'est pour le boulot)
HotCatsMulti et caractères de contrôle Unicode
modifierBonjour, il semblerait que dans certains cas, l'ajout de catégories avec HotCatsMulti se fasse avec des caractères de contrôle Unicode (caractères invisibles, tels que Espace sans chasse, Marque gauche-à-droite, …) en plus dans le nom de la catégorie ajoutée. Serait-il possible pour HotCatsMulti de ne pas ajouter ces caractères inutiles ? Quelques exemples de corrections récentes faites juste après l’ajout de la catégorie : Alexander McDougall, Anthony Wayne, Armand Tuffin de La Rouërie, Artemas Ward, Arthur St. Clair, Benjamin Lincoln, … Si besoin d'autres exemples, dans les contributions de mon bot, ça concerne pas mal des modifications ayant le commentaire "v1.33b - Correction syntaxique (Caractères de contrôle)".
Je ne sais pas trop comment ces caractères de contrôle sont ajoutés, peut-être copier/coller ? Dans les exemples ci-dessus, c'est Julien1978 qui avait ajouté les catégories, peut-être a-t'il une idée. --NicoV (discuter) 13 août 2014 à 00:57 (CEST)
- Bonjour , j’ai remarqué aussi le passage d'un bot après moi sur l'ajout de certaines catégories récentes. Mais je ne sais absolument pas pourquoi. J’ai créé ces catégories comme toutes les autres et je ne vois pas très bien d’où peut provenir ce problème de caractère de contrôle. Cordialement. --Julien1978 (d.) 13 août 2014 à 08:30 (CEST)
- Bonjour,
- Je ne suis pas sûr que HotCatsMulti soit en cause. Selon moi, c'est plus un pb de navigateur.
- Julien1978 : quel navigateur utilises-tu ?
- ⇨ Dr Brains ∞ Consultation ∞ 13 août 2014 à 17:36 (CEST)
- Pour Wikipédia, j'utilise Firefox dans sa version la plus à jour. Pour le reste, je ne suis pas sûr d'avoir tout compris . --Julien1978 (d.) 13 août 2014 à 19:09 (CEST)
- Dans la liste des éléments d'une catégorie (et diverses autres listes de pages générées automatiquement par MediaWiki), toutes les pages et les sous-catégories finissent par une marque gauche-à-droite. Quand on fait un copier-coller d'un élément, on a donc une forte chance d'insérer le caractère invisible (sauf si on arrive à ne pas le sélectionner, mais c'est difficile à contrôler).
- Orlodrim (discuter) 13 août 2014 à 18:50 (CEST)
- Merci Orlodrim, ça explique probablement la présence de ces marques gauche-à-droite à la fin des noms des catégories ajoutées par HotCatsMulti. Dr Brains, ce serait possible que HotCatsMulti retire automatiquement cette marque quand elle est présente ? --NicoV (discuter) 13 août 2014 à 18:58 (CEST)
- NicoV, Julien1978 et Orlodrim :
- Est-ce que cette modif a l'effet escompté ?
- ⇨ Dr Brains ∞ Consultation ∞ 13 août 2014 à 20:13 (CEST)
- Selon le code source de la fonction de normalisation des titres ([12], ligne 219), le caractère 200B n'est pas ignoré dans les titres mais d'autres le sont (avec un commentaire semblable à ce que j'ai indiqué ci-dessus : "Sometimes they slip into cut-n-pasted page titles, where the override chars get included in list displays.").
- Je suggère donc de réécrire la fonction hotcat_deleteUnwantedUnicodeChars en :
return Text.replace(/\u200E|\u200F|\u202A|\u202B|\u202C|\u202D|\u202E/g, '');
- Orlodrim (discuter) 13 août 2014 à 21:06 (CEST)
- Fait. ⇨ Dr Brains ∞ Consultation ∞ 13 août 2014 à 21:43 (CEST)
- Merci Orlodrim, ça explique probablement la présence de ces marques gauche-à-droite à la fin des noms des catégories ajoutées par HotCatsMulti. Dr Brains, ce serait possible que HotCatsMulti retire automatiquement cette marque quand elle est présente ? --NicoV (discuter) 13 août 2014 à 18:58 (CEST)
Orlodrim, Dr Brains : merci ! Je vous tiens au courant si je trouve encore des cas où se problème se produit. --NicoV (discuter) 14 août 2014 à 09:10 (CEST)
- Oui merci beaucoup . --Julien1978 (d.) 14 août 2014 à 15:24 (CEST)
- OK. Modifs identiques appliquées à :
- ⇨ Dr Brains ∞ Consultation ∞ 14 août 2014 à 17:39 (CEST)
addOnloadHook
modifierEn jouant avec les outils de log de MediaWiki, je suis retombé sur de nombreuses occurrences de la fonction addOnloadHook
dans MediaWiki:Common.js. Celle-ci est dépréciée depuis des années (depuis MediaWiki 1.17). J'étais sur le point de faire un peu de ménage, puis je me suis dit que ça pourrait bien attendre une ou deux journées de plus, histoire de m'assurer que personne ne pointerait un problème qui m'aurait échappé…
Ma question, donc : quelqu'un voit-il un risque quelconque à remplacer les appels à addOloadHook
du Common.js local par l'appel standard de jQuery ?
Pour information, je vous mets le code actuel de addOloadHook
ci-dessous.
Merci d'avance, amicalement — Arkanosis ✉ 19 août 2014 à 02:08 (CEST)
msg = 'Use jQuery instead.';
// Run a function after the window onload event is fired
mw.log.deprecate( win, 'addOnloadHook', function ( hookFunct ) {
if ( onloadFuncts ) {
onloadFuncts.push(hookFunct);
} else {
// If func queue is gone the event has happened already,
// run immediately instead of queueing.
hookFunct();
}
}, msg );
$( win ).on( 'load', function () {
var i, functs;
// Don't run twice
if ( !onloadFuncts ) {
return;
}
// Deference and clear onloadFuncts before running any
// hooks to make sure we don't miss any addOnloadHook
// calls.
functs = onloadFuncts.slice();
onloadFuncts = undefined;
// Execute the queued functions
for ( i = 0; i < functs.length; i++ ) {
functs[i]();
}
} );
- L’idéal serait de faire le tri entre ceux qui doivent s’exécuter au chargement de la page (jQuery : généralement de la manipulation de menus) et ceux qui doivent s’exécuter au chargement du contenu (hook
mediawiki.content
: une bonne partie de ceux que j’ai regardés). Bien sûr, c’est plus compliqué : ça peut supposer de devoir en modifier certains pour être compatible avec une exécution multiple (effets de bord sur les parties hors contenu, je ne sais pas s’il y en a). Mais ça a l’avantage de nous préparer pour l’avenir, qui pourrait bien voir ce hook de plus en plus utilisé hors chargement de la page. - — Ltrlg (discuter), le 19 août 2014 à 10:59 (CEST)
- PS : je ne sais pas trop ce que ça pourrait impliquer pour MediaWiki:Gadget-LiveRC.js/Extensions/RunCommonJS.js ?
- PS : la référence à Projet:JavaScript/Refonte Common.js avec jQuery, figé depuis plus de trois ans, pourrait être retirée si personne ne relance le projet, non ?
- Oui, bien d'accord pour les événements. Mais autant procéder par étapes, ÀMHA : le remplacement bête et méchant est facile et sans risque (il me semble), et on peut ensuite améliorer en utilisant le bon événement, bout de code par bout de code dès que quelqu'un garantira que pour le bout de code en question, on peut déclencher plus tôt. Au moins on avancera (la stagnation de la refonte que tu pointes montre que tout faire d'un coup était trop ambitieux). Avantage collatéral, on aura des diffs bien clairs dans l'historique (au lieu d'un gros diff illisible qui mélange des changements bénins et d'autres avec plus d'implications).
- OK pour retirer la référence à la refonte, mais gardons le lien pour nous : il y a certainement des choses à reprendre dans le travail qui a déjà été effectué.
- Concernant l'extension RunCommonJS de LiveRC, je n'arrive pas à voir le lien…
- Amicalement — Arkanosis ✉ 19 août 2014 à 11:54 (CEST)
- Il me semble aussi. Je n’ai aucune autre objection et y aller doucement peut être la bonne solution (mais le faire tranquillement fonction par fonction ne produit pas non plus de gros diffs). Je suis au moins d’accord pour le fait que ça permet d’avancer : on pourra enfin se concentrer sur les avertissements ne concernant pas les multiples appels du Common.js.
- Pour la référence à la refonte, on peut aussi se contenter de le mettre en note en bas du commentaire d’en-tête ; c’est surtout le voir important au tout début qui me gêne.
- Pour RunCommonJs, je me demandais en fait si l’utilisation systématique du hook là où il est pertinent ne pouvait pas simplifier l’extension.
- — Ltrlg (discuter), le 19 août 2014 à 12:13 (CEST)
- Avec l'aide inestimable de Helder.wiki, il n'y a enfin plus la moindre occurence de
addOnloadHook
dans le Common.js . - Pour autant, la réécriture reste toujours d'actualité. Certaines fonctions ont déjà été réécrites, et je pense qu'il y a encore quelques quickwins niveau performances et pollution du namespace global.
- Il y aussi des gadgets qui restent à migrer.
- Pour le moment, je me jette sur les
mwCustomEditButtons
, eux aussi dépréciés (la suite sera de migrer enfin tous les scripts / gadgets touchant les boutons surmw.toolbar
afin que ces problèmes récurrents de boutons qui disparaissent soit réglés une bonne fois pour toutes). - Amicalement — Arkanosis ✉ 1 septembre 2014 à 03:35 (CEST)
- Avec l'aide inestimable de Helder.wiki, il n'y a enfin plus la moindre occurence de
- @Arkanosis et @Ltrlg please review my suggestion about the use of mw.hook for the interaction between some of these scripts and RunCommonJS.js. Helder 1 septembre 2014 à 17:08 (CEST)
Probleme affichage
modifierBonjour,
En préambule, si je ne suis pas au bon endroit n'hésitez pas à me rediriger vers le bon projet / personne / etc... J'expérimente depuis quelques jours (en fait depuis mon retour de congé il y a plus d'une semaine) des problèmes d'affichage de l'interface wikipedia. Les actions que je fais en continu sont le vidage du cache (complètement inutile) et effacement des cookies liés à l'environnement wikimedia (les scripts JS semblent aller plus loin). Lorsque j'ouvre la console (F12 sur gougueule chrome) je vois des erreurs déclenchées sur différents scripts mais qui ont le même résultat URIError: URI malformed URIError (au moment ou j'écris cette erreur est déclenchée par : mediawiki.action.edit.collapsibleFooter mais différents scripts peuvent déclencher cette erreur). Ces erreurs sont très gênantes dans le sens où lorsqu'il y a une erreur les scripts postérieurs ne vont pas s’exécuter, ce qui me prive de pas mal de fonctionnalités (aide à la saisie absente sur la case de recherche, barre de boutons absents lors de l'édition d'articles, gadget popups inactif, etc). Ce que je peux dire de ce problème, c'est qu'il semble qu'il soit lié à mon profil (j'ai le même problème sur deux ordis différents - maison et boulot -, sur des navigateurs différents, - Chrome et Firefox -). Quelqu'un aurait t il une piste ou orienter mes recherches. Pour info mon monobook.js, mon vector.js, mon common.js et la liste des gadgets dans mes préférence :homonymies en couleurs, popups, bandeauxebauches, bandeauxportails, hotcatsmulti, revertdiff et au niveau de l'onglet affichage : Considérer mes modifications comme mineures par défaut, M'avertir quand je quitte une page de modification sans publier les changements, Afficher la barre d'outils de modification (nécessite JavaScript), Activer la barre d’outils amélioré, Activer les assistants pour ajouter des liens, des tableaux ainsi que la fonction de recherche et remplacement.
Et comme dirait la princesse Leia O secours Obi-wan-Kenobi, vous êtes mon seul espoir
Merci d'avance pour toute l'aide que vous pourrez m'apporter. Cordialement -- Sacamol (discuter) 24 août 2014 à 14:31 (CEST)
- Sacamol :
- Désolé, mais ces fichiers .js sont côté serveur. On n'a pas la main dessus.
- Il faut reporter l'erreur sur bugzilla: pour que les développeurs corrigent ce pb.
- ⇨ Dr Brains ∞ Consultation ∞ 24 août 2014 à 14:35 (CEST)
- Ok merci. Je vais essayer de ce coté là. Cordialement, Sacamol (discuter) 24 août 2014 à 21:57 (CEST)
- Dr Brains : d'après l'analyse du support (https://bugzilla.wikimedia.org/show_bug.cgi?id=70097), et confirmé par mes soins, la cause du problème viendrait de User:Dr Brains/HistoryDeluxe.js . Peut être étais-je le seul à l'utiliser pour n'être que le seul à être impacté par ce problème ? Pour le moment, j'ai basculé sur le gadget similaire proposé dans les préférences utilisateurs. Si d'aventure, tu corrigeais le pb sur le script, n'hésite pas à me le faire savoir. Cordialement, --Sacamol (discuter) 29 août 2014 à 21:48 (CEST)
- Sacamol :
- OK. Dans ce cas, n'utilise plus ce script (que je n'utilise pas moi-même) et préfère lui le gadget qui va bien (dispo dans les préférences).
- ⇨ Dr Brains ∞ Consultation ∞ 2 septembre 2014 à 17:48 (CEST)
- Ok, c'est noté. --Sacamol (discuter) 2 septembre 2014 à 18:17 (CEST)
- Dr Brains : d'après l'analyse du support (https://bugzilla.wikimedia.org/show_bug.cgi?id=70097), et confirmé par mes soins, la cause du problème viendrait de User:Dr Brains/HistoryDeluxe.js . Peut être étais-je le seul à l'utiliser pour n'être que le seul à être impacté par ce problème ? Pour le moment, j'ai basculé sur le gadget similaire proposé dans les préférences utilisateurs. Si d'aventure, tu corrigeais le pb sur le script, n'hésite pas à me le faire savoir. Cordialement, --Sacamol (discuter) 29 août 2014 à 21:48 (CEST)
- Ok merci. Je vais essayer de ce coté là. Cordialement, Sacamol (discuter) 24 août 2014 à 21:57 (CEST)
JavaScript sur WMF Labs ?
modifierBonjour,
J'ai lu un peu à gauche et à droite les helps des Wikimedia Labs, mais je n'ai pas trouvé ce que je cherche. Je veux rédiger un script en JavaScript qui générera du contenu à copier dans common.js. Il s'agit d'une liste de fonctions/actions paramétrable, chaque item étant associé à un bouton ; l'ensemble des boutons sera rassemblé dans un bandeau vertical. Ça ressemblera à ce que fait par exemple Michael Geist dans son blogue, qui insère 8 boutons (dans le haut de la page à la droite) vers Facebook, Twitter, Google+, RSS, email..., mais je prévois offrir des liens vers les wikis de l'écosytème. Alors, est-ce que les WMF Labs acceptent ce type de script, ou dois-je me rabattre sur un autre site ?
— Cantons-de-l'Est discuter 13 septembre 2014 à 21:50 (CEST)
Internet Explorer 6 et 7
modifierJuste pour info au cas ou cela vous aurais échappé : à partir du 18 septembre et le déploiement de MediaWiki 1.24/wmf21, javascript sera désactivé sur Wikipédia pour IE7. C'est déjà le cas pour IE6 depuis le 21 aout et le déploiement de MediaWiki 1.24/wmf17.
Donc tous les hacks spécifiques à ces deux navigateurs pourrons être retiré dès la fin de la semaine.
Oubli
modifierBonjour, qu'ai je oublié à ma fonction « editpage2 » pour qu'elle rende ceci ? Ne vous occupez pas de la forme, je n'y occuperai dès que je saurai ce qui manque à ce script . Script ici. Cordialement.--Gratus (discuter) 26 septembre 2014 à 18:26 (CEST)
- J'ai pas eu exactement ce que je voulais mais j'ai réussi à obtenir un résultat potable.--Gratus (discuter) 27 septembre 2014 à 10:12 (CEST)
PàStec : chaîne de caractères
modifierOrlodrim, Dr Brains et Automatik : et les autres (j'ai notifié les codeurs qui sont régulièrement présent et qui m'ont aidé dans le passé).
Bonjour, pour mon script PàStec (voir section précédente pour avoir le lien vers le code), j'ai besoin d'avoir une function qui détecte la présence d'une chaine de caractère spécifique dans un article. Cette fonction permettrait de corriger/prévenir certains bugs dont celui des redirections. Cependant je ne sais pas programmer une telle fonction d'où cet appel à l'aide. Cordialement.--Gratus (discuter) 27 septembre 2014 à 14:20 (CEST)
- Bonjour, le code suivant marche-t-il ?
function page_courante_contient_chaine(chaine) {
new mw.Api().get({
action:'query',
format:'json',
titles:mw.config.get('wgPageName'),
prop:'revisions',
rvprop:'content'
}).then(function(data) {
for (var pageid in data.query.pages) break;
contenu = data.query.pages[pageid].revisions[0]['*'];
contient = contenu.indexOf(chaine) !== -1;
if (contient) {
// La chaine est dans l'article
} else {
// elle ne l'est pas
}
})
};
- J'ai fait là ce qui avait été fait pour la fonction "existe" : ce n'est pas très utile d'utiliser une fonction dans ce cas, mais ça a l'avantage d'être plus simple à comprendre (par rapport à ce qu'on pourrait faire si on voulait rendre la fonction plus souple dans son utilisation). — Automatik (discuter) 29 septembre 2014 à 12:35 (CEST)
- Automatik : Le code ne veut pas s’exécuter. Cordialement.--Gratus (discuter) 29 septembre 2014 à 19:10 (CEST)
- @Gratus : avec
wgTitle
changé enwgPageName
comme corrigé ci-dessus, ça marche ? — Automatik (discuter) 29 septembre 2014 à 20:59 (CEST)- Automatik : Bonjour, le code fonctionne mais il répond toujours que « La chaine n'est PAS dans l'article » (même s'il y est). Cordialement et merci pour votre aide.--Gratus (discuter) 30 septembre 2014 à 07:03 (CEST)
- Je n'ai pas de problème avec son utilisation. Il faudrait au besoin remplacer
'wgPageName'
par le nom de la page (le code vérifie si la page courante contient la chaine, pas une autre page). Peut-être réécrire la fonction pour qu'elle prenne deux paramètres (le nom de la page en plus) résoudrait le problème ? — Automatik (discuter) 30 septembre 2014 à 18:00 (CEST)- Automatik : C'est ce que j'ai fait (et voulais faire ). En tout cas : (il fonctionne).--Gratus (discuter) 30 septembre 2014 à 18:58 (CEST)
- Je n'ai pas de problème avec son utilisation. Il faudrait au besoin remplacer
- Automatik : Bonjour, le code fonctionne mais il répond toujours que « La chaine n'est PAS dans l'article » (même s'il y est). Cordialement et merci pour votre aide.--Gratus (discuter) 30 septembre 2014 à 07:03 (CEST)
- @Gratus : avec
- Automatik : Le code ne veut pas s’exécuter. Cordialement.--Gratus (discuter) 29 septembre 2014 à 19:10 (CEST)
Changement du format de query-continue dans l'API (3)
modifierBonjour,
Je relaie le message de Mediawiki-api-announce : le fonctionnement par défaut pour les continuations va changer. D'ici l'arrivée de MediaWiki 1.26 (on est actuellement à 1.24), il faudra mettre à jour tous les scripts où apparaît un paramètre xycontinue=.
Le nouveau format est plus pratique pour les bots ou les scripts utilisant mediawiki.api, par contre c'est assez difficile à gérer dans des scripts utilisant le format XML, si on suit la méthode recommandée (ne faire aucune supposition sur le nom des paramètres présents dans le bloc "continue").
L'ancien format va être conservé, mais il faudra le demander explicitement en ajoutant un paramètre "rawcontinue=" dans la requête. Je pense qu'il est plus réaliste de mettre à jour les scripts existants de cette façon, dans un premier temps.
Les méthodes suivantes vont disparaître lors de la prochaine mise à jour de MediaWiki
modifierAttention, les méthodes suivantes vont disparaître lors de la prochaine mise à jour de MediaWiki début octobre :
mw.user.name()
;mw.user.anon()
;mediawiki.api()
: la méthode reste, mais ne supporte plus les argumentsok
eterr
;mediawiki.api.category()
: la méthode reste, mais ne supporte plus l'argumentasync
;- tout le module
jquery.json
.
Il me semble qu'on a quelques scripts qui utilisent ok
et err
. Pour le reste, je ne sais pas…
Plus de détails dans ce mail de Timo.
Amicalement — Arkanosis ✉ 29 septembre 2014 à 12:27 (CEST)
- Il n'y avait pas eu il y a peu de temps, pour un cas similaire, une page listant toutes les pages de l'espace MediaWiki de tous les wikis, et utilisant des fonctions allant être retirées ? Ça pourrait être utile ici aussi. — Automatik (discuter) 29 septembre 2014 à 12:41 (CEST)
- Automatik : pas pour tous les wikis à ma connaissance, mais il y en a une pour frwiki.
- Mais il n’y aura pas besoin de l’utiliser ici, voici un rapport de mes rapides recherches sur frwiki :
mw.user.name
: un script utilisateur avecmw
, rien avecmediaWiki
;mw.user.anon
: rien avecmw
, rien avecmediaWiki
;<mediaWiki.Api>[get|post|ajax|postWithToken](ajaxOptions[ok|err])
: difficile de ne pas avoir de faux-positifs avec des chaînes si banales utilisées comme clés d’un objet passé à une fonction… Heureusement, il y a peu d’appels à relire : deux scripts globaux et quatre scripts utilisateur avecmw
, aucun avecmediaWiki
;mediawiki.api.category
: module non chargé par défaut, jamais appelé directement.
- J’espère que personne n’utilise d’alias non standard pour
mediaWiki
. - Le script pour le point 1 serait trivial à corriger — il n’est de toutes façons pas utilisé. Je regarde tout de suite le point 3.
- — Ltrlg (discuter), le 29 septembre 2014 à 22:46 (CEST)
- Point 3 :
- MediaWiki:Group-sysop.js utilise
ok
; - MediaWiki:Gadget-teahouse/content.js utilise
ok
; - Utilisateur:Phe/Clickodrome.js est propre ;
- Utilisateur:Gratus/PaStec_real.js est propre ;
- Utilisateur:Tpt/emptypage.js est propre ;
- Utilisateur:Startupevo1/recent2.js est propre ;
- MediaWiki:Group-sysop.js utilise
- Il y a donc deux scripts globaux à corriger : MediaWiki:Group-sysop.js et MediaWiki:Gadget-teahouse/content.js ; Utilisateur:Prométhée33/test.js est aussi obsolète, mais ne semble pas utilisé (Prométhée33 ?).
- — Ltrlg (discuter), le 29 septembre 2014 à 22:55 (CEST)
- Si ma mémoire est bonne, MediaWiki:Gadget-teahouse.js/MediaWiki:Gadget-teahouse/content.js devaient être des gadgets activés par défaut pour le forum des nouveau, mais ça n'a pas eu lieu. Vu que Flow est en test sur le forum des nouveaux, ça ne servira sans doute plus. Orlodrim (discuter) 29 septembre 2014 à 23:09 (CEST)
- Orlodrim : exact. Du coup, on doit j’ai retiré la ligne désactivée sur MediaWiki:Gadgets-definition. — Ltrlg (discuter), le 29 septembre 2014 à 23:31 (CEST)
- Fait pour Mediawiki:group-sysop.js. Il ne reste donc plus de problème normalement — Ltrlg (discuter), le 3 octobre 2014 à 20:58 (CEST)
- Orlodrim : exact. Du coup, on doit j’ai retiré la ligne désactivée sur MediaWiki:Gadgets-definition. — Ltrlg (discuter), le 29 septembre 2014 à 23:31 (CEST)
- Si ma mémoire est bonne, MediaWiki:Gadget-teahouse.js/MediaWiki:Gadget-teahouse/content.js devaient être des gadgets activés par défaut pour le forum des nouveau, mais ça n'a pas eu lieu. Vu que Flow est en test sur le forum des nouveaux, ça ne servira sans doute plus. Orlodrim (discuter) 29 septembre 2014 à 23:09 (CEST)
- Point 3 :
Chaine de caractères (bis)
modifierBonjour, comment insérer plusieurs chaines de caractères dans une seule variable. La méthode des « /abc|def/ » ne semble pas fonctionner. Cordialement.--Gratus (discuter) 1 octobre 2014 à 11:04 (CEST)
var tab = [chaine1, chaine2, …];
: on déclare une variable avec plusieurs chaines dedans. — Automatik (discuter) 1 octobre 2014 à 20:29 (CEST)- Gratus, je crois qu’il faudrait que tu sois plus précis sur ce que tu souhaites, il y est difficile de comprendre exactement la question — Ltrlg (discuter), le 1 octobre 2014 à 21:07 (CEST)
- Automatik et Ltrlg : C'est pour détecter plusieurs chaînes de caractères dans un article (voir section plus haut « PàStec : chaîne de caractères »). Cordialement.--Gratus (discuter) 2 octobre 2014 à 06:46 (CEST)
- Gratus, je crois qu’il faudrait que tu sois plus précis sur ce que tu souhaites, il y est difficile de comprendre exactement la question — Ltrlg (discuter), le 1 octobre 2014 à 21:07 (CEST)
┌───────┘
Partant d'une chaine contenu
contenant tout l'article :
var i;
var a_chercher = [chaine1, chaine2, …];
var tout_trouve = true;
for (i = 0; i < a_chercher.length; i++) {
if (contenu.indexOf(a_chercher[i]) === -1) {
tout_trouve = false;
break;
}
}
// Une fois sorti de cette boucle, la variable tout_trouve contient vrai ou faux
// selon que l'article contient ou non toutes les chaines à rechercher.
— Automatik (discuter) 2 octobre 2014 à 10:41 (CEST)
- Automatik : Ça ne fonctionne que quand je met la chaine1, dès qu'il y en a plus, la boucle ne fonctionne plus et renvoie en permanence tout_trouve = false;. Cordialement.--Gratus (discuter) 2 octobre 2014 à 18:48 (CEST)
- Gratus :, pourrais-tu me filer un lien vers la version du code qui n'a pas marché comme tu le souhaitais ? Ou éventuellement la page sur laquelle tu as travaillé, avec les chaines testées. — Automatik (discuter) 2 octobre 2014 à 20:56 (CEST)
- Automatik : rien s'affiche, fonctionne pas, idem, (re)idem (je suis sûr que c'est moi qui me plante dans l'écriture, c'est pourquoi y a tous ces essais - c'est rangé du plus récent au plus vieux). Merci de ton aide.--Gratus (discuter) 3 octobre 2014 à 06:53 (CEST)
- Gratus : les versions 1 et 4 ne peuvent pas marcher pour une raison de syntaxe : le tableau
a_chercher
ne contient pas uniquement des chaines. Or on passe à tour de rôle tous les éléments de ce tableau à.indexOf()
, qui n'accepte que des chaines en paramètre. Pour les autres, elles marchent bien chez moi : je ne peux pas deviner sur quelles pages le script ne marche pas. Par contre, ça renvoie bien "false" si la page contient "#redirect" au lieu de "#REDIRECT", logiquement (il faut donc par exemple explicitement rajouter "redirect" dans le tableaua_chercher
pour prendre ce cas en compte, c'est le plus simple. — Automatik (discuter) 3 octobre 2014 à 14:22 (CEST)
- Gratus : les versions 1 et 4 ne peuvent pas marcher pour une raison de syntaxe : le tableau
- Automatik : rien s'affiche, fonctionne pas, idem, (re)idem (je suis sûr que c'est moi qui me plante dans l'écriture, c'est pourquoi y a tous ces essais - c'est rangé du plus récent au plus vieux). Merci de ton aide.--Gratus (discuter) 3 octobre 2014 à 06:53 (CEST)
- Automatik : Cet ajout a laissé passé cette modification (il ne le laissait pas passer avant cette ajout dans mon code, j'ai testé ). Cordialement.--Gratus (discuter) 3 octobre 2014 à 18:20 (CEST)
- Piste
- ⇨ Dr Brains ∞ Consultation ∞ 3 octobre 2014 à 19:16 (CEST)
- Dr Brains : Merci. Je vais analyser ce bout de code et tenter d'y faire quelque chose .--Gratus (discuter) 3 octobre 2014 à 19:58 (CEST)
- Gratus :, pourrais-tu me filer un lien vers la version du code qui n'a pas marché comme tu le souhaitais ? Ou éventuellement la page sur laquelle tu as travaillé, avec les chaines testées. — Automatik (discuter) 2 octobre 2014 à 20:56 (CEST)
┌─────────────────────────────────────────────────┘
J'ai finalement trouvé un moyen de faire autrement (vérifications en cascades). Merci de votre aide.--Gratus (discuter) 4 octobre 2014 à 09:45 (CEST)
Nouveau script de navigation
modifierBonjour,
je voulais savoir s'il était possible de rajouter un petit script de ma conception, GoTop, une barre de navigation (voir documentation pour l'installer), sur la page Projet:JavaScript/Liste des fonctions disponibles ? Faut-il une validation préalable du script de la part du projet ?
Cordialement. £e p$y £éon (discuter) 17 octobre 2014 à 11:55 (CEST)
- Lepsyleon :
- Alors, c'est très simple.
- Il faut déposer une demande en trois exemplaires (avec accusé de réception) sur WP:BISTRO, WP:RA et WP:Cabale.
- Après une attente d'environ 72 heures, si les réponses des intervenants dûment habilités (possédant un passe B12 valide) sont favorables, il sera alors possible de créer une demande préalable de WP:Sondage.
- Pour cela, il faut s'adresser à Jacqueline au guichet 29 (2e étage à droite des archives) qui fournira le formulaire A74c. Correctement rempli, et après avis favorable d'un WP:Administrateur habilité à traiter ce genre de demande (reconnaissable à un logo jaune sur sa carte d'administrateur), le sondage peut être lancé.
- Veiller à bien respecter les WP:recommandations du fascicule que devrait vous avoir remis le préposé aux demandes préalables de sondage (si vous l'avez perdu, demander Marcel au guichet 12z, 3e sous-sol).
- Une fois le sondage lancé, attendez. Le temps d'attente dépend du type de demande, de la période de l'année, du sens du vent et de l'âge du capitaine (c'est d'ailleurs bientôt son anniversaire : une quête est organisée à laquelle vous pouvez participer. Un urne est disposée à cet effet au 8e étage, juste devant la grande porte rouge. Cela est bien entendu facultatif, donc absolument indispensable pour l'avancement de votre dossier).
- Si l'issue du sondage est défavorable à votre demande, attendez 6 mois et recommencez la procédure depuis le début.
- Si l'issue du sondage est favorable à votre demande, vous pouvez passer à l'étape suivante, qui consiste à déposer une demande en trois exemplaires (avec accusé de réception) sur WP:BISTRO, WP:RA et WP:Cabale.
- Après une attente d'environ 72 heures, si les réponses des intervenants dûment habilités (possédant un passe B12 valide) sont favorables, il sera alors possible de créer une demande préalable de WP:Prise de décision.
- Pour cela, il faut s'adresser à Micheline au guichet 28 (4e étage à droite de la salle de réunion V75) qui fournira le formulaire P74c. Correctement rempli, et après avis favorable d'un WP:Administrateur habilité à traiter ce genre de demande (reconnaissable à un logo vert sur sa carte d'administrateur), la prise de décision peut être lancée.
- Veiller à bien respecter les WP:recommandations du fascicule que devrait vous avoir remis le préposé aux demandes préalables de prise de décision (si vous l'avez perdu, demander Jean-Claude au guichet 25a, 4e sous-sol, dans le placard derrière la photocopieuse).
- Une fois la prise de décision lancée, attendez. Le temps d'attente dépend cette fois uniquement de l'âge du capitaine (anniversaire -> quête -> urne -> avancement du dossier...).
- Si l'issue de la prise de décision est défavorable à votre demande, attendez 6 mois et recommencez la procédure depuis le début.
- Si l'issue de la prise de décision est favorable à votre demande, vous pouvez passez à l'étape suivante, qui consiste, muni des récépissés du WP:Sondage, de la WP:Prise de décision, et d'une lettre de recommandation du capitaine (anniversaire -> quête -> urne -> avancement du dossier...), à déposer une demande (avec accusé de réception) sur WP:BA.
- Si le délibéré des délibérants est défavorable à votre demande, ou si vous êtes traité de vandale, de troll, ou pire, de "pénible", faîtes-vous tout petit, retirez promptement votre demande en invoquant votre ignorance et votre manque d'expérience, et priez pour ne pas être bloqué. Si l'expression WP:POINT arrive dans la conversation, vous êtes foutu. Créez immédiatement un WP:Faux-nez avant qu'il ne soit trop tard.
- Si le délibéré des délibérants vous est favorable, alors vous pouvez effectuer la modification. N'oubliez surtout pas de remplir le résumé de modification avec moult remerciements pour les personnes qui vous ont autorisé, vous simple mortel, à faire ce que vous venez de faire.
- ...
- Procédure alternative : soyez (ou devenez) WP:Administrateur, modifiez la page comme vous voulez, et bloquez le premier qui moufte (sauf s'il est lui-même administrateur, dans ce cas utilisez WP:Contestation du statut d'administrateur et pourrissez-le (vous êtes administrateur : vous savez comment faire)).
- ⇨ Dr Brains ∞ Consultation ∞ 17 octobre 2014 à 22:32 (CEST)
- Dr Brains : Après mûre réflexion, hésitant entre la bonne vieille rigueur administrative (mais un peu longue) et la procédure courte et efficace (mais dictatoriale), j'ai décidé d'être dans le rôle d'administrateur/opérateur et de faire, par voie de fait, ce que je veux en optant pour la deuxième solution. Merci pour ces informations précieuses qui m'ont permis de prendre une décision en ayant tous les éléments en main, ne voulant pas arriver avec mes gros sabots sur un projet auquel je ne participe habituellement pas . Cordialement. £e p$y £éon (discuter) 17 octobre 2014 à 23:22 (CEST)
Bizarre
modifierBonjour, pourquoi les actions editPage ne fonctionnent pas ? La fonction alert fonctionne et confirme que la var page est correcte. Merci d'avance pour vos réponses--Gratus (discuter) 19 octobre 2014 à 18:48 (CEST)
$(document).ready(function () {
if (mw.config.get('wgNamespaceNumber') >= 0) { // Permet de ne pas avoir l'onglet sur les pages spéciales ni les médias
mw.util.addPortletLink('p-cactions', 'javascript:void(deletepage())', 'Demander SI');
}
});
function deletepage() {
var motif=prompt("Entrez votre motif de suppression") ;
var page=mw.config.get( 'wgPageName' );
!alert (page)
editPage(page,"<","{{Suppression Immédiate|"+motif+"}}",'[[User:Gratus/PaStec|PaStec]] : Suppression immédiate (ajout bandeau)' );
editPage("Wikipédia:Demande de suppression immédiate",">","\n== [["+page+"]] == \n* '''Demandé''' par ~~~ le ~~~~~\n* '''Motif''' "+motif+":",'[[User:Gratus/PaStec|PaStec]] : Suppression immédiate (requête)' );
!alert ("Cette ligne ne s'affiche pas")
}
- Il faut vraiment penser à donner tout le code pour faciliter la vie des helpeurs : comment peut-on savoir pourquoi la fonction editPage() ne fonctionne pas si on n'a pas sa définition ? — Automatik (discuter) 19 octobre 2014 à 19:04 (CEST)
- Automatik : Le code en entier est ici. La fonction editPage() sert à éditer une page. Elle se présente sous la forme editPage(page,position ou txt à remplacer, txt nouveau ou ajouté, commentaire diff). Je ne pense pas que le problème vienne de la structure de la fonction editpage() puisque le reste du script utilise la même fonction et fonctionne correctement. En résumé, le bouton s'affiche, on peut lancer la fonction puisque le prompt et le alert fonctionne mais ensuite les editpage ne se lancent pas. Si on met une 2e !alert à la fin, elle ne s'affiche pas (on peut donc conclure que le problème est situé entre les 2 !alert). Cordialement.--Gratus (discuter) 19 octobre 2014 à 19:28 (CEST)
- Gratus :
- Je ne sais pas si tu as modifié quelque chose entre temps, mais pour moi ça fonctionne (1, 2)
- PaStec gagnerait à être réécrit pour :
- revoir les formulaires et la façon dont ils sont présentés (je pense à des onglets, un pour chaque fonction, avec les champs qui vont bien pour chaque fonction)
- faire les éditions de façon séquentielle, comme le fait LiveRC pour son lancement (Wikipédia:LiveRC/Miroir#Initialisation), et non plus toutes en même temps comme actuellement ce qui cause un risque de conflit entre éditions.
- ⇨ Dr Brains ∞ Consultation ∞ 19 octobre 2014 à 20:11 (CEST)
- Dr Brains : Çà ne fonctionne que si on est dans une /suppression, le bug est toujours présent pour les autres pages. --Gratus (discuter) 19 octobre 2014 à 20:17 (CEST)
- Gratus : : comment reproduire le bug ? — Automatik (discuter) 19 octobre 2014 à 20:29 (CEST)
- Automatik : En installant le script puis en allant dans l'onglet « Demander SI » puis en renseignant les champs. Il faut être partout sauf sur une PàS.--Gratus (discuter) 19 octobre 2014 à 20:34 (CEST)
- Gratus : : comment reproduire le bug ? — Automatik (discuter) 19 octobre 2014 à 20:29 (CEST)
- Dr Brains : Je pense avoir repéré le problème : le reste du code dont est situé editpage() ne s’exécute pas si on est pas sur /suppression. Donc théoriquement, ça fonctionne si on remonte toutes les fonctions qui permettent de modifier une page au dessus du « détecteur d'espace de nom » ? C'est ce que j'ai fait ici mais ça ma fait planter tous le script (peut-être ais-je oublié de remonter des sous-fonctions nécessaires à la mise en œuvre de ceux-ci ?) --Gratus (discuter) 19 octobre 2014 à 20:34 (CEST)
- Gratus : Regarde ton diff, ligne 185.
- ⇨ Dr Brains ∞ Consultation ∞ 19 octobre 2014 à 20:46 (CEST)
- Gratus : cette version marche et inclut une meilleure mise en page du code, je t'invite donc vivement à l'implémenter. S'il y a des effets secondaires indésirables on pourra toujours revoir ça. Note : j'ai déplacé certaines fonctions en haut du code pour que ça fonctionne, c'était donc bien le problème que tu visais. Mais j'ai justement amélioré la mise ne page du code pour que ce genre de choses se mette plus en évidence, ça facilite grandement le débogage. — Automatik (discuter) 19 octobre 2014 à 22:47 (CEST)
- Automatik : J'ai corrigé le script grâce à l'indication de Dr Brains, il fonctionne désormais correctement. J'ai remonté l'une des fonctions grâce à vous mais n'ayant pas l’œil pour comparer, peut-être ai-je loupé quelques améliorations . Cordialement et merci pour vos réponses.--Gratus (discuter) 19 octobre 2014 à 23:10 (CEST)
- Gratus : tant mieux si cette simple erreur résout à elle seule le problème. Cela dit, ton code n'affiche pas le second
alert()
, car certaines fonctions appelées pardoEditPage()
ne sont pas définies par défaut. La version qui se trouve ici corrige cela. C'est exactement ta version, + quelques fonctions mises en haut, et des « bonnes pratiques » de javascript mises en œuvre. Pourquoi donc ? car cela aide grandement au débogage et à la maintenance du script par la suite. À chaque fois où j'ai regardé ton code par rapport à une de tes questions, j'ai été confronté au problème de lisibilité du code et de sa structuration ; j'imagine n'être pas le seul. Je t'invite ainsi chaudement à utiliser cette version, et si tu ne reprends pas mon code je te suggère de mettre en place un rendu plus lisible par toi-même : c'est un réel gain de temps pour la suite, même si on s'en rend pas forcément compte à priori. Note : j'ai suivi pour l'essentiel les recommandations pour l'essentiel de mw:CC/JS pour les « bonnes pratiques » de codage en javascript. Cordialement — Automatik (discuter) 19 octobre 2014 à 23:42 (CEST)
- Gratus : tant mieux si cette simple erreur résout à elle seule le problème. Cela dit, ton code n'affiche pas le second
- Automatik : J'ai corrigé le script grâce à l'indication de Dr Brains, il fonctionne désormais correctement. J'ai remonté l'une des fonctions grâce à vous mais n'ayant pas l’œil pour comparer, peut-être ai-je loupé quelques améliorations . Cordialement et merci pour vos réponses.--Gratus (discuter) 19 octobre 2014 à 23:10 (CEST)
- Gratus : cette version marche et inclut une meilleure mise en page du code, je t'invite donc vivement à l'implémenter. S'il y a des effets secondaires indésirables on pourra toujours revoir ça. Note : j'ai déplacé certaines fonctions en haut du code pour que ça fonctionne, c'était donc bien le problème que tu visais. Mais j'ai justement amélioré la mise ne page du code pour que ce genre de choses se mette plus en évidence, ça facilite grandement le débogage. — Automatik (discuter) 19 octobre 2014 à 22:47 (CEST)
- Dr Brains : Çà ne fonctionne que si on est dans une /suppression, le bug est toujours présent pour les autres pages. --Gratus (discuter) 19 octobre 2014 à 20:17 (CEST)
- Automatik : Le code en entier est ici. La fonction editPage() sert à éditer une page. Elle se présente sous la forme editPage(page,position ou txt à remplacer, txt nouveau ou ajouté, commentaire diff). Je ne pense pas que le problème vienne de la structure de la fonction editpage() puisque le reste du script utilise la même fonction et fonctionne correctement. En résumé, le bouton s'affiche, on peut lancer la fonction puisque le prompt et le alert fonctionne mais ensuite les editpage ne se lancent pas. Si on met une 2e !alert à la fin, elle ne s'affiche pas (on peut donc conclure que le problème est situé entre les 2 !alert). Cordialement.--Gratus (discuter) 19 octobre 2014 à 19:28 (CEST)
Nouvelle présentation des contenus de qualité
modifierBonjour,
Votre expertise serait la bienvenue pour la nouvelle présentation des contenus de qualité. Il s'agit de faire en sorte qu'un modèle déjà présent en bas de page ajoute du contenu en haut de page. La discussion est ici.
Merci par avance, — Jules Discuter 3 novembre 2014 à 20:27 (CET)
- Ça concerne au plus 3000 articles. Ce serait pas mieux de faire passer un bot pour modifier directement le wikitexte ?
- ⇨ Dr Brains ∞ Consultation ∞ 3 novembre 2014 à 21:49 (CET)
- Dr Brains, Jules : sur mon brouillon, j'ai décidé de prendre le problème à l'envers. Au lieu d'ajouter du contenu en haut de page, le mettre en bas de page. J'ai intégré à la page le modèle:Entête article de qualité et fait un copier-coller (partiel) du code du Modèle:Article de qualité. J'ai réussi partiellement à obtenir ce que je souhaitais : le bandeau style homonymie en haut et en bas le bandeau de bas de page sauf que ce dernier chevauche sur le bandeau des portails et sur les catégories. Peut-on résoudre ce problème ? Cordialement. £e p$y £éon (discuter) 3 novembre 2014 à 23:02 (CET)
- Bon, abandon de ma tentative à mon niveau car cette méthode ne semble pas être la bonne. Pour information, Zebulon84 avait laissé sur le bistro du 3 novembre une piste qu'il pourrait être intéressant de suivre pour ceux qui maîtrisent le javascript. Cordialement. £e p$y £éon (discuter) 5 novembre 2014 à 13:20 (CET)
- D'accord avec Dr Brains, ce serait beaucoup mieux de modifier les articles pour mettre le modèle en haut pour qu'il apparaisse en haut.
- Utiliser JavaScript ici est une mauvaise idée.
- Amicalement — Arkanosis ✉ 7 novembre 2014 à 15:43 (CET)
- Pourtant, sauf erreur de ma part, du javascript est déjà utilisé pour que l'étoile des labels soit placée à droite du titre (cf Mediawiki:commons.js). Cordialement. £e p$y £éon (discuter) 7 novembre 2014 à 15:56 (CET)
- La différence est qu'il n'est pas possible d'ajouter du contenu à droite du titre sans JavaScript voire CSS alors qu'insérer un bandeau en haut de page est possible sans. L'utilisation de Javascript doit être réduite au maximum en théorie. — Automatik (discuter) 7 novembre 2014 à 17:25 (CET)
- Ah si, maintenant il y a
<indicator>
pour les étoiles — Ltrlg (discuter), le 8 novembre 2014 à 02:56 (CET)- Tout à fait, mais à l'époque de l'installation du système d'étoiles sur WP, ça n'y était pas et on avait fait avec… Maintenant qu'on réfléchit à ne plus mettre d'étoile, cette balise ne présente plus d'intérêt pour WP-fr. — Automatik (discuter) 8 novembre 2014 à 19:29 (CET)
- Automatik : Si : pour {{Icône de titre}}.--Gratus (discuter) 8 novembre 2014 à 19:37 (CET)
- Ah effectivement. — Automatik (discuter) 8 novembre 2014 à 19:39 (CET)
- Automatik : Si : pour {{Icône de titre}}.--Gratus (discuter) 8 novembre 2014 à 19:37 (CET)
- Tout à fait, mais à l'époque de l'installation du système d'étoiles sur WP, ça n'y était pas et on avait fait avec… Maintenant qu'on réfléchit à ne plus mettre d'étoile, cette balise ne présente plus d'intérêt pour WP-fr. — Automatik (discuter) 8 novembre 2014 à 19:29 (CET)
- Ah si, maintenant il y a
- La différence est qu'il n'est pas possible d'ajouter du contenu à droite du titre sans JavaScript voire CSS alors qu'insérer un bandeau en haut de page est possible sans. L'utilisation de Javascript doit être réduite au maximum en théorie. — Automatik (discuter) 7 novembre 2014 à 17:25 (CET)
- Pourtant, sauf erreur de ma part, du javascript est déjà utilisé pour que l'étoile des labels soit placée à droite du titre (cf Mediawiki:commons.js). Cordialement. £e p$y £éon (discuter) 7 novembre 2014 à 15:56 (CET)
- Dr Brains, Jules : sur mon brouillon, j'ai décidé de prendre le problème à l'envers. Au lieu d'ajouter du contenu en haut de page, le mettre en bas de page. J'ai intégré à la page le modèle:Entête article de qualité et fait un copier-coller (partiel) du code du Modèle:Article de qualité. J'ai réussi partiellement à obtenir ce que je souhaitais : le bandeau style homonymie en haut et en bas le bandeau de bas de page sauf que ce dernier chevauche sur le bandeau des portails et sur les catégories. Peut-on résoudre ce problème ? Cordialement. £e p$y £éon (discuter) 3 novembre 2014 à 23:02 (CET)
Gadget SuppressionDeluxe.js
modifierBonjour à tous.
C'est la toute première fois que je test SuppressionDeluxe.js. Et déjà quelques interrogations apparaissent :
- Pourquoi le gadget ne reprends pas tous les intitulés de MediaWiki:Deletereason-dropdown ?
- Le motif « Purge ou renommage » est-il obsolète ?
- Je ne suis pas d'accord avec le simple commentaire « Bac à sable », incompréhensible pour un débutant, surtout quand aucun lien explicatif ne figure.
Merci d'avance pour vos réponses.
Cordialement, — Superjuju10 [Aubline à votre disposition], le 2 décembre 2014 à 09:41 (CET)
- Superjuju10 :
- Je crois que ce gadget est à revoir, car il date d'une époque où MediaWiki:Deletereason-dropdown n'existait pas : en l'état, il ajoute des boutons, un pour chaque motif, en plus de la liste déroulante. Il vaudrait mieux qu'il ajoute les motifs directement dans la liste déroulante, sous le sous-titre Motifs personnalisés.
- J'essaierai de regarder ça ce soir.
- ⇨ Dr Brains ∞ Consultation ∞ 2 décembre 2014 à 17:59 (CET)
- Superjuju10 :
- Y a plus qu'à tester...
- ⇨ Dr Brains ∞ Consultation ∞ 2 décembre 2014 à 19:29 (CET)
- Dr Brains : Oui ça marche. Mais du coup, je me retrouve avec pas mal de doublons par rapport aux motifs courants.
- Et surtout, le gadget perd son intérêt sans les boutons. Suffisait de cliquer sur un bouton sans pour autant dérouler la liste et cliquer sur le bouton supprimer. Bon perso cela ne me dérange pas, puisque je n'ai jamais utilisé le gadget auparavant, mais je crains que certains collègues n'apprécieront pas le changement. — Superjuju10 [Aubline à votre disposition], le 2 décembre 2014 à 19:38 (CET)
- Dr Brains : Snif ! snif ! j'ai plus de bouton pour supprimer, tu me diras, y'en a qui seront heureux - Bonne continuation -- Lomita (discuter) 2 décembre 2014 à 19:44 (CET)
- Lomita :
- Ils ont pas disparu, ils se sont mis dans la liste déroulante, au fond. ;)
- Superjuju10 :
- Pour les doublons, théoriquement tu peux paramétrer les motifs dans ton common.js. Il te suffit de copier/coller/modifier la partie personnalisable du script (attention le premier item est destiné au nom du groupe, pas à un motif).
- ⇨ Dr Brains ∞ Consultation ∞ 2 décembre 2014 à 21:11 (CET)
- Dr Brains : oui et non, avant j'avais et la liste déroulante, et les boutons qui sont quand même plus pratiques que dérouler la liste - Y'a t'il un moyen de récupérer ces boutons - Merci -- Lomita (discuter) 2 décembre 2014 à 21:21 (CET)
- +1 ! C'était vraiment pratique. Là le gadget n'a plus aucun intérêt : il est aussi rapide d'écrire le motif que d'aller le chercher dans cette interminable liste déroulante . Amicalement, — Jules Discuter 2 décembre 2014 à 21:35 (CET)
- Je me suis permis de rétablir l'ancienne version du script en attendant de trouver une solution.
- Dr Brains : Au pire, tu n'as qu'à créer un nouveau script avec les motifs personnalités dans la liste déroulante, au fond. Mais de toute manière, cela ne répondrai pas à ma requête d'origine. Désolé. — Superjuju10 [Aubline à votre disposition], le 2 décembre 2014 à 22:24 (CET)
- +1 ! C'était vraiment pratique. Là le gadget n'a plus aucun intérêt : il est aussi rapide d'écrire le motif que d'aller le chercher dans cette interminable liste déroulante . Amicalement, — Jules Discuter 2 décembre 2014 à 21:35 (CET)
- Dr Brains : oui et non, avant j'avais et la liste déroulante, et les boutons qui sont quand même plus pratiques que dérouler la liste - Y'a t'il un moyen de récupérer ces boutons - Merci -- Lomita (discuter) 2 décembre 2014 à 21:21 (CET)
- Dr Brains : Snif ! snif ! j'ai plus de bouton pour supprimer, tu me diras, y'en a qui seront heureux - Bonne continuation -- Lomita (discuter) 2 décembre 2014 à 19:44 (CET)
Supprimer le gadget CoinsArrondis ?
modifierBonjour, la liste des gadgets commence à devenir bien bazardesque et je me dis qu'un peu de ménage n'y ferait pas de mal.
C'est pourquoi je propose la suppression d'un beau low-hanging fruit, le gadget CoinsArrondis (css).
Celui-ci n'a qu'une utilité esthétique extrêmement mineure (en plus de n'être que pour le skin monobook). Si on se met à créer des gadgets pour ajouter trois règles CSS pour arrondir les coins des cadres, on ne va pas s'en sortir
Les monobook/etc.css personnels sont là pour ça. En prime le code peut même être retrouvé ici. (vous imaginez si on faisait des gadgets pour tout ça ?)
Paramètres "maxage" dans mw.loader.load()
modifierBonjour,
J'ai constaté que les paramètres "smaxage" et "maxage" qui étaient ajoutés dans les requêtes mw.loader.load()
pour activer la mise en cache sont maintenant inutiles. Références : discussion ResourceLoader et edit par Krinkle.
Je vous invite à les supprimer si vous en rencontrez, pour alléger la syntaxe des scripts
Bonnes fêtes de fin d'année, od†n ↗blah 31 décembre 2014 à 16:33 (CET)