Перейти к контенту

Рекомендуемые сообщения

Проблема вот в чём:

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

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

Ссылка на комментарий
Поделиться на других сайтах

я по сути разобрался, но я не ориентируюсь в ск4рипте, потому что я в него залез только два дня назад. (PHP знаю 2 года и уже призёр, но суть не в этом Ж) ) Короче из алгоритма я понял вот что:

 

После прочтения пост считается прочитанным.

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

Мне мешает исправить этот косяк лишь только то что я ещё не знаю досконально этот скрипт, и знания PHP не дальше книжки по PHP от издательства Питер. может более умные, или знающие скрипт люди найду место откудо перенести функцию. будем ждать.

Ссылка на комментарий
Поделиться на других сайтах

Dekker

Ну кое кто тут решил САМ проблему вроде ...

Добавлено в [mergetime]1088332729[/mergetime]

SiDChik

Если ты сделаешь глобальной - получится так, что ты зайдя в раздел и прочитав 1 тему получишь, что ты прочитал весь раздел, что ИМХО - не верно. Хотя на ЭТОМ форуме именно так и реализовано.

Ссылка на комментарий
Поделиться на других сайтах

Предыдущие обсуждения:

Новые сообщения в теме - баг всех invision'ov

Баг

 

Предлагаю всё же заняться и написать мод, поскольку дело нужное.

Вроде как по слухам есть такой мод у Songа на форуме, и у нас здесь есть, только у нас Обзор новых сообщений после этого мода жутко глючит. :D

 

Теория:

Иконборд хранит даты последнего визита по форумам в куках. Имхо, самый оптимальный вариант. Правда, если форумов много, то куки не спасут - переполнятся. 

YaBB хранит данные о посещениях в отдельной таблице. Честно сказать, это меня вообще напугало. Я так прикинул грубо, если есть 1000 пользователей, каждый из которых посетил 100 тем, то будет табличка размером в мегабайт. На порядок больше посетителей - 10 мегов. Почаще будут посещать темы - 10 мегов. Если 10000 пользователей посетят каждый по 1000 тем - табличка в 100 мегов. Для крупных форумов получится просто бешеная трата. 

Ещё теория от Vanish:

Кукисы для форума

Универсальный алгоритм отслеживания изменений

Ссылка на комментарий
Поделиться на других сайтах

Имхо, проще всего будет делать так:

* Темы:

Создать в табличке ibf_topics поле типа text. При любых обновлениях (создание, пост) записывать в это поле ID обновившего. При любых просмотрах дописывать в это поле ID просмотревшего. Проверять тему на "новизну" по наличию ID текущего пользователя в списке просмотревших тему.

* Форумы: надо подумать. :D

Ссылка на комментарий
Поделиться на других сайтах

только у нас Обзор новых сообщений после этого мода жутко глючит

я его доделал, но забыл поставить сюда, хронически виноват.

Ссылка на комментарий
Поделиться на других сайтах

  • 3 недели спустя...

Как я понял, Ваниш решил проблему просто ( пусть меня поправит Ваниш, если я не прав ) : Чел зашёл в форум определённый или его тему - значит прочитал всё в нём. Он ( Ваниш ) подсовывает челу проапдэйченную куку ( мол этот форум прочтён ) ...

$ibforums->forum_read[ $this->forum['id'] ] = time();
$std->hdl_forum_read_cookie('set');

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

 

ЗЫ Не кидаться камнями, если я неправ ... :D

Ссылка на комментарий
Поделиться на других сайтах

theIggs

В Форумс есть такой кусочек :

$last_time = $this->read_array[ $topic['tid'] ] > $ibforums->input['last_visit'] ? $this->read_array[ $topic['tid'] ] : $ibforums->input['last_visit'];
 
 if ($last_time  && ($topic['last_post'] > $last_time))
 {
	 $this->new_posts++;
	 $topic['go_new_post']  = "<a href='{$this->base_url}showtopic={$topic['tid']}&view=getnewpost'><{NEW_POST}></a>";
 }
 else
 {
	 $topic['go_new_post']  = "";
 }

Может есть возможность ввести такую же переменную new_posts в Топикс , которая будет плюс-плюсится и минус-минусится када надо, а если она ( например при заходе в тему прямо с главной ) вдруг отминус-минусится на ноль - вот только тогда подсаживать мембэру куку "Прочитан Форум" ...

Как идейка, Игорь ? И без всяких там доп таблиц и супер навороченных кукис ...

Ссылка на комментарий
Поделиться на других сайтах

Чел зашёл в форум определённый или его тему - значит прочитал всё в нём.

Вроде так и есть.

Vanish предлагал уже делать инсталляшки к тем модам, которые уже поставлены - просто это надо код просмотреть...

new_posts в Топикс
"Прочитан Форум"

Как связана одна тема и прочитанный форум?

Ты имеешь в виду, что чел должен прочесть все новые темы в форуме, чтоб форум считался прочтённым? Имхо, правильнее - если зашёл в форум, то форум уже прочтён. Потому что за то время, пока будешь там топики читать, ещё кто-то может ответить - вот тут-то и будет обновление.

Ссылка на комментарий
Поделиться на других сайтах

  • 5 недель спустя...
Гость
Эта тема закрыта для публикации сообщений.
×
×
  • Создать...

Важная информация

Находясь на нашем сайте, вы соглашаетесь на использование файлов cookie, а также с нашим положением о конфиденциальности Политика конфиденциальности и пользовательским соглашением Условия использования.