Widget de status recentes

3 participantes

Ir para baixo

Tópico resolvido Widget de status recentes

Mensagem por SSChaos 01.12.16 16:42

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!
SSChaos
SSChaos
Novo Membro

Membro desde : 30/11/2016
Mensagens : 6
Pontos : 10

http://sschaos.forumeiros.com/

Ir para o topo Ir para baixo

Tópico resolvido Re: Widget de status recentes

Mensagem por SSChaos 03.12.16 14:07

Up. Seco
SSChaos
SSChaos
Novo Membro

Membro desde : 30/11/2016
Mensagens : 6
Pontos : 10

http://sschaos.forumeiros.com/

Ir para o topo Ir para baixo

Tópico resolvido Re: Widget de status recentes

Mensagem por Shek 05.12.16 15:56

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. Piscada
Shek
Shek
Principal Contribuidor
Principal Contribuidor

Membro desde : 11/04/2009
Mensagens : 19006
Pontos : 22969

https://shiftactive.blogspot.com/ https://www.facebook.com/ShiftActif https://twitter.com/ShiftActif

Ir para o topo Ir para baixo

Tópico resolvido Re: Widget de status recentes

Mensagem por SSChaos 05.12.16 16:52

Oh, entendo! Obrigado por esclarecer, Shek!
SSChaos
SSChaos
Novo Membro

Membro desde : 30/11/2016
Mensagens : 6
Pontos : 10

http://sschaos.forumeiros.com/

Ir para o topo Ir para baixo

Tópico resolvido Re: Widget de status recentes

Mensagem por Shek 05.12.16 17:01

Por favor, se sua dúvida está esclarecida, não hesite em clicar no botão Resolvido Muito feliz Obrigado desde já. Feliz
Shek
Shek
Principal Contribuidor
Principal Contribuidor

Membro desde : 11/04/2009
Mensagens : 19006
Pontos : 22969

https://shiftactive.blogspot.com/ https://www.facebook.com/ShiftActif https://twitter.com/ShiftActif

Ir para o topo Ir para baixo

Tópico resolvido Re: Widget de status recentes

Mensagem por Kyo Panda 11.12.16 0:45

Questão marcada como Resolvida ou o Autor solicitou que ela fosse arquivada.
Tópico marcado como Resolvido e movido para Questões resolvidas.
Kyo Panda
Kyo Panda
Hiper Membro

Membro desde : 08/01/2012
Mensagens : 4641
Pontos : 5939

https://ajuda.forumeiros.com

Ir para o topo Ir para baixo

Ir para o topo


 
Permissões neste sub-fórum
Não podes responder a tópicos