Автор Тема: Новые сообщения на форуме  (Прочитано 7558 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн гоша

  • Завсегдатай
  • Пользователь
  • **
  • Сообщений: 85
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
Новые сообщения на форуме
« Ответ #15 : 16 Февраля 2004, 14:24:49 »
для начала тебе надо формализовать понятие "читал".
вернее, два понятия -- "видел топик" и "читал топик".

дальше действия

-- при создании топика: видел(для всех)=читал(для всех)=0
-- при показе списка топиков: видел(для этого)=1
-- при выводе топика: видел(для этого)=читал(для этого)=1
-- при добавлении сообщения: видел(для всех)=0

можно и на дате основываться, но в этом случае сложно  реализовать "пометить топик как прочитанный" и "игнорировать топик".

Оффлайн Меняздесьдавнонет

  • новичЕк
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 5698
  • +0/-0
  • 2
    • Просмотр профиля
    • http://
Новые сообщения на форуме
« Ответ #16 : 16 Февраля 2004, 14:45:03 »
а зачем формализовывать понятие "видел"?

Оффлайн Меняздесьдавнонет

  • новичЕк
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 5698
  • +0/-0
  • 2
    • Просмотр профиля
    • http://
Новые сообщения на форуме
« Ответ #17 : 16 Февраля 2004, 14:58:22 »
Banisher
чтобы не производить всех этих действий, которые ты перечислил.


гоша однако, Новиков базируется именно на дате.
А он, в отличие от нас с тобой - практик.
Хотя, конечно, практика у него ущербная.
Но с другой стороны, данную задачу идеально реализовать невозможно

Оффлайн Меняздесьдавнонет

  • новичЕк
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 5698
  • +0/-0
  • 2
    • Просмотр профиля
    • http://
Новые сообщения на форуме
« Ответ #18 : 16 Февраля 2004, 15:01:30 »
Цитировать
2. добавление в этот же массив id\'ов тем, в которых дата последнего поста больше чем дата последнего посещения юзером форума, если этого id\'а уже нет в массиве

вот это самое ущербное место во всех рассуждениях.
гоша прав - ты путаешь понятия "видел" (а точнее - "МОГ видеть") и "читал" (а точнее - "кликал, заходил")

Оффлайн Меняздесьдавнонет

  • новичЕк
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 5698
  • +0/-0
  • 2
    • Просмотр профиля
    • http://
Новые сообщения на форуме
« Ответ #19 : 17 Февраля 2004, 15:06:18 »
еще момент.
Записывая дату, можно показывать человеку только нечитанное.
очень удобно

Оффлайн гоша

  • Завсегдатай
  • Пользователь
  • **
  • Сообщений: 85
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
Новые сообщения на форуме
« Ответ #20 : 17 Февраля 2004, 15:53:52 »
вот, набросал с датой только.
мысль в том, что кука отсылается только при просмотре треда
а читается везде.


TOPIC
	
id
	
title
	
mdate

THREAD
	
id
	
id_topic
	
title
	
mdate
	

MESSAGE
	
id
	
id_thread
	
ctext
	
mdate


topics
.php
---------------------------------

	
lastDate=$_COOKIE[...]
	

	
query (SELECT *,mdate>lastDate as new FROM topics)
	
while(
fetch(...))
	
	
if(
row[new])
	
	
	
new!
	
	
<
a href=threads.php id_topic =row[id]>row[title]</a>
	
	


threads.php id_topic
---------------------------------

	
lastDate=$_COOKIE[...]

	
query (SELECT *,mdate>lastDate as new FROM threads WHERE id_topic=$_GET[id_topic])
	
while(
fetch(...))
	
	
if(
row[new])
	
	
	
new!
	
	
<
a href=messages.php id_thread =row[id]>row[title]</a>

messages.php id_thread onlynew vieworder
---------------------------------

	
lastDate=$_COOKIE[...]
	
setCookie(lastDate,time())

	
if(
$_POST){
	
	
insert into MESSAGE...
	
	
id_topic=select id_topic from THREAD where id=id_thread
	
	
update THREAD set mdate where id=id_thread
	
	
update TOPIC  set mdate where id=id_topic
	
	
redirect
	
}

	
$sql SELECT *,mdate>lastDate as new FROM messages WHERE id_thread=$_GET[id_topic]) ORDER BY mdate $_GET[vieworder]
	
if(
$_GET[onlynew])
	
	
$sql.= HAVING new > 

	
query($sql)
	
while(
fetch(...))
	
	
if(
row[new])
	
	
	
new!
	
	
row[ctext]


очень схематично конечно.
надо подумать.

 

Sitemap 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28