[Résolu] Avatar du membre ayant posté en dernier.

Voir le sujet précédent Voir le sujet suivant Aller en bas

Résolu [Résolu] Avatar du membre ayant posté en dernier.

Message par FANCH 56 le Mer 12 Sep 2012 - 20:22

Bonsoir

J'ai de nouveau un problème avec le script. Certains avatars disparaissent.



Dernière édition par FANCH 56 le Jeu 13 Sep 2012 - 8:14, édité 2 fois

FANCH 56
+ Hyperactif +

Masculin
Messages : 13260
Inscrit(e) le : 25/07/2005

http://www.anciens-cols-bleus.net/
FANCH 56 a été remercié(e) par l'auteur de ce sujet.
  • 0

Résolu Re: [Résolu] Avatar du membre ayant posté en dernier.

Message par Ea le Mer 12 Sep 2012 - 23:34

Bonjour,


Voici une version modifiée ( si ça corrige le problème, je la mettrais dans le tutoriel ) :

Code:
$(function(){
 
    if(!window.localStorage) return;
 
    // Avatar par défaut
    var default_avatar= 'http://illiweb.com/fa/invision/pp-blank-thumb.png';
 
    // Temps de cache, ici 24 h * 60 m * 60 s * 1000 ms donc un jour
    var caching_time= 24*60*60*1000;

    // Temps de cache d'une erreur, ici 60 s * 1000 ms donc une minute
    var caching_error= 60*1000;
 
    var set_avatar= function(id) {
        $('.mini_ava.member'+id).html('<img src="'+get_avatar(id)+'" />');
    };
 
    var get_avatar= function(id) {
        if(localStorage.getItem('t_ava'+id) < +new Date - caching_time || (localStorage.getItem('d_ava'+id)==default_avatar && localStorage.getItem('t_ava'+id) < +new Date - caching_error))
        {
            localStorage.setItem('d_ava'+id, default_avatar);
            $.get('/u'+id, function (d){
                localStorage.setItem('t_ava'+id,+new Date);
                localStorage.setItem('d_ava'+id, $('#profile-advanced-right .module:first div img:first,.forumline td.row1.gensmall:first > img, .frm-set.profile-view.left dd img,dl.left-box.details:first dd img, .row1 b .gen:first img, .real_avatar img',d).first().attr('src')||default_avatar);
                set_avatar(id);
            });
        }
        return localStorage.getItem('d_ava'+id);
    };
 
    var to_replace= {};
 
    $('dd.lastpost strong a.gensmall, .ipbtable tr td:last-child span strong a.gensmall, .table td.tcr strong a.gensmall, .forumline .row3.over strong a.gensmall').each(function(){
        to_replace[$(this).attr('href').substr(2)]= 1;
        $(this).closest('td,dd').prepend('<div class="mini_ava member'+$(this).attr('href').substr(2)+'"></div>');
    });
 
    for(i in to_replace)
    {
        set_avatar(i);
    };
 
});
Dans le script de base, on va chercher une image une fois toutes les 24 heures ( pour rendre plus rapide et léger le script ), mais si on a une erreur en allant la chercher, on garde l'image erronée ( on met l'image par défaut dans ce cas là ) pendant 24 heures.

Enfin avec ce script modifié-ci, dans le cas où c'est une image erronée il devrait ne la sauvegarder qu'une minute au plus normalement.

Ea
Aidactif
Aidactif

Messages : 23429
Inscrit(e) le : 04/04/2008

Ea a été remercié(e) par l'auteur de ce sujet.

Résolu Re: [Résolu] Avatar du membre ayant posté en dernier.

Message par FANCH 56 le Jeu 13 Sep 2012 - 8:14

Merci Ea

Apparemment cela fonctionne.

Bonne journée

FANCH 56
+ Hyperactif +

Masculin
Messages : 13260
Inscrit(e) le : 25/07/2005

http://www.anciens-cols-bleus.net/
FANCH 56 a été remercié(e) par l'auteur de ce sujet.

Résolu Re: [Résolu] Avatar du membre ayant posté en dernier.

Message par manue29 le Jeu 13 Sep 2012 - 9:29

Yes Avec celui-ci, ça fonctionne ! ::fete::

manue29
****

Féminin
Messages : 213
Inscrit(e) le : 21/10/2009

http://bretagne-hayabusa.superforum.fr/index.htm
manue29 a été remercié(e) par l'auteur de ce sujet.

Voir le sujet précédent Voir le sujet suivant Revenir en haut


Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum