Un grand merci
Bon, afin que personne ne perde de temps pour rien, je voulais dire que ce problème de tranformation en code html dans les pages de discussion n'est très grave. En plus, l'extension subit pas mal de changements et je dervrai bientôt la mettre à jour.
Par contre, il y a un truc qui devrait pouvoir se résoudre avec du Javascript. Il y a très souvent des doublons (messages postés plusieurs fois) dans les pages de discussion. Visiblement, il s'agit de wikiminautes un peu trop impatients qui cliquent plusieurs fois sur le bouton publier. Or, il n'y a aucun systêm qui empêche la multiplication des messages. Serait-ce possible (et facilement réalisable) de "freezer" le bouton « publier » une fois appuyé?
J'ai commencé à travailler sur le bot. Pour ce faire, j'expérimente les requêtes via l'API, plus rapides que les requêtes ajax "normales" passant par index.php. Je te tiens au courant dès que ça fonctionne.
Si tu tiens vraiment à ajouter les icône sur la page d'index, il faudra se passer des inclusions de Spécial:Index et faire la liste "en dur" (mise à jour par le bot que je développe). Je ne pense pas m'y connaître assez en PHP pour intégrer ça à mediaWiki.
D'ailleurs à ce propos je me suis créé Utilisateur:Dr Bot pour tester le script (et pour voir ton problème de whosOnline, c'est pourquoi j'ai laissé la page vide). Je n'ai pour l'instant pas besoin du statut de bot, je ferai mes tests sur beta où le statut d'admin me donne le droit <tt>apihighlimit</tt> dont j'ai besoin.
Concernant les préférences, sur fr j'ai annulé la redirection automatique vers monobook. Il est en effet préférable de garder l'interface aussi proche que possible de ce que voient les enfants. Par contre, ce serait bien de remettre les préférences "normales" sur beta, et ainsi pourvoir basculer sans soucis entre les différents skins.
Pour le bandeau, je l'ai déjà fait dans mon .js perso : j'ai rétabli le skin wikimini mais j'y ai apporté quelques changements, dont le masquage de ce flash qui est effectivement énorme (par contre, je ne me suis pas préoccupé de mettre un lien masque/afficher, mais ça ce sera vite fait). Je suggère aussi un cookie pour garder en mémoire cette option et ne pas avoir à le masquer à chaque changement de page. Ca devrait être rapide à coder et tu devrais pouvoir mettre ça en place dans quelques jours (voire même peut-être demain)
Pour le double-post, ce n'est pas normal. Logiquement ça devrait conduire à un conflit de modif (mais je suppose que LiquidThread change la donne puisqu'en fait, si j'ai bien compris, il crée une nouvelle page pour chaque message). Bref, oui c'est possible de désactiver le bouton au premier clic. Je vais voir ce que je peux faire.
En parlant de LiquidThread, n'y a-t-il pas une option pour que les fils de discussion soient automatiquement ajoutés à la liste de suivi ?
Je dois dire que tu es un peu comme... tombé du ciel !
Je ne vais pas avoir le temps de le faire ce soir, mais demain soir, je vais réactiver tous les onglets dans les préférences sur la version bêta. J'en profiterai aussi pour y modifier certains liens du menu de droite qui pointent actuellement vers fr.wikimini.org
Si tu as besoin d'autre chose, fais-le moi savoir!
Ah, et à propos de la liste de suivi et liquidthreads. THEORIQUEMENT, on devrait pouvoir être averti lorsqu'on reçoit un nouveau message dans sa page de discussion ET lorsque quelqu'un répond à l'un de ses messages dans une autre page de discussion. En principe, la première notification (message laissé dans sa page de discussion perso) fonctionne : un bandeau s'affiche en haut du site. Mais je crois savoir qu'il y a parfois des problèmes. Par contre, pour ce qui est de la seconde notification (message laissé dans une autre page de discussion), cela ne fonctionne pas. Cela n'a d'ailleurs jamais fonctionné. Mais l'extension est toujours restée en version beta. Elle a connu pas mal de changements (très prometteurs) depuis, mais je n'ai pas encoure souhaité la mettre à jour, ayant eu vent de nombreux problèmes encore irrésolus sur la nouvelle version. Pour l'instant, c'est gérable, puisque l'activité du site est encore relativement limitée. On s'y retrouve donc. Mais j'espère que l'extension aboutira un jour à une version stable qui fonctionne correctement.
Pour le whosOnline, j'ai trouvé la solution.
Mais pour me faciliter la vie, il faudrait modifier la toute dernière ligne du fichier WhosOnlineSpecialPage.php afin d'ajouter un identificateur à l'élément UL qui contient la liste des utilisateurs présents. Tu peux choisir un autre identificateur si celui que j'ai choisi ne te convient pas.
AVANT
$wgOut->addHTML('<ul>'.$body.'</ul>');
APRES
$wgOut->addHTML('<ul id="WhosOnlineList">'.$body.'</ul>');
OK c'est fait!
Bon je vais devoir quitter... en tout cas m'absenter pendant un moment.
Le script pour afficher/masquer l'en-tête est au point (voir MediaWiki:Wikimini.js ).
J'avais pensé qu'on pourrait remplacer celle-ci par une liste de liens moins importante en hauteur qui serait cachée lorsque l'entête est affichée (un coup le flash, un coup la petite liste). Si ça te dis, dis-moi quels liens tu souhaites avoir et je te mets ça en place.
Pour le WhosOnline, l'id que tu as rajouté m'a beaucoup aidé. J'ai encore à régler un problème de requête mais ça devrait aller.
Je vais essayer de voir ce que je peux faire pour le bouton publier, ça me semble plus important que le WhosOnline.
Bon ben pour le double-post c'était plus simple que prévu. Voilà donc la petite fonction qu'il faut rajouter.
Elle a pour effet de masquer toute la zone d'édition lors du premier clic. Je pense que c'est suffisamment rapide pour empêcher tout double-clic.
// ============================================================================ ///////////////////////////////// Évite le double-post pour les acharnés du clic addOnloadHook( function(){ var wpSave = document.getElementById('wpSave'); if(wpSave){ wpSave.onclick = function(){ document.getElementById('editform').style.display = "none"; } } });/////////////////////////////// // ============================================================================
Et voilà le correctif javascript pour l'extension WhosOnline. Testé avec mon compte Utilisateur:Dr Bot : il apparait bien en rouge, ainsi que le page de discussion.
// =========================================================================== //////////////////////////////////////////////////// Patch extension WhosOnline function WhosOnline_CheckNewPage(position){ var ListePresents = document.getElementById('WhosOnlineList'); if(!ListePresents) return; if(!position) position=0; var Lien = ListePresents.getElementsByTagName('a')[position]; if(!Lien) return; var LienHref = Lien.href; LienHref = LienHref.split(wgServer).join('').split('/wiki/').join(''); Requete = sajax_init_object(); var url = wgServer+'/w/api.php?action=query&redirects&titles='+LienHref; Requete.open('GET',url, true); Requete.send(null); Requete.onreadystatechange = function(){ if((Requete.readyState == 4)&&(Requete.status == 200)){ var Reponse = document.createElement('div'); Reponse.innerHTML = Requete.responseText; var Spans = Reponse.getElementsByTagName('span')[7].innerHTML; if(Spans.indexOf('missing=""')!=-1){ Lien.className = "new"; } WhosOnline_CheckNewPage((position+1)); } } } addOnloadHook(WhosOnline_CheckNewPage); // ===============================================
Pour la préverntion du double clic, ça marche. Enore une fois, merci. J'ai cependant modifier un petit truc. En effet, je trouvais que de faire disparaitre toute la fenêtre était un peu brutal et pouvait surprendre l'utilisateur, lui faisant croire à un problème.
J'ai donc essayé de bloquer le bouton, mais sans succès (je ne sais d'ailleurs pas si ma tentative est correcte). Suite à cet échec, je me suis rabattu sur une autre solution. J'ai fait en sorte que seul le bouton submit soit masqué, et non pas toute la fenêtre. Ca, ça a marché. Mais que penses-tu de ma première tentative. Ce serait la solution la plus logique, non?
En ce qui concerne le correctif de l'extension WhosOnline, cela ne fonctionne malheureusement pas chez moi, même après avoir purgé le cache et rechargé le cache de mon navigateur. Sur fr.wikimini.org, le lien vers la page utilisateur reste bleu, même si elle est vide. Celui vers une page de discussion vide, en revanche, est bien rouge.
Pour le blocage du bouton :
// ============================================================================ ///////////////////////////////// Évite le double-post dans les pages de discussion LQT addOnloadHook( function(){ var wpSave = document.getElementById('wpSave'); if(wpSave){ wpSave.onclick = function(){ document.getElementById('wpSave').disabled = "disabled"; } } });/////////////////////////////// // ===========================================================================
Je vais essayer de voir ce qui cloche pour le patch de WhosOnline.
Le bot pour la mise à jour des pages à illustrer est prêt [1]. A vérifier qu'il n'a pas de faux positifs, mais normalement ça ne devrait pas être le cas. Maintenant, il faut que tu me dises si tu veux une mise en page particulière (message d'avertissement, classement, etc...).
Par ailleurs, durant mes essais je me suis aperçu qu'il y avait des pages avec le préfixe Portail: dans l'espace de noms principal. C'est normal ?
Génial! Il faudra que tu m'expliques comment faire fonctionner ce bot. Et puis il n'y a pas besoin de mise en page particulière. Ca va très bien comme ça.
Pour les pages avec le préfixe portail, ce sont des wikiminautes qui ont pris l'initiative de les créer (probablement en s'inspirant de ce qui existe sur Wikipédia). Pour l'instant, je les ai laissées... mais ne suis pas trop pour les conserver. Il faut que j'en discute avec les wikiminautes concernés.
OK pour le header [1]. J'ai mis un style pour les liens (couleur au survol), tu peux le changer si tu le souhaites.
Pour le Bot c'est ici. Je vais le tester sur fr, pour voir si FCKEditor ne pose pas de problème (je l'ai désactivé sur beta).
Pour la mise à jour, c'est très simple. Il y a un lien en haut à gauche de l'écran. Tu cliques et c'est parti.
Concernant les pages "Portail:", le problème c'est qu'elles ont été crées alors qu'il n'y a pas d'espace de noms Portail. Si tu décide de les garder, il faudra pour qu'elles aillent dans le bon espace de noms :
- créer l'espace de noms "Portail" (et "Discussion Portail")
- supprimer ces pages
- recréer les pages (je dis bien recréer, pas restaurer)
Non, je ne vis pas en Colombie. Il se trouve qu'un gars a demandé de l'aide sur le Bistro de Wikipédia pour créer le projet:Colombie. Et j'y ai répondu.
Ca se voit que tu aimes les défis! Merci, le correctif pour l'extension Whosonline fonctionne parfaitement!
J'ai testé la fonction permettant de masquer le menu flash du haut. Ca fonctionne parfaitement aussi!
Petite question : Serait-il possible d'afficher le lien "Réduire l'en-tête"/"Afficher l'entête" juste en haut du bloc "Rechercher", centré (dans la div column2). De cette manière, on éviterait de baisser encore plus la partie principale (div column1). Je pourrais éventuellement ajouter moi même le lien dans le fichier PHP de la skin, si tu m'indiques quoi ajouter exactement.
J'ai vu le script qui masque l'animation flash. C'est vraiment super. Pour les liens, les voici :
<a href="http://fr.wikimini.org/wiki/Accueil">Accueil</a> <a href="http://fr.wikimini.org/wiki/Wikimini:Enfants">Enfants</a> <a href="http://fr.wikimini.org/wiki/Wikimini:Adultes">Adultes</a> <a href="http://fr.wikimini.org/wiki/Wikimini:Enseignants">Enseignants</a> <a href="http://fr.wikimini.org/wiki/Aide:Accueil">Aide</a>
OK, je vais mettre ça en place.
Pour le WhosOnline, essaye ceci (chez moi ça marche) :
// =========================================================================== //////////////////////////////////////////////////// Patch extension WhosOnline function WhosOnline_CheckNewPage(position){ var ListePresents = document.getElementById('WhosOnlineList'); if(!ListePresents) return; if(!position) position=0; var Lien = ListePresents.getElementsByTagName('a')[position]; if(!Lien) return; var LienHref = Lien.href; LienHref = LienHref.split(wgServer).join('').split('/wiki/').join(''); Requete = sajax_init_object(); var url = wgServer+'/w/api.php?action=query&redirects&titles='+LienHref; Requete.open('GET',url, true); Requete.send(null); Requete.onreadystatechange = function(){ if((Requete.readyState == 4)&&(Requete.status == 200)){ var Reponse = document.createElement('div'); Reponse.innerHTML = Requete.responseText; //---------------------------------------------------------------------------- Partie modifiée var Spans = Reponse.getElementsByTagName('span'); for(a=0;a<Spans.length;a++){ var SpanHTML = Spans[a].innerHTML; if(SpanHTML.indexOf('missing=""')!=-1){ Lien.className = "new"; } } //------------------------------------------------------------------------------ WhosOnline_CheckNewPage((position+1)); } } } addOnloadHook(WhosOnline_CheckNewPage); // ===============================================
Ok, j'essaie ça dans 20 minutes, car je dois vite m'absenter un moment. Je reviens! Au fait, tu vis en Colombie?
J'ai dû merder quelque par, ma réponse a été insérée un peu plus haut...
essai concluant : ça marche comme sur des roulettes.
Pour info, la mise à jour (pour les 2000 et quelques pages actuellement sur le site) dure environ dix minutes.
J'ai copié le code source dans MediaWiki:Bot/PagesSansImage.js
Oups, j'ai aussi une réponse qui s'est glissée en-haut : http://fr.wikimini.org/wiki/Discussion_utilisateur:Dr_Brains#lqt_thread_3346
Clique sur le lien « Répondre » de ce message-ci, afin qu'on poursuive la discussion ici.
OK, j'ai modifié le script pour afficher le lien dans la colonne 2.
Ca necessite l'ajout d'une fonction supplémentaire hasClass() dans la page (voir ici, après les fonction pour les cookies).
Je veux bien te dire comment faire pour intégrer ça au skin, mais alors il me faut une copie du fichier /skins/Wikimini.php. Le PHP est totalement transparent pour le navigateur, je n'ai accès qu'au rendu final (HTML/JS/CSS).
Tu penses que c'est mieux de l'intégrer au skin?
J'ai aussi remarqué que le lien « Lancement BOT : Pages à illustrer » est constamment affiché en haut à gauche, dans beta, que je sois connecté ou non.
Ca peut rendre le chargement de la page plus rapide, mais je ne sais pas si le gain sera si important que ça. On peut essayer sur beta, pour voir, si ça te dis.
oui, je l'ai inséré à la fin de MediaWiki:Wikimini.js. J'avais pas pensé qu'une ip pouvait le lancer. Je vais ajouter une condition (wikitechniciens seulement).
Oui, c'est mieux de limiter l'affichage de ce lien aux wikitechniciens. Si tu veux, tu peux cliquer sur la petite enveloppe (tout en haut à droite) et m'envoyer un mail afin que je puisse te retourner le fichier wikimini.php
Et si tu penses que ça ne vaut pas la peine d'essayer, et bien restons-en là. Je vais ajouter le script sur Wikimini.js
Pas sûr de l'utilité, comme je te l'ai dit, mais je pense que ça ne coûte rien d'essayer sur beta (quitte à reverter si ça n'est pas concluant). De plus, je trouverai peut-être des trucs à améliorer. Je te maile (ça existe comme verbe ça ?) de ce pas.
Au fait, ça y est : je reçois les notifications de nouveaux message ! Tu as mis l'extension à jour ?
Non je n'ai rien changé, mais ta remarque confirme donc qu'il y a un problème!
Mais inutile de se préoccuper pour cela... Je mettrai à jour l'extension après avoir eu le temps de tester sa nouvelle version.
Pour le verbe « mailer », pas sûr que ça existe. Pour les éventuelles choses améliorables (mmh, tiens ça existe), ça c'est sûr par contre !
Heu, le lien de l'enveloppe ne marche pas. J'ai un message d'erreur "Avast protection..." qui me déclenche une mise à jour d'outlook que je ne peux pas finir car je n'ai pas le CD (c... d'ordis modernes vendus sans les cd )
Je ne trouve pas non plus la page spéciale "envoyer un mail".
L'adresse c'est bien "info Arobase NomdeDomaine" ?
Si oui, je te contacte avec ma messagerie "normale".
PS : ça y est, la notification ne marche plus...
Ayé, le mail est parti.
J'ai peut-être une piste (enfin, une pistounette on va dire) pour cette notification : là j'écris et je ne suis pas sur ma page de discussion mais sur la page spéciale Spécial:Newmessages.
Au fait, il y a encore des liens de beta qui pointent sur fr :
Dans la colonne de droite :
- "Retourner à l'accueil"
- "Image du jour"
- "Wikichampions", "pages demandées", "modifs récentes"
- "Alerte !"
Dans le footer :
- "Accessibilité"
- "Droits d'utilisation"
- "Presse & médias"
- "RSS" et "XML"
Merci! Je viens de les corriger.
Je me suis permis d'ajouter une fonction au début de la page MediaWiki:Wikimini.js (sur beta) pour afficher le site en 100% au lien de 800px. Elle rajoute aussi un lien supplémentaire (sous celui pour l'en-tête) pour vérifier le rendu en 800px.
Je ne me suis pas préoccupé de cookie et par défaut l'affichage est toujours en 100%.
Pour la "pistounette" de la notification, ça n'a rien donné . A part une mise à jour de l'extension, je ne pense pas qu'on puisse y faire grand-chose.
Hello!
Sympa cette idée d'élargir le site. On pourrait même l'intégrer dans la fr. Mais idéalement, il faudrait n'élargir que la div centrale (column 1). Et si on allait dans cette direction, on pourrait encore ajouter à côté la possibilité d'agrandir/réduire la taille du texte. Ca ferait un « petit espace » d'outils liés à l'ergonomie et l'accessibilité du site.
Ca donnerait :
Réduire l'en-tête | <> | A+ A- A (Je mettrais des icônes bien sûr).
Au fait, j'ai modifié ton dernier message. Question sécurité, mieux vaut en discuter par mail. D'ailleurs, je te proposerais même de poursuivre cette discussion par mail si cela ne te dérange pas. Normalement, j'avais créé un forum à part pour discuter du développement du site, mais je n'ai pas encore pu le mettre sur le nouveau serveur (Wikimini a migré fin 2009).
Il y a plus simple qu'un forum (ou que des mails) :
Installer sur beta (et peut-être même sur fr) l'extension LockDown et créer un nouvel espace de noms réservé aux membres d'un certain groupe ("sysop" j'imagine, à moins que tu crée aussi un autre groupe "développeurs").
J'avais d'ailleurs déjà discuté de cette extension sur Wikipédia avec quelqu'un qui voulait un espace sécurisé sur son wiki [1].
Pour le message, j'avais vu.
Vu ta rapidité de réaction, j'ai semble-t-il tapé dans le mille. Je te parle de tout ça par mail.