Русское сообщество fluxbb

Быстрый лёгкий надёжный форумный движок

Вы не вошли.

Объявление

Вы можете внести свой вклад в содержание сайта. Жертвователи попадут в почетную группу "Спонсоры". Поддержать сайт.

#101 2006-11-27 14:43:33

Slavik
Гость

Re: Real Mark Topic as Read -=+ пометка тем как прочтенные +=-

hcs пишет:

Теоретически можно. Я уже писал об этом - потратил много времени, результата не достиг. Желающие изменить этот механизм - милости просим.

Ну а как-нибудь, например, если ответ в форуме, тогда для всех форум делать непрочитанным, а при прочтении темы проверять топики, если нет непрочитанных то снимать отметку с форума?

#102 2006-11-27 17:32:05

mnk
Гость

Re: Real Mark Topic as Read -=+ пометка тем как прочтенные +=-

А какой алгоритм проверки форума на непрочтение?

#103 2006-11-27 19:06:11

hcs
Гость

Re: Real Mark Topic as Read -=+ пометка тем как прочтенные +=-

if (!$pun_user['is_guest'] && 
   !is_reading( $cur_forum['log_time'], $cur_forum['last_post']) && 
   $cur_forum['last_post'] > $cur_forum['mark_read'] && 
   $cur_forum['poster_id'] != $pun_user['id'] &&
   ($cur_forum['last_post'] > $pun_user['last_visit'] ||  (time() - $cur_forum['last_post'] < $pun_user['mark_after']) )) {
// форум не прочтен
}

#104 2006-11-29 08:53:19

mnk
Гость

Re: Real Mark Topic as Read -=+ пометка тем как прочтенные +=-

Я не совсем понял, как сделано на этом форуме, но вот такой вариант.
Есть таблица id-пользователя, id-топика, id-форума и время последнего входа.(id-форума -не обязательно)
При входе пользователя в топик в эту таблицу заносится или апдейтится запись.
При входе на первую страницу выполняется запрос по каждому форуму и топику в нем, и если  время последнего сообщения в топике больше времени последнего входа или нет записи в таблице и время последнего сообщения меньше 15 дней, то форум считается не прочитанным.
Количество записей в базе будет большим, но судя по форуму http://forum.visp.ru/, где на данный момент 1307 зарегистрированных пользователей, 6582 тем и 120434 сообщений и форум очень посещаемый и висит еще в локальной сети, то вроде все должно работать. К тому же мы очень уменьшаем таблицу, вводя время, через которое считается, что топик прочитан и его должен выбирать администратор.

#105 2006-11-29 09:01:07

hcs
Гость

Re: Real Mark Topic as Read -=+ пометка тем как прочтенные +=-

mnk пишет:

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

Положим что записи есть (есть темы которые юзер точно читал), но есть темы время которых меньше времени последнего захода (т.е. старые) и время которых меньше чем 15 (темы еще актуальны) и которые не представлены в нашей таблице, т.е. юзер их не читал.
А теперь кто-бы всё это объединил в запросе и в условии????

#106 2006-12-03 20:06:54

Px
Гость

Re: Real Mark Topic as Read -=+ пометка тем как прочтенные +=-

hcs пишет:

Во viewtopic.php, т.е. после посещения темы, таблица обрастает новой записью, из которой понятно какойо юзер, какую тему посмотрел и во сколько. Либо если ранее этот юзер уже посещал эту тему и в таблице есть запись об этом - обновляется время посещения.

Ага, т.е. надо добавить в запись кроме юзер/время/тема ещё информацию о разделе. При заходе на форум, из базы делается последовательно выборка по разделам, и сравнение времени посещения темы в разделе с временем последнего поста в разделе. Как только натыкаемся на "время посещения темы" <"время последнего поста", раздел считаем непрочитанным. Возникающая проблема - есть новая тема, в которой пользователь ещё не был, потому нет записи о её посещении в таблице. Решение - сравниваем количество тем в разделе в интервале "сегодня" - "сегодня - срок пометки тем прочитанными", и если оно не совпадает - раздел не прочитан. В противном случае - раздел прочитан. И так последовательно по всем разделам.

