[TUTORIAL] Juntar mensagens seguidas de um membro no ChatBox

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

[TUTORIAL] Juntar mensagens seguidas de um membro no ChatBox Empty [TUTORIAL] Juntar mensagens seguidas de um membro no ChatBox

Mensagem por Daemon 13.12.14 20:18


[TUTORIAL] Juntar mensagens seguidas de um membro no ChatBox Chatbox

Javascript & Chatbox


Quem nunca achou chato uma postagem atrás da outra em um ChatBox que atire a primeira pedra... Pensando nisto foi desenvolvido um código que unifica as mensagens seguidas de um mesmo membro, tornando a leitura bem agradável.


--> Tutoriais, dicas e astúcias <--
Juntar mensagens seguidas de um membro no ChatBox




- Aplicação do Javascript:
As páginas javascript ativas em seu fórum possibilita inserir scripts e jquery para personalizar seu fórum, contudo é importante saber que qualquer script encontrado na internet acabam por não surgir efeito nos fóruns.

Painel de controle >> Módulos >> HTML & JavaScript >> Gestão dos códigos JavaScripts >>
[TUTORIAL] Juntar mensagens seguidas de um membro no ChatBox Painel13
[TUTORIAL] Juntar mensagens seguidas de um membro no ChatBox 110111 Seta Título Correspondente ao nome da página JavaScript/jQuery que será criada.
[TUTORIAL] Juntar mensagens seguidas de um membro no ChatBox 110210 Seta Localização- São destinados os devidos locais para onde você aplicará os efeitos do JavaScript nos fóruns. No nosso caso, aplicaremos No índice.
[TUTORIAL] Juntar mensagens seguidas de um membro no ChatBox 110310 Seta Código JavaScript Campo destinado para receber os códigos JavaScript e jQuery.
[TUTORIAL] Juntar mensagens seguidas de um membro no ChatBox 110410 Seta Habilitar o gerenciamento dos códigos JavaScript Ao selecionar a opção sim, estará ativando a função páginas Javascript no seu fórum. Se selecionar não, as páginas serão desabilitadas no fórum.


