Cargando...
Notificaciones Password  Username

Regresar CPortada - Mas que un foro, tu Comunidad.  » Recursos para Forumotion - Foroactivo » Scripts
Actualizar esta página Combinar mensajes seguido de un miembro de CHATBOX
Nombre de Usuario:
Contraseña:
   

Responder al tema
 
Herramientas Combinar mensajes seguido de un miembro de CHATBOX 2x97uModos de visualización Combinar mensajes seguido de un miembro de CHATBOX 2x97u

Combinar mensajes seguido de un miembro de CHATBOX UFXmlYjCombinar mensajes seguido de un miembro de CHATBOX ZcHKMjL
(#1)
Old  Supervisor
">
Underground
Supervisor
Underground
2365931114/01/2010España
 
Combinar mensajes seguido de un miembro de CHATBOX Empty Combinar mensajes seguido de un miembro de CHATBOX - 4/7/2016, 1:36 pm

Que alguna vez se molestó con un puesto tras otro en una ventana de chat que tire la primera piedra...

Bueno, no me gusta especialmente porque es un muy contaminado visual...
Pensando en esto he desarrollado un código que unifica los mensajes seguido de un miembro de la misma, haciendo una lectura muy agradable, ver el código de abajo.

1º - Javascript

In the [Javascript codes management], add as follows:
Title* : JS_ChatMSGJoin
Placement : [x] En todas las paginas.

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;
}


2º - Preview

Antes:

Combinar mensajes seguido de un miembro de CHATBOX EVqgy7H

Después

Combinar mensajes seguido de un miembro de CHATBOX YXA3ggX


Funciona en todas las versiones y el código comprueba si ya existe un "iframe" para la ventana de chat , si no se crea una!

Comentar con facebook:
Combinar mensajes seguido de un miembro de CHATBOX Imagen11
 » Temas similares en otros foros
» La información de un miembro en último mensaje
» La información de un miembro en último mensaje
» Separa Post-Its y mensajes
» [JQuery] Posibilidad de añadir tabla de normas antes del editor de mensajes
» Título completo en "Últimos mensajes".
 
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