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

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

Вы не вошли.

Объявление

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

#126 2007-01-04 21:36:32

hcs
Гость

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

Вобщем есть у меня решение. Хотелось бы обкатать его в боевых условиях, т.е. здесь, но боюсь что при первой же возникшей ошибке и неудобствах в работе с форумом меня раскритикуют, мол очередная глупость, лучше воще ничего не делать, чем пытаться сделать лучше smile
Решение банально, к каждому просмотру топика добавляется 2 запроса, открываем viewtopic.php с уже установленным модом, находим (строка 118):

// REAL MARK TOPIC AS READ MOD BEGIN
if (!$pun_user['is_guest'] && $cur_topic['log_time'] == null )
    $result = $db->query("INSERT INTO ".$db->prefix."log_topics (user_id, forum_id, topic_id, log_time) VALUES ('".$pun_user['id']."', '".$cur_topic['forum_id']."', '".$id."', '".time()."')") or error('Unable to insert reading_mark info', __FILE__, __LINE__, $db->error());
else
    $result = $db->query('UPDATE '.$db->prefix.'log_topics  SET forum_id='.$cur_topic['forum_id'].', log_time='.time().' WHERE topic_id='.$id.' AND user_id='.$pun_user['id']) or error('Unable to update reading_mark info', __FILE__, __LINE__, $db->error());
// REAL MARK TOPIC AS READ MOD END

меняем на это:

// REAL MARK TOPIC AS READ MOD BEGIN
if (!$pun_user['is_guest']) {
    $cur_time = time();
    if ($cur_topic['log_time'] == null )
        $result = $db->query("INSERT INTO ".$db->prefix."log_topics (user_id, forum_id, topic_id, log_time) VALUES ('".$pun_user['id']."', '".$cur_topic['forum_id']."', '".$id."', '".$cur_time."')") or error('Unable to insert reading_mark info', __FILE__, __LINE__, $db->error());
    else
        $result = $db->query('UPDATE '.$db->prefix.'log_topics  SET forum_id='.$cur_topic['forum_id'].', log_time='.$cur_time.' WHERE topic_id='.$id.' AND user_id='.$pun_user['id']) or error('Unable to update reading_mark info', __FILE__, __LINE__, $db->error());
   
    $result = $db->query('SELECT t.id, t.last_post, lt.log_time  FROM '.$db->prefix.'topics AS t  LEFT JOIN '.$db->prefix.'log_topics AS lt ON lt.topic_id=t.id AND lt.user_id='.$pun_user['id'].' WHERE t.forum_id = '.$cur_topic['forum_id'].' AND t.last_post > '.$cur_time.'-'.$pun_user['mark_after'].' ') or error('Unable to fetch topic info', __FILE__, __LINE__, $db->error());   

    $find_new = false;
    while ($topic = $db->fetch_assoc($result)){
         if (($topic['log_time'] == null && $topic['last_post'] > $pun_user['last_visit']) || ($topic['log_time'] < $topic['last_post'] &&$topic['last_post'] > $pun_user['last_visit'])) {
             $find_new = true;
             break;
         }
    }
    if (!$find_new) {
        $cur_time = $cur_time + 10;
        $result = $db->query('UPDATE '.$db->prefix.'log_forums SET log_time='.$cur_time .' WHERE forum_id='.$cur_topic['forum_id'].' AND user_id='.$pun_user['id']) or error('Unable to update reading_mark info', __FILE__, __LINE__, $db->error());               
        if ($db->affected_rows()<1 )
            $result = $db->query("INSERT INTO ".$db->prefix."log_forums (user_id, forum_id, log_time) VALUES ('".$pun_user['id']."', '".$cur_topic['forum_id']."', '".$cur_time."')") or error('Unable to insert reading_mark info', __FILE__, __LINE__, $db->error());               

    }
}
// REAL MARK TOPIC AS READ MOD END

жду ответов добровольных тестеров до завтра, и если не будет ни тестеров ни ошибок - заливаю сюда.

Редактировался hcs (2007-01-05 14:48:47)

#127 2007-01-04 22:13:25

Юко
Гость

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

hcs

Все работает как надо!! smile

P.S.  то что темы не помечаются как прочтенные после нажатия на "Пометить все форумы как прочитанные", эта проблема все еще есть. Посоветуй, как исправить?
Хуже того, даже если недавно созданные темы прочтенные, то после нажатия "Пометить все форумы как прочитанные", они сново помечаются как новые.

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

#128 2007-01-05 13:44:24

hcs
Гость

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

Нифига не работает. Есть какието грабли...

#129 2007-01-05 14:18:06

Юко
Гость

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

hcs
Что не работает?
У меня он работает в соответствии с этим:

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

Отклонений пока не замечено.
Если бы не эта проблема с пометкой всех тем, было бы всё замечательно.

#130 2007-01-05 14:48:09

hcs
Гость

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

Вобщем исправил исправление в  сообщении http://punbb.ru/viewtopic.php?pid=6537#p6537
Там сейчас "правильный" вариант. Предыдущий смело выкидываем.
Поставил обновление на форум, потому что на локальном форуме тестировать бесполезно, не то количество информации. Вроде форумы стали отмечаться прочитанными, если в них прочитаны все темы, т.е. поведение стало именно такое как желалось.
Сообщайте о глюках.

#131 2007-01-05 15:48:56

Юко
Гость

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

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

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

У меня тоже не совпало

#
#---------[ 7. FIND (line  ~ 42)   ]---------------------------------------------------
#