- Código a ser usado:
Em seguida, cole o código a seguir:
Código:
        /**************************************************************************
        * Module: JS_ChatMSGJoin
        * Description: Join duplicate messages in Chat Box!
        * Author: Made and Optimizations by JScript - 2014/11/02
        * Version: Beta tester only!
        ***************************************************************************/
        jQuery(function() {
            try {
                if (jQuery('#frame_chatbox').length) {
                    if (jQuery('object#frame_chatbox').length) {
                        //  console.log('Replaced by JS_ChatMSGJoin');
                        var sHtml = '<iframe src="/chatbox/index.forum?archives=1" id="frame_chatbox" scrolling="yes" width="100%" height="100%" type="text/html" style="border: 0px;" />';
                        jQuery('#frame_chatbox').replaceWith(sHtml);
                    }
                    // jQuery(window).load(function() {
                    var ChatIframeExist = setInterval(function() {
                        if (document.getElementById("frame_chatbox").contentWindow.document.getElementById('chatbox') !== null) {
                            clearInterval(ChatIframeExist);

                            document.getElementById("frame_chatbox").contentWindow.document.getElementById('chatbox').style.display = 'none';

                            jQuery('#frame_chatbox').contents().find('#chatbox').after('<div id="js-chatbox" increment="10" pageincrement="0" maxpos="325" curpos="188"></div>');
                            // Copy entire CSS style from #chatbox to #js-chatbox id!
                            // Implemented by JScript...
                            var oStyleOrign = document.getElementById("frame_chatbox").contentWindow.document.getElementById('chatbox');
                            var oStyleCopy = document.getElementById("frame_chatbox").contentWindow.document.getElementById('js-chatbox');

                            oTarget = document.getElementById("frame_chatbox").contentWindow.getComputedStyle(oStyleOrign, "");
                            for (index = 0; index < oTarget.length; index++) {
                                oStyleCopy.style.setProperty(oTarget[index], oTarget.getPropertyValue(oTarget[index]), null);
                            }

                            document.getElementById("frame_chatbox").contentWindow.document.getElementById('js-chatbox').style.display = 'block';
                            document.getElementById("frame_chatbox").contentWindow.refresh_chatbox("?archives=1");

                            var chatbox_updated = 1,
                                chatbox_last_update = 0,
                                oTarget = jQuery('#frame_chatbox').contents().find('#chatbox > p'),
                                iLen = oTarget.length,
                                index = 0;
                            forNext(oTarget, index, iLen);

                            setInterval(function() {
                                try {
                                    if (document.getElementById("frame_chatbox").contentWindow.document.getElementById('chatbox_members').innerHTML !== '') {
                                if (!chatbox_last_update) {
                                  document.getElementById("frame_chatbox").contentWindow.document.getElementById('js-chatbox').style.display = 'block';
                                }
                                        chatbox_updated = document.getElementById("frame_chatbox").contentWindow.chatbox_updated;
                                        chatbox_last_update = document.getElementById("frame_chatbox").contentWindow.chatbox_last_update;
                                        if (chatbox_updated !== chatbox_last_update) {
                                            try {
                                                oTarget = jQuery('#frame_chatbox').contents().find('#chatbox > p');
                                                iLen = oTarget.length;
                                                index = 0;

                                                forNext(oTarget, index, iLen);
                                                document.getElementById("frame_chatbox").contentWindow.chatbox_updated = document.getElementById("frame_chatbox").contentWindow.chatbox_last_update;
                                            } catch (e) {
                                                // console.log(e);
                                            }
                                            // console.log('Changes!');
                                        }
                                    } else if (chatbox_last_update) {
                                chatbox_last_update = 0;
                                document.getElementById("frame_chatbox").contentWindow.document.getElementById('js-chatbox').style.display = 'none';
                            }
                                } catch (err) {
                                    // console.log(err)
                                }
                            }, 150);
                        }
                    }, 80);
                    // });
                }
            } catch (err) {
                // console.log(err)
            }
        });

        function forNext(oTarget, index, iLen) {
            for (; index < iLen;) {
                var oThis = jQuery(oTarget[index]),
                    sHref = oThis.find('.user > a').attr('href'),
                    oNext = oThis.next();

                if (sHref == undefined) break;

                if (oNext !== undefined) {
                    var sHrefP = oNext.find('.user > a').attr('href');

                    if (sHrefP == sHref) {
                        oThis.find('.msg').append('<div style="border: 1px solid rgb(240, 240, 240);padding: 2px 0;"><span title="">' + oNext.find('span[title]').text() + '</span> * ' + oNext.find('.msg').html() + '</div>');
                        oNext.remove();
                    } else {
                        index++;
                    }
                } else {
                    break;
                }
            }
            document.getElementById("frame_chatbox").contentWindow.document.getElementById('js-chatbox').innerHTML =
                document.getElementById("frame_chatbox").contentWindow.document.getElementById('chatbox').innerHTML;
            document.getElementById("frame_chatbox").contentWindow.document.getElementById('js-chatbox').scrollTop = 999999;
        }


  • Observações do desenvolvedor
    A atualização do código contém notas do autor.
    @JScript escreveu:Funciona em todas as versões e o código confere se já existe um "iframe" do ChatBox, se não existir será criado um!

  • Resultado:
    Antes:
    [TUTORIAL] Juntar mensagens seguidas de um membro no ChatBox OIvePLj
    Depois:
    [TUTORIAL] Juntar mensagens seguidas de um membro no ChatBox FAfpgg7





© Fórum dos Fóruns & JScript


[TUTORIAL] Juntar mensagens seguidas de um membro no ChatBox Act_bottom Se tiver alguma dúvida relacionada com este tópico crie um tópico com o seguinte título:
Juntar mensagens seguidas de um membro no ChatBox
Daemon

Daemon
Membro do Fórum

Masculino
Inscrito dia : 02/03/2012
Mensagens : 1131
Pontos Ativos : 1829

http://bestskins.forumeiros.com/

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


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