[Tutorial] Usar o chatbox no modo arquivos

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

avatar
Admin
Administrador
Tempo Online : 176d 8h 9m 37s
Mensagens : 693
Reputação : 3
Ver perfil do usuário http://bestweb.forumais.com

MensagemAdmin em Qui Set 29, 2016 5:19 pm

Informações:

Autor: JScript
Versões: Todas as versões
Introdução: Usar o chatbox no modo arquivos

Instalação:

Acesse:
Painel de controle ->> Modulos ->> HTML & Javascripts ->> Gestão dos códigos Javascripts
Então crie um novo javascript com investimento no indice com esse código:
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);
}

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

Cria uma conta ou logue para postar uma mensagem.

Você precisa ser um membro, para poder postar uma resposta.

Criar conta

Participe de nossa comunidade, basta se registrar. É Fácil!


Criar uma conta

Logar

Já tem uma conta? Sem problemas, Logue agora.


Logar-se

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