[Tutorial] Widget atualização de status

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

avatar
Admin
Administrador
Tempo Online : 250d 6h 21m 59s
Mensagens : 693
Reputação : 4
Ver perfil do usuário http://bestweb.forumais.com

MensagemAdmin em Sex Set 30, 2016 1:13 pm

Informações:
Autor:
While
Funcionalidade: Todas as Versões




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

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>

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