Widget de status recentes
3 participantes
Fórum dos Fóruns :: Ajuda e atendimento ao utilizador :: Questões sobre códigos :: Questões resolvidas sobre códigos Javascript e jQuery
Página 1 de 1
Widget de status recentes
Detalhes da questão
Endereço do fórum: sschaos.forumeiros.com
Versão do fórum: Invision
Descrição
Fiz uma busca (https://ajuda.forumeiros.com/search?search_keywords=status+recentes) no fórum e infelizmente não encontrei resposta para a minha pergunta, então...
Pessoal, seria possível criar um widget de status recentes? Sendo mais claro, uma pequena caixa contendo os últimos status recentes dos usuários do fórum?
Até o presente momento, sei que é possível criar um widget de atualização de status sem que o usuário precise ir até o perfil para isso e todos deram certo para mim, mas nenhum deles deixava um histórico de status recentes colocados lá.
Código que uso atualmente:
- Código:
<div id="recent_status">
Carregando...
</div><script type="text/javascript">
jQuery(function() {
var el = jQuery('#recent_status');
var session = _userdata.session_logged_in;
var content = '';
if(session > 0) {
content = '<a href="javascript:void(0)" onclick="atualizarStatus()" class="atualiza_status">Atualizar Status</a>';
} else {
content = '<a href="/login" class="atualiza_status">Fazer login</a>';
}
jQuery.ajax({
url: '/u1wall',
type: 'GET',
success: function(responseHtml)
{
var status = jQuery('li.clearfix:contains("status_update")', responseHtml).wrapAll('<div>').parent().html();
if(status) {
content = '<ul>' + status + '</ul>' + content;
el.html(content).each(function() {
jQuery(this).html(
jQuery(this).html()
.replace(/\ - status_update/g,'')
).find('ul.message-footer, .message-header img, .message-header em').remove();
});return false;
}
content = 'Não há status atualizado recentemente' + content;
el.html(content);
},
error: function(err)
{
console.log("AJAX error in request (Recent status update: Loading messages)");
}
});
});
function atualizarStatus() {
var novoStatus = prompt("Digite o seu novo status:");
if(novoStatus === '') {
alert("Vazio");
} else if(novoStatus === null) {
return false;
} else {
var TID = jQuery('a[href*="tid="]').attr('href').split('tid=')[1].split('&')[0];
jQuery.post("/ajax_profile.forum?jsoncallback=?", {
id: -20,
user: _userdata.user_id,
active: "1",
content: '[["profile_field_2_-20", "' + novoStatus + '"]]',
tid: TID
}, function(data){/*Only for calback reasons!*/},
"json"
).done(function() {
jQuery.ajax({
url: '/u1wall',
type: 'GET',
success: function(responseHtml)
{
var matches = responseHtml.match(/\- (.*?)<\/title\>/);
var user = matches[1];
jQuery.post('/privmsg?mode=post_profile', {
message: novoStatus,
post: '1',
subject: 'status_update',
folder: 'profile',
username: user
}).done(function() {
alert("Status atualizado & salvo com sucesso!");
location.reload();
});
},
error: function(err)
{
console.log("AJAX error in request (Recent status update: Save in profile)");
}
});
}).fail(function() {
console.log("AJAX error in request (ajax_profile)");
});
// To fast return!!!
return false;
}
}
</script><style type="text/css">
.atualiza_status {
display: block;
margin-top: 8px;
text-align: center;
background-color: #f0f0f0;
padding: 6px;
border: 1px solid #e0e0e0;
}
#recent_status > ul {padding-left: 0 !important;}
#recent_status ul li.clearfix {list-style-type: none;padding: 5px 0;}
#recent_status .avatar {
float: left;
-moz-border-radius: 0;
-moz-box-shadow: 0 2px 2px rgba(0,0,0,0.1);
-webkit-border-radius: 0;
-webkit-box-shadow: 0 2px 2px rgba(0,0,0,0.1);
background: #fff;
border: 1px solid #d5d5d5;
border-radius: 0;
box-shadow: 0 2px 2px rgba(0,0,0,0.1);
padding: 1px;
}
#recent_status .avatar, #recent_status .avatar img {
height: 30px;
width: 30px;
}
#recent_status .message-date {float: right;}
#recent_status .message-block {margin-left: 40px;}
</style>
Obrigado!
Re: Widget de status recentes
Desculpe, mas, o tal histórico que você quer é, por exemplo, se ele trocar o status a mensagem anterior ficar arquivada? Isso até que poderia ser possível, mas, para tal coisa é necessário dois detalhes:
- Outro campo de perfil que permita edições do usuário, para quando o membro salvar o novo status, o antigo seja salvo também;
- Consequentemente, não daria tão certo, porque, se o usuário mudasse o status, ele poderia ir neste mesmo campo e deletar tudo de lá! Seria uma opção travar o campo? Seria, mas, se fizer isso com o controle de autorizações do recurso de perfis, ele não poderá salvar o status anterior, ao não ser que ele tenha acesso a edição daquele campo.
Mesmo que haja um script que faça isso, da forma que deseja, o membro pode desativar o script do navegador e deletar o histórico.
- Outro campo de perfil que permita edições do usuário, para quando o membro salvar o novo status, o antigo seja salvo também;
- Consequentemente, não daria tão certo, porque, se o usuário mudasse o status, ele poderia ir neste mesmo campo e deletar tudo de lá! Seria uma opção travar o campo? Seria, mas, se fizer isso com o controle de autorizações do recurso de perfis, ele não poderá salvar o status anterior, ao não ser que ele tenha acesso a edição daquele campo.
Mesmo que haja um script que faça isso, da forma que deseja, o membro pode desativar o script do navegador e deletar o histórico.
Re: Widget de status recentes
Por favor, se sua dúvida está esclarecida, não hesite em clicar no botão Obrigado desde já.
Re: Widget de status recentes
Questão marcada como Resolvida ou o Autor solicitou que ela fosse arquivada. Tópico marcado como Resolvido e movido para Questões resolvidas. |
Fórum dos Fóruns :: Ajuda e atendimento ao utilizador :: Questões sobre códigos :: Questões resolvidas sobre códigos Javascript e jQuery
Página 1 de 1
Permissões neste sub-fórum
Não podes responder a tópicos