[Tutorial] Widget membro recentes no fórum
Página 1 de 1 • Compartilhe
Informações:
Autor: Ange Tuteur
Funcionalidade: Todas as versões
Acesse:
E Crie um novo widget com esse código:Painel de Controle ☛ Modulos ☛ Portal & Widgets ☛ Gestão dos widgets do fórum
- 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| /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:
Tópicos semelhantes
Cria uma conta ou logue para postar uma mensagem.
Você precisa ser um membro, para poder postar uma resposta.
Página 1 de 1
Permissões neste sub-fórum
Não podes responder a tópicos
|
|