LEFT JOIN '.$db->prefix.'topics AS t ON f.last_post_id=t.last_post_id 

#
#---------[ 8. AFTER ADD ]---------------------------------------------------
#

LEFT JOIN '.$db->prefix.'log_forums AS lf ON lf.user_id='.$pun_user['id'].' AND lf.forum_id=f.id

Нет этой строчки, я просто добавлял перед WHERE

#132 2007-01-05 19:58:58

hcs
Гость

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

Вобщем не вижу смысла продолжать мучать этот мод.
http://www.punres.org/viewtopic.php?id=321 - вполне справляется с задачей. И чего я раньше его не проверил??

#133 2007-01-06 17:00:00

Юко
Гость

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

http://www.punres.org/viewtopic.php?id=321 - вполне справляется с задачей

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

#134 2007-01-06 17:42:49

hcs
Гость

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

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

#135 2007-01-06 18:38:51

Dexus
Гость

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

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

#136 2007-01-06 20:59:09

Slavik
Гость

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

Юко пишет:

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

Форум по идее это контейнер для тем, сам по себе никакой смысловой нагрузки не несет. Зато темы внутри него несут, и гораздо удобнее определять свежесть продуктов по состоянию коробки, так, имхо, гораздо удобнее

#137 2007-01-06 21:21:57

Юко
Гость

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

Slavik

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


Но возится с тим мне уже надоело, пусть пока будет как есть smile

Редактировался Юко (2007-01-06 21:42:17)

#138 2007-01-07 08:11:26

hcs
Гость

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

Я совершенно согласен с Юко:

Юко пишет:

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

В этой теме этот вопрос уже обсуждался и вот всплыл снова. Есть 2 мнения, поэтому считаю, что для удобства должно быть 2 реализации, которую юзер выберет у себя в профиле.

#139 2007-01-07 14:55:34

Slavik
Гость

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

hcs пишет:

считаю, что для удобства должно быть 2 реализации, которую юзер выберет у себя в профиле.

Ну или так smile

#140 2007-02-09 07:10:51

divan
Гость

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

как снести Real Mark Topic as Read, если нет бэкапа? кроме шагов в , писанных в инсталере, надо что-нибудь делать?

#141 2007-02-09 07:18:46

hcs
Гость

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

достаточно вернуть изменения описанные в инструкции, дропнуть таблицы  и дополнительные поля создающиеся в инсталлере

#142 2007-02-20 01:01:36

Px
Гость

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

hcs пишет:

http://www.punres.org/viewtopic.php?id=321 - вполне справляется с задачей. И чего я раньше его не проверил??

Где же он справляется? Ушёл, оно по тайм-ауту делает выход с форума и метит всё прочитанным....

#143 2007-04-06 19:17:44

pr1zrak
Гость

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

вообщем поставил мод Mark_topics_as_read-1.1.3  (отсюда http://www.punres.org/viewtopic.php?id=321) , но когда ставлю запускаю инстал мод , то пишет:

You are running a version of PunBB (1.2.10) that this mod does not support. This mod supports PunBB versions: 1.2.5

это вроде версии не сходятся , что делать? Мод что на первой страницы , не смог поставить в том месте где надо строку

LEFT JOIN '.$db->prefix.'topics AS t ON f.last_post_id=t.last_post_id

найти , там её нету там по другому , там вот так :
LEFT JOIN '.$db->prefix.'forum_perms AS fp ON (fp.forum_id=f.id AND fp.group_id='.$pun_user['g_id'].')


версия моего форума как уже видели из ошибки 1.2.10

#144 2007-04-07 06:40:07

Slavik
Гость

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

Сейчас подожди модеры придут и ответят. Я бы тоже ответил, но тогда меня забанят за мат

#145 2007-04-12 22:04:24

pr1zrak
Гость

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

You are running a version of PunBB (1.2.10) that this mod does not support. This mod supports PunBB versions: 1.2.5
блин почему так , ставил Mark_topics_as_read-1.1.3 мод , на офе форуме писали что на версию 10.2.10 он идёт  ,так почему не хочет запускаться инстал мод
Помогите плз , очень очень буду благодарен

Редактировался pr1zrak (2007-04-12 22:11:56)

#146 2007-04-13 06:00:05

artoodetoo
Гость

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

#147 2007-04-13 18:30:54

pr1zrak
Гость

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

ой извеняюсь , сори... smile спасибо

#148 2007-04-15 15:47:13

pr1zrak
Гость

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

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

#149 2007-04-18 20:45:23

maximum
Гость

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

Чёртов мод, второй раз попытался (первая попытка была ровно год назад) установить мод, и опять.. sad

File: /home/blabla/bla4bla.ru/www/include/functions.php
Line: 105

PunBB reported: Unable to update user visit data

Database reported: Unknown column 'read_topics' in 'field list' (Errno: 1054)

Не хочет как на полную базу, так и на чистую.

Как ставить то мод, только с дефолтным движком на чистую базу?

Редактировался maximum (2007-07-08 23:33:48)

#150 2007-04-18 20:49:43

Px
Гость

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

pr1zrak пишет:

в другом например разделе прочитаю и все равно остаются непрочитанными , что можно сделать с данным траблом?

Голосовалки, небось, стоят?

Добавлено спустя     1 минуту   10 секунд:

maximum пишет:

Database reported: Unknown column 'read_topics' in 'field list' (Errno: 1054)

Не хочет как на полную базу, так и на чистую.

Как ставить то мод, с дефолтным движком на чистую базу?

Ээээ, а install_mod.php запускал?

Подвал доски

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