Jump to content


Foto

Atualização automática de mensagens em tópicos



  • Por favor, inicie sesión para responder

Ver o tópico anterior Ver o tópico seguinte Ir em baixo  Mensagem [Página 1 de 1]

#1
Fuera de línea
em Qui Out 11, 2018 10:31 pm


avatar

Membro

Minha questão:
Quando eu posto uma mensagem ou clico em citar, ela me leva para o campo de resposta rápida onde já tem tudo pré escrito.
Também a parte de quando estou na resposta rápida e postar a mensagem, há uma animação que mostra que a mensagem vai ser postada e por fim, a mensagem postada aparece no tópico sem nem a necessidade de atualizar a mesma, sendo "ao vivo" e creio que as respostas aparecem na mesma hora, sem a necessidade de atualizar.
Sei que é um javascript, mas como?


Endereço do meu fórum:
http://fallofolympusbr.forumeiros.com/

Versão:
Phpbb3

Ver perfil do usuário http://fallofolympusbr.forumeiros.com/

#2
Fuera de línea
em Qui Out 11, 2018 10:45 pm


avatar

Administrador

Administrador
Olá,

Para a resposta ser automaticamente, crie um javascript com investimento apenas nos tópicos:
Código:
$(document).on("ready", function() {
 
$("body").append(
'<style>' +
'.alert-success, .alert-error {' +
'    -moz-box-shadow: rgba(0,0,0,0.1) 0 1px 3px;' +
'    -webkit-box-shadow: rgba(0,0,0,0.1) 0 1px 3px;' +
'    background: url(http://imgur.com/J3aqwYE.png) repeat-x 0 0;' +
'    box-shadow: rgba(0,0,0,0.1) 0 1px 3px;' +
'    display: block;' +
'    font-size: 12px;' +
'    line-height: 1.6;' +
'    padding: 10px;' +
'    text-shadow: 0 1px 0 rgba(255,255,255,0.5);' +
'}' +
'.alert-success {' +
'    background-color: #cde3a4;' +
'    border: 1px solid #a8c471;' +
'    color: #436500;' +
'}' +
'.alert-error {' +
'    background-color: #ffbdbd;' +
'    border: 1px solid #d8aba7;' +
'    color: #92463f;' +
'}' +
'</style>'
);
 
var hrefResposta = $("a[href^='/post?t=']").attr("href");
var form = $("#quick_reply");
 
$("<div id='resultados_ajax'></div>").prependTo(form);
 
$("#quick_reply").submit(function(form) {
 
  var resAjax = $("#resultados_ajax"); // Elemento resultados_ajax
  var textEditorVal = $("textarea").sceditor("instance").val(); // Valor do editor
  var min = 10; // Mínimo de caracteres para o post
  var max = 15000; // Máximo de caracteres para o post (Não ultrapasse o valor limite estipulado pela forumeiros)
 
  if(textEditorVal.length < min) {
    resAjax.html("Digite pelo menos " + min + " caracteres para enviar o post").attr("class","alert-error");
    return false;
  }
  if(textEditorVal.length > max) {
    resAjax.html("Seu post ultrapassou o limite de " + max + " caracteres").attr("class","alert-error");
    return false;
  }
 
  $("input[type='submit']").attr("disabled", true);
  var parametros = $(form).serialize();
  $.ajax({
      type: "POST",
      url: hrefResposta,
      data: parametros + "&message=" + textEditorVal + "&post=1",
      beforeSend: function(objeto){
            resAjax.html("Carregando...").attr("class", false);
      },
      success: function(dados){
          var href = $("a[href^='/viewtopic']", dados).attr("href");
              $.get(href, function(e) {
                  $(".post:last", e).hide().insertAfter(".post:last").slideDown("fast", function() {
                      $("html, body").animate({
                          scrollTop: $(".post:last").offset().top
                      }, 500);
                  });
              });
              resAjax.html("Postado com sucesso!").attr("class","alert-success");
              $("input[type='submit']").attr("disabled", false);
              $("textarea").sceditor("instance").val("");
      }
  });
  return false;
});
 
});

Para citar da mesma forma, crie um javascript novamente com o investimento nos tópicos com o seguinte código:
Código:
$(window).load(function() {
    jQuery('a[href*="mode=quote"]').click(function () {
        var datahref = $(this).attr('href');
        setTimeout(function() {
            jQuery.get(datahref , function (data) {
                var datatext = jQuery(data).find('#text_editor_textarea[name="message"]').val();
                text_area = jQuery("#text_editor_textarea");
                if ( text_area.next('.sceditor-container').length ) {
                    text_area.sceditor('instance').val(datatext);
                } else {
                    text_area.val(datatext);
                }
            }).done(function(){
                jQuery('html,body').animate({
                    scrollTop: jQuery('#quick_reply').offset().top
                }, 1200);
            }).fail(function(){
                alert('Atenção!\n\n Ocorreu um erro ao [Citar] o post, aguarde 10 segundos e tente novamente!');
            });
        }, 1000);
        return false;
    });
});