#107 2006-12-04 08:24:59

mnk
Гость

Re: Real Mark Topic as Read -=+ пометка тем как прочтенные +=-

Px пишет:

Возникающая проблема - есть новая тема, в которой пользователь ещё не был, потому нет записи о её посещении в таблице.

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

#108 2006-12-06 11:54:34

ElfMK
Гость

Re: Real Mark Topic as Read -=+ пометка тем как прочтенные +=-

hcs пишет:

Готова втарая редакция беты.
Сделан инсталлер, инсталлер умный, поэтому можно запускать без опасений что будет ошибка, даже если уже установлена первая бета. Но следующая установка в ридми уже не такая, поэтому обязательно все проверьте. Ридми стал более сложный, будьте предельно внимательны.
Мод отмечает темы и разделы только после их посещения или по прошествии указанного в профиле ( в секции display ) количества дней, но не более 100. Это сделано чтобы уменьшить нагрузку на БД, хотя честно говоря это всё теория и на практике я не могу даже предполагать как все это будет работать.  Мод почти работоспоспообен, за исключением следующих недостатков:
1. после создания темы для автора она всё равно отображается как непрочтённая smile Не понимаю как это происходит.
2. нет кнопок "пометить прочтенными"
3. если в футере выбрать ссылку "Показать последнии сообщения", то будут показаны все вне зависимости от того "прочтенные" они или нет. Это надо править search.php так что новые редакции этого мода еще вполне ожидаемы.
Качать отсюда: http://punbb.ru/downloads/RMT.zip

Это последняя версия данного мода?

#109 2006-12-06 13:32:10

hcs
Гость

Re: Real Mark Topic as Read -=+ пометка тем как прочтенные +=-

По указанной там ссылке всегда последняя версия.

#110 2006-12-08 15:28:14

ElfMK
Гость

Re: Real Mark Topic as Read -=+ пометка тем как прочтенные +=-

Спасибо, данный мод подходит для версии 1.2.14 ?
Просто в install_mod.php стоит проверка на версию.

#111 2006-12-08 16:38:06

hcs
Гость

Re: Real Mark Topic as Read -=+ пометка тем как прочтенные +=-

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

#112 2006-12-21 12:15:40

Kox
Гость

Re: Real Mark Topic as Read -=+ пометка тем как прочтенные +=-

Ну а кто - нибудь выложит целековый мод, или всё тут перечитать и собрать по кусочкам? smile

#113 2006-12-21 12:55:46

hcs
Гость

Re: Real Mark Topic as Read -=+ пометка тем как прочтенные +=-

#114 2006-12-21 13:57:17

Kox
Гость

Re: Real Mark Topic as Read -=+ пометка тем как прочтенные +=-

hcs

Благодарю!

#115 2006-12-26 17:34:09

Юко
Гость

Re: Real Mark Topic as Read -=+ пометка тем как прочтенные +=-

hcs

Поставил, вроде работает, спасибо smile

Один вопрос, при нажатии на ссылку "Пометить все форумы как прочитанные" форумы и темы не отмечаются как прочитанные, это где-то моя ошибка (если да то где предположительно?) или это не доработка мода?
Хотя на этом форуме всё работает, значит это скорее всего моя ошибка, где её искать? smile

Редактировался Юко (2006-12-26 17:35:38)

#116 2006-12-26 17:46:34

hcs
Гость

Re: Real Mark Topic as Read -=+ пометка тем как прочтенные +=-

Юко, это старая версия. Надеюсь тебе не будет трудно откатится назад, скачать новую версию и провести установку заново?
Значит надо будет откатится назад, дропнуть таблицы - log_topics и log_forums, запустить инсталлер заново, потом следовать инструкции. Вот новая ссылка: http://punbb.ru/downloads/RMT.zip
Извините за неудобство, я почемуто думал, что архив давно обновлён.

#117 2006-12-26 18:59:06

Юко
Гость

Re: Real Mark Topic as Read -=+ пометка тем как прочтенные +=-

hcs
Эх, ясно, буду делать, как руки дайдут.
Спасибо.

#118 2006-12-31 03:03:57

Essential
Гость

