post #1 (permalink) Antiguo 13-ago-2008, 08:17
Predeterminado Como hacer el tema de "mensajes no leidos" en un foro...
Hola gente,

Quisiera saber si alguien tiene idea de como trabaja simplemachines, phpbb o cualquier otro el tema de los avisos de mensajes nuevos en un tema...

Es decir, al principio pense que lo hacia por hora, es decir, si el topic se creo despues de tu ultima visita o te lo pone como nuevo, pero entonces, tengo que gardar la hora de ingreso de cada usuario a cada topico?, esto hace que la base se vuelva lentisima y con un total de datos irracional... y no basta con guardar la hora de acceso al foro, puesto que en una categoria puede haber varios foros que a su vez tienen miles de topicos, y si algun tipico dentro de un foro esta sin leer tengo que marcar, tambien, ese foro como no leido...

Uno de mis foros trabaja como dije anteriormente, y como estoy renovandolo quisiera saber como lo hacen los grandes foros...

Quizas es una boludes y el arbol no me deja ver el bosque, por eso pido ayuda...

Saludos!
Usuario Avanzado
Fecha de Ingreso: may-03
Mensajes: 2,099
Gracias dadas: 0
Agradecido 0 veces en 0 Mensajes
FuLaNo_ está desconectado
Responder Citando
post #2 (permalink) Antiguo 13-ago-2008, 13:31
Predeterminado Re: Como hacer el tema de "mensajes no leidos" en un foro...
Yo tengo la misma duda desde hace bastante tiempo, y muchas otras más, pero nunca tuve tiempo de ponerme a averiguar o simplemente me olvidaba.. O porque no lo necesité nunca, ya que hasta ahora no programé ningun foro desde 0 como vos..

Concuerdo en que tambien tenia la idea de que lo hacía por tiempo...

Voy a googlear esta tarde-noche si me hago un time, para ver si encuentro algo... Ya que ahora si surge la necesidad de saberlo...

__________________

elrincondemariano.com.ar
ComunidadArgentina.net
Usuario Normal
Fecha de Ingreso: sep-04
Edad: 21
Mensajes: 1,434
Gracias dadas: 0
Agradecido 0 veces en 0 Mensajes
crazyboy está desconectado
Responder Citando
post #3 (permalink) Antiguo 14-ago-2008, 12:19
Predeterminado Re: Como hacer el tema de "mensajes no leidos" en un foro...
yo me hice la misma pregunta hace unos meses y por lo que ví dependía del foro...

phpbb usa el tema del tiempo: compara la fecha de tu última sesión con la fecha de los posts, algo así:

Código:
$sql = "SELECT post_id FROM " . POSTS_TABLE . " WHERE post_time >= " . $userdata['user_lastvisit'];
smf, en cambio, tiene una tabla llamada smf_log_mark_read donde va guardando los mensajes que leyó cada usuario... tiene 3 campos: usuario, categoría y mensaje

la segunda seguramente consume menos recursos, pero te genera muchos dolores de cabeza a la hora de crear las querys
__________________
pinicio.com.ar
Usuario Normal
Fecha de Ingreso: nov-03
Edad: 29
Mensajes: 271
Gracias dadas: 0
Agradecido 0 veces en 0 Mensajes
r_bradbury está desconectado
Responder Citando
post #4 (permalink) Antiguo 14-ago-2008, 12:36
Predeterminado Re: Como hacer el tema de "mensajes no leidos" en un foro...
Buena info r_bradbury...!!

Lo que si me quedó en claro, es que no era tan "sonso" como creí que se trataba...

O sea, tenes 2 chances, o quemar recursos, o neuronas al momento de hacer las querys... ;D


Podríamos idear otra y "patentarla" !! :P jaja... Podríamos poner algun tipo de proyectito asi aca, para desarrollar cosas LIBRES...

Y de paso, te damos una mano fulano...
__________________

