Inscris-toi pour écrire dans l'encyclopédie Wikimini!

Historique du fil

Fragment d’une discussion sur Discussion utilisateur:Dr Brains
Visualisation d’un historique
Jump to navigation Jump to search
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>');
Dr Brains (discussion)12 janvier 2010 à 23:40

OK c'est fait!

Bon je vais devoir quitter... en tout cas m'absenter pendant un moment.

Lorangeo (discussion)13 janvier 2010 à 00:06

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.

Dr Brains (discussion)13 janvier 2010 à 02:48

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";
        }
    }
});///////////////////////////////
// ============================================================================
Dr Brains (discussion)13 janvier 2010 à 03:15

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);
// ===============================================
Dr Brains (discussion)13 janvier 2010 à 05:23

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. [-sMiLeY-]

Lorangeo (discussion)13 janvier 2010 à 22:05
 
 

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>

Lorangeo (discussion)13 janvier 2010 à 22:42

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);
// ===============================================


Dr Brains (discussion)13 janvier 2010 à 22:47

Ok, j'essaie ça dans 20 minutes, car je dois vite m'absenter un moment. Je reviens! Au fait, tu vis en Colombie?

Lorangeo (discussion)13 janvier 2010 à 22:53
 
 
 
 
 
Wikiboo Outils personnels