Historique du fil
Horodatage | Utilisateur | Activité | Commentaire |
---|---|---|---|
Aucun résultat |
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.
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); // ===============================================