elrincondemariano.com.ar
ComunidadArgentina.net
Usuario Normal
Fecha de Ingreso: sep-04
Edad: 21
Mensajes: 1,434
Gracias dadas: 0
Agradecido 0 veces en 0 Mensajes
crazyboy está desconectado
Responder Citando
post #5 (permalink) Antiguo 14-ago-2008, 13:15
Predeterminado Re: Como hacer el tema de "mensajes no leidos" en un foro...
yo prefiero el sistema de smf, porque si vos con phpbb te conectas pero no revisas ningun mensaje, cuando te volves a conectar, todos esos mensajes que no habias leidos aparecen como leidos, y es un garron (por esos festeje mucho el cambio de sistema en user, porque mi hermano a veces me habria la pagina sin querer y me marcaba los threads y tenian que empezar a mirar las fechas)
Super Moderador
Fecha de Ingreso: dic-03
Edad: 24
Mensajes: 5,910
Gracias dadas: 0
Agradecido 3 veces en 3 Mensajes
Enviar un mensaje por MSN a p4bl1t0 Enviar un mensaje por Skype™ a p4bl1t0
p4bl1t0 está desconectado
Responder Citando
post #6 (permalink) Antiguo 14-ago-2008, 13:25
Predeterminado Re: Como hacer el tema de "mensajes no leidos" en un foro...
en realidad la segunda opcion es la que uso actualmente, pero esta genera mas recursos que la otra... tengan en cuenta que tengo que meter un registro cada vez que un usuario entra en un topico... la otra simplemente guarda la fecha (usando un update) de cada visita...

El tema de la primera opcion que, creo yo, es la mas rapida y la que menos recursos consume* es que tiene mas queryes... puesto que tenemos que crear una funcion que nos diga, por ejemplo, si hay topicos creados o con respuestas > now() y ahi mostrar la imagen de "topicos nuevos" del foro... y luego lo mismo para cada topico una vez que estamos dentro del foro (categoria)... medio enquilombado...


* para mi consume menos recursos por el simple hecho de que tenemos una tabla con la misma cantidad de registros que la tabla "users"... en cambio, si guardamos en una tabla un 1 cada vez que el usuario visita un tipico podremos llegar a tener users * topics, me explico? y esto a la hora de, luego, hacer la busqueda para mostrar la imagen de cada topico (mensajes nuevos, no mensajes nuevos, etc) es un quilombo.... en cambio:

sistema por fecha:

cuando listo los topicos estos ya tienen en la misma tabla guardada la hora de creación y/o inserción del ultimo mensaje, entonces solo comparo dicha fecha con la fecha guardada en la tabla users.lastvisit, me explico? pero perdon, vale recalcar que la fecha se guarda en una tabla junto al ID de la categoria, entonces tenes una tabla que puede tener una cantidad de registros bastante inferior a la de topicos, porque tendrias users * categories, en un foro no hay mas de 30 categorias, se entiende?

Luego hariamos algo asi:

topic.lastinsert(datetime) > user.lastvisit(datetime) WHERE `id_category` = N
-> Hay mensajes nuevos en este topico
else
-> No hay mensajes nuevos en este topico


uff, no se si me explico, o si lo que quiero decir es una boludez...
Usuario Avanzado
Fecha de Ingreso: may-03
Mensajes: 2,099
Gracias dadas: 0
Agradecido 0 veces en 0 Mensajes
FuLaNo_ está desconectado
Responder Citando
Respuesta

Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

Ir al Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
como hacer un "switch" casero? tiinchooo POWER USERS 30 25-oct-2009 16:42
Tema cartuchos: es seguro el "sistema contínuo"? ya que es muy económico jac USERS 2 08-dic-2008 14:15
Necesito hacer "bootear" mi pen usb!!! : erkulez POWER USERS 0 12-may-2005 00:00
BASTA de mandar mensajes "privados", por _kq_ Microsoft Windows 18 17-ene-2005 23:00
Cruzada "rubiatop" por un Foro con mujer _kq_ General 1 14-ago-2004 00:00


La franja horaria es GMT -3. Ahora son las 05:21.