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

5 participantes

Ir para baixo

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

Mensagem por JScript 24.03.15 21:52


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á:
[Addon] Usar o chat no modo "Arquivos"! LUdCPFY
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/?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 Pedxz em 04.11.19 22:57, editado 6 vez(es) (Motivo da edição : Melhorias e correções no código!)
JScript
JScript
Super Membro

Membro desde : 15/03/2013
Mensagens : 1449
Pontos : 1901

http://jscript.forumeiros.com/

Ir para o topo Ir para baixo

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

Mensagem por Sennior 28.04.15 6:21

Pessoal aqui funcionou... Alguém mais poderia testar?
Sennior
Sennior
Principal Contribuidor
Principal Contribuidor

Membro desde : 10/06/2011
Mensagens : 16379
Pontos : 20903

https://ajuda.forumeiros.com/forum https://www.facebook.com/GladstonHenriq https://twitter.com/UmGladston

Ir para o topo Ir para baixo

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

Mensagem por APOllO 10.05.15 20:04

@Sennior em meu fórum funcionou perfeitamente Piscada
APOllO
APOllO
Super Membro

Membro desde : 08/12/2014
Mensagens : 1104
Pontos : 1529

http://suportedesign.forumeiros.com

Ir para o topo Ir para baixo

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

Mensagem por HeadhunteR 01.06.15 13:38

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

Membro desde : 28/10/2013
Mensagens : 86
Pontos : 114

http://rockillers.forumeiros.com/

Ir para o topo Ir para baixo

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

Mensagem por HeadhunteR 05.06.15 15:00

?
HeadhunteR
HeadhunteR
**

Membro desde : 28/10/2013
Mensagens : 86
Pontos : 114

http://rockillers.forumeiros.com/

Ir para o topo Ir para baixo

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

Mensagem por tikky 04.11.19 22:58

04.11.2019

Código atualizado por mim. Alterações do funcionalmente dos fóruns Forumeiros.
tikky
tikky
Admineiro
Admineiro

Membro desde : 13/01/2017
Mensagens : 7962
Pontos : 9217

Ir para o topo Ir para baixo

Ir para o topo


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