Новые сообщения на форуме

Дед Анвирыч

Новичок
Это уже твои проблемы. Если тебе написали что новые - с 13 страницы, нефил лезть куда ненадо :)
 

RomikChef

Guest
Это никак.
Кстати, именно из-за геморроя с этой самой отметкой просмотренных, наверное, Новиков и не сделал постраничку.

НО!
постраничка в этом случае и не нужна толком, если новые сообщения отслеживаются.
старые можно просто не показывать.
Это очень юзабельно, можете мне поверить
 

ONK

Пассивист PHPСluba
Эххх, я бы тоже поучаствовал в обсуждении, но т.к. немогу продемонстрировать реализованный мною пример, промолчу (ну почти промолчу).
RomikChef, ты не совсем прав в оценки высказанных здесь идей, они конечно сырые, но среди них есть чтото похожее на применённый мною алогритм отслеживания прочитанности... Если Дед Анвирыч и Varg будут и дальше экспериментировать, то они придут к приемлемому со всех сторон решению.
 

RomikChef

Guest
ну, пример не можешь, но алгоритмом-то можешь поделиться?

Лично я вижу только один - отметка о времени просмотра каждой темы каждым юзером.

плюс, чистка базы просмотров раз в сутки от просмотров, скажем, за месяц.
Все темы старше жэтого срока автоматически считаются просмотренными.
или не просмотренными - как удобнее.
 

ONK

Пассивист PHPСluba
Есть и другие варианты, более экономичные и быстрые, алогиритм раскрывать не имею права (таковы текущие условия конторы), но через некоторое время я дам ссылку на тестовую версию проекта в котором реализовано очень много интересных вещей, в том числе и прецизионное отслеживание наличия непрочитанных сообщений.
 

Дед Анвирыч

Новичок
постраничка в этом случае и не нужна толком, если новые сообщения отслеживаются.
старые можно просто не показывать.
Это очень юзабельно, можете мне поверить
Энто мысль!!! Надо на выбор такую фиговину прикрутить

Лично я вижу только один - отметка о времени просмотра каждой темы каждым юзером.
Лично я тоже

но через некоторое время я дам ссылку на тестовую версию проекта в котором реализовано очень много интересных вещей
Ой, ща нас ONK подарками завалит :D
 

RomikChef

Guest
Ну, поскольку я тут, похоже, единственный, для кого алгоритм отметки новых сообщений на форуме не является СВЕРХСЕКРЕТНОЙ ГОСУДАРСТВЕННОЙ КОММЕРЧЕСКОЙ ТАЙНОЙ, я и приведу ссылку на форум, где это реализовано.

Дед, я тебе очень рекомендую посмотреть.
www.xpoint.ru - это самый удобный форум-сервер, который я видел в жизни.
 

Antropos

Guest
Если я не ошибаюсь и понял правильно вопрос, то проблема стоит в том как определять и вести учет тех сообщений что человек прочитал и того что не прочитал. Буду исходить из того что база форума MySQL.

Вообщем-то можно просто вести учет того времени когда человек в последний раз бывал на форуме а также в запись времени в таблице на каждое собщение, и запись времени на последние изменения темы и форума.
Теперь допустим зашел зарегестрированый пользователь и запускаешь весь механизм проверок, делается проверка у какой темы последние изменения произошли позже того времени когда в последний раз был человек на форуме. Эти темы естественно помечаются как новые, а данные о них пишутся в базу даных, типа таблицы (назовем ее для примера new_themes) где будет учетная запись о темах которые еще не прочитаны, после того как записи с идентефикацией новых тем записались, обновляем время последнего пребывания (чтобы можно было потом проверять если внеслись новые темы или сообщения с момента нахождения человека на форуме). Зашел человек в тему, делается проверка если тема есть в new_themes значить она новая, но раз человек в нее зашел то она уже как бы прочитана и стирается с new_themes.
И так каждый раз как человек открывает страницу с темами идет или главную страницу форума, идет проверка если сообщение было написано позже последней пометки о пребываний тема вносится в таблицу new_themes, после всех внесений и проверок время пребывания пользователя обновляется тоже (ато вдруг кто-то написал во время пока пользователь на форуме). А зашел человек в тему или в сообщение, запись о теме просто удаляется из new_themes.
Также по тому же принципу, можно вести и учет в каком форуме или теме (вернее в разделе форума) было последнее изменение и показывать его как новое.
Ну а на какой странице темы находится новое сообщение (или новое из ряда сообщений ) так это просто, ищется самое маленкое по времени сообщение из числа новых, и дается на него ссылка, а на какой странице это уже определяется легко, ты ведь знаешь сколько у тебя сообщений на страницу, и сколько сообщений вообще в теме, вот и определишь на какой странице его показывать.

