[Tutorial] Widget membro recentes no fórum

Ver o tópico anterior Ver o tópico seguinte Ir em baixo

avatar
Admin
Administrador
Tempo Online : 176d 8h 9m 37s
Mensagens : 693
Reputação : 3
Ver perfil do usuário http://bestweb.forumais.com

MensagemAdmin em Sex Set 30, 2016 3:40 pm

Informações:
Autor:
Ange Tuteur
Funcionalidade: Todas as versões




Acesse:
Painel de Controle Modulos Portal & Widgets Gestão dos widgets do fórum
E Crie um novo widget com esse código:

Código:
<!--
DEVELOPED BY ANGE TUTEUR
NO DISTRIBUTION WITHOUT CONSENT OF THE AUTHOR
-->
<style type="text/css">#fa_recent_members { font-size:12px; font-family:Arial, Helvetica, Verdana, Sans-serif; }
.fa_rm_activity { color:#666; }
a.fa_rm_more { color:#69C; border:1px solid #69C; border-radius:3px; font-size:12px; font-family:Arial, Helvetica, Verdana, Sans-serif; text-align:center; display:block; width:100px; padding:3px; margin:auto; transition:250ms; }
a.fa_rm_more:hover { color:#FFF; background:#69C; }
.fa_recent_member { margin-bottom:12px; }
.fa_recent_member a { display:block; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; width:100%; }
.fa_recent_member a img { background:#FFF; border:2px solid #999; width:30px; height:30px; vertical-align:top; float:left; margin-right:6px; }
.now_online a img { border-color:#69C; }</style>
 
<div id="fa_recent_members"></div>
<a href="/memberlist" class="fa_rm_more">See more</a>
 
<script type="text/javascript">//<[CDATA[
(function() {
  if (!window.FA) window.FA = new Object();
  if (FA.RecentMembers) {
    if (window.console && console.warn) console.warn('FA.RecentMembers has already been initialized');
    return;
  }
 
  FA.RecentMembers = {
    amount : 5, // amount of members to show on the widget
    cache : 5*60*1000, // time the data is cached ; 5 minutes
    refreshRate : 30000, // refresh rate for checking cache expiration
    onlineIndicator : true, // show online indicator on avatar
  
    // DOM node that the widget data will be shown in
    node : document.getElementById('fa_recent_members'),
  
    // get the most recent users from the memberlist
    getRecent : function() {
      FA.RecentMembers.killPoll();
  
      var payload = document.createElement('DIV');
      jQuery.get('/memberlist?change_version=prosilver', function(d) {
        for (var a = jQuery('#memberlist tbody tr:lt(' + FA.RecentMembers.amount + ')', d), i = 0, j = a.length, block, cell; i < j; i++) {
          cell = a[i].getElementsByTagName('TD');
        
          block = document.createElement('DIV');
          block.innerHTML = cell[1].innerHTML.replace(/\?change_version=prosilver|&nbsp;/g, '').replace(/<a /, '<a title="Last Active : ' + cell[4].innerHTML + '"').replace(/<\/a>/, '<div class="fa_rm_activity">' + cell[4].innerHTML + '</div></a>');
          block.className = 'fa_recent_member';
        
          payload.appendChild(block);
        }
      
        FA.RecentMembers.node.innerHTML = payload.innerHTML;
    
        var storage = window.localStorage;
        if (storage) {
          storage.faRecentMembers = payload.innerHTML;
          storage.faRecentMembersExp = +new Date;
        }
      
        if (FA.RecentMembers.onlineIndicator) FA.RecentMembers.checkOnline();
        FA.RecentMembers.setPoll();
      });
    },
  
    // check if the users are currently online
    checkOnline : function() {
      if (!FA.RecentMembers.row) {
        FA.RecentMembers.row = jQuery('.fa_recent_member a', FA.RecentMembers.node);
        FA.RecentMembers.index = -1;
      }
    
      var a = FA.RecentMembers.row[++FA.RecentMembers.index];
      if (a) {
        jQuery.get(a.href, function(d) {
          if (jQuery('#profile-advanced-right em, .module-title em', d)[0]) {
            a.parentNode.className += ' now_online';
          }
          FA.RecentMembers.checkOnline();
        });
      } else {
        if (window.localStorage) window.localStorage.faRecentMembers = FA.RecentMembers.node.innerHTML;
        delete FA.RecentMembers.row;
        delete FA.RecentMembers.index;
      }
    },
  
    // check the cache to see if it has expired
    checkCache : function() {
      var storage = window.localStorage;
      if ((storage && storage.faRecentMembers && storage.faRecentMembersExp < +new Date - FA.RecentMembers.cache) || (!storage || !storage.faRecentMembersExp)) {
        FA.RecentMembers.getRecent();
      }
    },
  
    // set an interval to poll for changes
    setPoll : function() {
      FA.RecentMembers.poll = window.setInterval(FA.RecentMembers.checkCache, window.localStorage ? FA.RecentMembers.refreshRate : FA.RecentMembers.cache);
    },
  
    // kill the interval
    killPoll : function() {
      window.clearInterval(FA.RecentMembers.poll);
    },
  
    poll : null, // interval
  
    // initial setup
    init : function() {
      var storage = window.localStorage;
      if (storage && storage.faRecentMembers && storage.faRecentMembersExp > +new Date - FA.RecentMembers.cache) {
        FA.RecentMembers.node.innerHTML = storage.faRecentMembers;
        FA.RecentMembers.setPoll();
      } else {
        FA.RecentMembers.getRecent();
      }
    }
  
  };
 
  FA.RecentMembers.init();
}());
//]></script>

Resultado:

Ver o tópico anterior Ver o tópico seguinte Voltar ao Topo

Cria uma conta ou logue para postar uma mensagem.

Você precisa ser um membro, para poder postar uma resposta.

Criar conta

Participe de nossa comunidade, basta se registrar. É Fácil!


Criar uma conta

Logar

Já tem uma conta? Sem problemas, Logue agora.


Logar-se

 
Permissão deste fórum:
Você não pode responder aos tópicos neste fórum