Song Опубликовано 6 Июля 2005 Жалоба Поделиться Опубликовано 6 Июля 2005 Есть такая феня, не знаю зачем она, никогда ею не занимался.А заключается она в том, что отсылаются посты топика на мыло только тем пользователям, время последней активности которых позже, чем последний пост в теме.Я думал-думал, но так и не нашёл никакого правдоподобного объяснения этой фиче.Может кто из all'а догадается? Т.е. получаем вот такой бред: Участник зашёл на форум в 14.00Подписался на топик.Ушёл в 14.05 В 14.30 пришёл ответ 1, он не отсылается.В 15.30 пришёл ответ 2, он не отсылается. В 19.00 участник пришёл на форум. Ответы не отсылаются.В 19.05 он всё ещё на форуме.В 19.05 пришёл в тему ответ 3. И тут ему пошли отсылаться сразу все поста.Если бы 3-го поста так и не последовало, ответы бы так и не отослались. Может конечно я переглючил, и оно не так, но посудите сами: $DB->query("SELECT tr.trid, tr.topic_id, m.name, m.email, m.id, m.email_full, m.language, m.last_activity, t.title, t.forum_id FROM ibf_tracker tr, ibf_topics t,ibf_members m WHERE tr.topic_id='".$tid."' AND m.disable_mail=0 AND tr.member_id=m.id AND m.id!='".$ibforums->member['id']."' AND t.tid=tr.topic_id AND m.last_activity > ".$last_post."'"); где $tid - ид топика, в который поступил ответ$last_post - время последнего поста в топике на момент срабатывания запроса. Ссылка на комментарий Поделиться на других сайтах Прочее
Hostem Опубликовано 8 Июля 2005 Жалоба Поделиться Опубликовано 8 Июля 2005 Как я понял, то это чтобы несколько ответов подряд не присылалось, а только один раз в первый ответ. Будет присылать еще раз - когда пользватель зайдет на форум. Вызов функции такой: //------------------------------------------------- // Check for subscribed topics // Pass on the previous last post time of the topic // to see if we need to send emails out //------------------------------------------------- $class->topic_tracker( $this->topic['tid'], $this->post['post'], $class->forum['last_poster_name'], $this->topic['last_post'] ); Где $this->topic['last_post'] - это предыдущий последний пост. И там это же в комментах написано Ссылка на комментарий Поделиться на других сайтах Прочее
Song Опубликовано 8 Июля 2005 Автор Жалоба Поделиться Опубликовано 8 Июля 2005 Странно это как-то.. в таких случаях делают просто GROUP BY member_id ORDER BY pid DESC а моё описание глюка правдиво? Ссылка на комментарий Поделиться на других сайтах Прочее
Hostem Опубликовано 8 Июля 2005 Жалоба Поделиться Опубликовано 8 Июля 2005 Зачем "GROUP BY" ? а моё описание глюка правдиво?Ага, я даже уже хотел удалять "AND m.last_activity > ".$last_post."'" Ссылка на комментарий Поделиться на других сайтах Прочее
Song Опубликовано 8 Июля 2005 Автор Жалоба Поделиться Опубликовано 8 Июля 2005 Да не нужно. Я спутал, думал здесь ещё таблица постов джойнится. А тут пост передаётся в параметре. Тогда добвлять в запрос ничего не нужно. Ссылка на комментарий Поделиться на других сайтах Прочее
Hostem Опубликовано 29 Августа 2005 Жалоба Поделиться Опубликовано 29 Августа 2005 Та не там все правильно. Есть тема_1 Последнее сообщение темы_1 ($last_post) в 14:00 В 14:05 пользователь подписывается на тему, и сразу выходит из форума. Т.е. m.last_activity= в 14:05 Затем кто-то еще пишет в 14:10 и условие AND m.last_activity > ".$last_post."' ~ 14:05 > 14:00 выполняется И $last_post == 14:10 Затем (m.last_activity все еще == 14:05) еще кто-то отвечает в тему_1. И уже условие AND m.last_activity > ".$last_post."' ~ 14:05 > 14:10 НЕ выполняется. Как и задумано (если ответов будет к примеру 10, то чтобы не слать 10 писем) Ссылка на комментарий Поделиться на других сайтах Прочее
Song Опубликовано 29 Августа 2005 Автор Жалоба Поделиться Опубликовано 29 Августа 2005 2Hostem 1) А если он не уходит с форума ? Просто тусуется в другом разделе. А уходит уже потОм ? 2) >> Затем кто-то еще пишет в 14:10 и условие AND m.last_activity > ".$last_post."' ~ 14:05 > 14:00 выполняется Как же оно выполняется? last_post будет при этом равен 14.10, т.к. last_post это unix time последнего поста в теме. Ссылка на комментарий Поделиться на других сайтах Прочее
Hostem Опубликовано 29 Августа 2005 Жалоба Поделиться Опубликовано 29 Августа 2005 А если он не уходит с форума ? Просто тусуется в другом разделе. А уходит уже потОм ?То ему может прийти больше одного письмаКак же оно выполняется? last_post будет при этом равен 14.10, т.к. last_post это unix time последнего поста в темеПоследнего поста до вставки нового поста, т.е. предыдущего поста Из комментов в коде //------------------------------------------------- // Check for subscribed topics // Pass on the previous last post time of the topic // to see if we need to send emails out //------------------------------------------------- Ссылка на комментарий Поделиться на других сайтах Прочее
Song Опубликовано 29 Августа 2005 Автор Жалоба Поделиться Опубликовано 29 Августа 2005 Правду говоришь Ну тогда почему оно не работает ?Вижу пока только один глюк: мод склейки не приведён в соответствие с отсылкой.Ну это даже не так важно.И без склейки работает через раз. Hostem, а у тебя работает ? Ссылка на комментарий Поделиться на других сайтах Прочее
Hostem Опубликовано 29 Августа 2005 Жалоба Поделиться Опубликовано 29 Августа 2005 Через склейку - не работает. Я об этом даже не подумал ... Но вообще подписки на темы особо не проверял. Только надо проверять же с двух логинов - один подписывается, второй пишет сообщение. Ссылка на комментарий Поделиться на других сайтах Прочее
Рекомендуемые сообщения