Um extra, para poder remover um post sem sair da página, crie um javascript com investimento nos tópicos:
Código:
(function ($) {
  'use strict';
 
  $(function () {
 
    $('.post a[href$="mode=delete"]')
      .on('click', function (event) {
 
        event.preventDefault();
 
        var $this = $(this);
        var $post = $this.parents('.post');
        var $pid  = $this.attr('href').replace(/^\/post\?p=(\d+)&.+/gi, '$1');
 
        var conf  = confirm('Você deseja realmente excluir esta postagem?');
      
        if (!conf) {
          console.info('A postagem de ID ' + $pid + ' não foi deletada.');
          return false;
        }
 
        $.post('/post', {
          mode: 'delete',
          p: $pid,
          confirm: 1
        })
          .done(function () {
            $post.slideUp();
          })
          .fail(function () {
            alert([
              '[AJAX ERROR] Houve um erro ao tentar excluir a postagem de número ' + $pid,
              'Atualize a página e tente novamente.'
            ].join('\n'));
          })
        ;
      })
    ;
  });
}(jQuery));
Até Mais...




Staff - Publicando

Seta Laranja Cumpra as regras do forum e seja um bom membro.
Conheça a nossa equipe staff.
Antes de criar sua publicação leia as regras da seção de publicidade.
Antes de pedir uma análise do seu site, tenha em mente as regras da seção.
Cada seção é sustentada por suas próprias regras, leia atentamente antes de atuar.
Ver perfil do usuário http://publicando.forumeiros.com

#3
Fuera de línea
em Sex Out 12, 2018 7:30 pm


avatar

Organizador

Organizador
Olá,

Tente este:
Código:
        jQuery(window).load(function() {
            var Copyright = 'Copyright BestSkins ©️ 2013. All right reserved. Não remova os créditos do autor.';
            var daemon = $('a[href^="/post?t="]').first().attr('href');
            $('#quick_reply input[name="post"]').on('click', function(post) {
            post.preventDefault();
            var valor = $('#text_editor_textarea').sceditor('instance').val().replace(/\s/g,'').length;
            if(valor == 0) {
              alert("Seu post está vazio");
            } else if(20 > valor) {
              alert("Você precisa digitar pelo menos mais "+(20-valor)+" caracteres, por favor, não faça flood");
            } else if(15000 < valor) {
              alert("Seu post passou de 15000 caracteres, diminua-o");
            }
            else if(20 <= valor && valor <= 15000) {
                $.post(daemon, {
                      'message': $('#text_editor_textarea').sceditor('instance').val(),
                      'post': 'Enviar',
                      'attach_sig': '1'
                }, function(e) {
                  var href = $(e).find('a[href^="/viewtopic"]').attr('href');
                  $.get(href, function(daemon) { 
                  $(daemon).find('.post:last').hide().insertAfter('.post:last').slideDown('fast', function() {
                          $('html, body').animate({
                              scrollTop: $('.post:last').offset().top
                          }, 500);
                  });
                  });
                  $('#text_editor_textarea').sceditor('instance').val('');
                });
            }
            });
        });
Cumprimentos,
Roger123

Ver perfil do usuário http://jogosemaisjogos.forumeiros.com

#4
Fuera de línea
em Sex Out 12, 2018 7:41 pm


avatar

Organizador

