Unofficial Bugfix Popout from overlay not working for multiservers:
O Fabricante do Livezilla já lançou sua nova versão baseada em 5.x e com ela diversas melhorias estão sendo implementadas como função de atendimento direto no navegador e suporte aos dispositivos móbile para os sistemas operacionais da Apple, Microsoft e Google. Na lista das mudanças da nova versão constam uma serie de correções de bug que não serão liberada para os pagantes da versão baseada em 4.x e muito menos para os usuários das versões Free baseado em 3.x.
Penso que as correções deveriam sim ser liberadas para quem pagou pela versão 4.x, existem bugs muito simples de serem resolvidos e que afetam diretamente a usabilidade de funções importantes para quem quer usar a ferramenta comercialmente na versão multi-server (multi-web-site).
O fato é que se você configurar o livezilla para ser usado com vários bancos de dados, separando assim as informações, você não ira conseguir usar completamente a função que permite ao cliente conversar com operador diretamente da pagina web (sem precisar abrir uma nova janela), pois caso não haja operadores online, e você desejar que o visitante seja direcionado para o formulário em outra janela, ou ainda se você ativar a função PopOut, o que o cliente vai ver quando clicar será uma nova janela de login normalmente, mas para o perfil errado que pertence ao site master (root) do servidor (aquele que você deve criar na instalação, mas que não é usado na versão multi-site, servindo apenas para configurações).
Muita gente está tendo problema com isso e muitas vezes nem fica sabendo, pois o cliente envia a mensagem e se não houver configuração de enviar a copia pro e-mail ninguém irá ver essas mensagens.
A boa noticia foi que como eu precisei ativar essa opção para a minha central de chat chamada Chat Central, eu desenvolvi uma solução muito simples de ser implementada, a qual eu disponibilizo para vocês abaixo. (Se for útil pra você deixe um comentário, compartilhe ou marque +1 no google plus)
> Acesse o ftp e baixe o arquivo a seguir do servidor:
/Pasta_do_livezilla/templates/overlays/chat/jscript/jsextern.tpl
>> Abra o arquivo no seu editor de texto / html preferido e localize a linha 25, você deve ver algo como:
--------------------------------------------------------------------
if(_click && lz_tickets_external)
{
void(window.open(lz_poll_server + 'chat.php?acid=1&'+ lz_get_parameters,'','width='+lz_window_width+',height='+lz_window_height+',left=100,top=100,resizable=yes,menubar=no,location=no,status=yes,scrollbars=yes'))
return;
}
--------------------------------------------------------------------
>>> substitua todo o texto acima por:
--------------------------------------------------------------------
if(_click && lz_tickets_external)
{ var website = lz_user_website;
void(window.open(lz_poll_server + 'chat.php?acid=1&ws='+ website +'&'+ lz_get_parameters,'','width='+lz_window_width+',height='+lz_window_height+',left=100,top=100,resizable=yes,menubar=no,location=no,status=yes,scrollbars=yes'))
return;
}
--------------------------------------------------------------------
>>>> Salve e envie o arquivo de volta para a mesma pasta no servidor (substitua)
>>>>> Repita o processo anterior com outro arquivo quase igual mas com final .js:
/Pasta_do_livezilla/templates/overlays/chat/jscript/jsextern.js
>>>>>> Ache a linha 81, você vai ver algo como:
------------------------------------------------------------------
lz_chat_change_state(true,true);
var group = (lz_operator != null) ? ("&intgroup="+lz_global_base64_url_encode(lz_operator.Group)) : "";
var operator = (lz_desired_operator != null) ? ("&intid="+lz_global_base64_url_encode(lz_desired_operator)) : "";
var name = (lz_external.Username != "") ? lz_external.Username : lz_guest_name;
void(window.open(lz_poll_server + lz_poll_file_chat + '?acid='+lz_global_base64_url_encode(lz_chat_id)+'&livezilla='+lz_global_base64_url_encode(lz_session.UserId)+'&en='+lz_global_base64_url_encode(name) + operator + group + add + "&" + lz_get_parameters,'LiveZilla','width='+lz_window_width+',height='+lz_window_height+',left=0,top=0,resizable=yes,menubar=no,location=no,status=yes,slidebars=no'));
}
------------------------------------------------------------------
>>>>>>> substitua todo o texto acima por:
--------------------------------------------------------------------
lz_chat_change_state(true,true);
var website = lz_user_website;
var group = (lz_operator != null) ? ("&intgroup="+lz_global_base64_url_encode(lz_operator.Group)) : "";
var operator = (lz_desired_operator != null) ? ("&intid="+lz_global_base64_url_encode(lz_desired_operator)) : "";
var name = (lz_external.Username != "") ? lz_external.Username : lz_guest_name;
void(window.open(lz_poll_server + lz_poll_file_chat + '?acid='+lz_global_base64_url_encode(lz_chat_id)+'&ws='+website+'&livezilla='+lz_global_base64_url_encode(lz_session.UserId)+'&en='+lz_global_base64_url_encode(name) + operator + group + add + "&" + lz_get_parameters,'LiveZilla','width='+lz_window_width+',height='+lz_window_height+',left=0,top=0,resizable=yes,menubar=no,location=no,status=yes,slidebars=no'));
}
--------------------------------------------------------------------
>>>>>>>>> Pronto a função de PopOut agora irá funcionar perfeitamente com a configuração multi-server (multi web site) nas versões 4.x.x.x do Livezillavar website = lz_user_website;
var group = (lz_operator != null) ? ("&intgroup="+lz_global_base64_url_encode(lz_operator.Group)) : "";
var operator = (lz_desired_operator != null) ? ("&intid="+lz_global_base64_url_encode(lz_desired_operator)) : "";
var name = (lz_external.Username != "") ? lz_external.Username : lz_guest_name;
void(window.open(lz_poll_server + lz_poll_file_chat + '?acid='+lz_global_base64_url_encode(lz_chat_id)+'&ws='+website+'&livezilla='+lz_global_base64_url_encode(lz_session.UserId)+'&en='+lz_global_base64_url_encode(name) + operator + group + add + "&" + lz_get_parameters,'LiveZilla','width='+lz_window_width+',height='+lz_window_height+',left=0,top=0,resizable=yes,menubar=no,location=no,status=yes,slidebars=no'));
}
--------------------------------------------------------------------
>>>>>>>> Salve e envie o arquivo de volta para a mesma pasta no servidor (substitua)
Veja abaixo a lista completa dos bug fix da versão 4.x para a 5.x do LiveZilla
* Bugfix (General): Operator/Bot profile pictures can not be changed through the admin panel (Status: Done)
* Bugfix (General): Encoding problems with vcards (Status: Done)
* Bugfix (General): Decembers months statistics in years report is incorrect (Status: Done)
* Bugfix (General):Chat transcript email shows two different times (Status: Done)
* Bugfix (General):Operator filter permission setting does not have an effect (Status: Done)
* Bugfix (General):Personal Email link is not working (Status: Done)
* Bugfix (General):No max length for chat inputs on overlay chat (Status: Done)
* Bugfix (General):Ratings cannot be deleted from local computer (Status: Done)
* Bugfix (General):Custom fields will not be shown the in the column editor form (Status: Done)
* Bugfix (General):Client throws error not enough memory. (Status: Done)
* Bugfix (General):Archived chats / Chat transcripts will be shown incorrectly when using a search query (Status: Done)
* Bugfix (General):Call back feature will not work correctly when "Auto accept chats" setting is activated (Status: Done)
* Bugfix (General):Using "<" causes problems with the formatting of the autoresponder email (Status: Done)
* Bugfix (General):Popout from overlay not working for multiservers (Status: Done)
* Bugfix (General):Problems when using overlay/on-site chats along with a custom leave message site, bug report(Status: Done)
*** Solução provida pelo SuperDidata Israel Fagundes, não há garantias que vá funcionar para todos, mas na instalação do Chat Central funcionou perfeitamente, comentários são bem vindos, já viu o anuncio?
Para ver o overlay chat em funcionamento acesse o site imobiliário Morar no Rio
----- EDITADO -----
Um plus pra quem ainda vai aguardar até 2014, origa o cliente a inserir dados
Linha 184 dentro de function lz_chat_message() !none
if(lz_operator && lz_chat_last_poster != lz_external.Id && lz_external.Email.length < 7){
document.getElementById("lz_chat_overlay_options_box").style.display = "none";
}