Re: Real Mark Topic as Read -=+ пометка тем как прочтенные +=-

у меня версия 1.2.14 голый только руссификация. Мануал на совпадает в index.php разные строки там где LEFT JOIN и тд. Может есть установленный мод на голую версию?

#119 2006-12-31 11:52:29

hcs
Гость

Re: Real Mark Topic as Read -=+ пометка тем как прочтенные +=-

Что  именно несовпадает? Не вижу в этом ничего страшного, давай разберемся.

#120 2007-01-04 14:21:23

Юко
Гость

Re: Real Mark Topic as Read -=+ пометка тем как прочтенные +=-

hcs

переставил, но вот какое дело, меня смущает вот это действие в viewforum.php:

#
#---------[ 20. FIND  (line  ~ 114 ]---------------------------------------------------
#

$sql = 'SELECT id, poster, subject, posted, last_post, last_post_id, last_poster, num_views, num_replies, closed, sticky, moved_to FROM '.$db->prefix.'topics WHERE forum_id='.$id.' ORDER BY sticky DESC, '.(($cur_forum['sort_by'] == '1') ? 'posted' : 'last_post').' DESC LIMIT '.$start_from.', '.$pun_user['disp_topics'];


#
#---------[ 21. REPLACE WITH ]---------------------------------------------------
#

$sql = 'SELECT t.id, t.poster, t.subject, t.posted, t.last_post, t.last_post_id, t.last_poster, t.num_views, t.num_replies, t.closed, t.sticky, t.moved_to, lt.log_time, lf.mark_read FROM '.$db->prefix.'topics AS t LEFT JOIN '.$db->prefix.'log_topics AS lt ON lt.user_id='.$pun_user['id'].' AND lt.topic_id=t.id LEFT JOIN '.$db->prefix.'log_forums AS lf ON lf.forum_id=t.forum_id AND lf.user_id='.$pun_user['id'].'  WHERE '.$db->prefix.'t.forum_id='.$id.' ORDER BY sticky DESC, '.(($cur_forum['sort_by'] == '1') ? 'posted' : 'last_post').' DESC LIMIT '.$start_from.', '.$pun_user['disp_topics'];

Оно у меня вызывает ошибку:

PunBB reported: Unable to fetch topic list
Database reported: Unknown column 'punt.forum_id' in 'where clause' (Errno: 1054)

(pun это у меня такой префикс к таблицам)

Вместо этого, я пока поставил строчку с предыдущей версии мода.
(даже работает, на половину, когда жмёш "Пометить все форумы как прочитанные", форумы прочтёнными помечаются, а темы нет.)
пытался скрестить строчку со старой версии и новой, не получилось smile

Редактировался Юко (2007-01-04 14:26:24)

#121 2007-01-04 14:54:17

hcs
Гость

Re: Real Mark Topic as Read -=+ пометка тем как прочтенные +=-

Ну тут явно опечатка, замени
WHERE '.$db->prefix.'t.forum_id
на
WHERE t.forum_id

#122 2007-01-04 15:03:16

Юко
Гость

Re: Real Mark Topic as Read -=+ пометка тем как прочтенные +=-

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

Редактировался Юко (2007-01-04 15:07:00)

#123 2007-01-04 17:17:45

Dexus
Гость

Re: Real Mark Topic as Read -=+ пометка тем как прочтенные +=-

Глючный мод. Пока он не доотлажен до конца ставить его на официальный punbb форум - большая глупость.

#124 2007-01-04 17:26:03

Юко
Гость

Re: Real Mark Topic as Read -=+ пометка тем как прочтенные +=-

Dexus
но можно помочь отладить , если конешно самому не ошибаться smile
сам то мод работает (пример этот форум), это в инстоляторе (реадми) возможно ошибки.

Редактировался Юко (2007-01-04 17:29:13)

#125 2007-01-04 19:52:28

Юко
Гость

Re: Real Mark Topic as Read -=+ пометка тем как прочтенные +=-

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

Надеюсь все понятно. Насколько трудно это сделать?

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

Редактировался Юко (2007-01-04 20:39:30)

Подвал доски

Под управлением FluxBB. Хостинг Hostens