Página 1 de 1

Atualização automática das mensagens

Enviado: 24 Abr 2012, 01:07
por marcosrom
Qual a URL do seu fórum: localhost
Tipo de Hospedagem: Pago
Qual a versão do phpBB: phpBB 3.0.10
É um novo ou uma conversão: Instalação Limpa
Usuário de teste: Usuário: Senha:
Estilos instalados: xandpurple
Modificações instaladas: \Advanced BBCode Box 3 (aka ABBC3)\ \Anti-Spam ACP\ \Auto Backup\ \Breizh Ajax Checks\ \Custom Header Logo with custom backgrounds\
Qual seu nivel de experiência: Intermediario
Quando começou o problema: Atualização automática das mensagens
Descreva seu problema: Boa noite galera,

Estou preparando um fórum que receberá muitos usuários migrados do orkut. A versão atual da plataforma do Google recarrega dinâmicamente as mensagens postadas quando o usuário está visitando a última página do tópico, dispensando qualquer forma de atualização por parte do usuário.
De forma a evitar futuras reclamações de visitantes migrados, que consideram o ato de atualizar a página inúmeras vezes desagradável, gostaria de saber se há alguma solução semelhante para o recarregamento automático das mensagens no phpBB.

Re: Atualização automática das mensagens

Enviado: 24 Abr 2012, 01:09
por Chico Gois
Seria o index?

Re: Atualização automática das mensagens

Enviado: 24 Abr 2012, 01:25
por marcosrom
Na verdade poderia ser uma função específica para o viewtopic mas se for para todo o fórum, tudo bem.

Re: Atualização automática das mensagens

Enviado: 24 Abr 2012, 01:28
por Chico Gois

Re: Atualização automática das mensagens

Enviado: 24 Abr 2012, 01:34
por marcosrom
Nesse caso, caso o usuário esteja escrevendo uma mensagem e utrapasse os 60 segundos, ocorrerá a atualização e ele a perderá, certo?
Queria evitar isso atualizando somente as mensagens. ;)

Re: Atualização automática das mensagens

Enviado: 24 Abr 2012, 01:38
por Chico Gois
marcosrom escreveu:Nesse caso, caso o usuário esteja escrevendo uma mensagem e utrapasse os 60 segundos, ocorrerá a atualização e ele a perderá, certo?
Queria evitar isso atualizando somente as mensagens. ;)
´
Não vai perder, é só no index.

Re: Atualização automática das mensagens

Enviado: 24 Abr 2012, 10:43
por marcosrom
Infelizmente não é isso que procuro ainda. Essse código só atualiza o index e gostaria de uma solução para atualizar automaticamente as mensagens dos tópicos (no viewtopic) sem afetar, por exemplo, a escrita de novas mensagens (em outras palavras, que a página não atualize se o usuário estiver escrevendo uma resposta).

Re: Atualização automática das mensagens

Enviado: 27 Abr 2012, 01:45
por marcosrom
Chico,

Baseado no código para o index que você enviou, fiz uma adaptação para o viewtopic:

Código: Selecionar todos

meta_refresh(60, append_sid("{$phpbb_root_path}viewtopic.$phpEx?f=$forum_id&t=$topic_id&start=$start"));
Isso solucionou o problema da atualização das mensagens mas, ainda assim, o usuário tem que avançar para a próxima página. Se algum companheiro tivesse alguma ideia para avançar automaticamente de página ou mesmo emitir um aviso indicando que é necessário mudar a página, ficaria agradecido.

Outro ponto: a atualização ocorre mesmo quando o usuário está digitando uma resposta rápida. Não seria possível suspendê-la nesse momento?

Re: Atualização automática das mensagens

Enviado: 27 Abr 2012, 05:48
por gssilva
Como fazer para avançar para a próxima automaticamente eu não vou saber lhe dizer se tem como.
Mas tem uma coisa que você pode fazer que é alterar os valores da tabela responsável pela ordem do tópico.

Para fazer isso você terá que criar um arquivo com o nome de updatetable.php (updatetable é apenas como exemplo, mas você pode usar outro nome se assim desejar) com o seguinte conteúdo:

Código: Selecionar todos

<HTML><BODY>

<?php
$db="phpbb";
$link = mysql_connect('localhost', 'root', '');
if (! $link)
die(mysql_error());
mysql_select_db($db , $link) or die("Select Error: ".mysql_error());

$result=mysql_query("UPDATE phpbb_users SET user_post_sortby_dir = 'd' ") or die("Alter Error: ".mysql_error());
mysql_close($link);
print "Field added";
?>

</BODY>
</HTML>
Altere as linhas abaixo com as informações do seu fórum caso necessário

$db="phpbb";
$link = mysql_connect('localhost', 'root', '');


Envie o arquivo updatetable.php para a raiz do seu fórum e o execute acessando pelo link do seu fórum.
www.seusite.com/forum/updatetable.php
www.seusite.com/updatetable.php

Isso vai depender de onde o seu fórum estiver instalado. Coloque o nome do diretório em que seu fórum está instalado.

Bom, isso resolve um problema que é da ordem do tópico para os usuários já registrados, ai vem a pergunta: mas e os usuários novos?

Fazendo só o passo acima não afetará os usuários novos.
Para que os novos usuários também recebam essa configuração você deverá alterar o arquivo viewtopic.php que está na raiz do fórum.

Procure pela linha:

Código: Selecionar todos

$default_sort_dir	= (!empty($user->data['user_post_sortby_dir'])) ? $user->data['user_post_sortby_dir'] : 'a';
Substitua por:

Código: Selecionar todos

$default_sort_dir	= (!empty($user->data['user_post_sortby_dir'])) ? $user->data['user_post_sortby_dir'] : 'd';
Após fazer essa alteração e enviar o arquivo para o servidor lembre-se de limpar o cache do fórum.

Quanto a página atualizar enquanto o usuário digita eu não vou poder lhe ajudar.

O formulário do primeiro passo foi disponibilizado pelo robra, eu adaptei o código para o seu caso.


Qualquer dúvida basta postar.