[Addon] Usar o chat no modo "Arquivos"!

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

  • 0

Em curso [Addon] Usar o chat no modo "Arquivos"!

Mensagem por JScript em 24/03/15, 06:52 pm


Usar o chat no modo "Arquivos"!
Olá pessoal!

O novo formato do chat box só permite conversação no modo sem "Arquivos", isso significa que em uma média de 15 minutos as postagens vão "sumindo"!
Daí para termos acesso as mensagens anteriores, temos que clicar no link Arquivos.

Bom, eu sou um dos que ainda não se acostumaram com isso, pois na versão anterior prevalecia os "Arquivos" na conversação, onde ficávamos com uma lista de até 250 mensagens onde poderíamos visualizá-las e postar ao mesmo tempo!
Características e aplicação
Criador: JScript
Versão: 1.0
Versão: Todas as versões
Resultado da aplicação
O resultado da aplicação será:
Local de instalação
A instalação é única, e pode ser feita apenas criando um novo javascript.

   Acesse Painel de Controle ->> Módulos ->> HTML & JAVASCRIPT ->> Gestão dos códigos JavaScript >>
Crie um novo JavaScript com investimento apenas no Índice
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;:&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: Se tiveres algum outro código de personalização do chat, terás que pedir ajuda para conciliar o meu código com o seu!


Última edição por Shek em 01/06/15, 01:14 pm, editado 4 vez(es) (Razão : Melhorias e correções no código!)
avatar

JScript
Membro do Fórum

Masculino
Inscrito dia : 14/03/2013
Mensagens : 1449
Pontos Ativos : 1900

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

Em curso Re: [Addon] Usar o chat no modo "Arquivos"!

Mensagem por Sennior em 28/04/15, 02:21 am

Pessoal aqui funcionou... Alguém mais poderia testar?
avatar

Sennior
Membro profissional
Membro profissional

Masculino
Inscrito dia : 10/06/2011
Mensagens : 16302
Pontos Ativos : 20791

Ver perfil do usuário http://ajuda.forumeiros.com/forum https://www.facebook.com/GlladstonHenrique
  • 0

Em curso Re: [Addon] Usar o chat no modo "Arquivos"!

Mensagem por APOllO em 10/05/15, 04:04 pm

@Sennior em meu fórum funcionou perfeitamente Piscada
avatar

APOllO
Membro do Fórum

Masculino
Inscrito dia : 08/12/2014
Mensagens : 1004
Pontos Ativos : 1402

Ver perfil do usuário http://suportedesign.forumeiros.com https://twitter.com/@ApolloCray

Em curso Re: [Addon] Usar o chat no modo "Arquivos"!

Mensagem por HeadhunteR em 01/06/15, 09:38 am

eu tenho chatbox retratil tambem funciona quando estao em tópicos etc, como é so no inidice...?
avatar

HeadhunteR
Nível 7

Masculino
Inscrito dia : 28/10/2013
Mensagens : 86
Pontos Ativos : 114

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

Em curso Re: [Addon] Usar o chat no modo "Arquivos"!

Mensagem por HeadhunteR em 05/06/15, 11:00 am

?
avatar

HeadhunteR
Nível 7

Masculino
Inscrito dia : 28/10/2013
Mensagens : 86
Pontos Ativos : 114

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

Ver o tópico anterior Ver o tópico seguinte Voltar ao Topo

- Tópicos similares

Permissão deste fórum:
Você não pode responder aos tópicos neste fórum