Cargando...
Notificaciones Password  Username

Regresar CPortada - Mas que un foro, tu Comunidad.  » Recursos para Forumotion - Foroactivo » Scripts
Actualizar esta página Usar chatbox sin modo "Arquivos"
Nombre de Usuario:
Contraseña:
   

Responder al tema
 
Herramientas Modos de visualización

(#1)
Old  Supervisor
">
avatar
Supervisor
Chronos
26133504/06/2012PeruMi time is now.https://i.imgur.com/95H8RF7.png
 
icon1 Usar chatbox sin modo "Arquivos" - el 16/4/2018, 4:13 pm

¡Hola gente!

El nuevo formato del chat box sólo permite conversación en el modo sin "Archivos", eso significa que en un promedio de 15 minutos las entradas van "desapareciendo"!
De ahí para tener acceso a los mensajes anteriores, tenemos que hacer clic en el enlace Archivos.

Bueno, yo soy uno de los que todavía no se acostumbraron a eso, pues en la versión anterior prevalecía los "Archivos" en la conversación, donde nos quedábamos con una lista de hasta 250 mensajes donde podríamos visualizarlos y publicar al mismo tiempo!

Para aquellos que deseen tener esta funcionalidad de la versión anterior, abran el siguiente código debajo de "Indice":

Código:
// Redefine function!
function insertChatBox(chatbox_id, chatbox_url) {
  return insertChatBoxNew(chatbox_id, chatbox_url);
}
// Redefine function!
function insertChatBoxNew(chatbox_id, chatbox_url) {
  document.getElementById(chatbox_id).innerHTML = '<iframe src="/chatbox/index.forum?archives=1" id="frame_chatbox" scrolling="no" width="100%" height="100%" marginwidth="0" marginheight="0" frameborder="0"></iframe>';
}

$(function() {
  if (_userdata.session_logged_in) {
      $('#frame_chatbox').load(function () {
        chat_archives();
      });
  }
});

function chat_archives() {
  var oIframe = (document.getElementById("frame_chatbox").contentWindow.document || document.getElementById("frame_chatbox").contentDocument),
      script = oIframe.createElement("script"),
      chatbox_script = function () {

      // "For" asynchronous loop, faster and does not lock the browser interface when you have many messages!
      (function ($) {
        $.assyncFor = function (arr, callback) {
            for (var i = 0, len = arr.length; i < len; ++i) {
              var boundCallback = callback.bind(null, i, arr[i]);
              setTimeout(boundCallback, i);
            }
            return this;
        };
      }(jQuery));

      var interval = 0;

      $("#chatbox_option_co, #chatbox_option_disco").bind("click", function () {
        $("#chatbox").empty();
      });

      Chatbox.prototype.refresh = function (data) {
        if (data.error) {
            $("body").html(data.error)
        } else {
            if (this.connected) {
              $("#chatbox_display_archives").show();
              $("#chatbox_option_co").hide();
              $("#chatbox_option_disco, #chatbox_footer").show();
              $("#chatbox_messenger_form").css('display', 'block');
              $("#chatbox_messenger_form").css('visibility', 'visible');
              $(".format-message").each(function () {
                  var name = $(this).attr('name');
                  var value = my_getcookie('CB_' + name);
                  $(this).prop('checked', parseInt(value) ? true : false)
              });
              this.format();
              if (data.lastModified) {
                  this.listenParams.lastModified = data.lastModified
              }
              if (!interval) {
                  interval = setInterval(function () {
                    chatbox.init();
                  }, 5000);
              }
            } else {
              clearInterval(interval);
              interval = 0;
              $("#chatbox_option_co").show();
              $("#chatbox_option_disco, #chatbox_footer").hide();
              $("#chatbox_display_archives").hide();
              $("#chatbox_messenger_form").css('display', 'none');
              $("#chatbox_messenger_form").css('visibility', 'hidden');
            }
            if (data.users) {
              this.users = [];
              $(".online-users, .away-users").empty();
              $(".member-title").hide();
              for (var i in data.users) {
                  var user = data.users[i];
                  this.users[user.id] = user;
                  var username = "<span style='color:" + user.color + "'>" + (user.admin ? "@ " : "") + "<span class='chatbox-username chatbox-user-username' data-user='" + user.id + "' >" + user.username + "</span>" + "</span>";
                  var list = user.online ? '.online-users' : '.away-users';
                  $(list).append('<li>' + username + '</li>')
              }
              if (!$(".online-users").is(':empty')) {
                  $(".member-title.online").show()
              }
              if (!$(".away-users").is(':empty')) {
                  $(".member-title.away").show()
              }
            }
            if (data.messages) {
              var scroll = !this.messages || this.messages.length != data.messages.length;
              this.messages = data.messages;

              if (this.messages) {
                  var oThis = this; // Here we save the current "this" for use inside "For" asynchronous loop!

                  $.assyncFor(oThis.messages, function (index, content) { // The "For" asynchronous loop...
                    // Here checks if there is already a message in the DOM, if already, not need to process the same message!
                    if ($(".shout-" + index).length) {
                        return oThis;
                    }

                    var message = content, //                                      |ClassName index|
                        html = "<p class='chatbox_row_" + (index % 2 == 1 ? 2 : 1) + " clearfix shout-" + index + "'>" + "<span class='date-and-time' title='" + message.date + "'>[" + message.datetime + "]</span>";

                    if (message.userId == -10) {
                        html += "<span class='msg'>" + "<span style='color:" + message.msgColor + "'>" + "<strong> " + message.msg + "</strong>" + "</span>" + "</span>"
                    } else {
                        html += "<span class='user-msg'>";
                        if (oThis.avatar) {
                          html += "  <span class='cb-avatar'><img src='" + message.user.avatar + "' /></span>"
                        }
                        html += "  <span class='user' style='color:" + message.user.color + "'>" + "<strong> " + (message.user.admin ? "@ " : "") + "<span class='chatbox-username chatbox-message-username'  data-user='" + message.userId + "' >" + message.username + "</span> :&nbsp;" + "</strong>" + "</span>" + "<span class='msg'>" + message.msg + "</span>" + "</span>"
                    }
                    html += "</p>";

                    /**
                      * Here the "append" will not make slow the code execution since it is not within a synchronous loop,
                      * but instead in an asynchronous loop that schedules the execution later!
                      */
                    $("#chatbox").append(html);

                    if ((index + 1) == oThis.messages.length) {
                        if (scroll) {
                          $("#chatbox")[0].scrollTop = $("#chatbox").prop("scrollHeight") * 2
                        }
                    }
                  });
              }
            }
        }
      };
      $("#chatbox").empty();
      chatbox.init();
      interval = setInterval(function () {
        chatbox.init();
      }, 5000);
  };

  script.type = "text/javascript";
  script.innerHTML = "(" + chatbox_script.toString() + ")();";
  oIframe.getElementsByTagName("head")[0].appendChild(script);
}


Nota: Si tienes algún otro código de personalización del chat, tendrás que pedir ayuda para conciliar mi código con el tuyo!

Comentar con facebook:
 » Temas similares en otros foros
» La Bateria se consume o descarga en modo reposo, stand-by, apagada...
» Consejos para usar tacones cómodamente
» como usar codigo de ajax chat para phpbb2
» Problemas con mi ChatBox
» Problema de visualización del chatbox en el foro
 
Permisos de este foro:
No puedes responder a temas en este foro.

 Los Códigos BB están Activado
 Los Emoticonos están Activado
 Código [IMG] está Activado
 Código HTML está Activado