Это было с зарегестрироваными пользователями, а не с зарегестрироваными, так делай просто типа регистрации для незарегестрированых пользователей (по IP адрессу), а потом в туже таблицу по тойже системе. В следующий раз когда зашел человек, просто смотрится IP, если другой то все по новой, если тот же то проверяется время последнего пребывания и тд..., с незарегестрироваными можно также хранить их последний IP в куки, а потом по ним проверять, нашел куки или старый IP, ага значит человек не стер их и уже был тут, а не нашел относишься к нему как к новому.

П.С: вообщем-то криво написал, но надеюсь что идея понятна и поможет. Просьба не судить за граматические и стилистические ошибки .
 

RomikChef

Guest
За грамматические и стилистические судить не будем, а вот за то, что ты понаписал весь этот бред - будем бить, и возможно ногами.
 

RomikChef

Guest
время, когда человек "бывал на форуме" можешь выкинуть на помойку. Это никому не надо.
От того, что он 10 раз зайдет на форум и посмотрит названия тем, пометки новых никак не изменятся.
Ну, если только, ты, конечно, не телепат, и при взгляде на название темы не видишь все ее сообщения.

По айпи адресу никто никогда ЧИТАТЕЛЕЙ ФОРУМА не считает.
Только куками.
И то - это настолько ненадежно, что лучше вообще всех считать анрегами.

Милый.
Вместо того, чтобы читать только вопрос, и неумелых потуг на него ответить, ты должен был прочесть ОТВЕТЫ и задать ВОПРОСЫ о том, что не понял.
 

Antropos

Guest
Да вообщем-то вопрос был ясен, а вот ответов я на него не увидел, в том числе и твоих. И не писал вопрос в виде ответа, я написал вариант как я бы это сделал :)

Конечно от того что человек зайдет на форум 10 раз подряд пометки тем не изменятся (разве что новые за это время добавятся), в моем варианте тема стает старой только если в нее зашли. Мне не кажется логичным считать тему просмотреной если в нее даже не заходили.

Ты не считаешь, но между тем есть большое количество людей которые ходят на форумы и только его читают, не регистрируясь и не участвуя, и не вижу ничего плохого в том чтобы позаботиться о них.

Куки я предложил как подвариант для помощи в определений, а не как что-то основное.
 

RomikChef

Guest
и не вижу ничего плохого в том чтобы позаботиться о них.
не вопрос. Но делать надо с головой.
по айапи у тебя все читатели из одного интернет-кафе будут читать одно и то же.

А если ответов не увидел - купи очки.
), в моем варианте тема стает старой только если в нее зашли.
не надо врать.
И так каждый раз как человек открывает страницу с темами идет или главную страницу форума, идет проверка если сообщение было написано позже последней пометки о пребываний тема вносится в таблицу new_themes
мальчик, я тебя очень прошу - если ты никогда не делал то, о чем берешься писать, и не имеешь опыта в программировании вообще, то не надо лезть с ответами.
я достаточно доступно для тебя объясняю?
 

RomikChef

Guest
Тема закрыта.
Если кого-то интересует ее продолжение, есть вопросы или толковые ответы - напишите мне приват - я открою.

А объяснять очередному ламеру каждую его глупость и этим захламлять нормальную тему я не буду.
 

RomikChef

Guest
подумалось.
я тут ЕДИНСТВЕННЫЙ, кто вообще хотя бы видел в глаза форум, который отмечает новые и измененные топики.

то есть, ХОТЯ БЫ представляю, чего хотеть, как оно выглядит.
Ну, и может представить доказательства, а не трындеж про секреты.
 
Сверху