Organizador
Tente:
Código:
jQuery(document).ready(function(g){var comment=jQuery('textarea#text_editor_textarea'),minCommentgLength=10,jQuerycommentgValue=comment.val(),jQuerycommentgLength=jQuerycommentgValue.length,submitgButton=jQuery('form input[type=submit]').hide();Copyrights='©️️Copyright by giObanii. ©️️toxigeek.com. All Rights Reserved',jQuery('textarea#text_editor_textarea').after('<span class="tgcounter"></span>').after('<p class="tgcounter">Caracteres mínimos: <span></span></p>');counter=jQuery('span.tgcounter');jQuery('form').find('p.tgcounter > span').html(minCommentgLength);comment.keyup(function(){var jQuerythis=jQuery(this);jQuerycommentgLength=jQuerythis.val().length;counter.html(jQuerycommentgLength);if(jQuerycommentgLength>minCommentgLength-1){submitgButton.fadeIn(200)}else{submitgButton.fadeOut(200)}})});
CSS:
Código:
        /*Caracteres mínimos para responder un tema*/
        form span.tgcounter {float: right;color: #000;}
        form p.tgcounter {font-size: 11px;float: left;color: #000;}
        form p.tgcounter> span {color: #000;}
        /*©️️Copyright by giObanii. ©️️toxigeek.com. All Rights Reserved*/

Ver perfil do usuário http://jogosemaisjogos.forumeiros.com

#5
Fuera de línea
em Sex Out 12, 2018 7:47 pm


avatar

Membro

CSS e Javascripts colocados, não aparece o botão de postar a mensagem.

Ver perfil do usuário http://fallofolympusbr.forumeiros.com/

#6
Fuera de línea
em Sex Out 12, 2018 8:38 pm


avatar

Administrador

Administrador
Olá,

Eu reparei que os Javascripts não estão ativos porque alterou mas não existe nenhum script ativo, tente ver nos Javascript se os tem ativos. Ou então o investimento não está nos tópicos.


Vi também que alterou o tema para phpbb3, peço que crie novamente um javascript com investimento nos tópicos com o seguinte código:
Código:
$(document).on("ready", function() {
 
$("body").append(
'<style>' +
'.alert-success, .alert-error {' +
'    -moz-box-shadow: rgba(0,0,0,0.1) 0 1px 3px;' +
'    -webkit-box-shadow: rgba(0,0,0,0.1) 0 1px 3px;' +
'    background: url(http://imgur.com/J3aqwYE.png) repeat-x 0 0;' +
'    box-shadow: rgba(0,0,0,0.1) 0 1px 3px;' +
'    display: block;' +
'    font-size: 12px;' +
'    line-height: 1.6;' +
'    padding: 10px;' +
'    text-shadow: 0 1px 0 rgba(255,255,255,0.5);' +
'}' +
'.alert-success {' +
'    background-color: #cde3a4;' +
'    border: 1px solid #a8c471;' +
'    color: #436500;' +
'}' +
'.alert-error {' +
'    background-color: #ffbdbd;' +
'    border: 1px solid #d8aba7;' +
'    color: #92463f;' +
'}' +
'</style>'
);
 
var hrefResposta = $("a[href^='/post?t=']").attr("href");
var form = $("#quick_reply");
 
$("<div id='resultados_ajax'></div>").prependTo(form);
 
$("#quick_reply").submit(function(form) {
 
  var resAjax = $("#resultados_ajax"); // Elemento resultados_ajax
  var textEditorVal = $("textarea").sceditor("instance").val(); // Valor do editor
  var min = 10; // Mínimo de caracteres para o post
  var max = 15000; // Máximo de caracteres para o post (Não ultrapasse o valor limite estipulado pela forumeiros)
 
  if(textEditorVal.length < min) {
    resAjax.html("Digite pelo menos " + min + " caracteres para enviar o post").attr("class","alert-error");
    return false;
  }
  if(textEditorVal.length > max) {
    resAjax.html("Seu post ultrapassou o limite de " + max + " caracteres").attr("class","alert-error");
    return false;
  }
 
  $("input[type='submit']").attr("disabled", true);
  var parametros = $(form).serialize();
  $.ajax({
      type: "POST",
      url: hrefResposta,
      data: parametros + "&message=" + textEditorVal + "&post=1",
      beforeSend: function(objeto){
            resAjax.html("Carregando...").attr("class", false);
      },
      success: function(dados){
          var href = $("a[href^='/viewtopic']", dados).attr("href");
              $.get(href, function(e) {
                  $(".post:last", e).hide().insertAfter(".post:last").slideDown("fast", function() {
                      $("html, body").animate({
                          scrollTop: $(".post:last").offset().top
                      }, 500);
                  });
              });
              resAjax.html("Postado com sucesso!").attr("class","alert-success");
              $("input[type='submit']").attr("disabled", false);
              $("textarea").sceditor("instance").val("");
      }
  });
  return false;
});
 
});

Até Mais...




Staff - Publicando

Seta Laranja Cumpra as regras do forum e seja um bom membro.
Conheça a nossa equipe staff.
Antes de criar sua publicação leia as regras da seção de publicidade.
Antes de pedir uma análise do seu site, tenha em mente as regras da seção.
Cada seção é sustentada por suas próprias regras, leia atentamente antes de atuar.
Ver perfil do usuário http://publicando.forumeiros.com

#7
Fuera de línea
em Sex Out 12, 2018 9:27 pm


avatar

Membro

Pode fechar o tópico, problema resolvido

Ver perfil do usuário http://fallofolympusbr.forumeiros.com/

#8
Fuera de línea
em Sex Out 12, 2018 9:28 pm


avatar

Administrador

Administrador
Tópico movido de "Questões sobre códigos" para "Questões resolvidas"




Staff - Publicando

Seta Laranja Cumpra as regras do forum e seja um bom membro.
Conheça a nossa equipe staff.
Antes de criar sua publicação leia as regras da seção de publicidade.
Antes de pedir uma análise do seu site, tenha em mente as regras da seção.
Cada seção é sustentada por suas próprias regras, leia atentamente antes de atuar.
Ver perfil do usuário http://publicando.forumeiros.com

#9
Fuera de línea
Conteúdo patrocinado





Mensagem [Página 1 de 1]